搜索
您的当前位置:首页正文

实验一 MATLAB 中控制系统模型的建立与仿真

来源:二三娱乐
实验一 MATLAB 中控制系统模型的建立与仿真

一、 实验目的

(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’)算子这两种输入方式。 s35s23s2例1 设系统传递函数 G4

s2s34s23s1 输入方式一: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)

任务一:将下列传递函数分别采用上面两种输入方式进行输入,并记录命令。

① Gs5

s2s33s44

1

② G5(s2.4)

(s1)(s23s4)(s21)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(s1.539)(s2.73052.8538j)(s2.73052.8538j)

(s4)(s3)(s2)(s1)任务三:在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

s35s23s2任务四:以G4为例,练习这两个函数的使用。

s2s34s23s1

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 以求惯性环节G5的阶跃响应为例,说明SIMULINK中系统模型的建立过程。

0.8s2①开启 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)s1C(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)s1(传递函数形式)

s22s2 10

B)G(s)s2 (零极点形式)

(s1)(s5)(s6)

4. 实验报告内容

1) 完成实验内容的所有任务,并将答案记录。 2) 整理在实验过程中遇到的问题及如何解决的。 5. 预习要求

1) 阅读实验内容及实验目的。

2) 完成对SIMULINK 模块库的熟悉工作。

11

因篇幅问题不能全部显示,请点此查看更多更全内容

Top