控制系统数字仿真与CAD-习题答案全部_第1页
控制系统数字仿真与CAD-习题答案全部_第2页
控制系统数字仿真与CAD-习题答案全部_第3页
控制系统数字仿真与CAD-习题答案全部_第4页
控制系统数字仿真与CAD-习题答案全部_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

=y=[0202]X解:〔1状态方程模型参数:编写matlab程序如下>>num=[172424];>>den=[110355024];>>[ABCD]=tf2ss<num,den>得到结果:A=,B=,C=,D=[0]所以模型为:=X+u,y=X<2>零极点增益:编写程序>>num=[172424];>>den=[110355024];>>[ZPK]=tf2zp<num,den>得到结果Z=-2.7306+2.8531,-2.7306-2.8531i,-1.5388P=-4,-3,-2,-1K=1<3>部分分式形式:编写程序>>num=[172424];>>den=[110355024];>>[RPH]=residue<num,den>得到结果R=4.0000,-6.0000,2.0000,1.0000P=-4.0000,-3.0000,-2.0000,-1.0000H=[]G<s>=〔2解:〔1传递函数模型参数:编写程序>>A=[2.25-5-1.25-0.52.25-4.25-1.25-0.250.25-0.5-1.25-11.25-1.75-0.25-0.75];>>B=[4220]';>>C=[0202];>>D=[0];>>[numden]=ss2tf<A,B,C,D>得到结果num=04.000014.000022.000015.0000den=1.00004.00006.25005.25002.2500<2>零极点增益模型参数:编写程序>>A=[2.25-5-1.25-0.52.25-4.25-1.25-0.250.25-0.5-1.25-11.25-1.75-0.25-0.75];>>B=[4220]';>>C=[0202];>>D=[0];>>[Z,P,K]=ss2zp<A,B,C,D>得到结果Z=-1.0000+1.2247i-1.0000-1.2247i-1.5000P=-0.5000+0.8660i-0.5000-0.8660i-1.5000-1.5000K=4.0000表达式〔3部分分式形式的模型参数:编写程序>>A=[2.25-5-1.25-0.52.25-4.25-1.25-0.250.25-0.5-1.25-11.25-1.75-0.25-0.75];>>B=[4220]';>>C=[0202];>>D=[0];>>[numden]=ss2tf<A,B,C,D>>>[R,P,H]=residue<num,den>得到结果R=4.0000-0.00000.0000-2.3094i0.0000+2.3094iP=-1.5000-1.5000-0.5000+0.8660i-0.5000-0.8660iH=[]2-3.用欧拉法求下面系统的输出响应y<t>在0≤t≤1上.h=0.1时的数值。要求保留4位小数.并将结果与真解比较。解:欧拉法〔前向欧拉法,可以自启动其几何意义:把f<t,y>在[]区间内的曲边面积用矩形面积近似代替。利用matlab提供的m文件编程.得到算法公式。如下所示〔1m文件程序为h=0.1;disp<'函数的数值解为'>;%显示‘’中间的文字%disp<'y='>;%同上%y=1;fort=0:h:1m=y;disp<y>;%显示y的当前值%y=m-m*h;end保存文件q2.m在matalb命令行中键入>>q2得到结果函数的数值解为〔2另建一个m文件求解在t[0,1]的数值〔%是的真解%程序为h=0.1;disp<'函数的离散时刻解为'>;disp<'y='>;fort=0:h:1y=exp<-t>;disp<y>;end保存文件q3.m在matalb命令行中键入>>q3函数的离散时刻解为y=10.90480.81870.74080.67030.60650.54880.49660.44930.40660.3679比较欧拉方法求解与真值的差别欧拉10.90000.81000.72900.65610.59050.53140.47830.43050.38740.3487真值10.90480.81870.74080.67030.60650.54880.49660.44930.40660.3679误差0-0.0048-0.0007–0.0118–0.0142–0.0160–0.0174–0.0183–0.0188-0.0192-0.0192显然误差与为同阶无穷小.欧拉法具有一阶计算精度.精度较低.但算法简单。2-4用二阶龙格库塔法求解2-3的数值解.并于欧拉法求得的结果比较。解:我们经常用到预报-校正法的二阶龙-格库塔法.此方法可以自启动.具有二阶计算精度.几何意义:把f<t,y>在[]区间内的曲边面积用上下底为和、高为h的梯形面积近似代替。利用matlab提供的m文件编程.得到算法公式。如下所示〔1m文件程序为h=0.1;disp<'函数的数值解为'>;disp<'y='>;y=1;fort=0:h:1disp<y>;k1=-y;k2=-<y+k1*h>;y=y+<k1+k2>*h/2;end保存文件q4.m在matlab的命令行中键入>>q4显示结果为函数的数值解为y=10.90500.81900.74120.67080.60710.54940.49720.45000.40720.3685比较欧拉法与二阶龙格-库塔法求解.〔误差为绝对值真值10.90480.81870.74080.67030.60650.54880.49660.44930.40660.3679龙库10.90500.81900.74120.67080.60710.54940.49720.45000.40720.3685误差00.00020.00030.00040.00050.00060.00060.00060.00070.00060.0006明显误差为得同阶无穷小.具有二阶计算精度.而欧拉法具有以阶计算精度.二阶龙格-库塔法比欧拉法计算精度高。2-5.用四阶龙格-库塔法求解题2-3数值解.并与前两题结果相比较。解:四阶龙格-库塔法表达式.其截断误差为同阶无穷小.当h步距取得较小时.误差是很小的.<1>编辑m文件程序h=0.1;disp<'四阶龙格-库塔方法求解函数数值解为'>;disp<'y='>;y=1;fort=0:h:1disp<y>;k1=-y;k2=-<y+k1*h/2>;k3=-<y+k2*h/2>;k4=-<y+k3*h>;y=y+<k1+2*k2+2*k3+k4>*h/6;end保存文件q5.m在matlab命令行里键入>>q5得到结果四阶龙格-库塔方法求解函数数值解为y=10.90480.81870.74080.67030.60650.54880.49660.44930.40660.3679<2>比较这几种方法:对于四阶龙格-库塔方法真值10.90480.81870.74080.67030.60650.54880.49660.44930.40660.3679龙库10.90480.81870.74080.67030.60650.54880.49660.44930.40660.3679误差00000000000显然四阶龙格-库塔法求解精度很高.基本接近真值。三种方法比较可以得到精度〔四阶〉精度〔二阶〉精度〔欧拉2-6.已知二阶系统状态方程为写出取计算步长为h时.该系统状态变量X=[]的四阶龙格-库塔法递推关系式。解:四阶龙格-库塔法表达式所以状态变量的递推公式可以写作:A=,B=,可以写成则递推形式2-7单位反馈系统的开环传递函数已知如下用matlab语句、函数求取系统闭环零极点.并求取系统闭环状态方程的可控标准型实现。解:已知开环传递函数.求得闭环传递函数为在matlab命令行里键入>>a=[10];>>b=[14.6];>>c=[13.416.35];>>d=conv<a,b>;>>e=conv<d,c>e=1.00008.000031.990075.21000>>f=[0005100];>>g=e+fg=1.00008.000031.990080.2100100.0000%以上是计算闭环传递函数的特征多项式%>>p=roots<g>%计算特征多项式的根.就是闭环传递函数的极点%p=-0.9987+3.0091i-0.9987-3.0091i-3.0013+0.9697i-3.0013-0.9697i>>m=[5100];>>z=roots<m>z=-20%计算零点%综上:当闭环传函形如时.可控标准型为:;所以可控标准型是2-8用matlab语言编制单变量系统三阶龙格-库塔法求解程序.程序入口要求能接收状态方程各系数阵〔A,B,C,D,和输入阶跃函数r<t>=R*1<t>;程序出口应给出输出量y〔t的动态响应数值解序列。解:m文件为:functiony=hs<A,B,C,D,R,T,h>%T为观测时间,h为计算步长.R为输入信号幅值%disp<'数值解为'>;y=0;r=R;x=[0;0;0;0];N=T/h;fort=1:N;k1=A*x+B*R;k2=A*<x+h*k1/3>+B*R;k3=A*<x+2*h*k2/3>+B*R;x=x+h*<k1+3*k3>/4;y<t>=C*x+D*R;end在命令行里键入A=B=C=D=R=T=h=y=hs<A,B,C,D,R,T,h>得到结果。2-9.用题2-8仿真程序求解题2-7系统的闭环输出响应y<t>.解:A=,B=,C=,D=[0]在命令行里键入>>A=[010000100001-100-80.21-31.99-8];>>B=[0001]';>>C=[-100500];>>D=[0];>>T=1;>>R=1;>>h=0.01;>>y=hs<A,B,C,D,R,T,h>数值解为08.3333e-0075.8659e-0061.8115e-0053.9384e-0057.0346e-005。。。。%仅取一部分%2-10.用式〔2-34梯形法求解试验方程.分析对计算步长h有何限制.说明h对数值稳定性的影响。解:编写梯形法程序为得到稳定系统最终渐进收敛。系统稳定则计算得。h的选取不能超出上述范围.否则系统不稳定。2-11如图2-27所示斜梁滚球系统.若要研究滚球在梁上的位置可控性.需首先建立其数学模型.已知力矩电机的输出转矩M与其电流i成正比.横梁为均匀可自平衡梁〔即当电机不通电且无滚球时.横梁可处于=0的水平状态.是建立系统的数学模型.并给出简化后系统的动态结构图。解:设球的质心到杆的距离为0.该系统为特殊情况下的球棒系统。另令分别表示棒的惯量、球的质量和球的惯量。则球质心的位置和速度为其中.。因而动能的移动部分为因而动能的移动部分为球棒系统的旋转动能为因而.系统总的动能等于其中为常数。此系统的拉格朗日方程组为综合以上公式的系统的方程组为设系统在平衡点附近...则系统方程可化为对上式进行拉普拉斯变换并化简后可得到。参考文献:[1]Hauser,S.Sestry,andP.Kokotovic."Nonlinearcontrolviaapproximateinput-outputlinearization".IEEETrans.onAutomaticControl,vol.37:pp.392-398,1992.[2]R.Sepulchre."Slowpeakingandlow-gaindesignsforglobalstabilizationofnonlinearsystems".submittedforIEEETAC1999.[3]R.Sepulchre,M.Jankovic,andP.KokotovicConstructiveNonlinearControl.Springer-Verlag,1997.[4]R.Teel."UsingSaturationtostabilizeaclassofsingle-inputpartiallylinearcompositesystems".IFACNOLCOS'92Symposium,pages369-374,June1992.2-12如图2-28所示双水箱系统中.为流入水箱1的液体流量.为流出水箱2的液体流量.试依据液容与液阻的概念.建立的系统动态结构图。解:根据液容和液阻的概念.可分别列出两个水箱的数学模型对上式进行在零初始条件下进行拉普拉斯变换得化简后可得第三章习题4-2设典型闭环结构控制系统如图4-47所示.当阶跃输入幅值时.用sp4_1.m求取输出的响应。解:用sp4_1.m求解过程如下:在MATLAB语言环境下.输入以下命令语句>>a=[0.0160.8643.273.421];>>b=[3025];>>X0=[0000];%系统状态向量初值为零>>V=2;%反馈系数>>n=4;>>T0=0;Tf=10;>>h=0.01;R=20;%仿真步长h=0.01.阶跃输入幅值>>sp4_1%调用sp4_1.m函数>>plot<t,y>运行结果为:附:sp4_1.m函数为b=b/a<1>;a=a/a<1>;A=a<2:n+1>;A=[rot90<rot90<eye<n-1,n>>>;-fliplr<A>];B=[zeros<1,n-1>,1]';m1=length<b>;C=[fliplr<b>,zeros<1,n-m1>];Ab=A-B*C*V;X=X0';y=0;t=T0;N=round<<Tf-T0>/h>;fori=1:NK1=Ab*X+B*R;K2=Ab*<X+h*K1/2>+B*R;K3=Ab*<X+h*K2/2>+B*R;K4=Ab*<X+h*K3>+B*R;X=X+h*<K1+2*K2+2*K3+K4>/6;y=[y,C*X];t=[t,t<i>+h];end4-4系统结构图如图4-48.写出该系统的联结矩阵和.并写出联结矩阵非零元素阵。解:根据图4-48中,拓扑连结关系.可写出每个环节输入受哪些环节输出的影响.现列如入下:把环节之间的关系和环节与参考输入的关系分别用矩阵表示出来.即=.=.4-6若系统为图4-5b双输入-双输出结构.试写出该系统的联接矩阵..说明应注意什么?解:根据图4-5b中,拓扑连结关系.可列写如下关系式:转换成矩阵形式为所以联接矩阵=.=此时应注意输入联接矩阵变为型。4-8求图4-49非线性系统的输出响应y<t>,并与无非线性环节情况进行比较。解:〔1不考虑非线性环节影响时.求解过程如下:先将环节编号标入图中。2>在MATLAB命令窗口下.按编号依次将环节参数输入P阵;>>P=[0.110.51;01200;2110;10110];3>按各环节相对位置和联接关系.有联接矩阵如下:..所以非零元素矩阵>>WIJ=[101;14-1;211;321;431];4由于不考虑非线性影响.则非线性标志向量和参数向量均应赋零值;>>Z=[0000];S=[0000];5输入运行参数:开环截至频率约为1.故计算步长h取经验公式值.即.取h=0.01;每0.25秒输出一点。故取=25。>>h=0.01;>>L1=25;>>n=4;>>T0=0>>Tf=20;>>nout=4;>>Y0=10;>>sp4_4;>>plot<t,y,'r'>>>holdon运行结果如图中红色实线所示。<2>考虑非线性环节N影响时.只需将非线性标志向量Z和参数向量S的相应分量正确输入即可。在MATLAB命令窗口中输入下列语句:>>Z=[4000];S=[5000];%第一个线性环节后有饱和非线性.参数值为5。>>sp4_4;>>plot<t,y,'--'>运行结果如图中蓝色虚线所示。从图中可以清楚的地看出.饱和非线性环节对线性系统输出响应的影响。附:sp4_4函数为:A=P<:,1>;B=P<:,2>;C=P<:,3>;D=P<:,4>;m=length<WIJ<:,1>>;W0=zeros<n,1>;W=zeros<n,n>;fork=1:mif<WIJ<k,2>==0>;W0<WIJ<k,1>>=WIJ<k,3>;elseW<WIJ<k,1>,WIJ<k,2>>=WIJ<k,3>;end;end;fori=1:nif<A<i>==0>;FI<i>=1;FIM<i>=h*C<i>/B<i>;FIJ<i>=h*h*<C<i>/B<i>>/2;FIC<i>=1;FID<i>=0;if<D<i>~=0>;FID<i>=D<i>/B<i>;elseendelseFI<i>=exp<-h*A<i>/B<i>>;FIM<i>=<1-FI<i>>*C<i>/A<i>;FIJ<i>=h*C<i>/A<i>-FIM<i>*B<i>/A<i>;FIC<i>=1;FID<i>=0;if<D<i>~=0>;FIC<i>=C<i>/D<i>-A<i>/B<i>;FID<i>=D<i>/B<i>;elseendendendY=zeros<n,1>;X=Y;y=0;Uk=zeros<n,1>;Ubb=Uk;t=T0:h*L1:Tf;N=length<t>;fork=1:N-1fori=1:L1Ub=Uk;Uk=W*Y+W0*Y0;fori=1:nif<Z<i>~=0>if<Z<i>==1>Uk<i>=satu<Uk<i>,S<i>>;endif<Z<i>==2>Uk<i>=dead<Uk<i>,S<i>>;endif<Z<i>==3>[Uk<i>,Ubb<i>]=backlash<Ubb<i>,Uk<i>,Ub<i>,S<i>>;endendendUdot=<Uk-Ub>/h;Uf=2*Uk-Ub;X=FI'.*X+FIM'.*Uk+FIJ'.*Udot;Yb=Y;Y=FIC'.*X+FID'.*Uf;fori=1:nif<Z<i>~=0>if<Z<i>==4>Y<i>=satu<Y<i>,S<i>>;endif<Z<i>==5>Y<i>=dead<Y<i>,S<i>>;endif<Z<i>==6>[Y<i>,Ubb<i>]=backlash<Ubb<i>,Y<i>,Yb<i>,S<i>>;endendendendy=[y,Y<nout>];end附:饱和非线性函数satu.m为:functionUc=satu<Ur,S1>if<abs<Ur>>=S1>if<Ur>0>Uc=S1;elseUc=-S1;endelseUc=Ur;end4-10采样控制系统如图4-50所示.编写程序实现对该系统的仿真分析。〔提示:连续部分按环节离散化考虑图中.为典型数字PID控制器;=0.65为比例系数;=0.7为积分时间常数;=0.2为微分时间常数;为具有纯滞后特性的典型二阶控制对象;;;。解:在控制对象前引入零阶保持器.将连续环节部分按环节离散化:==设.为简化运算及编程.取为T的整数倍=对上式进行Z逆变换.得到由此可编写仿真程序。在MATLAB命令窗口中输入下列语句:>>KP=0.65;TI=0.7;TD=0.2;>>T1=0.3;a=1/T1;T3=0.4;>>T=0.1;h=0.001;Tf=10;>>hh编写M脚本文件.存为hh.m。%离散化后各参数为:A=1-a*h*exp<-a*h>-exp<-a*h>;B=exp<-2*a*h>-exp<-a*h>+a*h*exp<-a*h>;C=2*exp<-a*h>;D=exp<-2*a*h>;P=KP*<1+T/TI+TD/T>;H=KP*<1+2*TD/T>;M=KP*TD/T;%系统初始值为:E=zeros<1,3>;U=zeros<1,2+T3/T+1>;Y=zeros<1,2+T3/h+1>;R=1;yk=0;yt=0;t=0;%仿真迭代运算:forK1=1:Tf/Tek=R-Y<1>;E=[ek,E<1:2>];uk=P*E<1>-H*E<2>+M*E<3>+U<1>;U=[uk,U<1:<2+T3/T>>];forK2=1:T/hyk=A*U<T3/T+1+1>+B*U<T3/T+2+1>+C*Y<T3/h+1>-D*Y<T3/h+2>;Y=[yk,Y<1:<2+T3/h>>];endyt=[yt,yk];t=[t,K1*T];end%输出波形:plot<t,yt>运行结果为:此题可以用SIMULINK仿真进行验证:建立SIMULINK仿真模型:运行结果为:第四章习题5-1设控制系统的开环传递函数为试画出该系统的根轨迹。解:在Matlab窗口中输入下列命令:num=[11];a=[10];b=[1-1];c=[1416];d=conv<a,b>;den=conv<d,c>;rlocus<num,den>gridon可得到系统的根轨迹如下图所示:5-2某反馈控制系统的开环传递函数为试绘制其根轨迹。解:在MATLAB命令窗口中输入下列命令:num=1;den=conv<conv<[1,0],[1,4]>,[1,4,20]>;rlocus<num,den>gridon运行结果为:5-3.已知某系统传递函数为试绘制其伯德图。解:分子分母同乘100*200得到在Matlab窗口中输入下列命令:k=80*200;num=[1100];a=[2.5100];b=[<1/200>2*0.3200];den=conv<a,b>;w=logspace<-1,1,100>;[m,p]=bode<k*num,den,w>;subplot<2,1,1>;semilogx<w,20*log10<m>>;grid;xlabel<'Frequency<rad/sec>'>;ylabel<'Gain<dB>'>;subplot<2,1,2>;semilogx<w,p>;grid;xlabel<'Frequency<rad/s>'>;ylabel<'Phase<deg>'>;可绘制该系统的伯德图如下所示。5-4设控制系统具有如下的开环传递函数试求取当K=10时的相角裕度和幅值裕度.并画出其伯德图。解:在MATLAB命令窗口中输入下列命令:k=10;num=1;den=poly<[0,-1,-5]>;[m,p,w]=bode<num,den>;subplot<2,1,1>;semilogx<w,20*log10<m>>;gridon;ylabel<'Gain<dB>'>;subplot<2,1,2>;semilogx<w,p>;gridon;xlabel<'Frequency<rad/sec>'>;ylabel<'Phase<deg>'>;[gm,pm,wcg,wcp]=margin<m,p,w>这里gm,wcg为幅值裕度值与相应的频率pm,wcp为相角裕度值与相应的频率.运行结果为:gm=30.0000.pm=76.5911.wcg=2.2361.wcp=0.1960。因此.系统的幅值裕度和相角裕度分别为30dB和。系统的伯德图如下所示。5-5已知某单位反馈系统开环传递函数为若性能指标要求如下:.试确定校正装置。解:由速度误差常数的要求可求得K=200,则可绘制的波德图。在Matlab窗口中输入下列命令:k=200*10*50*100*200;num=1;den=poly<[0-10-50-100-200]>;w=logspace<-1,2,200>;[m,p]=bode<k*num,den,w>;subplot<2,1,1>;semilogx<w,20*log10<m>>;grid;ylabel<'Gain<dB>'>;subplot<2,1,2>;semilogx<w,p>;grid;xlabel<'Frequency<rad/s>'>;ylabel<'Phase<deg>'>;从图中可以看出.相角裕度为-53度,剪切频率为37.7rad/s.这显然不能满足性能指标要求。由于补偿角为.单独使用超前校正装置或是滞后校正装置都不能很好的达到设计要求.因此这里考虑使用串联相位滞后超前校正。设校正装置的传递函数为..。按照给定的要求选定系统剪切频率为.为使系统稳定.应保证开环对数幅频特性以-20dB/dec的斜率穿越频率轴.即中频段的斜率为-20dB/dec。为使校正后系统的开环增益不低于200.校正前后系统的低频段特性应保持一致。中频段与低频段之间用斜率为-40dB/dec的直线连接.连接线与中频段相交的交接频率与不宜离的太近.取;同时取.则,。最后来确定的取值。由于校正后的剪切频率为.则对应处的增益为;而未校正系统在时的增益为。两者相减就得到串联校正装置在区间的增益.即.解得。因此串联相位滞后超前校正装置的传递函数为校正后系统的开环传递函数为可通过Matlab仿真验证设计结果是否满足性能指标要求。在Matlab命令窗口中输入下列命令.绘制校正后系统的伯德图以及闭环系统的阶跃响应:z=[-1/0.6667];p=[0,-1/8.8671,-1/0.02,-1/0.01,-1/0.0075,-1/0.005];k=200*0.6667/<8.8671*0.02*0.01*0.0075*0.005>;sys=zpk<z,p,k>%求出系统的开环传递函数[gm,pm,wcg,wcp]=margin<sys>%求出系统的幅值裕度、相位裕度及其所对应的频率sys_closeloop=feedback<sys,1>%求出系统的闭环传递函数bode<sys>%绘制系统的伯德图gridonfigure<2>step<sys_closeloop,5>%绘制闭环系统的阶跃响应gridon运行程序后得到校正后系统的剪切频率..这些都满足期望的性能指标.同时系统伯德图如下所示。校正后闭环系统的阶跃响应如下图所示.可见系统具有较好的动态性能与稳态性能。5—6某过程控制系统如图5-71所示.试设计PID调节器参数.使该系统动态性能达到最佳。解:本题选用ITSE准则为目标函数。首先.编写M函数文件.存为optm.m。functionss=optm<x>globalkp;globalki;globalkd;kp=x<1>;ki=x<2>;kd=x<3>;[tt,xx,yy]=sim<'opt',40,[]>;ss=yy<end>;其次.输入恰当的模块参数.使用SIMULINK建立仿真模型文件.存为opt.mdl。在MATLAB命令窗口中输入下列指令:globalkp;globalki;globalkd;result=fminsearch<'optm',[2,1,2]>运行结果为:,即kp=2.6914.ki=0.4610;kd=2.1267。用SIMULINK仿真验证控制器的控制效果.得到阶跃响应曲线如下图所示<蓝色实线所示>.与初始值kp=2.ki=1.kd=2时的阶跃响应比较〔图中红色虚线所示.动态性能得到了很好的改善。仿真结果如下图所示。5-7试采用smith预估控制方法对题5-6所述系统进行重新设计.并用仿真的方法分析滞后参数变化对系统动态性能的影响。解:设为过程控制通道传递函数.其中为过程中不包含纯滞后部分的传递函数.为控制器的传递函数。在本题中..。不使用Smith预估控制方法时.系统闭环传递函数为由于在特征方程中引入了项.使得闭环系统的品质大大恶化。Smith预估补偿控制方法的实质是通过预估补偿装置的引入.将实际工业过程中不可分割的与在传函形式上分开.并以为过程控制通道的传递函数.以其输出信号作为反馈信号.以此来改善控制质量。预估补偿装置的传递函数为.使用后控制系统的框图如下.系统闭环传递函数为可见.经过Smith预估补偿.其特征方程中已经消去了.纯滞后环节对系统控制品质的不利影响已经消除。因此我们可以对过程中不包含纯滞后部分进行控制器的设计.纯滞后部分通过预估补偿器转换到闭环以外。这里选用PI控制器进行系统设计.按照前一题中介绍的方法.可确定PI控制器的传递函数为在Matlab/Simulink环境下建立过程控制系统的仿真模型如下:在给定输入为阶跃输入时.系统的输出响应如下图所示.可见系统具有非常好的动态性能。在理论上.Smith预估补偿可以克服大滞后的不利影响.但是Smith预估器需要知道被控对象精确的数学模型.并且对模型的误差非常敏感.因而在实际应用中仍面临很多问题。当被控对象的滞后时间常数变为时.仿真可以得到系统此时的输出响应如下.可见系统的动态性能已经变的很差了。因此使用Smith预估补偿的控制系统.其鲁棒性较差。5-8如图5-72所示一带有库仑摩擦的二阶随动系统.试优化设计参数.并分析非线性环节对系统动态性能的影响。解:本题选用ITSE准则为目标函数。首先.编写M函数文件.存为optm2.m。functionss=optm2<x>globalk;k=x;[tt,xx,yy]=sim<'opt2',10,[]>;ss=yy<end>;其次.输入恰当的模块参数.使用SIMULINK建立仿真模型文件.存为opt2.mdl。在MATLAB命令窗口中输入下列指令:globalk;result=fminsearch<'optm2',[1]>运行结果为:result=2.0182用SIMULINK仿真验证所的结果.阶跃响应曲线如下:与初始值k=1时的阶跃响应比较〔下图.显然优化设计后.动态性能得到了很好的改善。5-9试分析图5-73所示系统中死区非线性对系统动态性能的影响。解:因为阶跃给定是10.如果c大于10.系统输出响应就为零.研究它已经没有意义.因此死区特性参数c应满足。在Simulink环境下搭建系统模型如下:分别在c=0<此时为倍数为一的比例增益>.2.4.6.8的情况下.仿真得到系统的输出曲线如下:由此可以看出.引入非线性环节后随着c值的增加.系统动态响应速度变慢.系统超调减少.阻尼系数变大.当c=8时系统的输出响应已经表现出过阻尼特性。5-10如图5-37所示计算机控制系统.试设计一最小拍控制器,并用仿真的方法分析最小拍控制器对系统输入信号和对象参数变化的适应性。解:在此题中.为表述方便.设表示系统闭环脉冲传递函数:表示系统误差脉冲传递函数:表示数字控制器脉冲传递函数;表示控制对象的z变换;表示输入信号的z变换;表示数字控制器输入信号的z变换。将被控对象离散化后可以得到本题中.T=0.2.那么也可用下列MATLAB命令语句求出:sysc=zpk<[],[0-1],[10]>:c2d<sysc,0.2>得到结果为.可以看出.与理论计算结果相同.但显然用MATLAB命令语句求解更加简单方便。首先按照快速有纹波最小拍控制系统设计。控制对象的传递函数为.由此可见.控制对象中含有单位圆上的极点p=1,为满足稳定性要求.必须包含z=1的零点;因滞后一拍.闭环脉冲传递函数至少也要滞后一拍。系统针对等速输入设计.综上所述.设=。为满足稳态精度.列写下列关系:解得.,即由此可得.=建立SIMULINK仿真模型如下:用SIMULINK仿真观察设计结果.得到系统的输出响应曲线如下图所示.数字控制器的输出曲线如下图所示.由上面两个图可见.快速有纹波系统其输出值跟随输入值后.在非采样时刻有明显的纹波.而数字控制器振荡收敛.且振荡持续时间很长。这是由于数字控制器=有一个p=-0.9356的极点存在.其值与p=-1接近.由此造成数字控制器输出振荡收敛。这种情况下.不仅造成非采样时刻有误差.而且浪费执行机构的功率.增加机械磨损。因此.我们可以考虑按照无纹波最小拍控制系统设计。按照无纹波最小拍控制系统设计。控制对象.由此可见.控制对象中含有单位圆上的极点p=1,以及零点z=-0.9356。若想令输出无纹波.则必须包含的全部零点〔不管其在z平面的位置。同时.为满足稳定性要求.必须包含z=1的零点;因滞后一拍.闭环脉冲传递函数至少也要滞后一拍。系统针对等速输入设计.综上所述.设=为满足稳态精度.列写下列关系:解得.,即由此可得.=建立SIMULINK仿真模型如下:用SIMULINK仿真观察设计结果.得到系统的输出响应曲线如下图所示.数字控制器的输出曲线如下图所示.从上两图可见.和有纹波系统相比.虽然无纹波系统的输出跟随输入函数所需时间要多一个采样周期.但采样点之间不存在纹波.且数字控制器输出波形较好.控制质量较高。<3>按照无纹波最小拍系统设计方法.分析最小拍控制器对系统输入信号和对象参数变化的适应性。对系统输入信号的适应性。当输入为阶跃信号时.在Matlab/Simulink环境下建立下图所示的控制系统结构图。仿真得到系统输出曲线如下:仿真得到数字控制器输出曲线如下:由此可见.当输入为阶跃输入时.控制器输出正负跳动很大.而且系统输出超调严重.达到了100%。当输入为加速度信号时.在Matlab/Simulink环境下建立下图所示的控制系统结构图.仿真得到系统输出曲线如下图所示,为检验控制系统的性能.将输入输出曲线绘制在一张图上。可以看出.系统对于加速度输入时.由明显的稳态误差。综上所述.针对一种典型的输入函数进行设计.得到的最小拍系统闭环脉冲传递函数.用于次数较低的输入函数时.系统将出现超调.响应时间也将增加;而用于次数较高的输入函数时.输出将产生稳态误差。最小拍控制器对系统输入信号适应性不好。对对象参数变化的适应性。设控制对象的传递函数为.本题中。为检验最小拍控制器对于对象参数变化的适应性.令.得到此时的控制系统输出曲线如下图所示.可以看出.所设计的最小拍控制器对于对象参数的变化.表现出了一定的适应性。将参数b做较大范围的修改后.输出仍然能够跟踪给定.但是恢复时间略有增加。5-11为使图5-75所示系统不产生自激振荡.试分析a、b取值。解:线性部分传递函数为因此令线性部分频率响应的虚部为零.即求得曲线与负实轴交点处的频率为rad/s.将其代入到中.得到因此曲线与负实轴的交点坐标为〔-1.333.j0。这可以通过Matlab相关命令加以验证.在Matlab窗口中输入下列命令:num=3;den=conv<[1,0],conv<[0.8,1],[1,1]>>;nyquist<num,den>得到线性部分的奈奎斯特图如下图所示.将图形局部放大后.同样可得出其与负实轴交点坐标为〔-1.333.j0.与理论分析结果一致。图中所示系统为具有死区的继电器非线性系统.这一非线性特性的描述函数为据此可画出轨迹.图中的拐点为。根据非线性控制理论.若使系统不产生自激振荡.必须保证轨迹与轨迹不相交.因此需令可求得.可取.此时满足不产生自激振荡条件。5-12已知某一地区在有病菌传染下的描述三种类型人数变化的动态模型为式中.X1表示可能传染的人数;X2表示已经得病的人数;X3表示已经治愈的人数;。试用仿真方法求未来20年内三种人人数的动态变化情况。解:编写M函数.并且存为rs.m文件:functiondx=rs<t,x>dx=[-0.001*x<1>*x<2>;0.001*x<1>*x<2>-0.072*x<2>;0.072*x<2>];在MATLAB命令窗口中输入下列指令:t_end=20;%设定仿真终止时间为20年x0=[620;10;70];%三种类型人数初值[t,x]=ode45<'rs',[0,t_end],x0>;plot<t,x<:,1>,'b-',t,x<:,2>,'r--',t,x<:,3>,'k.'>xlabel<'时间〔年'>;ylabel<'三种类型人数〔人'>;legend<'X1可能传染的人数','X2已经得病的人数','X3已经治愈的人数'>;title<'20年内三种人人数动态变化曲线图'>x;%查看三种类型人数floor<x>%人数应取整数运行程序后可得到20年内三种人人数动态变化曲线.表格中列出了每年的三种类型人数。年数012345678910X1620611598575539487418337254182124X21017294980124182248311359389X370707275798798113133158185年数11121314151617181920X18356372517129653X2402400390375356336316297278260X32132422712993253503733964164365-13.对于高阶系统的设计问题.往往要进行降阶近似处理.并要验证近似效果。已知某高阶系统模型为经简化处理后.模型等效为试比较两个模型在单位阶跃信号作用下的响应情况.并分析近似效果。解:在Matlab命令窗口中输入下列命令:num1=[35,10861,13285,82402,278376,511812,422964,194480];den1=[1,33,437,3017,11870,27470,37492,28880,9600];sys1=tf<num1,den1>;num2=[35,284.98];den2=[1,10.114,12.31];sys2=tf<num2,den2>;step<sys1,'-',sys2,':r',15>legend<'原模型','简化后模型'>;gridon程序运行结果如下:从曲线中可以看出.降阶后系统响应无超调.调整时间缩短.系统响应变快.但是简化前后终值有差异。5-14针对如图5-76所示的一阶双摆系统.试讨论如下问题〔两杆所用材料相同:〔1控制量F〔施加的作用力能否在保持双摆不倒的前提下.实现小车的位置伺服控制?〔2试给出你的具体实现方案。〔提示:说明系统的实物制作原理与控制策略解题提示:首先需要对一阶双摆系统进行数学建模.在此基础上验证系统的可控性.如果系统是完全可控的.那么就可以在保持双摆不倒的前提下.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论