您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > matlab > matlab仿真第五章
第五章控制系统模型的建立控制系统模型控制系统的典型连接系统模型的连续化与离散化1控制系统模型1.1控制系统的组成符号及术语输入信号R:系统的外部输入量,即系统的给定值。输出信号C:系统的输出量,即系统被控量。主反馈信号B:主反馈环节的输出信号。偏差信号E:输入信号与主反馈信号之差e=r-b。控制信号M:控制器的输出量。干扰信号N:内部和外部的干扰量。控制器G1:系统中承担信号放大、传动和执行作用的装置。被控对象G2:系统中的控制对象。反馈环节H:用于检测输出状况的测量装置。前向通道:从系统输入端到输出端的正向传输通道,且每个节点只通一次。反馈通道:从输出端c反馈到输入端b的传输通道。反馈回路:信号从前向通道与反馈通道连续传输的闭合回路。比较环节:在系统中进行信号叠加的作用点,以产生偏差信号。在控制系统仿真中,主要用四种形式的数学模型:传递函数模型、零极点模型、状态方程模型和结构图模型。1.2传递函数模型(tf模型)对系统的微分方程在零初始条件下做拉氏变换,则可得系统的传递函数(SISO)对线性时不变(线性定常)系统(LTI)来说,a、b均为常数,a1≠0。num=[bm,bm-1,…,b1,b0]den=[an,an-1,…,a1,a0]注意:构成分子、分母的向量按降幂排列的顺序,缺项部分用0补齐。很多时候,传递函数的分子、分母均为多项式相乘的形式,不能直接写出,可借助多项式运算函数conv()来处理,以便获得分子、分母多项式向量。11101110()mmmmnnnnbsbsbsbGsasasasa例:系统传递函数为:可用下面的语句来输入:num=4*conv([12],conv([166],[166]))den=conv([10],conv([11],conv([11],conv([11],[1325]))))223324(2)(66)()(1)(325)sssGssssss如果是MIMO系统,则用传递矩阵描述。例如:可表示为:num={[1,1];[11]};den={[122];1};2122()11sssGss1.3零极点模型(zpk模型)零极点模型是传递函数的另一种表现形式,其原理是分别对原系统的分子和分母进行因式分解处理,以获得系统的零极点表示形式,对SISO系统:将零点、极点及K值输入即可建立零极点模型:z=[z1,z2,z3,…zm]p=[p1,p2,p3,…pm]k=[k]123123()()()()()()()()()mnkszszszszGsspspspsp函数residue()可将分式多项式分解如下:函数增益k即为原传递函数分子的最高项系数与分母最高项系数的比值。对于给出的传递函数来说,分子分母作因式分解可以通过求出分子、分母多项式的根roots()函数来实现。例:已知系统传递函数:求零极点模型。可表示为:num=[2091]den=[1144];[z,p,k]=residue(num,den)332291()44ssGssss1.4状态方程模型(ss模型)LTI系统的状态方程:例:用ss模型描述两输入两输出系统。可表示为:A=[16910;31268;47911;5121314];B=[46;24;22;10];C=[0021;8022];D=zeros(2,2);.xxuyxuABCD.16910463126824479112251213141000218022xxuyx1.5建立LTI对象控制系统工具箱将LTI系统的各种描述封装成一个对象,即用一个变量来描述。在控制系统工具箱中,有以上讲述的三种对象,即ss对象,tf对象和zpk对象。(1)tf()函数。tf()函数生成传递函数模型,或将零极点模型及状态空间模型转换成传递函数模型。格式为:sys=tf(num,den):生成连续时间系统传递函数模型。sys=tf(num,den,Ts):生成离散时间系统传递函数。tfsys=tf(sys):将任意的LTI对象转换成传递函数模型。(2)ss()函数。ss()函数生成状态空间模型,或者将传递函数及零极点模型转换成状态空间模型。格式为:sys=ss(a,b,c,d):生成连续系统的状态空间模型。sys_ss=ss(sys):将任意的LTI对象sys转换成状态空间模型(3)zpk()函数。zpk()函数生成零极点函数或者将其他模型转换成零极点模型。格式为:sys=zpk(z,p,k):连续系统的零极点增益模型。sys=zpk(z,p,k,Ts):离散时间系统的零极点增益模型。zsys=zpk(sys):将任意LTI对象转换成零极点增益模型。1.6系统模型的转换MATLAB中用于控制系统模型转换的函数包括一下几种。ss2tf():状态空间模型转换为传递函数模型。ss2zp():状态空间模型转换为零极点增益模型。tf2ss():传递函数模型转换为状态空间模型。tf2zp():传递函数模型转换为零极点增益模型。zp2ss():零极点增益模型转换为状态空间模型。zp2tf():零极点增益模型转换为传递函数模型。例:已知系统传递函数将模型转换为状态方程模型和零极点模型。命令为:num=[064272];den=[16116];[A,B,C,D]=tf2ss(num,den)[z,p,k]=tf2zp(num,den)23264272()6116ssGssss程序执行后得到的状态方程模型为:零极点增益模型G(s)为:6(3)(4)(1)(2)(3)sssss.61161()100()0()0100()64272()xtxtutytxt给定系统的状态空间描述如下所示:要求将状态空间模型转换为传递函数模型和零极点模型。命令A=[01;1-2];B=[0;1];C=[1,3];D=[1];[num,den]=ss2tf(A,B,C,D)[z,p,k]=ss2zp(A,B,C,D).01012113xxuyxu已知系统的零极点模型如下所示:求其传递函数模型和状态空间模型。命令和输出结果为:z=[-3];p=[-1,-2,-5];k=6;[num,den]=zp2tf(z,p,k)[a,b,c,d]=zp2ss(z,p,k)6(3)()(1)(2)(5)sGssss已知系统的部分分式如下所示:求其状态传递函数模型命令r=[-0.25i,0.25i,-2];p=[2i,-2i,-1];k=2;[num,den]=residue(r,p,k)注意余式一定要与极点相对应。0.250.252()2221iiGssisis2控制系统的典型连接MATLAB中既可以采用运算符重载的方法,又提供了大量的函数来建立控制系统模型,并可进行并联、级(串)联、反馈和单位反馈连接等。2.1系统模型的连接可以对LTI对象进行加法、减法和串并联的运算,这样的运算是通过运算符重载的方法得以实现的。在运算中,如果有不同数据类型的对象,系统先将级别低的转化为级别最高的那一种,再进行运算。定义3种LTI对象的运算级别如下:sszpktf在具体的使用上,要么在运算中先将不同对象强制转换为同一类型,要么在运算后将结果统一转换为所需类型。请看下例(sys1与sys2为不同对象类型):sys=sys1+tf(sys2)它等效于sys=sys1+sys2tf(sys)LTI对象类型的算术运算主要有加法、减法、乘法与求逆。其中加减法相当于系统并联,乘法相当于系统串连,求逆则是求出系统的逆系统。2.2连接函数除了运算符连接外,在MATLAB中,也提供了子系统的连接处理函数,它们与对应的运算符连接方式等效。series()函数:系统串连实现。格式为:sys=series(sys1,sys2)parallel()函数:系统并联实现。格式为:sys=parallel(sys1,sys2)feedback()函数:系统反馈连接。格式为:sys=feedback(sys1,sys2)例:两个子系统如下所示按反馈方式连接,求闭环系统的传递函数。命令和输出结果为:num1=[251];den1=[123];num2=[510];den2=[110];[num,den]=feedback(num1,den1,num2,den2)printsys(num,den)222515(2)()()2310sssgshssssnum1=[251];den1=[123];sys1=tf(num1,den1);num2=[510];den2=[110];sys2=tf(num2,den2);sys=feedback(sys1,sys2)控制系统方框图如图所示,(1)求此系统的传递函数;(2)求该系统的特征值并判断其稳定性;(3)求该系统的单位阶跃响应曲线。(1)G1=tf([1],[0.51]);G2=tf([1],[122]);H1=2;H2=tf([0.51],[0.21]);GH1=feedback(G2,H2);G=GH1*G1;GH=feedback(G,H1)(2)[A,B,C,D]=tf2ss(GH.num{1},GH.den{1});eig(A)如果A矩阵的所有特征值实部小于0,则系统稳定。(3)step(GH)2.3延迟系统的模型pade():求取时间延迟环节近似传递函数其中n≤6阶的pade近似的系数pi在下表中给出23121,231211()()(1)()2()1()()()2nnnnnnspspspspsspspsps表pade近似系数表MATLAB中,pade()函数的调用格式[np,dp]=pade(tau,n),其中tau为延迟时间,n为pade近似的阶次。Pade近似后得到的有理传递函数模型的分子、分母系数分别在np,dp变量中返回。阶次np1P2P3P4P510000021/12000031/101/12000043/281/841/16800051/91/721/10081/30240065/441/661/7921/158401/665280例:求阶跃响应响应。den=[110355024];num=[172424];g=tf(num,den)tau=0.5;y1=[];t=0:0.1:10;fori=1:5[np,dp]=pade(tau,i)g1=tf(np,dp);gg=g*g1;ggg=feedback(gg,1)[y,t,x]=step(ggg,t);y=y';y1=[y1;y];endplot(t,y1)320.5043272424()(),()()110355024sssssGsGseeGcsHsssss,()()()1()()()()scoconGsGsesGsGsHsPsden=[110355024];num=[172424];g=tf(num,den)tau=0.5;y1=[];t=0:0.1:10;fori=1:5[np,dp]=pade(tau,i)g1=tf(np,dp);gg=feedback(g,g1)set(gg,'Td',tau)[y,t,x]=step(gg,t);y=y';y1=[y1;y];endplot(t,y1)在初始时刻段pade近似并不精确,为了消除初始时间段pade的振荡,在实际应用中,一般只对分母中的延迟项进行pade近似,近似的系统闭环传函为:{3系统模型的连续化与离散化控制系统工具箱中提供了
本文标题:matlab仿真第五章
链接地址:https://www.777doc.com/doc-7028069 .html