第4章控制系统的设计与仿真MATLAB控制系统设计与仿真教学课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第4章控制系统的设计与仿真MATLAB控制系统设计与仿真教学课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 控制系统 设计 仿真 MATLAB 教学 课件
- 资源描述:
-
1、第4章 控制系统的设计与仿真第第4章章 控制系统的设计与仿真控制系统的设计与仿真 4.1 系统建模与仿真框图的创建系统建模与仿真框图的创建4.2 控制系统设计控制系统设计4.3 控制系统的时域仿真控制系统的时域仿真4.4 实例实例:倒摆系统的建模与仿真倒摆系统的建模与仿真 第4章 控制系统的设计与仿真4.1 系统建模与仿真框图的创建系统建模与仿真框图的创建 4.1.1 问题描述 众所周知,现实世界中存在着各种不同的控制系统。对于线性时不变(LTI)系统,一般可以分为连续和离散系统。MATLAB中为用户提供了丰富的针对各种系统的建模手段。图4.1显示了MATLAB中各种线性时不变(LTI)系统之
2、间的转换关系。第4章 控制系统的设计与仿真图4.1 连续与离散系统的关系示意图 第4章 控制系统的设计与仿真 图4.1中显示了MATLAB可以完成离散和连续系统的建模,并且同一系统可以表示成连续系统,也可以表示成离散系统,它们之间可以以状态方程形式进行转化。这一节将结合一个具体实例来演示MATLAB中各种模型创建和相互之间进行转化的方法,以及如何用Simulink进行连续系统的仿真。首先给出实例的源程序MODLDEMO.M,然后根据不同的主题结合实例进行讲述。第4章 控制系统的设计与仿真 例4.1 对于Mass Spring Dashpot机械系统:.()()()m y tc yky tu t
3、(4.1)试建立该系统的连续和离散模型,并进行时域和频域仿真。解:程序源代码如下:%MODLDEMO.M 演示各种建模与仿真(时域和频域)技巧 clearall,closeall%程序开始,清空工作空间,关闭所有窗口 deletemodldemo.out,diarymodldemo.out%打开二进制文件 第4章 控制系统的设计与仿真disp(*MODLDEMO.OUT*DiaryFileforMODLDEMO.M),disp()m=1%各种系统常数定义k=1%单位kg/s2c=2.02.51.20.0%单位kg/s 第4章 控制系统的设计与仿真%创建系统的状态空间模型disp(StateSp
4、aceModels)km=k/m;A1=01;-km-c(1)/m,A2=01;-km-c(2)/mA3=01;-km-c(3)/m,A4=01;-km-c(4)/mB=01/m,C=10,D=0sys1s=ss(A1,B,C,D);sys2s=ss(A2,B,C,D);sys3s=ss(A3,B,C,D);sys4s=ss(A4,B,C,D);第4章 控制系统的设计与仿真%仿真系统的脉冲和阶跃响应(时域)t=0:.2:15;y1=impulse(sys1s,t);y2=impulse(sys2s,t);y3=impulse(sys3s,t);y4=impulse(sys4s,t);figur
5、e(1)subplot(221),plot(t,y1,r),title(CriticalDampingImpulse),gridxlabel(Time),ylabel(SystemResponse)subplot(222),plot(t,y2,r),title(OverDampingImpulse),gridxlabel(Time),ylabel(SystemResponse)第4章 控制系统的设计与仿真subplot(223),plot(t,y3,r),title(UnderDampingImpulse),gridxlabel(Time),ylabel(SystemResponse)subp
6、lot(224),plot(t,y4,r),title(NoDampingImpulse),gridxlabel(Time),ylabel(SystemResponse)第4章 控制系统的设计与仿真%y1=step(sys1s,t);y2=step(sys2s,t);y3=step(sys3s,t);y4=step(sys4s,t);figure(2)subplot(221),plot(t,y1,r),title(CriticalDampingStep),gridxlabel(Time),ylabel(SystemResponse)subplot(222),plot(t,y2,r),title
7、(OverDampingStep),grid第4章 控制系统的设计与仿真xlabel(Time),ylabel(SystemResponse)subplot(223),plot(t,y3,r),title(UnderDampingStep),gridxlabel(Time),ylabel(SystemResponse)subplot(224),plot(t,y4,r),title(NoDampingStep),gridxlabel(Time),ylabel(SystemResponse)disp(hitanykeytocontinue),pause第4章 控制系统的设计与仿真%在Matlab中
8、进行模型转化。对于m=k=1,系统简化的传递函数为%G(s)=1/s2+cs+1=z(s)/p(s)disp(TransferFunctionForm)sys1t=tf(sys1s),sys2t=tf(sys2s)sys3t=tf(sys3s),sys4t=tf(sys4s)disp(hitanykeytocontinue),pause第4章 控制系统的设计与仿真%将传递函数形式转化成零极点形式disp(ZeroPoleGainForm)sys1z=zpk(sys1t),sys2z=zpk(sys2t)sys3z=zpk(sys3t),sys4z=zpk(sys4t)disp(hitanyke
9、ytocontinue),pause%演示留数定理的使用disp(ResidueForm)n1,d1=tfdata(sys1t);n2,d2=tfdata(sys2t);n3,d3=tfdata(sys3t);n4,d4=tfdata(sys4t);第4章 控制系统的设计与仿真%注意tfdata命令定义元胞数组%将元胞数组转化成向量形式n1=n11,d1=d11,n2=n21,d2=d21,n3=n31,d3=d31,n4=n41,d4=d41,%使用留数定理r1,pr1,kr=residue(n1,d1),r2,pr2,kr=residue(n2,d2)r3,pr3,kr=residue(n
10、3,d3),r4,pr4,kr=residue(n4,d4)disp(hitanykeytocontinue),pause第4章 控制系统的设计与仿真%进行频域仿真,这里使用nyquist函数(参考bode,freqs等函数)w=logspace(-2,2,100);re,im=nyquist(sys1s,w);%SS形式re1(:,1)=re(1,1,:);im1(:,1)=im(1,1,:);g1=re1+i*im1;mag1=20*log10(abs(g1);phase1=angle(g1)*180/pi;re,im=nyquist(sys2s,w);%SS形式re2(:,1)=re(1
11、,1,:);im2(:,1)=im(1,1,:);g2=re2+i*im2;mag2=20*log10(abs(g2);phase2=angle(g2)*180/pi;re,im=nyquist(sys3t,w);%TF形式re3(:,1)=re(1,1,:);im3(:,1)=im(1,1,:);g3=re3+i*im3;第4章 控制系统的设计与仿真mag3=20*log10(abs(g3);phase3=angle(g3)*180/pi;re,im=nyquist(sys4t,w);%TF形式re4(:,1)=re(1,1,:);im4(:,1)=im(1,1,:);g4=re4+i*im
12、4;mag4=20*log10(abs(g4);phase4=angle(g4)*180/pi;%幅值曲线figure(3)subplot(221),semilogx(w,mag1,r),title(CriticalDamping),xlabel(frequency),ylabel(|G(jw)|indb)subplot(222),semilogx(w,mag2,r),title(OverDamping),xlabel(frequency),ylabel(|G(jw)|indb)第4章 控制系统的设计与仿真subplot(223),semilogx(w,mag3,r),title(UnderD
13、amping),xlabel(frequency),ylabel(|G(jw)|indb)subplot(224),semilogx(w,mag4,r),title(NoDamping),xlabel(frequency),ylabel(|G(jw)|indb)disp(hitanykeytocontinue),pause%频率曲线figure(4)subplot(221),semilogx(w,phase1,r),title(CriticalDamping),xlabel(frequency),ylabel(angle)第4章 控制系统的设计与仿真subplot(222),semilogx(
14、w,phase2,r),title(OverDamping),xlabel(frequency),ylabel(angle)subplot(223),semilogx(w,phase3,r),title(UnderDamping),xlabel(frequency),ylabel(angle)subplot(224),semilogx(w,phase4,r),title(NoDamping),xlabel(frequency),ylabel(angle)disp(hitanykeytocontinue),pause第4章 控制系统的设计与仿真%绘制系统Nichols图(对数坐标形式)figur
15、e(5)subplot(221),plot(phase1,mag1,r+),title(CriticalDamping),xlabel(angle),ylabel(|G(jw)|indb),gtext(w=0)subplot(222),plot(phase2,mag2,r+),title(OverDamping),xlabel(angle),ylabel(|G(jw)|indb),gtext(w=0)subplot(223),plot(phase3,mag3,r+),title(UnderDamping),第4章 控制系统的设计与仿真xlabel(angle),ylabel(|G(jw)|in
16、db),gtext(w=0)subplot(224),plot(phase4,mag4,r+),title(NoDamping),xlabel(angle),ylabel(|G(jw)|indb),gtext(w=0)disp(hitanykeytocontinue),pause第4章 控制系统的设计与仿真%绘制Nyquist图(实部-虚部形式)figure(6)subplot(221),plot(re1,im1,r+),title(CriticalDamping),xlabel(Real),ylabel(Imag),gtext(w=0)subplot(222),plot(re2,im2,r+
17、),title(OverDamping),xlabel(Real),ylabel(Imag),gtext(w=0)第4章 控制系统的设计与仿真subplot(223),plot(re3,im3,r+),title(UnderDamping),xlabel(Real),ylabel(Imag),gtext(w=0)subplot(224),plot(re4,im4,r+),title(NoDamping),xlabel(Real),ylabel(Imag),gtext(w=0)disp(hitanykeytocontinue),pause 第4章 控制系统的设计与仿真%直接使用Nyquist函数
18、绘制Nyquist图figure(7)subplot(2,2,1),nyquist(sys1s,w),title(CriticalDamping),subplot(2,2,2),nyquist(sys2s,w),title(OverDamping),subplot(2,2,3),nyquist(sys3s,w),title(UnderDamping),第4章 控制系统的设计与仿真subplot(2,2,4),nyquist(sys4s,w),title(NoDamping),disp(hitanykeytocontinue),disp(hitcntrl-ctogetoutofthefilefo
19、rinteractiveanalysis),pause%使用Simulink框图(文件名为mdemosl.mdl,如图4.2所示)进行仿真clearall%清空所有内存第4章 控制系统的设计与仿真m=1,k=1,c=1.2%定义常数disp(DatafromgraphicalSimulinkmodel)%计算线性化模型A,B,C,D=linmod(mdemosl),syss=ss(A,B,C,D);sysz1=zpk(syss),syssm=minreal(syss),sysz2=zpk(syssm)diaryoff%关闭二进制文件第4章 控制系统的设计与仿真图4.2 Mass Spring
20、Dashpot系统仿真框图 第4章 控制系统的设计与仿真 4.1.2 物理模型 例4.1 中研究的对象是一个简单的物质交换机械系统,可以用微分方程表示成22()()()()ddmy tcy tky tu tdtdt(4.2)其中,y(t)是系统的瞬时交换的质量,k和c分别为比例常数。如果取状态变量x1=y和x2=dy/dt,则可以得到系统的状态方程形式:第4章 控制系统的设计与仿真 可以看出,矩阵A、B、C和D可以看成LTI系统的标准状态方程形式,于是式(4.3)可以写成112212010()/1/()10 xxdu txk mc mxmdtxy tx(4.3)dXAXBUdtYCXDU第4章
21、 控制系统的设计与仿真 4.1.3 时域仿真 一般对控制系统进行时域仿真可以采用impulse、step和lsim函数,这些函数用来处理系统的状态空间描述。例如,对于输入信号u(t),系统的动态仿真可表示成 sys=ss(A,B,C,D)Y,T,X=lsim(sys,U,t,xo)第4章 控制系统的设计与仿真 当然,这些函数也可以处理系统的频域表达形式,这时,LTI系统可以通过下式表示 sys=tf(num,den)作为一个典型的例子,例4.1使用了impulse和step函数来仿真系统的时域特性。图4.3和图4.4分别为例4.1执行的仿真结果。第4章 控制系统的设计与仿真图4.3 典型二阶系
22、统的脉冲响应曲线第4章 控制系统的设计与仿真图4.4 典型二阶系统的阶跃响应曲线 第4章 控制系统的设计与仿真 4.1.4 模型转换 LTI系统的频域描述可以用传递函数表示为 Y(s)=G(s)U(s)(4.5)系统的传递函数矩阵为1()G sC sIABD(4.6)对于例4.1研究的简单SISO机械系统,其传递函数可以写成简单的标量形式 21()mG sckssmm(4.7)第4章 控制系统的设计与仿真 但是对于多输入多输出(MIMO)系统而言,其传递函数描述就有些复杂了,这时MATLAB中的模型转换函数可以发挥作用,它可以完成系统在状态方程形式与传递函数形式之间的互换,同时也可以将传递函数
23、形式转换成零极点-增益形式。相关的函数包括 sys1=ss(A,B,C,D)sys2=tf(sys1)sys3=zpk(sys2)第4章 控制系统的设计与仿真 我们也可以采用ssdata、tfdata和zpkdata等命令将存储在与一个指定LTI对象相联的数据结构中的信息抽取出来。例如 num,den=tfdata(sys2)返回LTI对象sys2的分子和分母多项式系数,num与den为相应的元胞数组,其行数为输出的维数,列数等于输入的维数。其中第i行第j列元素表示从第j个输入到第i个输出的传递函数。第4章 控制系统的设计与仿真 另一种从数据结构中得到元胞数组的方法是使用MATLAB的cell
24、disp命令。简单的显示数据的信息,可以使用如下的命令:fieldnames(sys2)num1=sys2.num,den1=sys2.den celldisp(num1),celldisp(den1)也可以对零极点-增益形式完成显示的操作。例如 Z,P,K=zpkdata(sys3)第4章 控制系统的设计与仿真 将获取LTI系统sys3每一个IO通道的零极点和增益大小。元胞数组Z、P和矩阵K 的行与列分别与输出和输入的维数相同。其中第i行第j列元素表示从第j个输入到第i个输出传递函数的零极点和增益。对于单输入单输出(SISO)系统,其传递函数与零极点-增益形式可以简化成普通的分数形式,即12
25、123()()()()()()()()num sszszG sKden sspspsp(4.8)第4章 控制系统的设计与仿真 4.1.5 留数定理 我们也可以将系统写成几个分数相加的形式,例如对于SISO的机械系统,G(s)可以写成1121221,21()()()()42B srrmG sk sckA sspspssmmccmkpm(4.9)(4.10)第4章 控制系统的设计与仿真 r1,r2可以通过各种不同的方法计算得到。对于上述问题,MATLAB可用residue函数来完成这一运算,即 r,p,k=residue(B,A)其中B和A 为包含多项式系数的行向量,而r和p 是包含留数和极点的列
展开阅读全文