控制系统的数学模型及其转换优秀PPT.ppt
控制系统的数学模型及其转换你现在浏览的是第一页,共35页 按系统性能分:线性系统和非线性系统;连续系统和离散系统;定常系统和时变系统;确定系统和不确定系统。1、线性连续系统:用线性微分方程式来描述,如果微分方程的系数为常数,则为定常系统;如果系数随时间而变化,则为时变系统。今后我们所讨论的系统主要以线性定常连续系统为主。今后我们所讨论的系统主要以线性定常连续系统为主。2、线性定常离散系统:离散系统指系统的某处或多处的信号为脉冲序列或数码形式。这类系统用差分方程来描述。3、非线性系统:系统中有一个元部件的输入输出特性为非线性的系统。下面来分析各种数学模型的MATLAB表示形式3.1 3.1 系统的类型系统的类型你现在浏览的是第二页,共35页对线性定常系统,式中s的系数均为常数,且a1不等于零,这时系统在MATLAB中可以方便地由分子和分母系数构成的两个向量唯一地确定出来,这两个向量分别用num和den表示。num=b1,b2,bm,bm+1den=a1,a2,an,an+1注意:它们都是按s的降幂进行排列的。3.2 3.2 传递函数描述传递函数描述一、连续系统的传递函数模型一、连续系统的传递函数模型连续系统的传递函数如下:你现在浏览的是第三页,共35页(1)递函数的Maltab模型num=b1,b2,bm,bm+1den=a1,a2,an,an+1可用命令tf()建立一个传递函数模型,或将零极点增益模型或状态空间 模型转变为传递函数模型。你现在浏览的是第四页,共35页(2)传递函数模型命令tf()调用格式 sys=tf(num,den)sys=tf(mum,den,Ts)用于生成离散传体函数,Ts为采样时间。sys=tf(M)用于生成静态增益s传递函数,sys=tf(s)%用于生成拉普拉斯变量s的有理传递函数 tfsys=tf(sys)sys=tf(num,den,Property1,Value1,PropertyN,ValueN):用于生成传递函数模型,同时定义传递函数的属性值。传递函数的属性值可用get(sys)命令来查看 例3.1你现在浏览的是第五页,共35页(3)多输入多输出系统(MIMO)传递函数模型l对多输入多输出系统,分子、分母为元胞类型向量。元胞数组:元胞数组:元胞数组的基本元素是元胞,元胞可以存放任何类型数据,而且同一个元胞数组的各元胞(cell)中的内容可以不同。元胞数组的定义符是,例:A=0 1,3;this is book,2 5。元胞数组元素内容的访问用,如:A1,1,结果得到0 1,或者使用单下标,如A2,结果是“this is book”。你现在浏览的是第六页,共35页例:给定一个多入多出系统:试生成其仿真模型解:命令如下:num=1 1;2 1 2;den=1 1,1 2;1,1 2;sys=tf(num,den)注意:元素sys(i,j)表示输入j对输出i的传递函数。你现在浏览的是第七页,共35页(4)传递函数模型生成方法(二)利用拉普拉斯变量因子“s”直接生成传递函数模型。例:已知传递函数模型如下,利用拉普拉斯变量因子“s”直接生成传递函数模型。解:命令如下:s=tf(s);%定义拉普拉斯变量ssys=(s+1)/(s*(s2+s+2)你现在浏览的是第八页,共35页零极点模型实际上是传递函数模型的另一种表现形式,其原理是分别对原系统传递函数的分子、分母进行分解因式处理,以获得系统的零点和极点的表示形式。在MATLAB中零极点增益模型用z,p,K向量组表示。生成零极点增益模型的matlab函数为zpk():z=z1,z2,zmp=p1,p2,.,pnK=k二、零极点增益模型二、零极点增益模型K为系统增益,zi为零点,pj为极点你现在浏览的是第九页,共35页(1)零极点增益模型zpk函数调用格式syszpk(z,p,k)生成零极点增益模型syszpk(z,p,k,Ts)sys=zpk(M)生成静态增益s传统函数sys=zpk(s)生成拉普拉斯因子szsys=zpk(sys)%将传递函数、状态空间模型转换为零极点增益模型你现在浏览的是第十页,共35页1)例:建立下述传递函数模型的matlab表示num=12,24,0,20;den=2 4 6 2 2;sys=tf(num,den)借助多项式乘法函数conv来处理:num=4*conv(1,2,conv(1,6,6,1,6,6);den=conv(1,0,conv(1,1,conv(1,1,conv(1,1,1,3,2,5);sys=tf(num,den)2)你现在浏览的是第十一页,共35页3)零极点增益模型:4)零极点增益模型:z=;p=-1,-2,-3-4j,-3+4j;k=5;sys=zpk(z,p,k)z=-3,0;p=-1,50,-10;k=1;sys=zpk(z,p,k)你现在浏览的是第十二页,共35页例题3.5matlab表示 给出零极点增益模型解:命令如下z=;-0.5p=0.3;0.1-j,0.1+jk=1;2sys=zpk(z,p,k,)你现在浏览的是第十三页,共35页l状态方程与输出方程的组合称为状态空间表达式,又称为动态方程,经典控制理论用传递函数将输入输出关系表达出来,而现代控制理论则用状态方程和输出方程来表达输入输出关系,揭示了系统内部状态对系统性能的影响。(三)状态空间模型(三)状态空间模型在MATLAB中,系统状态空间用(A,B,C,D)矩阵组表示,函数为ss()。你现在浏览的是第十四页,共35页(1)状态空间模型函数调用格式(1)Sys=ss(A,B,C,D)%生成状态空间模型Sys=ss(A,B,C,D,Ts)%生成离散的状态空间模型Sys_ss=ss(sys)%将其它模型转换为状态空间模型例3.7状态空间模型用matlab表示你现在浏览的是第十五页,共35页例:系统为一个两输入两输出系统A=1 6 9 10;3 12 6 8;4 7 9 11;5 12 13 14;B=4 6;2 4;2 2;1 0;C=0 0 2 1;8 0 2 2;D=zeros(2,2);你现在浏览的是第十六页,共35页模型转换的函数包括:num,den=ss2tf(A,B,C,D):状态空间模型转换为传递函数模型z,p,k=ss2zp(A,B,C,D):状态空间模型转换为零极点增益模型A,B,C,D=tf2ss(num,den):传递函数模型转换为状态空间模型z,p,k=tf2zp(num,den):传递函数模型转换为零极点增益模型A,B,C,D=zp2ss(z,p,k):零极点增益模型转换为状态空间模型num,denzp2tf(z,p,k):零极点增益模型转换为传递函数模型3.33.3模型的转换模型的转换你现在浏览的是第十七页,共35页传递函数、状态空间、零极点模型之间转换示意图你现在浏览的是第十八页,共35页用法举例:1)已知系统状态空间模型为:A=0 1;-1-2;B=0;1;C=1,3;D=1;num,den=ss2tf(A,B,C,D,iu)z,p,k=ss2zp(A,B,C,D,iu)iu用来指定第n个输入,当只有一个输入时可忽略。num,den=ss2tf(A,B,C,D)num=1.0000 5.0000 2.0000den=1 2 1z,p,k=ss2zp(A,B,C,D)z=-4.5616 p=-1 k=1 -0.4384 -1你现在浏览的是第十九页,共35页2)已知一个单输入三输出系统的传递函数模型如下,求其状态空间模型解:num=0 0-2;0-1-5;1 2 0;den=1 6 11 6;A,B,C,D=tf2ss(num,den)A=-6 -11 -6 B=1 C=0 0 -2 D=0 1 0 0 0 0 -1 -5 0 0 1 0 0 1 2 0 0你现在浏览的是第二十页,共35页3)系统的零极点增益模型如下,试求其传递函数模型及状态空间模型:解:命令如下:z=-3;p=-1,-2,-5;k=6;num,den=zp2tf(z,p,k)num=0 0 6 18 den=1 8 17 10a,b,c,d=zp2ss(z,p,k)a=-1.0000 0 0 b=1 2.0000-7.0000-3.1623 1 0 3.1623 0 0 c=0 0 1.8974 d=0 注意:零极点的输入可以写成行向量,也可以写成列向量。你现在浏览的是第二十一页,共35页3.4、系统模型的连接、系统模型的连接系统模型之间的并联分SISO系统模型的并联和MIMO系统模型的并联 1、并联:、并联:parallel你现在浏览的是第二十二页,共35页sys=parallel(sys1,sys2):两个SISO系统模型的并联sys=parallel(sys1,sys2,in1,in2,out1,out2):生成两个MIMO系统的并联模型,并联输入端口由向量in1和in2定义,并联的输出端口由向量out1和out2定义。in1和out1对应sys1用于并联的输入、输出端口向量,in2和out2对应sys2用于并联的输入、输出端口向量。MALTAB提供了求取子系统模型并联的函数parallel(),其调用格式如下:你现在浏览的是第二十三页,共35页【例】在上图所示的SISO系统并联模型结构中,已知sys1、sys2的传递函数分别为:s=tf(s);%定义拉普拉斯变量ssys1=(s+1)/(s*(s2+s+2);%定义SISO系统sys1的传递函数模型sys2=5/(5*s+1);%定义SISO系统的sys2的传递函数模型disp(并联系统模型为)sys=parallel(sys1,sys2)%生成sys1与sys2的并联模型执行上述命令后在Command Windows得如下结果:并联系统模型为Transfer function:5 s3+10 s2+16 s+1-5 s4+6 s3+11 s2+2 s你现在浏览的是第二十四页,共35页2、串联:、串联:series子系统之间的串连分SISO系统模型的串连和MIMO系统模型的串连你现在浏览的是第二十五页,共35页函数调用格式:sys=series(sys1,sys2):求SISO系统sys1和sys2的串连模型sys=series(sys1,sys2,outputs1,inputs2):求MIMO系统的串连,其中outputs1为sys1的输出端口数,inputs2为sys2的输入端口数。若MIMO系统有多个连接,在outputs1和inputs2为同维数向量。2、串联:、串联:series你现在浏览的是第二十六页,共35页在上图所示的SISO系统并联模型结构中,已知sys1、sys2的传递函数分别为:G1=tf(1 1,1 1 2);G2=tf(5,2 1)Sys=series(G1,G2)Transfer function:5 s+5-2 s3+3 s2+5 s+2结果如下:你现在浏览的是第二十七页,共35页3、反馈:、反馈:feedback 系统模型的反馈连接分SISO系统模型反馈连接和MIMO系统模型反馈连接 你现在浏览的是第二十八页,共35页lsys=feedback(sys1,sys2,sign):生SISO系统sys1与sys2构成的反馈系统传递函数模型,sys2为反馈通道传递函数模型,反馈类型由sign指定,当sign=1为正反馈,当sign=-1为负反馈,此时sign可省略。lsys=feedback(sys1,sys2,feedin,feedout,sign):生成MIMO系统的部分反馈模型,feedin指定sys1中连入反馈回路的输入端口向量。Feedout指定sys1中连入反恐回路中的输出端口向量。feedback()调用格式 你现在浏览的是第二十九页,共35页注意:(1)在很多书籍中依然提到用cloopcloop命令来生成闭环系统模型,在MATLAB7.0以后的版本中,已经废除cloop命令,其功能完全可以由feedback命令来代替。(2)有关模型混合连接,建议采用Simulink仿真。你现在浏览的是第三十页,共35页*3.5模型实现模型实现(本节课后自习本节课后自习)Matlab提供的状态空间模型实现函数有:sysT=ss2ss(sys,T)相似变换csys,T=canon(sys,type)状态空间的正则变换Abar,Bbar,Cbar,T,k=ctrbf(A,B,C)可控阶梯形函数Abar,Bbar,Cbar,T,k=obsvf(A,B,C)可观阶梯形函数Csys=canon(sys,type)正则标准型sysr=minreal(sys)最小实现和零极点相消参数type可选modal(生成对角标准型)或者companion(产生伴随矩阵型)。所谓实现,就是根据描述系统输入输出关系的运动方程式或传递函数模型建立系统的状态空间表达式,而且所求状态空间模型保持原有的输入输出关系。你现在浏览的是第三十一页,共35页例(1):若已知系统状态方程为:若选择已反对角矩阵,使得反对角线上元素均为1,其与元素为0。求在这一变换矩阵下系统新的状态方程。解:命令如下:A=0 1 0 0;0 0 1 0;0 0 0 1;-24-50-35-10;B=0 0 0 1;C=24 24 7 1;D=0;sys=ss(A,B,C,D)T=fliplr(eye(4);%fliplr函数将矩阵左右翻转G=ss2ss(sys,T)你现在浏览的是第三十二页,共35页例(2):将上述例题中的状态空间模型转换为对角标准型和伴随矩阵型。解:命令如下:Csys1=canon(sys,modal)生成对角标准型Csys2=canon(sys,companion)生成伴随矩阵型你现在浏览的是第三十三页,共35页本章小结传递函数模型、状态空间模型、零极点增益模型的生成系统的模型之间可以相互转换,要求熟练掌握各种模型之间转换的命令。模型之间可以进行连接,串联、并联、反馈及闭环。你现在浏览的是第三十四页,共35页本章完!你现在浏览的是第三十五页,共35页