实验5. 控制理论仿真实验
1 控制系统的建模
一、实验目的
1.学习在MATLAB命令窗口建立系统模型的方法; 2.学习如何在三种模型之间相互转换; 3.学习如何用SIMULINK仿真工具建模。
二、相关知识
1.传递函数模型
设连续系统的传递函数为:
num(s)b0sm?b1sm?1???bm?1s?bm G(s)??nn?1den(s)a0s?a1s???an?1s?annum(z)b0zm?b1zm?1???bm?1z?bm G(z)??nn?1den(z)a0z?a1z???an?1z?an设离散系统的传递函数为:
则在MATLAB中,都可直接用分子/分母多项式系数构成的两个向量num与den构成的矢量组[num,den]表示系统,即
num=[b0,b1,?,bm] den =[a0,a1,?,an]
建立控制系统的传递函数模型(对象) 的函数为tf (),调用格式为: sys=tf (num,den) sys=tf (num,den,Ts) sys=tf(othersys)
sys=tf (num,den)返回的变量sys为连续系统的传递函数模型。
sys=tf (num,den,Ts)返回的变量sys为离散系统的传递函数模型,Ts为采样周期,当Ts=-1或Ts=[]时,系统的采样周期未定义。
sys=tf(othersys)将任意的控制系统对象转换成传递函数模型。
离散系统的传递函数的表达式还有一种表示为z的形式(即DSP形式),转换为DSP形式的函数命令为filt(),调用格式为:
sys=filt(num,den) sys=filt(num,den,Ts)
sys=filt(num,den)函数用来建立一个采样时间未指定的DSP形式传递函数。 sys=filt(num,den,Ts)函数用来建立一个采样时间为Ts的DSP形式传递函数。
?11
2.零极点增益模型
设连续系统的零极点增益模型传递函数为:
G(s)?k(s?z1)(s?z2)?(s?zm)
(s?p1)(s?p2)?(s?pn)设离散系统的零极点增益模型传递函数为:
G(z)?k(z?z0)(z?z1)?(z?zm)
(z?p0)(z?p1)?(z?pn)则在MATLAB中,都可直接用向量z,p,k构成的矢量组[z,p,k]表示系统,即
z=[z0,z1,?zm] p=[p0,p1,?pn] k=[k]
在MATLAB中,用函数zpk()来建立控制系统的零极点增益模型,调用格式为: sys=zpk(z,p,k) sys=zpk(z,p,k,Ts) sys=zpk(othersys)
sys=zpk(z,p,k)返回的变量sys为连续系统的零极点增益模型。
sys=zpk(z,p,k,Ts)返回的变量sys为离散系统的零极点增益模型,Ts含义同前。 sys=zpk(othersys)将任意的控制系统对象转换成零极点增益模型模型。 3.状态空间模型
设连续系统的状态空间模型为:
???x(t)?Ax(t)?Bu(t) ???y(t)?Cx(t)?Du(t)设离散系统的状态空间模型为:
?x(k?1)?Ax(k)?Bu(k) ?y(k)?Cx(k)?Du(k)?在MATLAB中,连续与离散系统都可直接用矩阵组[A,B,C,D]表示系统。 在MATLAB中,用函数ss ()来建立系统的状态空间模型,调用格式为: sys=ss(a,b,c,d)
sys=ss(a,b,c,d,Ts)
sys=ss(othersys)将任意的控制系统对象转换成状态空间模型。 sys=ss(a,b,c,d)返回的变量sys为连续系统的状态空间模型。
sys=ss(a,b,c,d,Ts)返回的变量sys为离散系统的状态空间模型,Ts含义同前。 4.三种系统数学模型之间的转换
解决实际问题时,常常需要对自控系统的数学模型进行转换,MATLAB提供了用于转换的函数,如下表所示:
函数名 ss2tf ss2zp` tf2ss tf2zp zp2ss zp2tf
5.环节方框图的化简 1.环节串联连接的化简
G1(s) G2(s) 函数功能 将系统状态空间模型转换为传递函数模型 将系统状态空间模型转换为零极点增益模型 将系统传递函数模型转换为状态空间模型 将系统传递函数转换为零极点增益模型 将系统零极点增益模型转换为状态空间模型 将系统零极点增益模型转换为传递函数模型 对于上图的两个环节串联,它们的传递函数分别为:
G1(s)?num1(s)num2(s),G2(s)?
den1(s)den2(s)num1(s)num2(s)
den1(s)den2(s)则两个环节串联连阶的等效传递函数为
G(s)?G1(s)G2(s)?在MATLAB中,实现两个环节传递函数串联连接的运算为: sys1=tf(num1,den1) sys2=tf(num2,den2) sys=sys1*sys2 2.环节并联连接的化简
实现两个环节传递函数串联连接的运算为: sys=sys1+sys2 3.反馈环节的化简
- G2(S) 3
G1(s) + G2(s) G1(S) 实现反馈环节化简的运算为: sys=feedback(sys1,sys2,sign)
式中sign为反馈符号,‘+’表示正反馈,‘-’为负反馈。缺省为‘-’。 6.用SIMULINK仿真工具建模
MATLAB集成有SIMULINK工具箱,为用户提供了用方框图进行系统建模的图形窗口。
1.建立新的结构图文件
在matlab环境下,点击simulink图标,或输入命令simulink,启动simulink程序,出现Simulink 模块库,如图3.1所示。
图 3.1SIMULINK窗口
点击或选择“File”菜单中的“New”选项下的子选项“Model”,出现
“untitled”空白文档。
2.打开结构图模块组
在Simulink Library Browser中,点击simulink边上的“+”就有下列模块组: Sources
(输入信号单元模块组)
Sinks (数据输出单元模块组) Contionuous (线性单元模块组) Discrete (离散单元模块组) ??
用鼠标单击任何一个模块组的图标,即可打开该模块组,从中选择仿真实验所需的单元模块。
3.建立用户的仿真结构图
将所需的结构图模块用鼠标拖到新建立的结构图文件的空白处,依次完成仿真结构图。用鼠标作结构图单元之间的连线,按结构图模块的信号连接关系,完成仿真试验的结构图。
1)连线方法:一般是选中一个输出口,按下鼠标左键拖动至另一个模块的输入口,快捷的方法是先单击选中源模块,按下Ctrl键,再单击目标模块。画信号的分支线,用鼠标右键单击信号线并拖动。
2)模块的旋转和翻转:选中模块,右击鼠标,打开Format子菜单,选择Flip Block、Rotate Block、Flip Name等完成响应的功能。
4.结构图单元参数设置
用鼠标器双击任何一个结构图单元即激活结构图单元的参数设置窗口。 5.仿真参数设置
选择“simulink”菜单项中的“Simulink parameters”,即出现仿真参数设置子窗口,用于设置仿真参数,例如,仿真起始时间,仿真终止时间,仿真布长,允许误差,返回变量名称等。
6.仿真操作
选中“simulink”中的“Start”启动系统的仿真。在系统仿真中如显示器不能很好地展现波形,可以随时修改显示器的定标,达到满意为止。
二、实验内容
1.练习上面介绍的各种函数和命令 2.给定控制系统的传递函数为
G(s)?3
s3?3s2?5s?7在MATLAB中建立该系统的传递函数模型、零极点增益模型和状态变量模型。 3.在SIMULINK中建立如下图所示的结构图:
5