您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 计算机与CAD仿真第2章 控制系统的数学模型及其转换
第2章控制系统的数学模型及其转换本章内容(1)利用MATLAB描述在控制系统中常见的几种数学模型;(2)利用MATLAB实现任意数学模型之间的相互转换;(3)利用MATLAB求解系统经过串联、并联和反馈连接后的系统模型;(4)利用MATLAB获取一些典型系统的模型;(5)利用MATLAB实现连续系统的离散化和离散系统的连续化;(6)利用MATLAB求取系统的特性函数。控制系统计算机仿真是建立在控制系统数学模型基础之上的一门技术。对系统进行仿真,首先应该知道系统的数学模型,然后才可以在此基础上设计一个合适的控制器,使得原系统的响应达到预期的效果。2.1.1传递函数)()()()()(11211121sdensnumasasabsbsbsRsCsGnnnmmmMATLAB输入语句),(,,,,,2121dennumtfGaaadenbbbnumnm2.1控制系统的数学模型132106126)(23423ssssssssG【例2.1】输入传递函数模型MATLAB输入语句),(];1,1,3,2,1[]10,6,12,6[dennumtfGdennum;传递函数输入举例当传递函数的分子或分母由若干个多项式乘积表示时,它可由MATLAB提供的多项式乘法运算函数conv()来处理,以便获得分子和分母多项式向量,此函数的调用格式为c=conv(a,b)其中a和b分别为由两个多项式系数构成的向量,而c为a和b多项式的乘积多项式系数向量。conv()函数的调用是允许多级嵌套的。【例2-2】若给定系统的传递函数为【解】则可以将其用下列MATLAB语句表示num=4*conv([12],[166]);den=conv([10],conv([11],conv([11],conv([11],[1325]))));G=tf(num,den))523()1()66)(2(4)(2332sssssssssG【例2-2】更简便的输入法【例2-3】对于单输入多输出系统【解】则可将其用下列MATLAB语句表示num=[0032;1025];den=[3521];12535223)(233sssssssG112121()()()()()()()()()miimnnjjszszszszGsKKspspspspMATLAB输入语句);,,(];;;[];;;;[2121KpzzpkGppppzzzznm2.1.2零极点增益形式MATLAB工具箱中的函数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.00002.1.4状态空间表达式设线性定常连续系统的状态空间表达式为)92()()()()()()(tDutCxtytButAxtx如果传递函数(阵)各元素为严格真有理分式,则D=0,此时上式可写为)102()()()()()(tCxtytBxtAxtx【例2-5】设系统的状态空间表达式为)(010001)()(311111)(4032/122/3100)(txtytutxtx【解】此系统可由下面的MATLAB语句唯一地表示出来A=[001;-3/2-2-1/2;-30-4];B=[11;-1-1;-1-3];C=[100;010];D=zeros(2,2);传递函数模型、零极点增益模型和状态空间模型之间模型转换函数如图所示。传递函数tf状态空间ss零极点zpktf2ssss2tfss2zpzp2sszp2tftf2zp2.2系统数学模型间的相互转换2.2.1状态空间表达式到传递函数的转换在MATLAB控制系统工具箱中,给出一个根据状态空间表达式求取系统传递函数的函数ss2tf(),其调用格式为[num,den]=ss2tf(A,B,C,D)*【例2-6】对于例2-5中给出的多变量系统,可以由下面的命令分别对各个输入信号求取传递函数向量,然后求出这个传递函数阵。【解】利用下列MATLAB语句[num1,den1]=ss2tf(A,B,C,D,1)num1=01.00005.00006.00000-1.0000-5.0000-6.0000den1=16116[num2,den2]=ss2tf(A,B,C,D,2)num2=01.00003.00002.00000-1.0000-4.0000-3.0000den2=16116则可得系统的传递函数阵21113111)34()65(236561161)(222223ssssssssssssssssG2.2.2状态空间形式到零极点形式的转换MATLAB函数ss2zp()的调用格式为[Z,P,K]=ss2zp(A,B,C,D,iu)【例】将状态空间模型转换为传递函数和零极点增益模型0100001052011100xxuyxMATLAB命令:A=[010;001;-5-20-1];B=[0;0;1];C=[100];D=0;[num,den]=ss2tf(A,B,C,D);printsys(num,den)[z,p,k]=ss2zp(A,B,C,D);zpk(z,p,k)2.2.3传递函数到状态空间表达式的转换如果已知系统的传递函数模型,求取系统状态空间表达式的过程又称为系统的实现。由于状态变量可以任意地选取,所以实现的方法并不是唯一的,这里只介绍一种比较常用的实现方法。0112211)(dasasBsBsBsGnnnnnn适当地选择系统的状态变量,则系统的状态空间表达式可以写成)162(00101000102111udxBBByuxaaaxnnn在MATLAB控制系统工具箱中称这种方法为能控标准型实现方法,并给出了直接实现函数,该函数的调用格式为[A,B,C,D]=tf2ss(num,den)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)sys=append(sys1,sys2,...,sysN)子系统合成对角形式sys=parallel(sys1,sys2,inp1,inp2,out1,out2)并联连接sys=series(sys1,sys2,outputs1,inputs2)串联连接sys=feedback(sys1,sys2)反馈连接sys=lft(sys1,sys2,nu,ny)模型连接sysc=connect(sys,Q,inputs,outputs)框图建模2.3系统模型的连接在一般情况下,控制系统常常由若干个环节通过串联、并联和反馈连接的方式而组成,对在各种连接模式下的系统能够进行分析就需要对系统的模型进行适当的处理,在MATLAB的控制系统工具箱中提供了大量的对控制系统的简单模型进行连接的函数。,2.3.1串联连接uu1y1u2y2y图2-1系统的串联连接12在MATLAB的控制系统工具箱中提供了系统的串联连接处理函数series(),它既可处理由状态方程表示的系统,也可处理由传递函数阵表示的单输入多输出系统,其调用格式为[A,B,C,D]=series(A1,B1,C1,D1,A2,B2,C2,D2)和[num,den]=series(num1,den1,num2,den2)【例2-14】uu1y1u2y2y图2-1系统的串联连接12求下列两系统串联后的系统模型对于单入单出SISO系统,并联连接是指各子系统输入相同,输出是各子系统输出之代数和。如图所示。2.3.2并联连接u1uu2y2yy1图2-3系统并联连接12在MATLAB的控制系统工具箱中提供了系统的并联连接处理函数parallel(),该函数的调用格式为[A,B,C,D]=parallel(A1,B1,C1,D1,A2,B2,C2,D2)和[num,den]=parallel(num1,den1,num2,den2)【例2-15】求下列两系统并联后的系统模型3242)(,41)(221ssssGssG2.3.3反馈连接反馈连接正反馈负反馈函数feedback用于系统反馈连接,调用格式为sys=feedback(sys1,sys2)sys=feedback(sys1,sys2,sign)[A,B,C,D]=feedback(A1,B1,C1,D1,A2,B2,C2,D2,sign)[num,den]=feedback(num1,den1,num2,den2,sign)【例2-16】求下列两系统反馈连接后的系统模型10)2(5)(:,32152)(:22211sssHsssssGu1u2y2yy1图2-5系统的反馈连接12u特别地,对于单位反馈系统,MATLAB提供了更简单的处理函数cloop(),其调用格式为[A,B,C,D]=cloop(A1,B1,C1,D1,sign)[num,den]=cloop(num1,den1,sign)[A,B,C,D]=cloop(A1,B1,C1,D1,outputs,inputs)其中第三式表示将指定的输出outputs反馈到指定的输入inputs,以此构成闭环系统,outputs指定反馈的输出序号,inputs指定输入反馈序号。【例2-17】已知系统的方框图如图2-7所示,求系统的传递函数。540110s5.021s0.1G3G1G2-++-图2-7G4【解】MATLAB语句如下所示ex2_172.3.5系统的组合MATLAB的组合函数append()的调用格式为[A,B,C,D]=append(A1,B1,C1,D1,A2,B2,C2,D2)u1y1u2y2图2-8系统的组合12uyr=10图3-111.05.0sss122s1010sⅠⅡⅢⅣy+-x1u2x2u3x3u4u1x4V352r1r2r3++---y1y2x3u4u3x2x1u2u1x4x5u5图3-9多变量系统结构图ⅠⅡⅢⅣ+2.3.6.根据框图建模利用connect()函数,可以根据系统的方框图按指定方式求取系统模型,其函数调用格式为[A1,B1,C1,D1]=connect(A,B,C,D,Q,inputs,outputs)其中(A,B,C,D)为由函数append()生成的无连接对角方块系统的状态空间模型系数矩阵;Q矩阵用于指定系统(A,B,C,D)的内部连接关系,Q矩阵的每一行对应于一个有连接关系的输入,其第一个元素为输入编号,其后为连接该输入的输出编号,如采用负连接,则以负值表示;inputs和outputs用于指定系统(A1,B1,C1,D1)的输入和输出的编号;(A1,B1,C1,D1)为在指定输入和输出并按要求的内部连接关系下所生成的系统。【补充例1】用框图建模法重做【例2-14】uu1y1u2y2y图2-1系统的串联连接12【补充例2】用框图建模法
本文标题:计算机与CAD仿真第2章 控制系统的数学模型及其转换
链接地址:https://www.777doc.com/doc-4128734 .html