一、 实验目的
(1)熟悉MATLAB控制系统工具箱中线性控制系统传递函数模型的相关函数。
(2)熟悉SIMULINK 模块库,能够使用SIMULINK 进行控制系统模型的建立及仿真。
二、 实验仪器
PC计算机一台,MATLAB软件1套 三、实验内容
1. 熟悉线性控制系统传递函数模型的相关函数。 (1)tf ( )函数可用来输入系统的传递函数
该函数的调用格式为 G = tf ( num, den );
其中num, den 分别为系统传递函数的分子和分母多项式系数向量。返回的G 为系统的传递函数形式。
但如果分子或分母多项式给出的不是完全的展开的形式,而是若干个因式的乘积,则事先需要将其变换为完全展开的形式,两个多项式的乘积在MATLAB下借用卷积求取函数conv( )得出,其调用格式为 p=conv(p1,p2)
MATLAB还支持一种特殊的传递函数的输入格式,在这样的输入方式下,应该先用s=tf(’s’)定义传递函数算子,然后用数学表达式直接输入系统的传递函数。 请自己通过下面两个例子来演示和掌握tf ()和s=tf(’s’)算子这两种输入方式。 s35s23s2例1 设系统传递函数 G4
s2s34s23s1 输入方式一:num = [1, 5, 3, 2]; den = [1, 2, 4, 3, 1]; %分子多项式和分母多项式系数向
量
G = tf ( num, den ) %这样就获得系统的数学模型G
输入方式二:s=tf(’s’); G=( s^3 + 5* s^2 + 3* s + 2)/( s^4 + 2*s^3 + 4* s^2 + 3* s + 1)
任务一:将下列传递函数分别采用上面两种输入方式进行输入,并记录命令。
① Gs5
s2s33s44
1
② G5(s2.4)
(s1)(s23s4)(s21)2
提示:借助conv( )函数获得分子和分母多项式系数 conv表示相乘,如(s+1)(s+2),conv([1,1],[1,2])
(2)tfdata()函数可提取控制系统传递函数的分子多项式num和分母多项式den
如输入命令:
s=tf('s');G=5*(s+2.4)/((s+1)^2*(s^2+3*s+4)*(s^2+1))
[num,den]=tfdata(G,'v') %其中'v'表示想获得num和den的数值
任务二:在MATLAB命令窗口中验证以上命令。
(3)zpk ()函数可得到控制系统的零极点形式的传递函数
该函数的调用格式为 G = zpk ( Z, P,K )
其中K为系统传函零极点形式的增益,Z, P 分别为系统传递函数的零点和极点列向量。返回的G 为传递函数形式。
例3 设系统传递函数 G(s1.539)(s2.73052.8538j)(s2.73052.8538j)
(s4)(s3)(s2)(s1)任务三:在MATLAB命令窗口中验证下面的命令:
Z=[-1.539; -2.7305+2.8538i;-2.7305-2.8538i]; %注意使用列向量,另外注意符号 P=[-1;-2;-3;-4]; G=zpk(Z,P,1)
2
(4)已知传递数函的分子、分母多项式系数,可用tf2zp( )函数求出传函的零点向量、极点向量和增益。该函数的调用格式为 [ Z, P,K] = tf2zp ( num, den ) 这里K=1
已知传递数函的零点、极点和增益,可用zp2tf ( )函数求出传函的分子、分母多项式系数。该函数的调用格式为[ num, den]= zp2tf ( Z, P,K) 这里K=1
s35s23s2任务四:以G4为例,练习这两个函数的使用。
s2s34s23s1
3
2. 利用SIMULINK 进行控制系统模型的建立及仿真 (1) SIMULINK 模块库
SIMULINK 提供了9 类基本模块库:连续系统模块库(Continous)、离散系统模块库(Discrete)、函数与表模块库(Function&Tables)、数学运算模块库(Math)、非线性系统模块库(Nonlinear)、信号模块库(Signal Routing)、输出模块库(Sinks)、输入源模块库(Sourses)、子系统模块库(Subsystems)等基本模块库。课本附录二对本实验书中用到的5个模块:连续系统模块库(Continous)、数学运算模块库(Math)、信号模块库(Signal Routing)、输出模块库(Sinks)、和输入源模块库(Sourses)的功能进行了介绍。 (2) 用SIMULINK 建立系统模型及仿真
例1 以求惯性环节G5的阶跃响应为例,说明SIMULINK中系统模型的建立过程。
0.8s2①开启 SIMULINK 窗口及模块库
启动方式一:在 MATLAB 命令窗口,键入“SIMULINK”
启动方式二:点击窗口上面的 SIMULINK图标。如下所示,就打开了 SIMULINK 窗口,进入SIMULINK 库模块浏览界面。
图1 启动SIMULINK
②建立新文件:在 SIMULINK 窗口下,用鼠标点击 new model 图标或选取菜单 File
4
打开Simulink Library Browser 浏览器
→ New→ Model 后,SIMULINK 会打开一个名为untilited(无标题)的空白模型窗口,如图2 所示。新文件建立后,可以用菜单 File 中的 Save as 命令保存程序,这时需要给文件取名。保存的文件扩展应名为.mdl。本例中将文件名命名为examp1.mdl。
图2 空的模块窗口
③复制模块:双击模块组图标打开模块子库,将鼠标移到所要复制的模块上,然后按下左键并拖动鼠标到目标窗口,再松开键,用右键可在任意窗口内复制模块,此时原模块保留。
本例中需双击Sources图标从信号源库中选中阶跃信号模块,双击Continuous图标从连续系统模块库中选中传递函数模块,双击Sinks图标从显示库中选中示波器模块,分别拖入examp1.mdl目标窗口。
④修改模块参数。通常目标窗口中复制的模块的参数和要求不一致,因此需对这些复制过来的模块参数进行修改。双击复制过来的模块,会出现对一个对话框,在对话框中设置相应参数。
本例中双击Step模块,设置阶跃信号的起始时间从默认的1修改为0、并可根据实际情况设计设置初值和终值;双击Transfer Fcn模块,设置传递函数的表达式,在分子(Numerator)多项式系数处键入[5],在分母(Denominator)多项式系数处键入[0.8,2].
⑤模块之间的连接:模块左侧和右侧尖角>分别表示模块的输入和输出,模块之间的连接按照下述方法进行:鼠标移到一个模块的输入(出)端,按下左键,拖动鼠标到另一个模块的输出(入)端,松开,连线完毕。若要从一条已经存在的连线上引出另一条连线,首先把鼠标指针移到这个连线上,按下右键,拖动鼠标到目标端口,再松开键。按照上述步骤建立的惯性环节模型如图3所示。
图3 用SIMULINK建立的惯性环节模型
⑥若需要选择对象或删除对象,用鼠标左键在所选对象上单击一下,被选对象就会出现相应标记。若要删除模块或连线,首先要选中该模块过连线,然后再按 Delete 或Clear 键。
5
⑦仿真与显示
若要开始仿真,单击起动仿真的按钮 或选择 Simulation→ Start就可以了。双击 Scope 模块就打开示波器,示波器上就显示出变量随时间变化的曲线。
(3)典型环节仿真与分析
自控系统可看成是由比例、积分、惯性环节等典型环节按一定的关系连接而成。熟悉这些典型环节对阶跃输入的响应,对分析线性系统将是十分有益。
任务五:利用SIMULINK对以下典型环节进行单位阶跃响应的仿真,记录仿真各典型环节的仿真图及其单位阶跃响应波形,分析并总结参数变化对环节输出的影响,回答实验思考题。注意:将示波器横轴终值修改为20,以便进行环节的比较
实验记录表格如下(供参考) 典型环节 传函 参数 单位阶跃响应曲线 参数变化对输出影响的结论 比例环节 惯性环节 积分环节 G(s)G(s)G(s)C(s)K R(s)C(s)1 R(s)s1C(s)K R(s)s①K=1②K=5③K=10 ①τ=0.01 ②τ=1 ③τ=100 ①K=0.01 ②K=1 ③K=10 比例环节K=1 ,
K=5,
6
K=10,
7
惯性环节1,
2.
8
3.3.
积分环节1.
9
2.
3.
实验思考题:
积分环节和惯性环节主要差别是什么?在什么条件下,惯性环节可以近似地视为积分环节?而又在什么条件下,惯性环节可以近似地视为比例环节?
任务六:在SIMULINK 环境下搭建阶跃响应时的模型,并用示波器观测输出波形,将示波器横轴终值修改为50,记录仿真图及示波器波形。
A)G(s)s1(传递函数形式)
s22s2 10
B)G(s)s2 (零极点形式)
(s1)(s5)(s6)
4. 实验报告内容
1) 完成实验内容的所有任务,并将答案记录。 2) 整理在实验过程中遇到的问题及如何解决的。 5. 预习要求
1) 阅读实验内容及实验目的。
2) 完成对SIMULINK 模块库的熟悉工作。
11
因篇幅问题不能全部显示,请点此查看更多更全内容