《北京理工大学信息类自动控制原理实验》由会员分享,可在线阅读,更多相关《北京理工大学信息类自动控制原理实验(18页珍藏版)》请在金锄头文库上搜索。
1、 控制理论基础实验教程控制理论基础实验教程 (基于(基于 MATLAB 语言)语言) 二一二一七七年年五五月月 控制理论基础实验教程基于 MATLAB 语言 目目 录录 实验 1 控制系统的模型建立 1 一、实验目的 1 二、实验原理 1 三、实验内容 7 四、实验报告要求 8 实验 2 控制系统的暂态特性分析 .9 一、实验目的 9 二、实验原理 9 三、实验内容 11 四、实验报告要求 11 实验 4 系统的频率特性分析 15 一、实验目的 15 二、实验原理 15 三、实验内容 16 四、实验报告要求 16 实验 6 极点配置与全维状态观测器的设计 . 19 一、实验目的 19 二、实验
2、原理 19 三、实验内容 19 四、实验报告要求 20 参考文献 . 21 I 控制理论基础教程基于 MATLAB 语言 实验实验 1 控制系统的模型建立控制系统的模型建立 一、实验目的一、实验目的 1. 掌握利用 MATLAB 建立控制系统模型的方法。 2. 掌握系统的各种模型表述及相互之间的转换关系。 3. 学习和掌握系统模型连接的等效变换。 二、实验原理二、实验原理 1. 系统模型的系统模型的 MATLAB 描述描述 系统的模型描述了系统的输入、输出变量以及内部各变量之间的关系,表征一个系统的模型有很多种,如微分方程、传递函数、状态空间方程等。这里主要介绍系统多项式型传递函数(TF)模型
3、、零极点型传递函数(ZPK)模型和状态空间方程(SS)模型的 MATLAB 描述方法。 1)传递函数()传递函数(TF)模型)模型 传递函数是描述线性定常系统输入-输出关系的一种最常用的数学模型,其表达式一般 为 G(s) bm sm bm1sm1 b1s1 b0 (1-1) an sn an1sn1 a1s1 a0 在 MATLAB 中,直接使用行向量分子分母多项式的表示系统,即 num = bm, bm-1, b1, b0 den = an, an-1, a1, a0 调用 tf 函数可以建立传递函数 TF 对象模型,调用格式如下: Gtf = tf(num,den) Tfdata 函数可
4、以从 TF 对象模型中提取分子分母多项式,调用格式如下: num,den = tfdata(Gtf)返回 cell 类型的分子分母多项式系数 num,den = tfdata(Gtf,v) 返回向量形式的分子分母多项式系数 例例 E2-1 采用 MATLAB 建立某一系统的传递函数模型,已知其微分方程为 y(4) 3y(3) 8y 4 y 2 y 3u 2u 8u 解:解:首先写出描述该系统的传递函数模型的分子分母多项式系数向量: num = 3 2 8; den = 1 3 8 4 2; 然后调用 tf 函数建立系统模型: 1 控制理论基础教程基于 MATLAB 语言 G = tf(num,
5、den) 运行结果为: Transfer function: 3 s2 + 2 s + 8 - s4 + 3 s3 + 8 s2 + 4 s + 2 2)零极点增益()零极点增益(ZPK)模型)模型 传递函数因式分解后可以写成 1212()().()( )()().()mnk szszszG sspspsp(1-2) 式中, z1, z2 , , zm 称为传递函数的零点, p1, p2 , , pn 称为传递函数的极点,k 为传递系数(系统增益)。 在 MATLAB 中,直接用z,p,k矢量组表示系统,其中 z,p,k 分别表示系统的零极点及其增益,即: z=z1,z2,zm; p=p1,p
6、2,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)模型)
7、模型 由状态变量描述的系统模型称为状态空间模型,由状态方程和输出方程组成: xAxBu yCxDu(1-3) 其中:x 为 n 维状态向量;u 为 r 维输入向量; y 为 m 维输出向量; A 为 nn 方阵,称为系统矩阵;B 为 nr 矩阵,称为输入矩阵或控制矩阵;C 为 mn 矩阵,称为输出矩阵;D 为 mr 矩阵,称为直接传输矩阵。 在 MATLAB 中,直接用矩阵组A,B,C,D表示系统,调用 ss 函数可以创建 SS 对象模2 控制理论基础教程基于 MATLAB 语言 型,调用格式如下: Gss = ss(A,B,C,D) 同样,MATLAB 提供了 ssdata 命令用来提取系统
8、的 A、B、C、D 矩阵,调用格式如下: A,B,C,D = ssdata (Gss) 返回系统模型的 A、B、C、D 矩阵 例例 E2-2 已知控制系统的状态空间方程如下 01084210xxuyx 试用 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 10 d = u1 y1 0 3 控
9、制理论基础教程基于 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)或 ss2tf(A,B,C,D) SS 模型ZPK 模型:zpk(SYS)或 ss2zp(A,B,C,D) 例例 E2-3 已知某系统的传递函
10、数模型,试建立其零极点增益模型,并绘制零极点图。其 传递函数为 232920( )6116ssG ssss解解:首先建立系统的传递函数模型描述: num = 1 9 20; den = 1 6 11 6; Gtf = tf(num,den) 运行结果为: Transfer function: s2 + 9 s + 20 - s3 + 6 s2 + 11 s + 6 然后调用 zpk 函数,实现从传递函数模型到零极点增益模型的转换: Gzpk = zpk(Gtf) 运行结果为: Zero/pole/gain: (s+5) (s+4) - (s+3) (s+2) (s+1) 调用 pzmap 函数
11、绘制系统零极点图,结果如图 1-1 所示: pzmap(Gzpk); grid on 4 控制理论基础教程基于 MATLAB 语言 图 1-1 系统零极点图 2. 系统模型的连接系统模型的连接 在实际应用中,整个控制系统是由多个单一的模型组合而成,基本的组合方式有串联连 接、并联连接和反馈连接。图 1-2 分别为串联连接、并联连接和反馈连接的结构框图和等效总传递函数。 G1(s)G2(s)U(s)Y(s)G(s)=G1(s)G2(s)G1(s)G2(s)U(s)Y(s)G(s)=G1(s)+G2(s)+(a)串联系统 (b)并联系统 G(s)H(s)U(s)Y(s)T(s)=G(s)/(1+G
12、(s)H(s)-(c)反馈连接 图 1-2 串联连接、并联连接和反馈连接 5 控制理论基础教程基于 MATLAB 语言 在 MATLAB 中可以直接使用“*”运算符实现串联连接,使用“”运算符实现并联连接。反馈系统传递函数求解可以通过命令 feedback 实现,调用格式如下: T = feedback(G,H) T = feedback(G,H,sign) 其中,G 为前向传递函数,H 为反馈传递函数;当 sign = +1 时,GH 为正反馈系统传递 函数;当 sign = -1 时,GH 为负反馈系统传递函数;默认值是负反馈系统。 例例 E2-3 两个系统串联,已知两个系统传递函数分别为
13、 G1 (s) s 3 G2(s) 3s2 s 4 s 1s 2 5s2 12s 3 解:解:首先分别建立两个系统的传递函数模型: num1 = 1 3; den1 = conv(1 1,1 2); %使用 conv 命令实现多项式相乘 G1=tf(num1,den1) %创建 G1(s)描述的传递函数模型 Transfer function: s + 3 - s2 + 3 s + 2 num2 = 3 1 4; den2 = 5 12 3; G2 = tf(num2,den2) %创建 G2(s)描述的传递函数模型 Transfer function: 3 s2 + s + 4 - 5 s2
14、 + 12 s + 3 使用“*”运算符实现串联连接: G = G2*G1 运行结果为: Transfer function: 3 s3 + 10 s2 + 7 s + 12 - 5 s4 + 27 s3 + 49 s2 + 33 s + 6 6 控制理论基础教程基于 MATLAB 语言 三、实验内容三、实验内容 1. 已知控制系统的传递函数如下 G(s) 2s2 18s 40 s3 5s2 8s 6 试用 MATLAB 建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。 2. 已知控制系统的状态空间方程如下 0100000100000101234110200xxuyx 试用 MATLAB 建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。 3. 已知三个系统的传递函数分别为 G1 (s) 2s2 6s 5 s3 4s2 5s 2 G2 (s) s2 4s 1 s3 9s2 8s G3 (s) 5(s 3)(s 7) (s 1)(s 4)(s 6) 试用 MATLAB 求上述三个系统串联后的总传递函数。