《控制工程基础》
MATLAB仿真实验指导书
邵阳学院机械与能源工程系机制教研室
2009年8月
目录
实验一 控制系统应用软件学习使用及典型控制系统建模分析 .......... 1 实验二 一、二阶系统时域特性分析 ................................ 6 实验三 控制系统频域特性分析 .................................... 8 实验四 控制系统稳定性仿真 ..................................... 11 实验五 控制系统校正及PID仿真 ................................. 2
15
实验一 控制系统应用软件学习使用及典型控制系统建模分析
一、 实验目的
1. 2. 3. 4.
掌握MATLAB软件使用的基本方法;
熟悉MATLAB的数据表示、基本运算和程序控制语句; 熟悉MATLAB程序设计的基本方法。 学习用MATLAB创建控制系统模型。
二、 实验原理
1. MATLAB的基本知识
MATLAB是矩阵实验室(Matrix Laboratory)之意。MATLAB具有卓越的数值
计算能力,具有专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。MATLAB的基本数据单位是矩阵,它的指令表达式与数学,与工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多。 当MATLAB 程序启动时,一个叫做MATLAB 桌面的窗口出现了。默认的MATLAB 桌面结构如下图所示。
在MATLAB 集成开发环境下,它集成了管理文件、变量和用程序的许多编程工具。在MATLAB 桌面上可以得到和访问的窗口主要有:
命令窗口(The Command Window):在命令窗口中,用户可以在命令行提示符(>>)后输入一系列的命令,回车之后执行这些命令,执行的命令也是在这个窗口中实现的。 命令历史窗口(The Command History Window):用于记录用户在命令窗口(The Command Windows),其顺序是按逆序排列的。即最早的命令在排在最下面,最后的命令排在最上面。这些命令会一直存在下去,直到它被人为删除。双击这些命令可使它再次执行。要在历史命令窗口删除一个或多个命令,可以先选择,然后单击右键,这时就有一个弹出菜单出现,选择Delete Section。任务就完成了。
1
工作台窗口(Workspace): 工作空间是MATLAB用于存储各种变量和结果的内存空间。
在该窗口中显示工作空间中所有变量的名称、大小、字节数和变量类型说明,可对变量进行观察、编辑、保存和删除。
当前路径窗口(Current Directory Browser) MATLAB命令常用格式为: 变量=表达式 或直接简化为: 表达式
通过“=”符号将表达式的值赋予变量,若省略变量名和“=” 号,则MATLAB自动产生一个名为ans的变量。
变量名必须以字母开头,其后可以是任意字母、数字或下划线,大写字母和小写字母分别表示不同的变量,不能超过19个字符,特定的变量如:pi(=3.141596) 、Inf(=∞)、NaN(表示不定型求得的结果,如0/0)等不能用作它用。 表达式可以由函数名、运算符、变量名等组成,其结果为一矩阵,赋给左边的变量。
MATLAB所有函数名都用小写字母。MATLAB有很多函数,因此很不容易记忆。可以用帮助(HELP)函数帮助记忆,有三种方法可以得到MATLAB 的帮助。最好的方法是使用帮助空间窗口(helpbrowser)。你可以单击MATLAB 桌面工具栏上的图标,也可以在命令窗口(The CommandWindows)中输入helpdesk 或helpwin 来启动帮助空间窗口(help browser)。你可以通过浏览MATLAB 参考证书或搜索特殊命令的细节得到帮助。
另外还有两种运用命令行的原始形式得到帮助。
第一种方法是在MATLAB 命令窗口(The Command Windows)中输入help 或help 和所需要的函数的名字。如果你在命令窗口(The Command Windows)中只输入help,MATLAB 将会显示一连串的函数。如果有一个专门的函数名或工具箱的名字包含在内,那么help 将会提供这个函数或工具箱。
第二种方法是通过lookfor 函数得到帮助。lookfor 函数与help 函数不同,help 函数要求与函数名精确匹配,而lookfor 只要求与每个函数中的总结信息有匹配。Lookfor 函数比help函数运行起来慢得多,但它提高了得到有用信息的机会。使用HELP函数可以得到有关函数的屏幕帮助信息。
常用运算符及特殊符号的含义与用法如下: + 数组和矩阵的加法 - 数组和矩阵的减法 * 矩阵乘法 / 矩阵除法
[ ] 用于输入数组及输出量列表 ( ) 用于数组标识及输入量列表 ‘ ’ 其内容为字符串
, 分隔输入量,或分隔数组元素
2
; 1.分开矩阵的行
2. 在一行内分开几个赋值语句
3.需要显示命令的计算结果时,则语句后面不加“;”号,否则要加“;”
号。
% 其后内容为注释内容,都将被忽略,而不作为命令执行 … 用来表示语句太长,转到第二行继续写 回车之后执行这些命令 举例:矩阵的输入 1 2 3 A= 4 5 6 7 8 9 矩阵的输入要一行一行的进行,每行各元素用(,)或空格分开,每行用(;)分
开。
MATLAB书写格式为: A=[1,2,3;4,5,6;7,8,9]
或A=[1 2 3 ;4 5 6 ;7 8 9] 回车之后运行程序可得到A矩阵 A = 1 2 3 4 5 6 7 8 9
需要显示命令的计算结果时,则语句后面不加“;”号,否则要加“;”号。 运行下面两种格式可以看出他们的区别
a=[1 2 3;4 5 6;7 8 9] a=[1 2 3;4 5 6;7 8 9];
a = 1 2 3 (不显示计算结果)
4 5 6 7 8 9 2. 系统建模
(1)系统的传递函数模型
系统的传递函数为:
C(s)b1smb2sm1...bnsbm1G(s)R(s)a1sna2sn1...ansan1对线性定常系统,式中s的系数均为常数,且a1不等于零,这时系统在MATLAB中可以方便地由分子和分母系数构成的两个向量唯一地确定出来,这两个向量可分别
3
用变量名num和den表示。
num=[b1,b2,…,bm,bm+1] den=[a1,a2,…,an,an+1]
注意:它们都是按s的降幂进行排列的。 举例: 传递函数: 输入:
>>num=[12,24,0,20],den=[2 4 6 2 2]
显示:
num = 12 24 0 20
den = 2 4 6 2 2
(2)模型的连接 1)并联:parallel 格式:
[num,den]=parallel(num1,den1,num2,den2) • %将并联连接的传递函数进行相加。 举例: 传递函数: 输入:
>>num1=3;den1=[1,4];num2=[2,4];den2=[1,2,3];[num,den]=parallel(num1,den1,num2,den2) 显示:
num = 0 5 18 25 den = 1 6 11 12 2) 串联:series 格式:
[num,den]=series(num1,den1,num2,den2) • %将串联连接的传递函数进行相乘。 3) 反馈:feedback 格式:
[num,den]=feedback(num1,den1,num2,den2,sign)
• %将两个系统按反馈方式连接,系统1为对象,系统2为反馈控制器,系统和闭环系统均以传递函数的形式表示。sign用来指示系统2输出到系统1输入的连接符号,sign缺省时,默认为负,即sign= -1。总系统的输入/输出数等同于系统1。
4) 闭环:cloop(单位反馈) 格式:
[numc,denc]=cloop(num,den,sign)
4
12s324s220G(s)42s4s36s22s2G1(s)3s4G2(s)2s4s22s3• %表示由传递函数表示的开环系统构成闭环系统,sign意义与上述相同。
三、 实验仪器和用具
主要仪器设备: 1. 电脑, 1台/人 2. MATLAB软件 3. 打印机
四、 实验方法与步骤
1. 掌握MATLAB软件使用的基本方法;
2. 用MATLAB产生下列系统的传递函数模型:
s43s32s2G(s)s1s54s43s32s23s2 3. 系统结构图如下所示,求其传递函数模型 5s7
u(t) 10ss2 s3y(t) 4s22s5 4. 系统结构图如下所示,传递函数模型 10 s22s u(t) y(t) 5s7s34s22s5
5. 系统结构图如下所示,求其多项式传递函数模型 u(t) 2s110 s ss1 y(t) 五、 实验分析及结论
1. 记录程序
2. 记录与显示给定系统数学模型 3. 完成上述各题
六、 注意事项
掌握MATLAB软件使用的基本方法;用Matlab产生系统的传递函数模型
七、 思考题
1. 怎样使用MATLAB软件?
2. 怎样用MATLAB产生系统的传递函数模型?
5
实验二 一、二阶系统时域特性分析
一、 实验目的
1. 利用MATLAB对一、二阶系统进行时域分析。
2. 掌握一阶系统的时域特性,理解时间常数T对系统性能的影响。
3. 掌握二阶系统的时域特性,理解二阶系统的两个重要参数ξ和ωn 对系统动
态特性的影响。
二、 实验原理
1. MATLAB的基本知识
MATLAB为用户提供了专门用于单位阶跃响应并绘制其时域波形的函数step 阶跃响应常用格式: step(num,den)
或step(num,den,t) 表示时间范围0~t。
或step(num,den,t1:p:t2) 绘出在t1~t2时间范围内,且以时间间隔p
均匀取样的波形。
举例:
二阶系统闭环传函为Gs输入:
>> num=[2,5];den=[1,0.6,0.6];step(num,den) 显示: Step Response122s5绘制单位阶跃响应曲线。 2s0.6s0.6108Amplitude64200246810Time (sec)1214161820
2. 系统的单位阶跃响应 3. 系统的动态性能指标
6
4. 教科书3.7节
三、 实验仪器和用具
主要仪器设备: 1. 电脑, 1台/人 2. MATLAB软件 3. 打印机
四、 实验方法与步骤
1. 一阶系统Gs1 Ts1T分别为0.2、0.5、1、5时单位阶跃响应曲线
2n2. 二阶系统Gs2 2s2nsn1)ωn=6, ξ分别为0.2、0.5、1时单位阶跃响应曲线 2)ξ=0.7, ωn分别为2、4、12时单位阶跃响应曲线 3)键入程序,观察并记录单位阶跃响应曲线
4)记录各响应曲线实际测取的峰值大小、峰值时间、超调量及过渡过程时间,并填表: 实际值 理论值 峰值Cmax 峰值时间tp 超调量% 5% 过渡时间ts 2%
五、 实验分析及结论
1.
2. 3. 4.
完成上述各题完成上述各题
记录程序,观察记录单位阶跃响应曲线
响应曲线及指标进行比较,作出相应的实验分析结果 分析系统的动态特性
六、 注意事项
1. 注意一阶惯性环节当系统参数T 改变时,对应的响应曲线变化特点,以及对
系统的性能的影响。
2. 注意二阶系统的性能指标与系统特征参数ξ、ωn 之间的关系。
七、 思考题
1. 一阶系统时间常数T对系统性能有何影响?
2. 二阶系统的两个重要参数ξ和ωn 对系统性能有何影响?
7
实验三 控制系统频域特性分析
一、 实验目的
1. 加深理解频率特性的概念,掌握系统频率特性的测试原理及方法。
2. 利用MATLAB作出开环系统的奈奎斯特图和波特图,对控制系统特性进行分
析。
二、 实验原理
1. 奈奎斯特图(幅相频率特性图)
MATLAB为用户提供了专门用于绘制奈奎斯特图的函数nyquist 常用格式:
nyquist (num,den)
或nyquist (num,den,w) 表示频率范围0~w。
或nyquist (num,den,w1:p:w2) 绘出在w1~w2频率范围内,且以频率间隔p均匀取样的波形。 举例:
2s25s1系统开环传函为Gs2绘制奈奎斯特图。
s2s3输入:
>> num=[2,5,1];den=[1,2,3];nyquist(num,den) 显示: Nyquist Diagram21.510.5Imaginary Axis0-0.5-1-1.5-2-1-0.500.51Real Axis1.522.53
2. 对数频率特性图(波特图)
MATLAB为用户提供了专门用于绘制波特图的函数bode 常用格式:
bode (num,den)
或bode (num,den,w) 表示频率范围0~w。
8
或bode (num,den,w1:p:w2) 绘出在w1~w2频率范围内,且以频率间隔p均匀取样的波形。 举例:
系统开环传函为Gs1s20.2s1绘制波特图。
输入:
>> num= num=[1];den=[1,0.2,1];bode(num,den) 显示: Bode Diagram2010)0dB(e du-10itngaM-20-30-400-45)ged(e -90saPh-135-18010-1100101Frequency (rad/sec)3. Bode图和Nyquist图的画法; 4. Nyquist稳定性判据内容; 5. 教科书4.8节。
三、 实验仪器和用具
主要仪器设备: 1. 电脑, 1台/人 2. MATLAB软件 3. 打印机
四、 实验方法与步骤
1. 用Matlab作 Nyquist图. 系统开环传函为Gss25s1s22s3
2. 用Matlab作Bode图. 系统开环传函为Gs1s20.4s1
3. 键入程序,观察并记录各种曲线
五、 实验分析及结论
1. 完成上述各题
9
2. 记录程序,观察记录各种曲线
3. 根据开环频率特性图分析闭环系统稳定性及其他性能 4. 作出相应的实验分析结果
六、 注意事项
1. 频率特性的概念
2. 频率特性的测试原理及方法。
七、 思考题
1. 典型环节的频率特性?
2. 怎样用奈奎斯特图和波特图对控制系统特性进行分析?
10
实验四 控制系统稳定性仿真
一、 实验目的
1. 加深理解稳定性的概念,掌握判断系统的稳定性的原理及方法。
2. 学会运用各种稳定判据来判断系统的稳定性及对控制系统稳定性进行分析。 3. 学会运用MATLAB对系统稳定性进行仿真。
二、 实验原理
1. 传递函数描述
(1)连续系统的传递函数模型
mm1bsbs...bnsbm1C(s)12连续系统的传递函数如下: G(s)R(s)a1sna2sn1...ansan1
对线性定常系统,式中s的系数均为常数,且a1不等于零,这时系统在MATLAB中可以方便地由分子和分母系数构成的两个向量唯一地确定出来,这两个向量分别用num和den表示。
num=[b1,b2,…,bm,bm+1] den=[a1,a2,…,an,an+1]
注意:它们都是按s的降幂进行排列的。
(2)零极点增益模型
零极点模型实际上是传递函数模型的另一种表现形式,其原理是分别对原系统传递函数的分子、分母进行分解因式处理,以获得系统的零点和极点的表示形式。
(sz1)(sz2)...(szm)G(s)K
(sp1)(sp2)...(spn)K为系统增益,zi为零点,pj为极点
在MATLAB中零极点增益模型用[z,p,K]矢量组表示。即: z=[z1,z2,…,zm] p=[p1,p2,...,pn] K=[k]
函数tf2zp()可以用来求传递函数的零极点和增益。
(3)部分分式展开
控制系统常用到并联系统,这时就要对系统函数进行分解,使其表现为一些基本控制单元的和的形式。
函数[r,p,k]=residue(b,a)对两个多项式的比进行部分展开,以及把传函分解为微分单元的形式。
向量b和a是按s的降幂排列的多项式系数。部分分式展开后,余数返回到向量r,极点返回到列向量p,常数项返回到k。
[b,a]=residue(r,p,k)可以将部分分式转化为多项式比p(s)/q(s)。 举例:
传递函数描述:
11
12s324s2201) G(s)42s4s36s22s2
》num=[12,24,0,20];den=[2 4 6 2 2];
4(s2)(s26s6)22) G(s)s(s1)3(s33s22s5)
借助多项式乘法函数conv来处理:
》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]))));
s311s230s零极点增益模型: G(s)s49s345s287s50
》num=[1,11,30,0];
》den=[1,9,45,87,50]; [z,p,k]=tf2zp(num,den) 》z= 0 -6 -5 p=
-3.0000+4.0000i -3.0000-4.0000i -2.0000 -1.0000 k= 1
s(s6)(s5)结果表达式 G(s)(s1)(s2)(s34j)(s34j)
2s39s1部分分式展开: G(s)s3s24s4
》num=[2,0,9,1];
》den=[1,1,4,4]; [r,p,k]=residue(num,den) 》r=
0.0000-0.2500i 0.0000+0.2500i -2.0000 p=
0.0000+2.0000i 0.0000-2.0000i -1.0000 k= 2
0.25i0.25i2G(s)2结果表达式
s2is2is1
2. 模型的转换与连接
(1)模型的转换
在一些场合下需要用到某种模型,而在另外一些场合下可能需要另外的模型,这就需要进行模型的转换。
12
模型转换的函数包括:
residue: 传递函数模型与部分分式模型互换 tf2zp: 传递函数模型转换为零极点增益模型 zp2tf: 零极点增益模型转换为传递函数模型 用法举例:
0.25i0.25i2G(s)2已知部分分式:
s2is2is1
》r=[-0.25i,0.25i,-2]; 》p=[2i,-2i,-1];k=2;
》[num,den]=residue(r,p,k) 》num=
2 0 9 1 》den=
1 1 4 4
三、 实验仪器和用具
主要仪器设备: 1. 电脑, 1台/人 2. MATLAB软件 3. 打印机
四、 实验方法与步骤
1. 系统传函为Gs3s42s35s24s6s3s4s2s7s25432,用以下三种方法试判断其稳定
1) 利用pzmap绘制连续系统的零极点图 2) 利用tf2zp求出系统零极点;
3) 利用roots求分母多项式的根来确定系统的极点
s22s22. 系统传函为G(s)4用以上三种方法试判断其稳定
s7s33s25s2五、 实验分析及结论
1. 2. 3. 4.
完成上述各题
记录程序,观察记录各种曲线 根据特性图分析闭环系统稳定性 作出相应的实验分析结果
六、 注意事项
1. 稳定性的概念
2. 稳定性的测试原理及方法。
七、 思考题
1. 怎样判断系统的稳定性?
2. 有多少方法判断系统的稳定性?
13
实验五 控制系统校正及PID仿真
一、 实验目的
1. 熟悉超前、滞后和超前—滞后网络的特性。
2. 理解基于频率法进行串联校正的基本概念,掌握基于频率法进行超前、滞后
和超前——滞后校正的方法。
3. 掌握P、PD、PID 控制器的控制原理和实际应用。 4. 学会运用MATLAB对系统校正及PID进行仿真。
二、 实验原理
1. 基于频率法进行串联校正的基本概念,基于频率法进行超前、滞后和超前—
—滞后校正的方法 2. P、PD、PID 控制器的控制原理和实际应用 3. MATLAB的基本知识
三、 实验仪器和用具
主要仪器设备: 1. 电脑, 1台/人 2. MATLAB软件 3. 打印机
四、 实验方法与步骤
1. 被控制对象传递函数为Gs400,要求的技术指是ξ=0.5,
s(s230s200)n=13.5rad/s,编写程序设计一串联校正装置,并绘制校正前后的阶跃响应曲线和
Bode 图。根据实验,试说明校正前后系统的调节时间和超调量有何变化,相角裕度,增益穿越频率又有什么变化?
2. 已知单位负反馈系统的开环传递函数为Gsk,试设计串联滞后校
s(0.04s1)正装置,使系统指标满足单位斜坡输入信号时稳态误差≤ 1% ss e ,相位裕度γ ≥ 45°,编写程序设计一串联滞后校正装置,并绘制校正前后阶跃响应曲线和Bode 图。根据实验,试说明校正前后系统的调节时间和超调量有何变化,相角裕度,增益穿越频率又有什么变化?
3. 比例环节( P ): 文件名:Gain.mdl
1) 双击 Gain 模块,分别改变Gain 的值K(K=5、10、20)。
2) 启动 Simulation\\Start,双击Scope 模块跳出Scope 窗口,并显现比例环节阶跃响应曲线。用Simulation\\Stop 停止。
3) 观察分析不同 Gain 值的阶跃响应曲线,并画在实验指导书上(见后 页,曲线画在同一坐标上),写出对应的传递函数 。
4. 积分环节( I ): 文件名:Integrator.m.mdl
1) 双击 Transfer Fcn 模块,分别改变分母的”T”值(注意数字之间要有 空格),当T=1、5、50 时的斜率变化。
14
2) 启动 Simulation\\Start,双击Scope 模块跳出Scope 窗口,并显现积 分环节阶跃响应曲线。用Simulation\\Stop 停止。观察分析不同T 值的阶跃响应曲线,并画在实验指导书上(见后页,曲线画在同一坐标上),写出对应的传递函数 。
5. 比例加积分( PI )、比例加微分( PD )、比例加积分加微分( PID ): 文 件名:PID.mdl
1) 分别打开Gain、Gain1、Gain2、Transfer Fcn2 模块并输入Kp、Ki、Kd当Kd=0 时,此时系统为比例加积分( PI ),当Ki=0 时,此时系统为比例加微分( PD ),当Kp、Ki、Kd 的值不为零时,此时系统为比例加积分加微分( PID )。
2) 启动Simulation\\Start,双击Scope 模块跳出Scope 窗口,并显现例加积( PI )、比例加微分( PD )、比例加积分加微分( PID )阶跃响应曲线。Simulation\\Stop 停止。
3) 分别观察比例加积分( PI )、比例加微分( PD )、比例加积分加微分( PID ) 6. 的阶跃响应曲线,并画在实验指导书上 , 写出对应的传递函数 。
五、 实验分析及结论
1. 完成上述各题
2. 记录程序,观察记录各种曲线 3. 作出相应的实验分析结果
六、 注意事项
1. 校正的概念
2. 校正原理及方法
3. P、PD、PID 控制器的控制原理
七、 思考题
1. 校正网络的特性?
2. P、PD、PID 控制器的控制原理?
15
因篇幅问题不能全部显示,请点此查看更多更全内容