实验三、最少拍控制算法matlab仿真实验一、实验目的:1.掌握最少拍有纹波、无纹波系统的设计方法;2.学会最少拍控制系统的分析方法;3.了解输入信号对最少拍控制系统的影响及改进措施二、实验内容:设单位反馈线性定常系统的连续部分和零阶保持器的传递函数分别为:,,采样周期T=1秒。要求系统在单位阶跃输入时实现最少拍控制,求数字控制器的脉冲传递函数。讨论加上控制器后的系统输出在采样点之间是否存在纹波,若存在纹波,请设计最少拍无纹波控制器。系统结构如图:1、对未加控制器时的闭环系统分析其是否满足最少拍要求clearall;clc;G=zpk([],[0,-1],1);%零极点形式的被控对象T=1;%采样周期Gd=c2d(G,T,'zoh')%广义被控对象脉冲传函[num1,den1]=tfdata(Gd,'v');GG=feedback(Gd,1)%原系统闭环传递函数yd_1=0;yd_2=0;ed_1=0;ed_2=0;fork=1:1:35time(k)=k*T;rin(k)=1;%单位阶跃信号%闭环系统的差分方程yd(k)=num1(2)*ed_1+num1(3)*ed_2-den1(2)*yd_1-den1(3)*yd_2;ed(k)=rin(k)-yd(k);%求偏差%数据更新ed_2=ed_1;ed_1=ed(k);yd_2=yd_1;yd_1=yd(k);)1(1)(0sssGsesGsTh1)()(zD-)(sRT()Ys)(zD()hGs)(0sGendyd%原闭环系统的输出序列ed%原闭环系统的偏差序列figure(1);plot(time,rin,'r',time,yd,'g',time,ed,'b');xlabel('time');ylabel('rin,yd');title('闭环系统在单位速度信号下的响应');text(3,23,'红线:输入信号;绿线:系统输出响应;蓝线:偏差');1)原系统闭环脉冲传递函数为:GG=0.36788(z+0.7183)------------------(z^2-z+0.6321)得系统特征根为618.05.0jz,特征根174.049.025.0618.05.0222z,即闭环系统稳定。2)广义对象的开环脉冲传递函数为:Gd=0.36788(z+0.7183)------------------(z-1)(z-0.3679)可知,开环脉冲传递函数有1z的极点个数为1,系统为I型系统。对于单位速度输入,稳态误差不为零。即原来的闭环系统达不到最少拍系统中对某个输入稳定无静差的要求。3)原闭环系统输出序列为:yd=Columns1through900.36791.00001.39961.39961.14700.89440.80150.8682Columns10through180.99371.07701.08101.03230.98110.96070.97260.99751.0148Columns19through271.01641.00700.99670.99220.99430.99921.00281.00331.0015Columns28through350.99940.99850.99880.99981.00051.00071.00030.9999可知,系统输出在第十三拍以后,基本稳定为1,满足稳定性要求。调节时间为13s。动态过程为13拍,达不到最少怕的要求。原闭环系统偏差序列为:ed=Columns1through91.00000.63210.0000-0.3996-0.3996-0.14700.10560.19850.1318Columns10through180.0063-0.0770-0.0810-0.03230.01890.03930.02740.0025-0.0148Columns19through27-0.0164-0.00700.00330.00780.00570.0008-0.0028-0.0033-0.0015Columns28through350.00060.00150.00120.0002-0.0005-0.0007-0.00030.0001可知,系统偏差输出在第十三拍(系统稳定)以后,基本保持0大小,无静差。4)原闭环系统输出曲线从图中也可看出,原系统不满足最少拍要求。需要串入最少拍调节器。2、设计最少拍控制器:步骤:(1)确定有零阶保持器的广义对象clearall;Closeall;clc;G=zpk([],[0,-1],1);%零极点形式的被控对象T=1;%采样周期Gd=c2d(G,T,'zoh');%广义被控对象脉冲传函广义被控对象的脉冲传递函数为:0.36788(z+0.7183)------------------(z-1)(z-0.3679)可知,广义被控对象没有单位圆外的零极点,也没有纯滞后。即i=j=l=0。(2)输入为单位阶跃时,m=1,s=j+m=1,t=l+i=0最少拍系统应具有的误差脉冲传递函数、闭环脉冲传递函数分别为:11)(1zz求待定系数,得:05101520253035-0.4-0.200.20.40.60.811.21.4timerin,yd闭环系统在单位速度信号下的响应红线:输入信号;绿线:系统输出响应;蓝线:偏差)(zG2211)(zmzmzzzz1)(1zzzz11)(11(3)确定数字控制器(4)闭环系统输出:数字控制器的输出:程序:clearall;clc;G=zpk([],[0,-1],1);%零极点形式的被控对象T=1;%采样周期Gd=c2d(G,T,'zoh');%广义被控对象脉冲传函phi=tf([1],[10],T);%闭环脉冲传函phie=tf([1-1],[10],T);%误差脉冲传函D=phi/(Gd*phie);%数字控制器脉冲传函D(z)phie,phi,Gd,D[num1,den1]=tfdata(Gd,'v');[num2,den2]=tfdata(D,'v');ud_1=0;ud_2=0;ud_3=0;yd_1=0;yd_2=0;ed_1=0;ed_2=0;ed_3=0;fork=1:1:35time(k)=k*T;rin(k)=1;%单位阶跃信号%加数字控制器的差分方程yd(k)=num1(2)*ud_1+num1(3)*ud_2-den1(2)*yd_1-den1(3)*yd_2;ed(k)=rin(k)-yd(k);%求偏差%数字控制器的差分方程ud(k)=(num2(1)*ed(k)+num2(2)*ed_1+num2(3)*ed_2+num2(4)*ed_3-den2(2)*ud_1-den2(3)*ud_2-den2(4)*ud_3)/den2(1);%数据更新ud_3=ud_2;ud_2=ud_1;ud_1=ud(k);)(zD()()()1()]zDzGzz[()()()()()YzRzzUzGz)()()(zDzEzUed_3=ed_2;ed_2=ed_1;ed_1=ed(k);yd_2=yd_1;yd_1=yd(k);endyd,udfigure(2);plot(time,rin,'r',time,yd,'b',time,ud,'k');xlabel('time');ylabel('rin,yd,ud');title('加数字控制器后单位阶跃信号的闭环响应及数字控制器的输出');text(3,1.5,'红线:系统输入;蓝线:系统输出;黑线:控制器输出');系统输出序列:yd=Columns1through1001.00001.00001.00001.00001.00001.00001.00001.00001.0000Columns11through201.00001.00001.00001.00001.00001.00001.00001.00001.00001.0000Columns21through301.00001.00001.00001.00001.00001.00001.00001.00001.00001.0000Columns31through351.00001.00001.00001.00001.0000控制器输出序列:ud=Columns1through1005101520253035-3-2-10123timerin,yd,ud加数字控制器后单位阶跃信号的闭环响应及数字控制器的输出红线:系统输入;蓝线:系统输出;黑线:控制器输出2.7183-2.95252.1207-1.52331.0941-0.78590.5645-0.40550.2912-0.2092Columns11through200.1503-0.10790.0775-0.05570.0400-0.02870.0206-0.01480.0106-0.0076Columns21through300.0055-0.00390.0028-0.00200.0015-0.00110.0008-0.00050.0004-0.0003Columns31through350.0002-0.00010.0001-0.00010.0001可知,加数字控制器后,系统输出与系统输入在1s以后相等,说明系统是稳定的且稳态无静差。调节时间为1s,但观察其数字控制器输出曲线及输出序列发现,其控制器输出在28拍(28s)后才变为恒定值,说明输出在第3拍至第28拍间,仅能保证在采样点上与输入相同,在采样点间不相同,即输出有纹波。此时闭环脉冲传函为:zzz1)(1误差脉冲传函为:zzzz11)(11数字控制器为:2.7183z(z-1)(z-0.3679)-------------------------z(z+0.7183)(z-1)3、最少拍无纹波控制器:步骤:(1)确定有零阶保持器的广义对象,广义被控对象脉冲传函:0.36788(z+0.7183)------------------(z-1)(z-0.3679)广义被控对象没有单位圆外的零极点,也没有纯滞后。即i=j=l=0。(2)由G(z)有一个单位圆内的零点-0.7183,要实现无纹波,则最少拍系统的闭环脉冲传递函数要求将单位圆内圆外的所有零点都包含进来。此时零点个数i=1。(3)输入为单位阶跃时,m=1,s=j+m=1,t=l+i=0+1=1。应具有的误差脉冲传递函数、闭环脉冲传递函数分别为:221117183.07183.0)7183.01()(zmmzmzmzmzzz22211111)1)(1()(1zfzfzzfzzfzfzzz因,有117183.021121fzzfzmzmz得方程组:1fm)(zG1)()(1zzmf7183.0解方程组,得m=1/1.7183;f=0.7183/1.7183;即得27183.17183.07183.11)(zzz227183.17183.07183.11)(1zzzz(3)确定数字控制器(4)闭环系统输出:数字控制器的输出:程序:clearall;closeall;clc;G=zpk([],[0,-1],1);%%零极点形式的被控对象T=1;%采样周期Gd=c2d(G,T,'zoh');%广义被控对象脉冲传函%求误差脉冲传函及闭环脉冲传函phi=tf([1/1.71830.7183/1.7183],[100],T);%闭环脉冲传函phie=tf([1-1/1.7183-0.7183/1.7183],[100],T);%误差脉冲传函D=phi/(Gd*phie);%数字控制器脉冲传函D(z)Gd,D,phie,phi[num1,den1]=tfdata(Gd,'v');%求脉冲传函的分子分母多项式[num2,den2]=tfdata(D,'v');ud_1=0;ud_2