您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 《控制系统数字仿真与cad》第2章控制系统的数学模型及其转换
1第二章控制系统的数学模型及其转换本章内容(1)利用MATLAB描述在控制系统中常见的几种数学模型;(2)利用MATLAB实现任意数学模型之间的相互转换;(3)利用MATLAB求解系统经过串联、并联和反馈连接后的系统模型;(4)利用MATLAB获取一些典型系统的模型;(5)利用MATLAB实现连续系统的离散化和离散系统的连续化,以及离散模型按另一采样周期的重新离散化。2控制系统计算机仿真是建立在控制系统数学模型基础之上的一门技术。需对系统进行仿真,首先应该知道系统的数学模型,然后才可以在此基础上设计一个合适的控制器,使得原系统的响应达到预期的效果。32.1线性系统数学模型的基本描述方法2.1.1传递函数传递函数在MATLAB下可以方便的由其分子和分母多项式系数所构成的两个向量唯一确定出来。即num=[b0b1…bm];den=[1a1a2…an]nnnmmmasasbsbsbsUsYsG11110)()()(4例2-1若给定系统的传递函数为解可以将其用下列MATLAB语句表示num=[612610];den=[12311];printsys(num,den)执行结果为num/den=132106126)()()(23423ssssssssUsYsG12^33^24^1062^123^6sssssss5当传递函数的分子或分母由若干个多项式乘积表示时,它可由MATLAB提供的多项式乘法运算函数conv()来处理,以便获得分子和分母多项式向量,此函数的调用格式为c=conv(a,b)其中a和b分别为由两个多项式系数构成的向量,而c为a和b多项式的乘积多项式系数向量。conv()函数的调用是允许多级嵌套的。6例2-2若给定系统的传递函数为解则可以将其用下列MATLAB语句表示num=4*conv([12],[166])den=conv([10],conv([11],conv([11],conv([11],[1325])))))523()1()66)(2(4)(2332sssssssssG7对具有r个输入和m个输出的多变量系统,可把m×r的传递函数阵G(s)写成和单变量系统传递函数相类似的形式,即(2-5)式中B0,B1,…,Bn均为m×r实常数矩阵,分母多项式为该传递函数阵的特征多项式。在MATLAB控制系统工具箱中,提供了表示单输入多输出系统的表示方法,即num=[B0B1…Bn];den=[1a1a2…an]其中分子系数包含在矩阵num中,num行数与输出y的维数一致,每行对应一个输出,den是行向量,为传递函数阵公分母多项式系数。nnnnnnnnasasasBsBsBsBsG1111110)(8例2-3对于单输入多输出系统解则可将其用下列MATLAB语句表示num=[0032;1025];den=[3521];12535223)(233sssssssG92.1.2零极点增益形式单输入单输出系统的零极点模型可表示为式中zj(j=1,2,…,m)和pi(i=1,2,…,n)称为系统的零点和极点,它们既可以为实数又可以为复数,而K称为系统的增益。在MATLAB下零极点模型可以由增益K和零、极点所构成的列向量唯一确定出来。即Z=[z1;z2;…;zm];P=[p1;p2;…;pn])())(()())(()()()(212111nminijmjpspspszszszsKpszsKsG10对于单输入多输出系统,列向量P中储存为系统的极点;零点储存在矩阵Z的列中,Z的列数等于输出向量的维数,每列对应一个输出,对应增益则在列向量K中。11MATLAB工具箱中的函数poly()和roots()可用来实现多项式和零极点间的转换,例如在命令窗口中进行如下操作可实现互相转换。P=[1352];R=roots(P)R=-1.2267+1.4677i-1.2267-1.4677i-0.5466P1=poly(R)P1=1.00003.00005.00002.0000122.1.3部分分式形式传递函数也可表示成部分分式或留数形式,即(2-8)式中pi(i=1,2,…,n)为该系统的n个极点,与零极点形式的n个极点是一致的,ri(i=1,2,…,n)是对应各极点的留数;h(s)则表示传递函数分子多项式除以分母多项式的余式,若分子多项式阶次与分母多项式相等,h(s)为标量;若分子多项式阶次小于分母多项式,该项不存在。在MATLAB下它也可由系统的极点、留数和余式系数所构成的向量唯一确定出来,即P=[p1;p2;…;pn];R=[r1;r2;…;rn];H=[h0h1…hm-n])()(1shpsrsGniii132.1.4状态空间表达式设线性定常连续系统的状态空间表达式为(2-9)式中A:n×n;B:n×r;C:m×n;D:m×r如果传递函数(阵)各元素为严格真有理分式,则D=0,此时上式可写为(2-10)它们可分别简记为Σ(A,B,C,D)和Σ(A,B,C))()()()()()(tDutCxtytButAxtx)()()()()(tCxtytBxtAxtx14例2-5设系统的状态空间表达式为解此系统可由下面的MATLAB语句唯一地表示出来A=[001;-3/2-2-1/2;-30-4];B=[11;-1-1;-1-3];C=[100;010];D=zeros(2,2);)(010001)()(311111)(4032/122/3100)(txtytutxtx152.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的维数一致,每行对应一个输出。16例2-6对于例2-5中给出的多变量系统,可以由下面的命令分别对各个输入信号求取传递函数向量,然后求出这个传递函数阵。解利用下列MATLAB语句[num1,den1]=ss2tf(A,B,C,D,1)num1=01.00005.00006.00000-1.0000-5.0000-6.0000den1=1611617[num2,den2]=ss2tf(A,B,C,D,2)num2=01.00003.00002.00000-1.0000-4.0000-3.0000den2=16116则可得系统的传递函数阵21113111)34()65(236561161)(222223ssssssssssssssssG182.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中。192.2.3传递函数到状态空间表达式的转换如果已知系统的传递函数模型,求取系统状态空间表达式的过程又称为系统的实现。由于状态变量可以任意地选取,所以实现的方法并不是唯一的,这里只介绍一种比较常用的实现方法。对于单输入多输出系统0112211)(dasasBsBsBsGnnnnnn20适当地选择系统的状态变量,则系统的状态空间表达式可以写成(2-16)在MATLAB控制系统工具箱中称这种方法为能控标准型实现方法,并给出了直接实现函数,该函数的调用格式为[A,B,C,D]=tf2ss(num,den)其中num的每一行为相应于某输出的按s的降幂顺序排列的分子系数,其行数为输出的个数,行向量den为按s的降幂顺序排列的公分母系数。返回量A,B,C,D为状态空间形式的各系数矩阵。udxBBByuxaaaxnnn02111001010001212.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)222.2.7传递函数形式与部分分式间的相互转换MATLAB的转换函数residue()调用格式为[R,P,H]=residue(num,den)或[num,den]=residue(R,P,H)其中列向量P为传递函数的极点,对应各极点的留数在列向量R中,行向量H为原传递函数中剩余部分的系数,num,den分别为传递函数的分子分母系数。232.2.8相似变换由于状态变量选择的非唯一性,系统传递函数的实现不是唯一的,即系统的状态空间表达式也不是唯一的,在实际应用中,常常根据所研究问题的需要,将状态空间表达式化成相应的几种标准形式。MATLAB控制系统工具箱给出了一个直接完成线性变换的函数ss2ss(),该函数的调用格式为通过上式不仅可求得系统的各种标准型实现,也可利用系统的结构分解来求取系统的最小实现。),,,,(2],,,[PDCBAssssDCBA24另外利用MATLAB控制系统工具箱提供的minreal()函数可直接求出一个给定系统状态空间表达式的最小实现,该函数的调用格式为[Am,Bm,Cm,Dm]=minreal(A,B,C,D,tol)其中A,B,C,D为原状态空间表达式的各系数矩阵,而tol为用户任意指定的误差限,如果省略此参数,则会自动地取作eps。而Am,Bm,Cm,Dm为最小实现的状态空间表达式的各系数矩阵。25最小实现是一种模型的实现,它消除了模型中过多的或不必要的状态,对传递函数或零极点增益模型,这等价于将可彼此对消的零极点对进行对消。利用MATLAB控制系统工具箱提供的minreal()函数可直接求出一个给定系统状态空间表达式的最小实现,该函数的调用格式为[Am,Bm,Cm,Dm]=minreal(A,B,C,D,tol)[zm,pm]=minreal(z,p)[numm,denm]=minreal(num,den)其中A,B,C,D为原状态空间表达式的各系数矩阵,而tol为用户任意指定的误差限,如果省略此参数,则会自动地取作eps。而Am,Bm,Cm,Dm为最小实现的状态空间表达式的各系数矩阵。2.2.9最小实现26例2-12已知系统的状态空间表达式为求出系统最小实现的状态空间表达式的各系数矩阵。解利用下列MATLAB语句A=[-5800;-4700;0004;00-26];B=[4
本文标题:《控制系统数字仿真与cad》第2章控制系统的数学模型及其转换
链接地址:https://www.777doc.com/doc-3403613 .html