工业与装备技术研究院控制工程周国春2015170360̈=-(mgl/I)sinθ+(1/I)u,其中m=1.5,l=1.5,g=9.8,I=2,跟踪信号r(t)=2-设计滑膜控制和PID控制去跟踪信号r。1滑膜变结构控制由于系统是二阶的非线性系统,其表达式可以写为̈=f(,̇)+bu其中,f(,̇)=-(mgl/I)sinθ,b=(1/I)。实际上,我们无法正确得到I的值,但可以确定I的范围。取0.98I5选取(,̇)=15,=1/5且f(,̇)≤(,̇),b≥恒成立定义系统的误差函数=r(t)-(t)滑膜变量s=̇+4定义一个李雅普诺夫方程V=0.5有̇=ṡ=s(̈+4̇)=s(̈-f(,̇)-bu+4̇)控制信号u可以选为:u=sign(s)[|̈|+(,̇)+4|̇|]代入数值得到u=4sign(s)[4||+15+4|̇|]将u的值代入̇中得̇=s̈-sf(,̇)+4ṡ)-|s|(b/)[|̈|+(,̇)+4|̇|]≤|s|̈|+|s||f(,̇)|+4|s||̇|-|s|(b/)[|̈|+(,̇)+4|̇|]≤-[(b/)-1]|s|̈|-4[(b/)-1]|s||̇|-[(b/)-1]|s||(,̇)|由于[(b/)-1]>0恒成立,当s≠0时,恒有̇<0由此李雅普诺夫第二判定方法可知,滑膜变量s是渐进收敛于0。当s=0时,系统的动态方程就位于滑膜面s=̇+4=0附件一M文件和波形图%定义系统变量m,l,g,il=1.5;m=1.5;I=2;g=9.8;%定义系统参数的上下限f0=15;b0=1/4;lamda=4;%滑膜参数dt=0.01;%信号采集的时间间隔th=1;%角度位置的初始值dth=0;%初始角速度ett(1)=0;%初始误差thr=2-exp(-2*dt);%参考信号初值th=2-exp(-2*dt);%跟踪信号初值u=0;%输入信号fori=2:2000;thr=2-exp(-2*i*dt);%参考信号thrr(i)=thr;et=thr-th;%误差ett(i)=et;det=(ett(i)-ett(i-1))/dt;%误差的微分s=det+lamda*et;%滑模平面u=1/b0*sign(s)*(4*abs(exp(-2*i*dt))+f0+lamda*abs(det));%滑膜控制器dth=dth+dt*(-(m*g*l/I)*sin(thr*pi/180)+(1/I)*u);%一次积分为角度变化的速度th=th+dt*dth;%二次积分为角度thh(i)=th;uu(i)=u;ss(i)=s;endt=0.01:0.01:20;figureplot(t,thh,t,thrr)xlabel('Timet(sec)')ylabel('Systemstatesthrrandthh')%参考信号和跟踪信号的比较图figureplot(t,ett)xlabel('Timet(sec)')ylabel('Systemtrackingerror')%误差大小的图figureplot(t,uu)xlabel('Timet(sec)')ylabel('Controlinput')%输入函数u的图figureplot(t,ss)xlabel('Timet(sec)')ylabel('Sface')%滑膜变量S的图二PID控制因为PID控制采用的偏差控制方法,系统误差=r(t)-(t)可以设定系统的u为u=Kp+(1/T)∫dt+(d/dt)代入二阶非线性系统方程得̈=-(mgl/I)sinθ+(1/I)u选定PID参数,其中Kp=800,1/T=4=8附件二M文件和波形图%系统参数m=1.5;l=1.5;I=2;g=9.8;%采样时间间隔dt=0.01;%PID参数kp=800;ki=4kd=8;lamda=5;%滑膜参数th=1;%角度位置的初始值dth=0;%初级角加速度ett(1)=0;%初始误差信号thr=2-exp(-2*dt);th=2-exp(-2*dt);u=0;iet=0;fori=2:2000;thr=2-exp(-2*i*dt);%参考信号thrr(i)=thr;et=thr-th;%误差ett(i)=et;det=(ett(i)-ett(i-1))/dt;%误差的微分s=det+lamda*et;iet=iet+dt*et;%误差的积分u=kp*et+ki*iet+kd*det;%由PID控制器控制的输入udth=dth+dt*(-(m*g*l/I)*sin(thr*pi/180)+(1/I)*u);%一次积分为角度变化速度th=th+dt*dth;%二次积分为角度thh(i)=th;uu(i)=u;ss(i)=s;endt=0.01:0.01:20;figure(1)plot(t,thh,t,thrr)xlabel('Timet(sec)')ylabel('Systemstatesthrrandthh')title('参考信号和输出信号的对比')%参考信号和输出信号的对比图figure(2)plot(t,ett)xlabel('Timet(sec)')ylabel('Systemtrackerror')title('系统误差波形')%误差的波形figure(3)plot(t,uu)xlabel('Timet(sec)')ylabel('Controlinput')title('系统输入波形')%输入u的波形