控制系统的设计与仿真.ppt

上传人:wuy****n92 文档编号:88326404 上传时间:2023-04-25 格式:PPT 页数:238 大小:3.54MB
返回 下载 相关 举报
控制系统的设计与仿真.ppt_第1页
第1页 / 共238页
控制系统的设计与仿真.ppt_第2页
第2页 / 共238页
点击查看更多>>
资源描述

《控制系统的设计与仿真.ppt》由会员分享,可在线阅读,更多相关《控制系统的设计与仿真.ppt(238页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

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对于MassSpringDashpot机械系统:(4.1)试建立该系统的连续和离散模型,并进行时域和频域仿真。

3、解:程序源代码如下:%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(StateSpaceModels)km=k/m;A1=01;-km-c(1)/m,A2

4、=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);figure(1)subplot(221),plot(t,y1,r),title(

5、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)subplot(224),plot(t,y4,r),title(NoDampin

6、gImpulse),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(OverDampingStep),grid第4章 控制系统的设计与仿真

7、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中进行模型转化。对于m=k=1,系统简化的传递函数为%G(s)=1/s2+

8、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(hitanykeytocontinue),pause%演示留数定理的使用disp(Res

9、idueForm)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(n3,d3),r4,pr4,kr=residue(n4,d4)disp(h

10、itanykeytocontinue),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,1,:);im2(:,1)=im(1,1,:);g2=re2+i*im

11、2;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*im4;mag4=20*log10(abs(g4);phase4=angle

12、(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(UnderDamping),xlabel(frequency),ylabel(|G(

13、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(w,phase2,r),title(OverDamping),xlabe

14、l(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图(对数坐标形式)figure(5)subplot(221),plot(phase1,mag1,r+

15、),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)|indb),gtext(w=0)subplot(224),plot(phas

16、e4,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+),title(OverDamping),xlabel(Real),yl

17、abel(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函数绘制Nyquist图figure(7)subplot(2,2,1),nyq

18、uist(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-ctogetoutofthefileforinteractiveanalysis),pause%使用Simulin

19、k框图(文件名为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.2MassSpringDashpot系统仿真框图第4章 控制系统的设计与仿真4.1.2物理模型例4.1

20、中研究的对象是一个简单的物质交换机械系统,可以用微分方程表示成(4.2)其中,y(t)是系统的瞬时交换的质量,k和c分别为比例常数。如果取状态变量x1=y和x2=dy/dt,则可以得到系统的状态方程形式:第4章 控制系统的设计与仿真可以看出,矩阵A、B、C和D可以看成LTI系统的标准状态方程形式,于是式(4.3)可以写成(4.3)第4章 控制系统的设计与仿真4.1.3时域仿真一般对控制系统进行时域仿真可以采用impulse、step和lsim函数,这些函数用来处理系统的状态空间描述。例如,对于输入信号u(t),系统的动态仿真可表示成sys=ss(A,B,C,D)Y,T,X=lsim(sys,U

21、,t,xo)第4章 控制系统的设计与仿真当然,这些函数也可以处理系统的频域表达形式,这时,LTI系统可以通过下式表示sys=tf(num,den)作为一个典型的例子,例4.1使用了impulse和step函数来仿真系统的时域特性。图4.3和图4.4分别为例4.1执行的仿真结果。第4章 控制系统的设计与仿真图4.3典型二阶系统的脉冲响应曲线第4章 控制系统的设计与仿真图4.4典型二阶系统的阶跃响应曲线第4章 控制系统的设计与仿真4.1.4模型转换LTI系统的频域描述可以用传递函数表示为Y(s)=G(s)U(s)(4.5)系统的传递函数矩阵为(4.6)对于例4.1研究的简单SISO机械系统,其传递

22、函数可以写成简单的标量形式(4.7)第4章 控制系统的设计与仿真但是对于多输入多输出(MIMO)系统而言,其传递函数描述就有些复杂了,这时MATLAB中的模型转换函数可以发挥作用,它可以完成系统在状态方程形式与传递函数形式之间的互换,同时也可以将传递函数形式转换成零极点-增益形式。相关的函数包括sys1=ss(A,B,C,D)sys2=tf(sys1)sys3=zpk(sys2)第4章 控制系统的设计与仿真我们也可以采用ssdata、tfdata和zpkdata等命令将存储在与一个指定LTI对象相联的数据结构中的信息抽取出来。例如num,den=tfdata(sys2)返回LTI对象sys2的

23、分子和分母多项式系数,num与den为相应的元胞数组,其行数为输出的维数,列数等于输入的维数。其中第i行第j列元素表示从第j个输入到第i个输出的传递函数。第4章 控制系统的设计与仿真另一种从数据结构中得到元胞数组的方法是使用MATLAB的celldisp命令。简单的显示数据的信息,可以使用如下的命令:fieldnames(sys2)num1=sys2.num,den1=sys2.dencelldisp(num1),celldisp(den1)也可以对零极点-增益形式完成显示的操作。例如Z,P,K=zpkdata(sys3)第4章 控制系统的设计与仿真将获取LTI系统sys3每一个IO通道的零极

24、点和增益大小。元胞数组Z、P和矩阵K的行与列分别与输出和输入的维数相同。其中第i行第j列元素表示从第j个输入到第i个输出传递函数的零极点和增益。对于单输入单输出(SISO)系统,其传递函数与零极点-增益形式可以简化成普通的分数形式,即(4.8)第4章 控制系统的设计与仿真4.1.5留数定理我们也可以将系统写成几个分数相加的形式,例如对于SISO的机械系统,G(s)可以写成(4.9)(4.10)第4章 控制系统的设计与仿真r1,r2可以通过各种不同的方法计算得到。对于上述问题,MATLAB可用residue函数来完成这一运算,即r,p,k=residue(B,A)其中B和A为包含多项式系数的行向

25、量,而r和p是包含留数和极点的列向量。如果B(s)比A(s)的维数大,则k(s)不为零。第4章 控制系统的设计与仿真4.1.6频域仿真系统的频域仿真在概念上是非常直观的,但是计算起来常常比较复杂。作为练习,读者可以针对不同的值,计算下面的表达式G(j)=CjI-A-1B+D(4.11)然后通常采用下列三种方法来绘制频域曲线:Bode图、Nichols图和Nyquist曲线。第4章 控制系统的设计与仿真MATLAB中的一些函数用来获取系统的频域信号。首先必须产生一个频率的向量。采样点的坐标通常采用对数形式,即从10d1到10d2共n个点,可以通过下面的命令来完成:w=logspace(d1,d2

26、,n)bode和nyquist函数可以用来计算每一个频率所对应的G(j),即MAG,PHASE=bode(sys,w)RE,IM=nyquist(sys,w)第4章 控制系统的设计与仿真图4.5典型二阶系统的Bode幅值曲线第4章 控制系统的设计与仿真图4.6典型二阶系统的Bode频率曲线第4章 控制系统的设计与仿真图4.7第4章 控制系统的设计与仿真图4.8第4章 控制系统的设计与仿真4.1.7仿真框图及系统建立许多设计系统都可以由一些基本的组件和框图中的反馈回路组成。在有些情况下,寻找系统的等价描述和相应的状态空间矩阵是比较困难的。幸运的是,我们可以借助MATLAB从系统的Simulink

27、仿真框图直接建立它的状态空间描述。这些工作可以通过MATLAB中的控制工具箱或Simulink的图形仿真界面来完成。第4章 控制系统的设计与仿真为了演示这一过程,同样考虑一下例4.1所述的简单机械系统。首先建立该系统的Simulink仿真框图,然后自动创建原系统的状态空间和整个系统的传递函数形式。下面将状态方程展开,并且进行Laplace变换(4.12)第4章 控制系统的设计与仿真上述拉普拉斯变换可以对应于如图4.10所示的基本模块。现 在 将 这 些 模 块 连 接 起 来,定 义 输 出 为Y(s)=X1(s),最后得到如图4.2所示的仿真框图。下面我们可以使用linmod函数来计算LTI

28、系统的状态矩阵:A,B,C,D=linmod(mdemosl)计算的结果与前面得到的结果一致。第4章 控制系统的设计与仿真图4.9MATLAB计算产生的典型二阶系统的Nyquist曲线第4章 控制系统的设计与仿真图4.10Laplace变换下的基本模块第4章 控制系统的设计与仿真4.2 控制系统设计控制系统设计 在经典控制系统设计中通常以线性系统模型为研究对象。对于一个线性时不变(LTI)系统,其状态方程可以描述为(4.13)(4.14)第4章 控制系统的设计与仿真这里已经假定系统的输出没有显式地包含输入变量u(即D=0)。系统(4.14)也可以表示为传递函数形式:Y(s)=G(s)U(s)G

29、(s)=C(sI-A)-1B(4.15)一个LTI系统的控制系统方框图如图4.11所示。第4章 控制系统的设计与仿真图4.11系统的线性状态方程模型第4章 控制系统的设计与仿真4.2.1经典比例控制器在经典控制系统的例子中,首先来看一下图4.12所示的一个简单的闭环系统。对于一个SISO系统而言,系统传递函数G(s)仅仅是式(4.15)所示的标量函数,该传递函数嵌入在图4.12所示的方框图中。反馈回路包含传感器传递函数H(s),而控制器部分只有简单的增益环节Kc组成,rd是闭环系统期望的响应或参考点。第4章 控制系统的设计与仿真图4.12SISO系统的经典比例控制器框图第4章 控制系统的设计与

30、仿真图4.12所示闭环系统的传递函数可以写成(4.16)其中,Gc(s)为闭环传递函数,Kc是经典比例增益。对于单位反馈情况有H(s)=1,Gc(s)可以简化为(4.17)下面是标量输入函数的时域表示u(t)=Kc(rd(t)-y(t)=Kc(rd(t)-CTX(t)(4.18)第4章 控制系统的设计与仿真从而式(4.14)可以写成(4.19)这里的参考点rd成为系统的一个独立输入变量。第4章 控制系统的设计与仿真既然控制器只有唯一的参数Kc需要确定,因此该系统的控制器设计比较简单。闭环系统的暂态响应由状态方程系数矩阵的特征值或者整个系统的根极点确定。我们可以在时域中通过选择合适的控制参数Kc

31、,使得(A-KcBCT)的特征值产生期望的暂态响应(上升时间、最大超调量等)。与此类似,也可以在传递函数中通过选择合适的控制参数Kc来设计式(4.17)系统的根极点位置。这两种设计方法是等价的。我们知道Gc(s)的极点是1+KcG(s)的根,因此可以将极点配置方程看作控制增益Kc的根。运用根轨迹方法可以确定满足设计要求的控制参数。第4章 控制系统的设计与仿真4.2.2状态反馈控制器上述经典控制器的主要不足是系统仅有唯一的控制参数Kc可供调整,而对于N维控制系统,系统开环矩阵具有N个特征值或者开环传递函数具有N个极点,即det(A-I)=0或det(sI-A)=0(4.20)要想将所有这些系统根

32、极点调整到需要的位置,控制器至少需要N个独立变量,因此仅仅将系统输出信号进行反馈将不能满足控制器设计的要求。一个自然的想法就是将系统的所有状态变量X都进行反馈,这就产生了状态反馈控制器。第4章 控制系统的设计与仿真对于SISO系统,状态反馈后的系统输入变成 u(t)=rd(t)-KTsX(t)(4.21)Ks称为系统的反馈系数。这样,闭环系统的状态方程可以写成(4.22)闭环系统的框图如图4.13所示。同时,图4.11所示的状态反馈系统变成图4.14所示的仿真框图。第4章 控制系统的设计与仿真图4.13SISO系统的状态反馈控制器第4章 控制系统的设计与仿真图4.14第4章 控制系统的设计与仿

33、真4.2.3完全可控性为了设计具有状态观测器的状态反馈控制器,让我们首先熟悉有关系统可控性的定义。假设一个SISOLTI系统由式(4.23)描述(4.23)第4章 控制系统的设计与仿真如果该系统能够构造一个无约束的输入信号u(t),使得系统能够在有限的时间间隔内(t0ttf)由初始状态运动到任何其它的状态,则可以说系统在t0时刻是可控的。如果系统的每个状态都是可控的,则称该系统是完全可控的。不失一般性,假设X(tf)=0,t0=0,则(4.24)根据完全可控性的定义,有(4.25)第4章 控制系统的设计与仿真或者根据Sylvester积分公式有(4.26)(4.27)(4.28)第4章 控制系

34、统的设计与仿真当如下矩阵非奇异时,系统满足完全可控的条件:M=B ABA2BAN-1B(4.30)或者(4.29)第4章 控制系统的设计与仿真4.2.4极点配置设计状态反馈控制器的最简单方法是采用极点配置。其基本思想是首先确定闭环系统N个根极点的期望位置,然后设计适当的反馈增益,从而将系统的极点调整到期望的位置。如果系统是完全可控的,则这一过程完全可以表示成包含N个未知参数的N个方程组的求解。所需要设计的反馈控制增益就是该方程组的解。第4章 控制系统的设计与仿真如果系统比较简单,则完全可以通过手工计算完成系统的极点配置,但无论是手工计算,还是通过MATLAB函数自动计算,其基本步骤都是相同的,

35、如下所示:(1)检查系统的可控矩阵是否满秩。(2)确定闭环系统的期望极点,1,2,N。(3)确定希望配置的极点位置后,可以建立期望的特征方程。第4章 控制系统的设计与仿真(4)最后建立闭环系统的特征方程,即(sI-(A-BKTs)=0,将(3)、(4)步建立的方程联立,由于其多项式的系数相等,由此可以建立N个位置参数的N个方程组,从而可以唯一地确定系统的反馈增益矩阵KTs。第4章 控制系统的设计与仿真例4.2假定SISOLTI系统的状态方程为闭环系统的期望极点为1,2=-1.82.4j,试设计确定系统状态反馈的增益矩阵。解:首先观察开环系统的极点第4章 控制系统的设计与仿真可以看出,系统开环极

36、点为s1,2=4.539,系统是不稳定的。闭环系统的期望极点是由期望的系统暂态响应特性(上升时间、读者可以验证,1,2=-1.82.4j的闭环极点将产生较好的动态特性(大约10%的最大超调量和大约0.6s的上升时间)。因此,期望的闭环系统极点是不唯一的。下面在已经确定期望闭环系统极点的情况下来设计系统的反馈增益矩阵。Step1:验证系统的可控性。第4章 控制系统的设计与仿真矩阵M的秩等于N,因此系统满足完全可控性条件。Step23:计算期望的特征方程(s-1)(s-2)=(s+1.8-j2.4)(s+1.8+j2.4)=s2+1s+2=0Step4:计算闭环系统的特征方程第4章 控制系统的设计

37、与仿真因此第4章 控制系统的设计与仿真4.2.5带全观测器的状态反馈控制设计状态反馈控制器的主要问题是要求系统的所有状态变量都是可测的。然而对于一个实际系统而言,有些状态的信号值很难测量甚至不可能直接通过传感器进行测量,或者虽然可以进行直接测量,但在经济上却要增加相应的成本。这样,如果不能得到系统的全状态向量,前面讲述的状态反馈控制就不可能实现。第4章 控制系统的设计与仿真解决以上问题的方法是利用系统某种数学形式的仿真来估计不能测量的状态值,这种方法称之为系统的状态观测器设计。下面假定以SISOLTI系统为研究对象,这意味着系统有唯一的可控变量和唯一的可测量。同时,假定系统输出y(t)是唯一能

38、够测量的量,它将被引入到状态观测器中来提高状态值的估计过程。这里采用来表示状态向量X(t)的在t时刻的估计值。第4章 控制系统的设计与仿真状态观测器的框图如图4.15所示(注意变量xc表示 。该观测器使用u(t)和y(t)作为输入量,并且输出系统状态关于时间的估计值。从框图中可以看出(4.31)这里的L为未知的增益,它是根据该子系统期望的暂态响应特性确定的,称为状态观测器的增益矩阵。对于SISO系统,L是长度为N的列向量。第4章 控制系统的设计与仿真图4.15SISO系统的状态观测器模型第4章 控制系统的设计与仿真观测器的设计过程与前面讲述的标准状态反馈控制器类似。这里的观测器的增益选择应使状

39、态观测器的特征值是稳定的,同时使得观测器的动态变化快于整个闭环系统的动态属性。观测器的特征值由下式确定:det(sI-(A-LCT)=0(4.32)在状态反馈控制系统中加入状态观测器,可得到图4.16所示的系统框图。对于该系统,系统输入为(4.33)第4章 控制系统的设计与仿真如果系统模型与状态观测器模型都采用相同的状态空间矩阵A、B、CT进行描述,则对于被研究对象有将式(4.33)的输入代入上面的方程,则得到系统的完整模型(4.34)(4.35)第4章 控制系统的设计与仿真图4.16具有全状态观测器的状态反馈控制系统框图(SISO系统)第4章 控制系统的设计与仿真对于状态观测器,将式(4.3

40、3)代入式(4.31)可以得到观测器的完整模型或者(4.36)(4.37)定义误差向量将式(4.37)代入得到误差向量的动态模型(4.38)(4.39)第4章 控制系统的设计与仿真4.2.6完全可观性如果系统的每个状态X(t0)都可以通过y(t)一段时间的观测值来确定,则该系统被称为是完全可观的。考虑式(4.23)定义的SISOLTI系统,其时域解为(4.40)假设u()=0,为方便计算,上式可以写成(4.41)第4章 控制系统的设计与仿真其中,CTeAt已知,y(t)可测。因此状态向量X(0)可以通过y(t)的观测值间接计算得到。对于SISO系统,方程(4.41)仅有一个方程,但包含N个未知

41、参数。然而,由于该方程独立于时间变量,因此,在多个时刻对y(t)进行测量,可以获得多个类似的方程,将它们联立,就可以唯一确定系统的初始状态X(0)。下面给方程(4.41)两边同时乘以已知的系数矩阵,得到(4.42)(4.43)(4.44)变换方程有第4章 控制系统的设计与仿真将整个观测时间内的所有方程进行联立,得到(4.45)其中(4.46)最后求解方程(4.45),得到如果W是非奇异的,X(0)可以由y(t)的观测值唯一确定,从而系统是完全可观的。再次使用Sylvester的积分公式,得到第4章 控制系统的设计与仿真定义(4.48)(4.49)(4.50)第4章 控制系统的设计与仿真4.2.

42、7观测器增益的确定确定观测增益矩阵同样采用极点配置的方法。然而在这里,我们确定的是状态观测器误差方程的极点位置。误差极点位置的选择比较随意,但误差动态变化应该比被控系统的动态变化快一些。如果系统完全可观,则(A-LCT)的N个特征值的位置应该唯一确定观测器增益矩阵的N个元素。设计的过程如下:(1)检查系统可观矩阵是否奇异。第4章 控制系统的设计与仿真(2)为误差方程指定期望的极点位置(1,2,N)。这些极点位置与系统的主导极点相比较应该更靠近复平面的左手边。(3)根据期望的极点位置创建期望的特征方程。(4)最后创建误差方程的特征方程,从而得到含有N个位置参数的方程组。同样,以例4.2为例来说明

43、SISO系统状态观测器的设计过程。第4章 控制系统的设计与仿真例4.4用MATLAB的place函数重新设计例4.2的状态反馈控制器与例4.3中的全状态观测器。解:程序代码如下:%SFSOTEST.MSISOLTI系统的状态反馈控制器与全状态观测器的设计clearall,closeall,nfig=0;%打开二进制文件保存结果deletesfsotest.outdiarysfsotest.outdisp()disp(*SFSOTEST.OUT*DiaryFileforSFSOTEST.M)第4章 控制系统的设计与仿真disp()%PartI.创建线性系统模型,显示其开环系统是不稳定的Setup

44、basedataforthelinearA=01;20.60;B=01;%建立系统的状态空间模型C=10;D=0;disp(StateSpaceMatricesforthePlant)A,B,C,D第4章 控制系统的设计与仿真%computeeigenvaluesofstatematrixforopenloopplantdisp(EigenvaluesoftheOpenLoopPlant);%计算开环系统状态矩阵特征值ev=eig(A)%PartII.加入状态反馈控制器以稳定系统,对状态1的输出量进行仿真%检查系统的可控性disp(ControllabilityMatrixforthissys

45、tem),M=ctrb(A,B)disp(RankofControllabilityMatrix),rank(M)clp=-1.8+2.4j-1.8-2.4j;%计算状态反馈控制增益Ks=place(A,B,clp);第4章 控制系统的设计与仿真disp(Desiredclosedlooppolesforstatefeedbackcontroller);clpdisp(Statefeedbackgainsneededtogivedesiredpoles);Ksdisp(Calculatedeigenvaluesofsystemwithstatefeedback);eig(A-B*Ks)Nv=-

46、1.0/(C*inv(A-B*Ks)*B);%计算Nvdisp(SetpointgainforzeroSSerror);Nvto=0;tf=5;nfig=0;%对被控系统+控制器进行仿真t=linspace(to,tf,101);syscl1=ss(A-B*Ks,B*Nv,C,D);y1,t,x1=step(syscl1,t);第4章 控制系统的设计与仿真nfig=nfig+1;figure(nfig)%绘制相关结果曲线subplot(2,1,1),plot(t,x1(:,1),r-,t,x1(:,2),g-),grid,title(StatesforStateFeedbackTestCase

47、)xlabel(Time),ylabel(StateVariables)legend(x1(t),x2(t)%PartIII.加入状态反馈控制器与全状态观测器,仿真状态1的阶跃响应特性%检查系统的完全可观性disp(ObservabilityMatrixforthissystem),H=obsv(A,C)disp(RankofObservabilityMatrix),rank(H)第4章 控制系统的设计与仿真%针对指定的观测器极点计算观测器增益op=3*clp;%观测器的速度是闭环系统的3倍L=place(A,C,op);L=L;disp(Desiredobserverpolesforstat

48、efeedbackcontroller);opdisp(Estimatorgainsneededtogivedesiredpoles);Ldisp(Calculatedeigenvaluesofestimatorsystem);eig(A-L*C)A11=A;A12=-B*Ks;B1=B*Nv;A21=L*C;A22=A-L*C-B*Ks;B2=B*Nv;zz=0;AB=A11A12;A21A22;BB=B1;B2;CB=Czz*C;第4章 控制系统的设计与仿真%对控制系统进行仿真syscl2=ss(AB,BB,CB,D);y2,t,x2=step(syscl2,t);%分离系统状态与观测器的

49、估计状态nn=max(size(A);xp2=x2(:,1:nn);xe2=x2(:,nn+1:2*nn);%绘制全观测器情况下的计算结果subplot(2,1,2),plot(t,xp2(:,1),r-,t,xp2(:,2),g-),grid,title(StatesforStateFeedbackwithFullObserverTestCase)xlabel(Time),ylabel(StateVariables)legend(x1(t),x2(t)第4章 控制系统的设计与仿真%绘制状态估计的误差nfig=nfig+1;figure(nfig)plot(t,xp2(:,1)-xe2(:,1

50、),r-,t,xp2(:,2)-xe2(:,2),g-),grid,title(DifferenceBetweenPlantandObserverStates)xlabel(Time),ylabel(ErrorinStateVariables)legend(e1(t),e2(t)Diaryoff%关闭二进制文件第4章 控制系统的设计与仿真图4.17系统模型与观测器动态性能演示第4章 控制系统的设计与仿真图4.17系统模型与观测器动态性能演示第4章 控制系统的设计与仿真图4.18状态误差的动态曲线第4章 控制系统的设计与仿真4.2.8对偶系统回忆前面论述的系统可控与可观性的定义,可知系统的可控性

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com