当前位置:文档之家› 六个实战示例--自动控制理论--Simulink仿真

六个实战示例--自动控制理论--Simulink仿真

自动控制理论仿真实验指导书目录实验一典型环节的MATLAB仿真 (3)一、实验目的 (3)二、SIMULINK的使用 (3)三、实验原理 (5)四、实验内容 (8)五、实验报告 (8)六、预习要求 (8)实验二线性系统时域响应分析 (8)一、实验目的 (8)二、基础知识及MATLAB函数 (9)三、实验内容 (18)四、实验报告 (19)五、预习要求 (19)实验三线性系统的根轨迹 (20)页脚内容1一、实验目的 (20)二、基础知识及MATLAB函数 (20)三、实验内容 (26)四、实验报告 (27)五、预习要求 (27)实验四线性系统的频域分析 (28)一、实验目的 (28)二、基础知识及MATLAB函数 (28)三、实验内容 (33)四、实验报告 (34)五、预习要求 (34)实验五线性系统串联校正 (35)一、实验目的 (35)二、基础知识 (35)三、实验内容 (45)四、实验报告要求 (45)五、预习要求 (46)页脚内容2实验六数字PID控制 (46)一、实验目的 (46)二、实验原理 (46)三、实验内容 (49)四、实验报告 (50)五、预习要求 (50)实验一典型环节的MATLAB仿真一、实验目的1.熟悉MATLAB桌面和命令窗口,初步了解SIMULINK功能模块的使用方法。

2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。

3.定性了解各参数变化对典型环节动态特性的影响。

二、SIMULINK的使用MATLAB中SIMULINK是一个用来对动态系统进行建模、仿真和分析的软件包。

利用SIMULINK功能模块可以快速的建立控制系统的模型,进行仿真和调试。

1.运行MATLAB软件,在命令窗口栏“>>”提示符下键入simulink命令,按Enter键或在工具栏单击按钮,即可进入如图1-1所示的SIMULINK仿真环境下。

2.选择File菜单下New下的Model命令,新建一个simulink仿真环境常规模板。

页脚内容33.在simulink仿真环境下,创建所需要的系统。

以图1-2所示的系统为例,说明基本设计步骤如下:图1-1 SIMULINK仿真界面图1-2 系统1)进入线性系统模块库,构建传递函数。

点击simulink下的“Continuous”,再将右边窗口中“Transfer Fen”的图标用左键拖至新建的“untitled”窗口。

2)改变模块参数。

在simulink仿真环境“untitled”窗口中双击该图标,即可改变传递函数。

其中方括号内的数字分别为传递函数的分子、分母各次幂由高到低的系数,数字之间用空格隔开;设置完成后,选择OK,即完成该模块的设置。

3)建立其它传递函数模块。

按照上述方法,在不同的simulink的模块库中,建立系统所需的传递函数模块。

例:比例环节用“Math”右边窗口“Gain”的图标。

4)选取阶跃信号输入函数。

用鼠标点击simulink下的“Source”,将右边窗口中“Step”图标用左键拖至新建的“untitled”窗口,形成一个阶跃函数输入模块。

5)选择输出方式。

用鼠标点击simulink下的“Sinks”,就进入输出方式模块库,通常选用“Scope”的示波器图标,将其用左键拖至新建的“untitled”窗口。

页脚内容4页脚内容56)选择反馈形式。

为了形成闭环反馈系统,需选择“Math ” 模块库右边窗口“Sum ”图标,并用鼠标双击,将其设置为需要的反馈形式(改变正负号)。

7)连接各元件,用鼠标划线,构成闭环传递函数。

8)运行并观察响应曲线。

用鼠标单击工具栏中的“”按钮,便能自动运行仿真环境下的系统框图模型。

运行完之后用鼠标双击“Scope ”元件,即可看到响应曲线。

三、实验原理1.比例环节的传递函数为 K R K R R R Z ZsG 200,1002)(211212==-=-=-=其对应的模拟电路及SIMULINK 图形如图1-3所示。

2.惯性环节的传递函数为uf C K R K R s C R R R Z Z s G 1,200,10012.021)(121121212===+-=+-=-=其对应的模拟电路及SIMULINK 图形如图1-4所示。

页脚内容63.积分环节(I)的传递函数为uf C K R ss CRZZ s G 1,1001.011)(111112==-=-=-=其对应的模拟电路及SIMULINK 图形如图1-5所示。

4.微分环节(D)的传递函数为uf C K R s s C R Z Z s G 10,100)(111112==-=-=-= uf C C 01.012=<<其对应的模拟电路及SIMULINK 图形如图1-6所示。

5.比例+微分环节(PD)的传递函数为)11.0()1()(111212+-=+-=-=ssCRRRZZsG ufCCufCKRR01.010,10012121=<<===其对应的模拟电路及SIMULINK图形如图1-7所示。

6.比例+积分环节(PI)的传递函数为)11(1)(11212sRsCRZZsG+-=+-=-=ufCKRR10,100121===其对应的模拟电路及SIMULINK图形如图1-8所示。

页脚内容7页脚内容8四、实验内容按下列各典型环节的传递函数,建立相应的SIMULINK 仿真模型,观察并记录其单位阶跃响应波形。

① 比例环节1)(1=s G 和2)(1=s G ;② 惯性环节11)(1+=s s G 和15.01)(2+=s s G ③ 积分环节s s G 1)(1=④ 微分环节s s G =)(1⑤ 比例+微分环节(PD )2)(1+=s s G 和1)(2+=s s G⑥ 比例+积分环节(PI )s s G 11)(1+=和s s G 211)(2+=五、实验报告1.画出各典型环节的SIMULINK 仿真模型。

2. 记录各环节的单位阶跃响应波形,并分析参数对响应曲线的影响。

3. 写出实验的心得与体会。

六、预习要求1.熟悉各种控制器的原理和结构,画好将创建的SIMULINK 图形。

2.预习MATLAB 中SIMULINK 的基本使用方法。

实验二 线性系统时域响应分析一、实验目的1.熟练掌握step( )函数和impulse( )函数的使用方法,研究线性系统在单位阶跃、单位脉冲及单位斜坡函数作用下的响应。

2.通过响应曲线观测特征参量ζ和ω对二阶系统性能的影响。

n3.熟练掌握系统的稳定性的判断方法。

二、基础知识及MATLAB函数(一)基础知识时域分析法直接在时间域中对系统进行分析,可以提供系统时间响应的全部信息,具有直观、准确的特点。

为了研究控制系统的时域特性,经常采用瞬态响应(如阶跃响应、脉冲响应和斜坡响应)。

本次实验从分析系统的性能指标出发,给出了在MATLAB环境下获取系统时域响应和分析系统的动态性能和稳态性能的方法。

用MATLAB求系统的瞬态响应时,将传递函数的分子、分母多项式的系数分别以s的降幂排列写为两个数组num、den。

由于控制系统分子的阶次m一般小于其分母的阶次n,所以num中的数组元素与分子多项式系数之间自右向左逐次对齐,不足部分用零补齐,缺项系数也用零补上。

1.用MATLAB求控制系统的瞬态响应1)阶跃响应求系统阶跃响应的指令有:step(num,den) 时间向量t的范围由软件自动设定,阶跃响应曲线随即绘出step(num,den,t) 时间向量t的范围可以由人工给定(例如t=0:0.1:10)[y,x]=step(num,den) 返回变量y为输出向量,x为状态向量在MATLAB程序中,先定义num,den数组,并调用上述指令,即可生成单位阶跃输入信号下的阶跃响应曲线图。

考虑下列系统:页脚内容925425)()(2++=sssRsC该系统可以表示为两个数组,每一个数组由相应的多项式系数组成,并且以s的降幂排列。

则MATLAB 的调用语句:num=[0 0 25]; %定义分子多项式den=[1 4 25]; %定义分母多项式step(num,den) %调用阶跃响应函数求取单位阶跃响应曲线grid %画网格标度线xlabel(‘t/s’),ylabel(‘c(t)’) %给坐标轴加上说明title(‘Unit-step Respinse of G(s)=25/(s^2+4s+25)’) %给图形加上标题名则该单位阶跃响应曲线如图2-1所示:为了在图形屏幕上书写文本,可以用text命令在图上的任何位置加标注。

例如:text(3.4,-0.06,’Y1’) 和text(3.4,1.4,’Y2’)第一个语句告诉计算机,在坐标点x=3.4,y=-0.06上书写出’Y1’。

类似地,第二个语句告诉计算机,页脚内容10页脚内容11在坐标点x=3.4,y=1.4上书写出’Y2’。

若要绘制系统t 在指定时间(0-10s )内的响应曲线,则用以下语句:num=[0 0 25];den=[1 4 25];t=0:0.1:10;step(num,den,t)即可得到系统的单位阶跃响应曲线在0-10s 间的部分,如图2-2所示。

2) 脉冲响应① 求系统脉冲响应的指令有:impulse (num,den) 时间向量t 的范围由软件自动设定,阶跃响应曲线随即绘出impulse (num,den,t) 时间向量t 的范围可以由人工给定(例如t=0:0.1:10)[y,x]=impulse(num,den) 返回变量y 为输出向量,x 为状态向量[y,x,t]=impulse(num,den,t) 向量t 表示脉冲响应进行计算的时间例:试求下列系统的单位脉冲响应:12.01)()()(2++==s s s G s R s C 在MATLAB 中可表示为num=[0 0 1];den=[1 0.2 1];impulse(num,den)页脚内容12gridt itle(‘Unit -impulse Response of G(s)=1/(s^2+0.2s+1)’)由此得到的单位脉冲响应曲线如图2-3所示:② 求脉冲响应的另一种方法应当指出,当初始条件为零时,G (s)的单位脉冲响应与sG(s)的单位阶跃响应相同。

考虑在上例题中求系统的单位脉冲响应,因为对于单位脉冲输入量,R(s)=1所以 ss s s s s s G s C s R s C 112.012.01)()()()(22⨯++=++=== 因此,可以将G(s)的单位脉冲响应变换成sG(s)的单位阶跃响应。

向MATLAB 输入下列num 和den ,给出阶跃响应命令,可以得到系统的单位脉冲响应曲线如图2-4所示。

相关主题