线性控制系统分析与设计6.1.2传递函数描述法MATLAB中使用tf命令来建立传递函数。语法:G=tf(num,den)%由传递函数分子分母得出说明:num为分子向量,num=[b1,b2,…,bm,bm+1];den为分母向量,den=[a1,a2,…,an-1,an]。【例6.1续】将二阶系统描述为传递函数的形式。num=1;den=[11.4141];G=tf(num,den)%得出传递函数6.1.3零极点描述法MATLAB中使用zpk命令可以来实现由零极点得到传递函数模型。语法:G=zpk(z,p,k)%由零点、极点和增益获得说明:z为零点列向量;p为极点列向量;k为增益。【例6.1续】得出二阶系统的零极点,并得出传递函数。z=roots(num)p=roots(den)zpk(z,p,1)程序分析:roots函数可以得出多项式的根,零极点形式是以实数形式表示的。部分分式法是将传递函数表示成部分分式或留数形式:k(s)psrpsrpsrG(s)nn2211【例6.1续】将传递函数转换成部分分式法,得出各系数。[r,p,k]=residue(num,den)2.脉冲传递函数描述法脉冲传递函数也可以用tf命令实现。语法:G=tf(num,den,Ts)%由分子分母得出脉冲传递函数说明:Ts为采样周期,为标量,当采样周期未指明可以用-1表示,自变量用'z'表示。【例6.2续】创建离散系统脉冲传递函数21120.5z1.5z10.5z0.51.5zz0.5zG(z)。num1=[0.50];den=[1-1.50.5];G1=tf(num1,den,-1)3.零极点增益描述法离散系统的零极点增益用zpk命令实现。语法:G=zpk(z,p,k,Ts)%由零极点得出脉冲传递函数【例6.2续】使用zpk命令产生零极点增益传递函数。G3=zpk([0],[0.51],0.5,-1)6.2线性系统模型之间的转换6.2.1连续系统模型之间的转换控制系统工具箱中有各种不同模型转换的函数,如下表6.1所示为线性系统模型转换的函数。表6.1线性系统模型转换函数表函数调用格式功能tf2ss[a,b,c,d]=tf2ss(num,den)传递函数转换为状态空间tf2zp[z,p,k]=tf2zp(num,den)传递函数转换为零极点描述ss2tf[num,den]=ss2tf(a,b,c,d,iu)状态空间转换为传递函数ss2zp[z,p,k]=ss2zp(a,b,c,d,iu)状态空间转换为零极点描述zp2ss[a,b,c,d]=zp2ss(z,p,k)零极点描述转换为状态空间zp2tf[num,den]=zp2tf(z,p,k)零极点描述转换为传递函数2.get命令和set命令(1)get命令可以获取模型对象的所有属性语法:get(G)%获取对象的所有属性值get(G,’PropertyName’,…)%获取对象的某些属性值说明:G为模型对象名;’PropertyName’为属性名。(2)set命令用于修改对象属性名语法:set(G,’PropertyName’,PropertyValue,…)%修改对象的某些属性值【例6.5】已知二阶系统的传递函数11.414ss1G(s)2,获取其传递函数模型的属性,并将传递函数修改为12zz12。num=1;den=[11.4141];G=tf(num,den);get(G)%获取所有属性set(G,'den',[121],'Variable','s')%设置属性G6.3结构框图的模型表示1.串联结构SISO的串联结构是两个模块串联在一起,如图6.1所示。实现串联结构传递函数的命令:G=G1*G2G=series(G1,G2)2.并联结构SISO的并联结构是两个模块并联在一起,如图6.2所示。实现并联结构传递函数的命令:G=G1+G2G=parallel(G1,G2)3.反馈结构反馈结构是前向通道和反馈通道模块构成正反馈和负反馈,如图6.3所示。实现反馈结构传递函数的命令:G=feedback(G1,G2,Sign)说明:Sign用来表示正反馈或负反馈,Sign=-1或省略则表示为负反馈。【例6.6】根据系统的结构框图求出整个系统的传递函数,结构框图如图6.4所示,其中12ss1(s)G21,1s1(s)G2,12s1(s)G3,s1(s)G4。u(t)G1(s)G2(s)y(t)图6.1串联结构±y(t)u(t)G1(s)G2(s)图6.3反馈结构y(t)u(t)G1(s)G2(s)图6.2并联结构G1=tf(1,[121])G2=tf(1,[11]);G3=tf(1,[21]);G4=tf(1,[10]);G12=G1+G2%并联结构G34=G3-G4%并联结构G=feedback(G12,G34,-1)%反馈结构4.复杂的结构框图求取复杂结构框图的数学模型的步骤:(1)将各模块的通路排序编号;(2)建立无连接的数学模型:使用append命令实现各模块未连接的系统矩阵。G=append(G1,G2,G3,…)(3)指定连接关系:写出各通路的输入输出关系矩阵Q,第一列是模块通路编号,从第二列开始的几列分别为进入该模块的所有通路编号;INPUTS变量存储输入信号所加入的通路编号;OUTPUTS变量存储输出信号所在通路编号。(4)使用connect命令构造整个系统的模型。Sys=connect(G,Q,INPUTS,OUTPUTS)如果各模块都使用传递函数,也可以用blkbuild命令建立无连接的数学模型,则第二步修改如下:将各通路的信息存放在变量中:通路数放在nblocks,各通路传递函数的分子和分母分别放在不同的变量中;用blkbuild命令求取系统的状态方程模型。【例6.7】根据图6.5所示系统结构框图,求出系统总的传递函数。方法一:使用append命令图6.4结构框图-G1(s)G2(s)G3(s)-G4(s)y(t)u(t)图6.5结构框图--1/s1/(s2+s)1/(s2+s)-21/s1/(s+1)(1)将各模块的通路排序编号,如图6.6所示。(2)使用append命令实现各模块未连接的系统矩阵G1=tf(1,[10]);G2=tf(1,[110]);G3=tf(1,[110]);G4=tf(-2,1);G5=tf(-1,1);G6=tf(1,[10]);G7=tf(-1,[11]);Sys=append(G1,G2,G3,G4,G5,G6,G7)程序分析:将每个模块用append命令放在一个系统矩阵中,可以看到Sys模块存放了七个模块的传递函数,为了节省篇幅在此未列出完整的Sys模块。(3)指定连接关系Q=[165;%通路1的输入信号为通路6和通路5217;%通路2的输入信号为通路1和通路7320;%通路3的输入信号为通路2430;540;620;730;]INPUTS=1;%系统总输入由通路1输入OUTPUTS=4;%系统总输出由通路4输出程序分析:Q矩阵建立了各通路之间的关系,共有7行;每行的第一列为通路号,从第二列开始为各通路输入信号的通路号;INPUTS变量存放系统输入信号的通路号;OUTPUTS变量存放系统输出信号的通路号。(4)使用connect命令构造整个系统的模型G=connect(Sys,Q,INPUTS,OUTPUTS)程序分析:用connect命令完成整个系统的传递函数模型。7654321图6.6信号流图-11/s1/(s2+s)1/(s2+s)-21/s-1/(s+1)