您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > Matlab基础第六章
6.1线性连续系统的描述1状态空间描述法状态空间描述法是使用状态方程模型来描述控制系统,MATLAB中状态方程模型的建立使用ss和dss命令。语法:G=ss(a,b,c,d)%由a、b、c、d参数获得状态方程模型G=dss(a,b,c,d,e)%由a、b、c、d、e参数获得状态方程模型第6章线性控制系统分析与设计2传递函数描述法语法:G=tf(num,den)%由传递函数分子分母得出说明:num为分子向量,num=[b1,b2,…,bm];den为分母向量,den=[a1,a2,…,an-1,an]。MATLAB中使用zpk命令可以来实现零极点模型。语法:G=zpk(z,p,k)%由零点、极点和增益获得说明:z为零点列向量;p为极点列向量;k为增益。【例】得出二阶系统的零极点,并得出传递函数。z=roots(num)z=Emptymatrix:0-by-1p=roots(den)p=-0.7070+0.7072i-0.7070-0.7072izpk(z,p,1)Zero/pole/gain:1-------------------(s^2+1.414s+1)3零极点描述法部分分式法是将传递函数表示成部分分式或留数形式:【例】将传递函数转换成部分分式法,得出各系数。语法:[r,p,k]=residue(num,den)r=0-0.7070i0+0.7070ip=-0.7070+0.7072i-0.7070-0.7072ik=[]k(s)psrpsrpsrG(s)nn22114部分分式法1.状态空间描述法G=ss(a,b,c,d,Ts)%由a、b、c、d参数获得状态方程模型G=dss(a,b,c,d,e,Ts)%由a、b、c、d、e参数获得状态方程模型说明:Ts为采样周期,为标量,当采样周期未指明可以用-1表示。2.脉冲传递函数描述法G=tf(num,den,Ts)%由分子分母得出脉冲传递函数说明:Ts为采样周期,为标量,当采样周期未指明可以用-1表示,自变量用'z'表示。6.2线性离散系统的描述【例】创建离散系统脉冲传递函数。num1=[0.50];den=[1-1.50.5];G1=tf(num1,den,-1)Transferfunction:0.5z-----------------z^2-1.5z+0.5Samplingtime:unspecified21120.5z1.5z10.5z0.51.5zz0.5zG(z)MATLAB中还可以用filt命令产生脉冲传递函数。语法:G=filt(num,den,Ts)%由分子分母得出脉冲传递函数说明:Ts为采样周期,当采样周期未指明Ts可以省略,也可以用-1表示,自变量用'z-1'表示。【例】使用filt命令产生脉冲传递函数。num2=[00.5];den=[1-1.50.5];G2=filt(num2,den)Transferfunction:0.5z^-1-----------------------1-1.5z^-1+0.5z^-2Samplingtime:unspecified程序说明:用filt命令生成的脉冲传递函数的自变量不是z而是z-1。3.零极点增益描述法离散系统的零极点增益用zpk命令实现。语法:G=zpk(z,p,k,Ts)%由零极点得出脉冲传递函数【例6】使用zpk命令产生零极点增益传递函数。G3=zpk([0],[0.51],0.5,-1)Zero/pole/gain:0.5z-------------(z-0.5)(z-1)Samplingtime:unspecified6.3.1连续系统模型之间的转换6.3线性系统模型之间的转换函数调用格式功能tf2ss[a,b,c,d]=tf2ss(num,den)传递函数转换为状态空间tf2zp[z,p,k]=tf2zp(num,den)传递函数转换为零极点描述ss2tf[num,den]=ss2tf(a,b,c,d)状态空间转换为传递函数ss2zp[z,p,k]=ss2zp(a,b,c,d)状态空间转换为零极点描述zp2ss[a,b,c,d]=zp2ss(z,p,k)零极点描述转换为状态空间zp2tf[num,den]=zp2tf(z,p,k)零极点描述转换为传递函数表6.1线性系统模型转换函数表6.3.2线性系统模型之间的转换1.系统模型的获得(1)状态空间模型的获得语法:G=ss(传递函数)%由传递函数转换获得G=ss(零极点模型)%由零极点模型转换获得(2)传递函数的获得语法:G=tf(状态方程模型)%由状态空间转换G=tf(零极点模型)%由零极点模型转换(3)零极点模型的获得语法:G=zpk(状态方程模型)%由状态方程模型转换G=zpk(传递函数)%由传递函数转换语法:[a,b,c,d]=ssdata(G)%获取状态空间参数[a,b,c,d,e]=dssdata(G)%获取状态空间参数[num,den]=tfdata(G)%获取传递函数参数[z,p,k]=zpkdata(G)%获取零极点参数【例】获取各模型的参数。[a,b,c,d]=ssdata(G1)%获取状态方程参数,显示a,b,c,d[num,den]=tfdata(G2)%获取传递函数参数num=[1x4double][1x4double]den=[1x4double][1x4double][z,p,k]=zpkdata(G)%获取零极点参数注意:tfdata获取的传递函数的参数num和den都是元胞数组。2.模型参数的获取【例】检验模型的类型。class(G)%得出系统模型类型ans=ssisa(G,'tf')%检验系统模型类型ans=03.模型类型的检验表6.2模型类型检验函数表函数调用格式功能classclass(G)得出系统模型的类型isaisa(G,'类型名')判断G是否对应的类型名,是则为1(True)isctisct(G)判断G是否连续时间系统,是则为1(True)isdtisdt(G)判断G是否离散时间系统,是则为1(True)issisoissiso(G)判断G是否SISO系统,是则为1(True)6.4连续系统与离散系统之间的转换1.c2d命令语法:Gd=c2d(G,Ts,method)%以采样周期Ts和method方法转换为离散系统说明:G为连续系统模型;Gd为离散系统模型;Ts为采样周期;method为转换方法,可省略,包括五种:zoh(默认零阶保持器)、foh(一阶保持器)、tustin(双线性变换法)、prewarp(频率预修正双线性变换法)、mached(根匹配法)。2.d2c命令语法:G=d2c(Gd,method)%转换为连续系统说明:method为转换方法可省略,与c2d相似,少了foh(一阶保持器)方法。3.d2d命令语法:Gd2=d2d(Gd1,Ts2)%转换离散系统的采样频率为Ts21.串联结构SISO的串联结构是两个模块串联在一起,如图6.1所示。实现串联结构传递函数的命令:G=G1*G2G=series(G1,G2)u(t)G1(s)G2(s)y(t)图6.1串联结构6.5结构框图的模型表示2.并联结构SISO的并联结构是两个模块并联在一起,如图6.2所示。实现并联结构传递函数的命令:G=G1+G2G=parallel(G1,G2)y(t)u(t)G1(s)G2(s)图6.2并联结构3.反馈结构反馈结构是前向通道和反馈通道模块构成正反馈和负反馈,如图6.3所示。±y(t)u(t)G1(s)G2(s)图6.3反馈结构实现反馈结构传递函数的命令:G=feedback(G1,G2,Sign)说明:Sign用来表示正反馈或负反馈,Sign=-1或省略则表示为负反馈。【例】根据系统的结构框图求出整个系统的传递函数,结构框图如下图所示,其中,12ss1(s)G211s1(s)G212s1(s)G3s1(s)G4程序清单: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)%反馈结构例如,上图的两个并联结构G1和G2,如果G1用状态空间描述,则并联运算的结果也是用状态空间法描述:G1=ss(tf(1,[121]));%状态空间描述G2=tf(1,[11]);G1+G2注意:在进行模型连接时,如果不是同一种描述方式,则按照:状态空间描述法---零极点增益描述法---传递函数法的顺序来确定。G1(s)G2(s)G3(s)-G4(s)-+求取复杂结构框图的数学模型的步骤:(1)将各模块的通路排序编号,画信号流图;(2)建立无连接的数学模型:使用append命令实现各模块未连接的系统矩阵。G=append(G1,G2,G3,…)(3)指定连接关系:写出各通路的输入输出关系矩阵Q,第一列是模块通路编号,从第二列开始的几列分别为进入该模块的所有通路编号;INPUTS变量存储输入信号所加入的通路编号;OUTPUTS变量存储输出信号所在通路编号。(4)使用connect命令构造整个系统的模型。Sys=connect(G,Q,INPUTS,OUTPUTS)如果各模块都使用传递函数,也可以用blkbuild命令建立无连接的数学模型,则第二步修改如下:将各通路的信息存放在变量中:通路数放在nblocks,各通路传递函数的分子和分母分别放在不同的变量中;用blkbuild命令求取系统的状态方程模型。4.复杂的结构框图【例】根据下图所示系统结构框图,求出系统总的传递函数。y(t)u(t)结构框图--1/s1/(s2+s)1/(s2+s)-21/s1/(s+1)4.复杂的结构框图方法一:使用append命令(1)将各模块的通路排序编号,画信号流图。-1/(s+1)7654321信号流图-11/s1/(s2+s)1/(s2+s)-21/s4.复杂的结构框图(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)4.复杂的结构框图(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.复杂的结构框图(4)使用connect命令构造整个系统的模型G=connect(Sys,Q,INPUTS,OUTPUTS)程序分析:用connect命令完成整个系统的传递函数模型。方法二:从第二步开始使用blkbuild命令来实现(2)将各通路的信息存放在变量中nblocks=7;%通路数为7n1=1;d1=[10];%通路1的分子和分母n2=1;d2=[110];n3=1;d3=[110];n4=-2;d4=1;n5=-1;d5=1;n6=1;d6=[10];n7=-1;d7=[11];4.复杂的结构框图程序分析:通路数nblocks为7;各通路传递函数的分子存放在变量ni,分母存放在变量di。用blkbuild命令求取系统的状态方程模型:blkbuildStatemodel[a,b,c,d]oftheblockdiagramhas7inputsand7outputs.程序分析:增广状态方程模型即7条通路的输入输出信号状态模型建立了,存放在a、b、c、d变量中。(3)建立连接矩阵Q指定连接关
本文标题:Matlab基础第六章
链接地址:https://www.777doc.com/doc-4375066 .html