#1_用MATLAB处理线性系统数学模型
实验一实验一用用 MATLABMATLAB处理线性系统数学模型处理线性系统数学模型 [ [说明说明] ] 一个控制系统主要由被控对象、测量装置、控制器和执行器四大部分构成。MATLAB软 件的应用对提高控制系统的分析、 设计和应用水平起着十分重要的作用。 采用 MATLAB软件 仿真的关键问题之一是在 MATLAB 软件平台上怎样正确表示被控对象的数学模型。 [实验目的实验目的] 1.了解 MATLAB 软件的基本特点和功能; 2.掌握线性系统被控对象传递函数数学模型在 MATLAB 环境下的表示方法及转换; 3.掌握多环节串联、并联、反馈连接时整体传递函数的求取方法; 4. 掌握在 SIMULINK 环境下系统结构图的形成方法及整体传递函数的求取方法; 5.了解在 MATLAB 环境下求取系统的输出时域表达式的方法。 [实验指导实验指导] 一、被控对象模型的建立一、被控对象模型的建立 在线性系统理论中,一般常用的描述系统的数学模型形式有: (1)传递函数模型——有理多项式分式表达式 (2)传递函数模型——零极点增益表达式 (3)状态空间模型(系统的内部模型) 这些模型之间都有着内在的联系,可以相互进行转换。 1 1、传递函数模型——有理多项式分式表达式、传递函数模型——有理多项式分式表达式 设系统的传递函数模型为 C(s)b m sm b m1 sm1 . b 1 s b 0G(s) nn1R(s)a n s a n1 s . a 1 s a 0 对线性定常系统,式中 s 的系数均为常数,且 an不等于零。 这时系统在 MATLAB中可以方便地由分子和分母各项系数构成的两个向量唯一地确定, 这两个向量常用 num 和 den 表示。 num=[bm,bm-1,…,b1,b0] den=[an,an-1,…,a1,a0] 注意:注意: 它们都是按 s 的降幂进行排列的。 分子应为 m 项, 分母应为 n 项, 若有空缺项 (系 数为零的项) ,在相应的位置补零。 然后写上传递函数模型建立函数:sys=tf(num,den)。这个传递函数便在 MATLAB平台中 被建立,并可以在屏幕上显示出来。 12s324s220 例例 1-11-1:: 已知系统的传递函数描述如下: G(s) 42s 4s36s22s2 在 MATLABMATLAB命令窗口命令窗口(Command Window)键入以下程序: num=[12,24,0,20]; den=[2 4 6 2 2]; sys=tf(num,den) 回车后显示结果: Transfer function: 12 s^3 + 24 s^2 + 20 --------------------------------------- 2 s^4 + 4 s^3 + 6 s^2 + 2 s + 2 并同时在 MATLAB中建立了这个相应的有理多项式分式形式的传递函数模型有理多项式分式形式的传递函数模型。 举例举例 1-21-2::已知系统的传递函数描述如下: 4(s2)(s26s6)2 G(s) s(s1)3(s33s22s5) 其中,多项式相乘项,可借助多项式乘法函数 conv 来处理。 在 MATLABMATLAB命令窗口命令窗口 键入以下程序: num=4*conv([1,2],conv([1,6,6],[1,6,6])); den=conv([1,0],conv([1,1],conv([1,1],conv([1,1],[1,3,2,5])))); sys=tf(num,den) 回车后显示结果: Transfer function: 4 s^5 + 56 s^4 + 288 s^3 + 672 s^2 + 720 s + 288 --------------------------------------------------------------------------- s^7 + 6 s^6 + 14 s^5 + 21 s^4 + 24 s^3 + 17 s^2 + 5 s 同时在 MATLAB中建立了这个有理多项式分式形式的传递函数模型有理多项式分式形式的传递函数模型。 2.传递函数模型——零极点增益模型传递函数模型——零极点增益模型 ( (s-s- z z 1 1 ) )( (s-s- z z 2 2 ) ). . . . . . ( (s-s- z z m m ) ) G G ( (s s)=)= K K 零极点增益模型为:( (s-s- p p 1 1 ) )( (s-s- p p 2 2 ) ). . . . . . ( (s-s- p p n n ) ) 其中:K 为零极点增益,zi为零点,pj为极点。 该模型 在 MATLAB中,可用[z,p,k][z,p,k]矢量组表示,即 z=[z 1,z2,…,zm]; p=[p 1,p2,.,pn]; k=[K]; 然后在 MATLAB中写上零极点增益形式的传递函数模型建立函数:sys=zpk(z,p,k)sys=zpk(z,p,k)。 这个零极点增益模型便在 MATLAB平台中被建立。 6(s 3) 举例举例 1-31-3:: 已知系统的零极点增益模型:G(s) (s 1)(s 2)(s 5) 在 MATLABMATLAB命令窗口命令窗口 键入以下程序: z=[-3]; p=[-1,-2,-5]; k=6; sys=zpk(z,p,k) Zero/pole/gain: 6 (s+3) ----------------- (s+1) (s+2) (s+5) 则在 MATLAB中建立了这个零极点增益的模型。 3 3.状态空间模型.状态空间模型 状态方程与输出方程的组合称为状态空间表达式,又称为动态方程,如下: Ax Bux y Cx Du 则在 MATLAB中建立状态空间模型的程序如下: A=[A]; B=[B]; C=[C]; D=[D]; sys=ss(A,B,C,D) 二、不同形式模型之间的相互转换二、不同形式模型之间的相互转换 不同形式之间不同形式之间模型转换的函数: (1)tf2zp:多项式传递函数模型转换为零极点增益模型。 格式为:[z,p,k]=tf2zp(num,den) (2)zp2tf: 零极点增益模型转换为多项式传递函数模型。 格式为:[num,den]=zp2tf(z,p,k)(3)ss2tf: 状态空间模型转换为多项式传 递函数模型。 格式为:[num,den]=ss2tf(a,b,c,d) (4)tf2ss:多项式传递函数模型转换为状态空间模型。 格式为:[a,b,c,d]=tf2ss(num,den) (4)zp2ss:零极点增益模型转换为状态空间模型。 格式为:[a,b,c,d]=zp2ss(z,p,k) (5)ss2zp:状态空间模型转换为零极点增益模型。 格式为:[z,p,k]=ss2zp(a,b,c,d) 三、环节串联、并联、反馈连接时等效的整体传递函数的求取三、环节串联、并联、反馈连接时等效的整体传递函数的求取 1 1、串联、串联 这里: 在 MA