资源描述
单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第二章 控制系统的数学模型及其转换,本章内容,(1),利用,MATLAB,描述在控制系统中常见的几种数学模型;,(2),利用,MATLAB,实现任意数学模型之间的相互转换;,(3),利用,MATLAB,求解系统经过串联、并联和反馈连接后,的系统模型;,(4),利用,MATLAB,获取一些典型系统的模型;,(5),利用,MATLAB,实现连续系统的离散化和离散系统的,连续化,以及离散模型按另一采样周期的重新离散化。,1,控制系统计算机仿真是建立在控制系统数学模型基础之上的一门技术。需对系统进行仿真,首先应该知道系统的数学模型,然后才可以在此基础上设计一个合适的控制器,使得原系统的响应达到预期的效果。,2,2.1,线性系统数学模型的基本描述方法,2.1.1,传递函数,传递函数在,MATLAB,下可以方便的由其分子和分母多项式系数所构成的两个向量唯一确定出来。即,num=,b,0,b,1,b,m,;den=1,a,1,a,2,a,n,3,例,2-1,若给定系统的传递函数为,解,可以将其用下列,MATLAB,语句表示,num=6 12 6 10;den=1 2 3 1 1;,printsys(num,den,),执行结果为,num/den=,4,当传递函数的分子或分母由若干个多项式乘积表示时,它可由,MATLAB,提供的多项式乘法运算函数,conv,(),来处理,以便获得分子和分母多项式向量,此函数的调用格式为,c,=,conv,(,a,b,),其中,a,和,b,分别为由两个多项式系数构成的向量,而,c,为,a,和,b,多项式的乘积多项式系数向量。,conv,(),函数的调用是允许多级嵌套的。,5,例,2-2,若给定系统的传递函数为,解,则可以将其用下列,MATLAB,语句表示,num=4*conv(1 2,1 6 6),den=conv(1 0,conv(1 1,conv(1 1,conv(1 1,1 3 2 5),6,对具有,r,个输入和,m,个输出的多变量系统,可把,mr,的传递函数阵,G,(s),写成和单变量系统传递函数相类似的形式,即,(2-5),式中,B,0,B,1,B,n,均为,mr,实常数矩阵,分母多项式为该传递函数阵的特征多项式。,在,MATLAB,控制系统工具箱中,提供了表示单输入多输出系统的表示方法,即,num,=,B,0,B,1,B,n,;,den,=1,a,1,a,2,a,n,其中 分子系数包含在矩阵,num,中,,num,行数与输出,y,的维数一致,每行对应一个输出,,den,是行向量,为传递函数阵公分母多项式系数。,7,例,2-3,对于单输入多输出系统,解,则可将其用下列,MATLAB,语句表示,num=0 0 3 2;1 0 2 5;den=3 5 2 1;,8,2.1.2,零极点增益形式,单输入单输出系统的零极点模型可表示为,式中,z,j,(j,=1,2,m),和,p,i,(i=1,2,n),称为系统的零点和极点,它们既可以为实数又可以为复数,而,K,称为系统的增益。,在,MATLAB,下零极点模型可以由增益,K,和零、极点所构成的列向量唯一确定出来。即,Z,=,z,1,;,z,2,;,;,z,m,;,P,=,p,1,;,p,2,;,;,p,n,9,对于单输入多输出系统,列向量,P,中储存为系统的极点;零点储存在矩阵,Z,的列中,Z,的列数等于输出向量的维数,每列对应一个输出,对应增益则在列向量,K,中。,10,MATLAB,工具箱中的函数,poly(),和,roots(),可用来实现多项式和零极点间的转换,例如在命令窗口中进行如下操作可实现互相转换。,P,=1 3 5 2;,R,=roots(,P,),R,=,-1.2267+1.4677i,-1.2267-1.4677i,-0.5466,P,1,=poly(,R,),P,1,=,1.0000 3.0000 5.0000 2.0000,11,2.1.3,部分分式形式,传递函数也可表示成部分分式或留数形式,即,(2-8),式中,p,i,(,i,=1,2,n,),为该系统的,n,个极点,与零极点形式的,n,个极点是一致的,,r,i,(,i,=,1,2,n,),是对应各极点的留数;,h,(,s,),则表示传递函数分子多项式除以分母多项式的余式,若分子多项式阶次与分母多项式相等,,h,(,s,),为标量;若分子多项式阶次小于分母多项式,该项不存在。,在,MATLAB,下它也可由系统的,极点、留数和余式系数所构成的向量唯一确定出来,即,P,=,p,1,;,p,2,;,p,n,;,R,=,r,1,;,r,2,;,r,n,;,H,=,h,0,h,1,h,m-n,12,2.1.4,状态空间表达式,设线性定常连续系统的状态空间表达式为,(2-9),式中,A,:nn,;,B,:nr,;,C,:mn,;,D,:mr,如果传递函数(阵)各元素为严格真有理分式,则,D,0,,,此时上式可写为,(2-10),它们可分别简记为,(,A,B,C,D,),和,(,A,B,C,),13,例,2-5,设系统的状态空间表达式为,解,此系统可由下面的,MATLAB,语句唯一地表示出来,A,=0 0 1;-3/2 -2 -1/2;-3 0 -4;,B,=1 1;-1 -1;-1 -3;,C,=1 0 0;0 1 0;,D,=zeros(2,2);,14,2.2,系统数学模型间的相互转换,2.2.1,状态空间表达式到传递函数的转换,在,MATLAB,控制系统工具箱中,给出一个根据状态空间表达式求取系统传递函数的函数,ss2tf(),,,其调用格式为,num,den=ss2tf,(,A,B,C,D,iu,).,其中,A,B,C,D,为状态空间形式的各系数矩阵,,iu,为输入的代号,即用来指定第几个输入,对于单变量系统,iu,=1,,,对多变量系统,不能用此函数一次地求出对所有输入信号的整个传递函数阵。而必须对各个输入信号逐个地求取传递函数子矩阵,最后获得整个的传递函数矩阵。返回结,果,den,为,传递函数分母多项式按,s,降幂排列的系数,传递函数分子系数则包含在矩,阵,num,中,,num,的,行数与输出,y,的维数一致,每行对应一个输出。,15,例,2-6,对于例,2-5,中给出的多变量系统,可以由下面的命令分别对各个输入信号求取传递函数向量,然后求出这个传递函数阵。,解,利用下列,MATLAB,语句,num1,den1=ss2tf(,A,B,C,D,1),num1=,0 1.0000 5.0000 6.0000,0-1.0000-5.0000-6.0000,den1=,1 6 11 6,16,num2,den2=ss2tf(,A,B,C,D,2),num2=,0 1.0000 3.0000 2.0000,0-1.0000-4.0000-3.0000,den2=,1 6 11 6,则可得系统的传递函数阵,17,2.2.2,状态空间形式到零极点形式的转换,MATLAB,函数,ss2zp(),的调用格式为,Z,P,K,=ss2zp,(,A,B,C,D,iu,),其中,A,B,C,D,为状态空间形式的各系数矩阵,,iu,为输入的代号,对于单变量系统,iu,1,,,对于多变量系统,iu,表示要求的输入序号,返回量列矩阵,P,储存传递函数的极点,而零点储存在矩阵,Z,中,,Z,的列数等于输出,y,的维数,每列对应一个输出,对应增益则在列向量,K,中。,18,2.2.3,传递函数到状态空间表达式的转换,如果已知系统的传递函数模型,求取系统状态空间表达式的过程又称为系统的实现。由于状态变量可以任意地选取,所以实现的方法并不是唯一的,这里只介绍一种比较常用的实现方法。,对于单输入多输出系统,19,适当地选择系统的状态变量,则系统的状态空间表达式可以写成,(2-16),在,MATLAB,控制系统工具箱中称这种方法为能控标准型实现方法,并给出了直接实现函数,该函数的调用格式为,A,B,C,D,=,tf2ss(num,den),其中,num,的每一行为相应于某输出的按,s,的降幂顺序排列的分子系数,其行数为输出的个数,行向量,den,为按,s,的降幂顺序排列的公分母系数。返回量,A,B,C,D,为状态空间形式的各系数矩阵。,20,2.2.4,传递函数形式到零极点形式的转换,MATLAB,函数,tf2zp(),的调用格式为,Z,P,K,=,tf2zp(num,den),2.2.5,零极点形式到状态空间表达式的转换,MATLAB,函数,zp2ss(),的调用格式为,A,B,C,D,=,zp2ss,(,Z,P,K,),2.2.6,零极点形式到传递函数形式的转换,MATLAB,函数,zp2tf(),的调用格式为,num,den=zp2tf(,Z,P,K,),21,2.2.7,传递函数形式与部分分式间的相互转换,MATLAB,的转换函数,residue(),调用格式为,R,P,H,=,residue,(,num,den,),或,num,den,=,residue,(,R,P,H,),其中 列向量,P,为传递函数的极点,对应各极点的留数在列向量,R,中,行向量,H,为原传递函数中剩余部分的系数,,num,den,分别为传递函数的分子分母系数。,22,2.2.8,相似变换,由于状态变量选择的非唯一性,系统传递函数的实现不是唯一的,即系统的状态空间表达式也不是唯一的,在实际应用中,常常根据所研究问题的需要,将状态空间表达式化成相应的几种标准形式。,MATLAB,控制系统工具箱给出了一个直接完成线性变换的函数,ss2ss(),,,该函数的调用格式为,通过上式不仅可求得系统的各种标准型实现,也可利用系统的结构分解来求取系统的最小实现。,23,另外利用,MATLAB,控制系统工具箱提供的,minreal,(),函数可直接求出一个给定系统状态空间表达式的最小实现,该函数的调用格式为,A,m,B,m,C,m,D,m,=,minreal,(,A,B,C,D,tol,),其中,A,B,C,D,为原状态空间表达式的各系数矩阵,而,tol,为用户任意指定的误差限,如果省略此参数,则会自动地取作,eps,。而,A,m,B,m,C,m,D,m,为最小实现的状态空间表达式的各系数矩阵。,24,最小实现是一种模型的实现,它消除了模型中过多的或不必要的状态,对传递函数或零极点增益模型,这等价于将可彼此对消的零极点对进行对消。利用,MATLAB,控制系统工具箱提供的,minreal,(),函数可直接求出一个给定系统状态空间表达式的最小实现,该函数的调用格式为,A,m,B,m,C,m,D,m,=,minreal(,A,B,C,D,tol,),z,m,p,m,=,minreal(,z,p,),numm,denm,=,minreal(,num,den,),其中,A,B,C,D,为原状态空间表达式的各系数矩阵,而,tol,为用户任意指定的误差限,如果省略此参数,则会自动地取作,eps,。而,A,m,B,m,C,m,D,m,为最小实现的状态空间表达式的各系数矩阵。,2.2.9,最小实现,25,例,2-12,已知系统的状态空间表达式为,求出系统最小实现的状态空间表达式的各系数矩阵。,解,利用下列,MATLAB,语句,A=-5 8 0 0;-4 7 0 0;0 0 0 4;0 0-2 6;B=4;-2;2;1;,C=2-2-2 2;D=0;,Am,Bm,Cm,Dm,=,minreal(A,B,C,D,),26,结果显示,2 states removed,Am=,-1.0000 0.0000,-0.0000 2.0000,Bm,=,4.2426,2.2361,Cm=,2.8284 -0.8944,Dm=,0,27,如果原系统模型由传递函数形式,num,den,给出,则可以直接调用,minreal,(),函数来获得零极点对消最小实现的传递函数,NUMm,DENm,这里的调
展开阅读全文