控制理论基础实验教程一基于MATLAB语言目录实验1控制系统的模型建立一、实验目的二、实验原理。三、实验内容7四、实验报告要求.8实验2控制系统的暂态特性分析9一、实验目的.9二、实验原理...9三、实验内容11四、实验报告要求..11实验3根轨迹分析..12一、实验目的...12二、实验原理....12三、实验内容..13四、实验报告要求14..15实验4系统的频率特性分析一、实验目的.15二、实验原理..15三、实验内容.16四、实验报告要求.16实验5控制系统的校正设计17一、实验目的.17二、实验原理.17三、实验内容...17四、实验报告要求..17实验6极点配置与全维状态观测器的设计..19一、实验目的.19二、实验原理.....19三、实验内容.19四、实验报告要求,20参考文献..21I
控制理论基础实验教程—基于 MATLAB 语言 I 目 录 实验 1 控制系统的模型建立.1 一、实验目的.1 二、实验原理.1 三、实验内容.7 四、实验报告要求.8 实验 2 控制系统的暂态特性分析.9 一、实验目的.9 二、实验原理.9 三、实验内容. 11 四、实验报告要求.11 实验 3 根轨迹分析.12 一、实验目的.12 二、实验原理.12 三、实验内容.13 四、实验报告要求.14 实验 4 系统的频率特性分析.15 一、实验目的.15 二、实验原理.15 三、实验内容.16 四、实验报告要求.16 实验 5 控制系统的校正设计.17 一、实验目的.17 二、实验原理.17 三、实验内容.17 四、实验报告要求.17 实验 6 极点配置与全维状态观测器的设计.19 一、实验目的.19 二、实验原理.19 三、实验内容.19 四、实验报告要求.20 参考文献. 21
控制理论基础教程一基于MATLAB语言实验1控制系统的模型建立一、实验目的1.掌握利用MATLAB建立控制系统模型的方法。2.掌握系统的各种模型表述及相互之间的转换关系。3.学习和掌握系统模型连接的等效变换。二、实验原理1.系统模型的MATLAB描述系统的模型描述了系统的输入、输出变量以及内部各变量之间的关系,表征一个系统的模型有很多种,如微分方程、传递函数模型、状态空间模型等。这里主要介绍系统传递函数(TF)模型、零极点增益(ZPK)模型和状态空间(SS)模型的MATLAB描述方法。1)传递函数(TF)模型传递函数是描述线性定常系统输入-输出关系的一种最常用的数学模型,其表达式一般为G(s) -ba"+ba-*+bs*+b(1-1)a,s"+an--s" +.+a,s'+ao在MATLAB中,直接使用分子分母多项式的行向量表示系统,即num=[bm, bm-l, .. bi, bo]den=[an, an-, ... ai, ao]调用f函数可以建立传递函数TF对象模型,调用格式如下:Gtf = tf(num,den)Tfdata函数可以从TF对象模型中提取分子分母多项式,调用格式如下:[num,den] = tfdata(Gtf)返回cell类型的分子分母多项式系数[num,den]=tfdata(Gtf,'v)返回向量形式的分子分母多项式系数例E2-1采用MATLAB建立某一系统的传递函数模型,已知其微分方程为y(4)+3y(3)+8y"+4y'+2y=3u"+2u'+8u解:首先写出描述该系统的传递函数模型的分子分母多项式系数向量:>> num =[3 2 8];>> den =[1 3 8 4 2];然后调用tf函数建立系统模型:I
控制理论基础教程—基于 MATLAB 语言 1 实验 1 控制系统的模型建立 一、实验目的 1. 掌握利用 MATLAB 建立控制系统模型的方法。 2. 掌握系统的各种模型表述及相互之间的转换关系。 3. 学习和掌握系统模型连接的等效变换。 二、实验原理 1. 系统模型的 MATLAB 描述 系统的模型描述了系统的输入、输出变量以及内部各变量之间的关系,表征一个系统的 模型有很多种,如微分方程、传递函数模型、状态空间模型等。这里主要介绍系统传递函数 (TF)模型、零极点增益(ZPK)模型和状态空间(SS)模型的 MATLAB 描述方法。 1)传递函数(TF)模型 传递函数是描述线性定常系统输入-输出关系的一种最常用的数学模型,其表达式一般 为 0 1 1 1 1 0 1 1 1 1 ( ) a s a s a s a b s b s b s b G s n n n n m m m m (1-1) 在 MATLAB 中,直接使用分子分母多项式的行向量表示系统,即 num = [bm, bm-1, . b1, b0] den = [an, an-1, . a1, a0] 调用 tf 函数可以建立传递函数 TF 对象模型,调用格式如下: Gtf = tf(num,den) Tfdata 函数可以从 TF 对象模型中提取分子分母多项式,调用格式如下: [num,den] = tfdata(Gtf) 返回 cell 类型的分子分母多项式系数 [num,den] = tfdata(Gtf,'v') 返回向量形式的分子分母多项式系数 例 E2-1 采用 MATLAB 建立某一系统的传递函数模型,已知其微分方程为 y 3y 8y 4y 2y 3u 2u 8u (4) (3) 解:首先写出描述该系统的传递函数模型的分子分母多项式系数向量: >> num = [3 2 8]; >> den = [1 3 8 4 2]; 然后调用 tf 函数建立系统模型:
控制理论基础教程一基于MATLAB语言>> G = tf(num,den)运行结果为:Transfer function:3s2+2s+8s4+3s3+8s2+4s+22)零极点增益(ZPK)模型传递函数因式分解后可以写成k(s-z,)(s-22)..-(s-zm)(1-2)G(s) =(s- p.)(s-p2)...(s- p.)式中,z,-2,,.称为传递函数的零点,P,P2,…,P,称为传递函数的极点,k为传递系数(系统增益)。在MATLAB中,直接用[zp,k)矢量组表示系统,其中z,p,k分别表示系统的零极点及其增益,即:z[z1,Z2,""",Zm];p=[p1,P2,"",Pa];k=[k];调用zpk函数可以创建ZPK对象模型,调用格式如下:Gzpk = zpk(z,p,k)同样,MATLAB提供了zpkdata命令用来提取系统的零极点及其增益,调用格式如下:[z,p,k]=zpkdata(Gzpk)返回cell类型的零极点及增益[z,p,k]=zpkdata(Gzpk,v)返回向量形式的零极点及增益函数pzmap可用于求取系统的零极点或绘制系统得零极点图,调用格式如下:在复平面内绘出系统模型的零极点图。pzmap(G)[p,z]=pzmap(G返回的系统零极点,不作图。3)状态空间(SS)模型由状态变量描述的系统模型称为状态空间模型,由状态方程和输出方程组成:x=Ax+Bu(1-3)ly=Cx+Du其中:x为n维状态向量;u为r维输入向量;y为m维输出向量:A为nXn方阵,称为系统矩阵;B为nXr矩阵,称为输入矩阵或控制矩阵;C为mXn矩阵,称为输出矩阵;D为m×r矩阵,称为直接传输矩阵。在MATLAB中,直接用矩阵组[A,B,C,D]表示系统,调用ss函数可以创建ZPK对象模2
控制理论基础教程—基于 MATLAB 语言 2 >> G = tf(num,den) 运行结果为: Transfer function: 3 s^2 + 2 s + 8 - s^4 + 3 s^3 + 8 s^2 + 4 s + 2 2)零极点增益(ZPK)模型 传递函数因式分解后可以写成 ( )( ) ( ) ( )( ) ( ) ( ) 1 2 1 2 nm s p s p s p k s z s z s z G s (1-2) 式中, m z ,z , ,z 1 2 称为传递函数的零点, p p pn , , , 1 2 称为传递函数的极点, k 为传递系 数(系统增益)。 在 MATLAB 中,直接用[z,p,k]矢量组表示系统,其中 z,p,k 分别表示系统的零极点 及其增益,即: z=[z1,z2,.,zm]; p=[p1,p2,.,pn]; k=[k]; 调用 zpk 函数可以创建 ZPK 对象模型,调用格式如下: Gzpk = zpk(z,p,k) 同样,MATLAB 提供了 zpkdata 命令用来提取系统的零极点及其增益,调用格式如下: [z,p,k] = zpkdata(Gzpk) 返回 cell 类型的零极点及增益 [z,p,k] = zpkdata (Gzpk,’v’) 返回向量形式的零极点及增益 函数 pzmap 可用于求取系统的零极点或绘制系统得零极点图,调用格式如下: pzmap(G) 在复平面内绘出系统模型的零极点图。 [p,z] = pzmap(G) 返回的系统零极点,不作图。 3)状态空间(SS)模型 由状态变量描述的系统模型称为状态空间模型,由状态方程和输出方程组成: y Cx Du x Ax Bu (1-3) 其中: x 为 n 维状态向量;u 为 r 维输入向量; y 为 m 维输出向量; A 为 n×n 方阵,称为 系统矩阵;B 为 n×r 矩阵,称为输入矩阵或控制矩阵;C 为 m×n 矩阵,称为输出矩阵;D 为 m×r 矩阵,称为直接传输矩阵。 在 MATLAB 中,直接用矩阵组[A,B,C,D]表示系统,调用 ss 函数可以创建 ZPK 对象模
控制理论基础教程一基于MATLAB语言型,调用格式如下:Gss = ss(A,B,C,D)同样,MATLAB提供了ssdata命令用来提取系统的A、B、C、D矩阵,调用格式如下:[A,B,C,D]=ssdata(Gss)返回系统模型的A、B、C、D矩阵例E2-2已知控制系统的状态空间方程如下[o]01x=x+2[2-8-4y=[1 0]x试用MATLAB建立系统模型。解:首先写出系统的A、B、C、D矩阵:>> A =[0 1;-8 -4];>>B=[0;2];>>C=[1 0];>>D = [0];然后调用ss函数建立系统模型:>> Gss = ss(A,B,C,D)运行结果为:a=xl x2xl01x2-8-4b=ul0x12x2c=xIx2y110d=ulyl0Continuous-timemodel3
控制理论基础教程—基于 MATLAB 语言 3 型,调用格式如下: Gss = ss(A,B,C,D) 同样,MATLAB 提供了 ssdata 命令用来提取系统的 A、B、C、D 矩阵,调用格式如下: [A,B,C,D] = ssdata (Gss) 返回系统模型的 A、B、C、D 矩阵 例 E2-2 已知控制系统的状态空间方程如下 y x x x u 1 0 2 0 8 4 0 1 试用 MATLAB 建立系统模型。 解:首先写出系统的 A、B、C、D 矩阵: >> A = [0 1;-8 -4]; >> B = [0;2]; >> C = [1 0]; >> D = [0]; 然后调用 ss 函数建立系统模型: >> Gss = ss(A,B,C,D) 运行结果为: a = x1 x2 x1 0 1 x2 -8 -4 b = u1 x1 0 x2 2 c = x1 x2 y1 1 0 d = u1 y1 0 Continuous-time model
控制理论基础教程一基于MATLAB语言4)三种模型之间的转换上述三种模型之间可以互相转换,MATLAB实现方法如下TF模型→ZPK模型:zpk(SYS)或tf2zp(num,den)TF模型-SS模型:ss(SYS)或tf2ss(num,den)ZPK模型→TF模型:tf(SYS)或zp2tf(z,p,k)ZPK模型→SS模型:ss(SYS)或zp2ss(z,p,k)SS模型-→TF模型:tf(SYS)或ss2t(A,B,C,D)SS模型→ZPK模型:zpk(SYS)或ss2zp(A,B,C,D)例E2-3已知某系统的传递函数模型,试建立其零极点增益模型,并绘制零极点图。其传递函数为s2 +9s+20G(s) =s+6s2+11s+6解:首先建立系统的传递函数模型描述:>> num =[1 9 20];>> den =[1 6 11 6];>> Gtf = tf(num,den)运行结果为:Transfer function:s2+9 s+20s^3+6s2+11s+6然后调用zpk函数,实现从传递函数模型到零极点增益模型的转换:>> Gzpk = zpk(Gtf)运行结果为:Zero/pole/gain:(s+5) (s+4)(s+3) (s+2) (s+1)调用pzmap函数绘制系统零极点图,结果如图1-1所示:>>pzmap(Gzpk);>> grid on4
控制理论基础教程—基于 MATLAB 语言 4 4)三种模型之间的转换 上述三种模型之间可以互相转换,MATLAB 实现方法如下 TF 模型→ZPK 模型:zpk(SYS)或 tf2zp(num,den) TF 模型→SS 模型:ss(SYS)或 tf2ss(num,den) ZPK 模型→TF 模型:tf(SYS)或 zp2tf(z,p,k) ZPK 模型→SS 模型:ss(SYS)或 zp2ss(z,p,k) SS 模型→TF 模型:tf(SYS)或 ss2tf(A,B,C,D) SS 模型→ZPK 模型:zpk(SYS)或 ss2zp(A,B,C,D) 例 E2-3 已知某系统的传递函数模型,试建立其零极点增益模型,并绘制零极点图。其 传递函数为 6 11 6 9 20 ( ) 3 2 2 s s s s s G s 解:首先建立系统的传递函数模型描述: >> num = [1 9 20]; >> den = [1 6 11 6]; >> Gtf = tf(num,den) 运行结果为: Transfer function: s^2 + 9 s + 20 - s^3 + 6 s^2 + 11 s + 6 然后调用 zpk 函数,实现从传递函数模型到零极点增益模型的转换: >> Gzpk = zpk(Gtf) 运行结果为: Zero/pole/gain: (s+5) (s+4) - (s+3) (s+2) (s+1) 调用 pzmap 函数绘制系统零极点图,结果如图 1-1 所示: >> pzmap(Gzpk); >> grid on