自控Matlab仿真.docx
- 文档编号:8129495
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:42
- 大小:1.41MB
自控Matlab仿真.docx
《自控Matlab仿真.docx》由会员分享,可在线阅读,更多相关《自控Matlab仿真.docx(42页珍藏版)》请在冰豆网上搜索。
自控Matlab仿真
自动控制原理
上机实验指导书
Simulink仿真集成环境简介⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯2
实验一典型环节的性能分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯11
实验二二阶系统的性能分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯14
实验三自动控制系统的稳定性和稳态误差分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯17
实验四自动控制系统根轨迹的分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯22
实验五自动控制系统的频域分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯27
实验六控制系统的校正及设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯32
实验七非线性系统的稳定性分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯39
Simulink仿真集成环境简介
Simulink是可视化动态系统仿真环境。
1990年正式由Mathworks公司引入到MATLAB中,它是Slmutation和Link的结合。
这里主要介绍它的使用方法和它在控制系统仿真分析和设计操作的有关内容。
1、进入Simulink操作环境
双击桌面上的MATLAB图标,启动MATLAB,进入开发环境,如图0-1所示:
图0-1MATLAB开发环境
从MATLAB的桌面操作环境画面进入Simulink操作环境有多种方法,介绍如下:
1点击工具栏的Simulink图标,弹出如图0-2的图形库浏览器画面。
2在命令窗口键入“simulink”命令,可自动弹出图形库浏览器。
上述两种方法需从该画面“File”下拉式菜单中选择“New/Model”,或点击图标,得到图0-3的图形仿真操作画面。
3从“File”下拉式菜单中选择“New/Model”,弹出图0-3所示的未命名的图形仿真操作画面。
从工具栏中点击图形库浏览器图标,调出图0-2的图形库浏览器画面。
图0-3用于仿真操作,图0-2的图形库用于提取仿真所需的功能模块。
2、提取所需的仿真模块在提取所需仿真模块前,应绘制仿真系统框图,并确定仿真所用的参数。
图0-2中的仿真用图形库,提供了所需的基本功能模块,能满足系统仿真的需要。
该图形库有多种图形子库,用于配合有关的工具箱。
下面将对本书中实验可能用到的功能模块作一个简单介绍。
(1)Sources(信号源模块组)
点击图0-2图形库浏览器画面中的Sources,界面右侧会出现各种常用的输入信号如图0-4所示。
图0-4信号源模块组
·In(输入端口模块)——用来反映整个系统的输入端子,这样的设置在模型线性化与命令行仿真时是必需的。
·SignalGenerator(信号源发生器)——能够生成若干种常用信号,如方波信号、正弦波信号、锯齿波信号等,允许用户自由调整其幅值、相位及其它信号。
·FromFile(读文件模块)和FromWorkspace(读工作空间模块)——两个模块允许从文件或MATLAB工作空间中读取信号作为输入信号。
·Clock(时间信号模块)——生成当前仿真时钟,在于事件有关的指标求取中是很有意义的。
·Constant(常数输入模块)——此模块以常数作为输入,可以在很多模型中使用该模块。
·Step(阶跃输入模块)——以阶跃信号作为输入,其幅值可以自由调整。
·Ramp(斜坡输入模块)——以斜坡信号作为输入,其斜率可以自由调整。
·SineWave(正弦信号输入模块)——以正弦信号作为输入,其幅值、频率和初相位可以自由调整。
·PulseGenetator(脉冲输入模块)——以脉冲信号作为输入,其幅值和脉宽可以自由调整。
2)Continuous(连续模块组)
连续模块组包括常用的连续模块,如图0-5所示
图0-5连续模块组
·Derivative(微分器)——此模块相当于自动控制系统中的微分环节,将其输入端的信号经过一阶数值微分,在其输出端输出。
在实际应用中应该尽量避免使用该模块。
·Integrator(积分器)——此模块相当于自动控制系统中的积分环节,将输入端信号经过数值积分,在输出端输出。
·TransferFcn(传递函数)——此模块可以直接设置系统的传递函数,以多项式的比值
数可以自行设置。
·Pole-Zero(零极点)——将传递函数分子和分母分别进行因式分解,变成零极点表达
形式G(s)K(sz1)(sz2)L(szm),其中zi(系统的零点)、pj(系统的极点)可以(sp1)(sp2)L(spn)
自行设置。
·TransportDelay(时间延迟)——此模块相当于自动控制系统中的延迟环节,用于将输入信号延迟一定时间后输出,延迟时间可以自行调整。
(3)MathOperations(数学函数模块组)
数学函数模块组包含各种数学函数运算模块,如图0-6所示。
·Gain(增益函数)——此模块相当于自动控制系统中的比例环节,输出信号等于输入信号的乘以模块中种指定的数值,此数值可以自行调整。
·Sum(求和模块)——此模块相当于自动控制系统中的加法器,将输入的多路信号进
行求和或求差。
·其它数学函数,如Abs(绝对值函数)、Sign(符号函数)、RoundingFunction(取整模块)等。
图0-6数学函数模块组
4)Sinks(输出池模块组)
图0-7输出池模块组
·Out(输出端口模块)——用来反映整个系统的输出端子,这样的设置在模型线性化与命令行仿真时是必需的,另外,系统直接仿真时这样的输出将自动在MATLAB工作空间中生成变量。
·Scope(示波器模块)——将其输入信号在示波器中显示出来。
·x-yGraph(x-y示波器)——将两路输入信号分别作为示波器的两个坐标轴,将信号
的相轨迹显示出来。
·ToWorkspace(工作空间写入模块)——将输入的信号直接写到MATLAB的工作空间中。
·ToFile(写文件模块)——将输入的信号写到文件中。
·Display(数字显示模块)——将输入的信号以数字的形式显示出来。
·StopSimulation(仿真终止模块)——如果输入的信号为非零时,将强行终止正在进行的仿真过程。
·Terminator(信号终结模块)——可以将该模块连接到闲置的未连接的模块输出信号上,避免出现警告。
从图0-2中用鼠标点击打开所需子图形库,用鼠标选中所需功能模块,将其拖曳到图0-3中的空白位置,重复上述拖曳过程,直到将所需的全部功能模块拖曳到图0-3中。
拖曳时应注意下列事项:
(1)根据仿真系统框图,选择合适的功能模块进行拖曳,放到合适的位置,以便于连接。
(2)对重复的模块,可采用复制和粘贴操作,也可以反复拖曳。
(3)功能模块和图0-3的大小可以用鼠标移动到图标或图边,在出现双向箭头后进行放大或缩小的操作。
(4)选中功能模块的方法是直接点击模块,用鼠标选定所需功能模块区域来选中区域内所有功能模块和连接线,点击选中,并按下“shift”键,再点击其它功能模块。
3、功能模块的连接
根据仿真系统框图,用鼠标点击并移动所需功能模块到合适的位置,将鼠标移到有关功能模块的输出端,选中该输出端并移动鼠标到另一个功能模块的输入端,移动时出现虚线,到达所需输入端时,释放鼠标左键,相应的连接线出现,表示该连接已完成。
重复以上的连接过程,直到完成全部连接,组成仿真系统。
4、功能模块参数设置
使用者需设置功能模块参数后,方可进行仿真操作。
不同功能模块的参数是不同的,用鼠标双击该功能模块自动弹出相应的参数设置对话框。
例如,图0-8是TransferFcn(传递函数)功能模块的对话框。
功能模块对话框由功能模块说明和参数设置框组成。
功能模块说明框用于说明该功能模块使用的方法和功能,参数框用于设置该模块的参数。
TransferFcn的参数框由分子和分母多项式两个编辑框组成,在分子多项式框中,用户可输入系统模型的分子多项式,在分母多项式框中,输入系统模型的分母多项式。
设置功能模块的参数后,点击OK进行确认,将设置的参数送仿真操作画面,并关闭对话框。
图0-8TransferFcn(传递函数)模块参数设置对话框
5、仿真器参数设置
点击图0-3操作画面“Simulation”下拉式菜单“SimulationParameters⋯”选项,弹出如图0-9所示的仿真参数设置画面。
共有Solver、WorkspaceI/O、Diagnostics、Advanced和Real-TimeWorkshop等五个页面。
在Solver中设置SolverType、Solver(步长)等。
仿真操作时,可根据仿真曲线设置终止时间和最大步长,以便得到较光滑的输出曲线。
6、示波器参数设置
当采用示波器显示仿真曲线时,需对示波器参数进行设置。
双击Scope模块,弹出如图0-10所示的示波器显示画面,点击画面的图标,弹出如图0-11所示的示波器属性对话框,分2个页面,用于设置显示坐标窗口数、显示时间范围、标记和显示频率或采样时间等。
时间范围可以在示波器属性对话框里的General页中的Timerange设置,
设置值应与仿真器终止时间一致,以便最大限度显示仿真操作数据。
鼠标右键点击示波器显示窗口,从弹出菜单选择“Autoscale”,或直接点击图标,可在响应曲线显示后自动调整纵坐标范围;从弹出菜单选择“Savecurrentaxessetting”s,或直接点击图标,将当前坐标轴范围的设置数据存储。
此外,还有打印、放大或恢复等操作。
图0-9仿真参数设置画面
7、运行仿真
模型编辑好后,点击图0-3操作画面“Simulation”下拉式菜单“start”或“start
Simulation”按钮运行,双击Scope模块,显示输出曲线。
8、对数据作后续处理
当仿真任务比较复杂时,需要将Simulation生成的数再导入到工作空间进行处理和分析,仿真结束后,输出结果通过“Toworkspace”传送到工作空间中,在工作空间窗口中能看到这些变量,使用“whos”命令能看到这些变量的详细信息。
另外,“Tofile”、“Fromfile”模块能实现文件与Simulink的数据传输。
实验三典型环节的matlab性能分析
、实验目的
1、熟悉各种典型环节的阶跃响应曲线;
2、了解参数变化对典型环节动态特性的影响。
、实验任务
1、比例环节(K)
从图0-2的图形库浏览器中拖曳Step(阶跃输入)、Gain(增益模块)、Scope(示波器)模块到图0-3仿真操作画面,连接成仿真框图。
改变增益模块的参数,从而改变比例环节的放大倍数K,观察它们的单位阶跃响应
曲线变化情况。
可以同时显示三条响应曲线,仿真框图如图1-1所示
图1-1比例环节仿真框图
1
2、积分环节
(1)
Ts
将图1-1仿真框图中的Gain(增益模块)换成TransferFcn(传递函数)模块,设置TransferFcn(传递函数)模块的参数,使其传递函数变成1型。
Ts
改变TransferFcn(传递函数)模块的参数,从而改变积分环节的T,观察它们的单
位阶跃响应曲线变化情况。
仿真框图如图1-2所示。
图1-2积分环节仿真框图
3、一阶惯性环节(
Ts11)
将图1-2中TransferFcn(传递函数)模块的参数重新设置,使其传递函数变成Ts1型,改变惯性环节的时间常数T,观察它们的单位阶跃响应曲线变化情况。
仿真框图如
图1-3所示。
图1-3惯性环节仿真框图
4、实际微分环节(Ks)
Ts1
将图1-2中TransferFcn(传递函数)模块的参数重新设置,使其传递函数变成KsTs1型,(参数设置时应注意T=1)。
令K不变,改变TransferFcn(传递函数)模块的参数,从而改变T,观察它们的单位阶跃响应曲线变化情况。
仿真框图如图1-4所示。
图1-4实际微分环节仿真框图
2
5、二阶振荡环节
ns22ns
将图1-2中TransferFcn(传递函数)模块的参数重新设置,使其传递函数变成
2ns
1)令n不变,取不同值(01),观察其单位阶跃响应曲线变化情况;
2)令=0.2不变,n取不同值,观察其单位阶跃响应曲线变化情况
图1-5二阶振荡环节仿真框图
6、延迟环节(es)
将图1-2仿真框图中的TransferFcn(传递函数)模块换成TransportDelay(时间延
迟)模块,改变延迟时间,观察单位阶跃响应曲线变化情况。
仿真框图如图1-6所示。
图1-6延迟环节仿真框图
三、实验要求
1、完成实验任务所有的仿真分析;
2、撰写实验报告。
实验报告内容包括:
1)实验题目和目的;
2)实验原理;
3)各环节的仿真框图和阶跃响应曲线;
4)讨论各环节中参数变化对阶跃响应的影响;
5)实验的体会。
实验四二阶系统的matlab性能分析
、实验目的
1、研究二阶系统的两个重要参数阻尼比和自然振荡频率n对系统动态性能的影响;
2、比较比例微分控制的二阶系统和典型二阶系统的性能;
3、比较输出量速度反馈控制的二阶系统和典型二阶系统的性能。
二、实验任务
1、典型二阶系统
其单位阶跃响应曲线变化情况;
调量Mp%和ts;
并计算超调量Mp%和ts。
2、比例微分控制的二阶系统
比例微分控制的二阶系统的结构图如图2-1。
图2-1比例微分控制的二阶系统的结构图
系统中加入比例微分控制,使系统阻尼比增加,并增加一个闭环零点,可以通过仿
真比较典型二阶系统和比例微分控制的二阶系统的单位阶跃响应的性能指标。
上图所示的控制系统,令n25,Td0.1,其中n5,0.2,从
s(s2n)s(s2)dn
Simulink图形库浏览器中拖曳Step(阶跃输入)、Sum(求和模块)、Pole-Zero(零极点)
模块、Scope(示波器)模块到仿真操作画面,连接成仿真框图如图2-2所示。
图中
3、输出量速度反馈的二阶系统输出量速度反馈的二阶系统的结构图如图2-3。
图2-3输出量速度反馈的二阶系统的结构图
系统中加入输出量的速度反馈控制,使系统阻尼比增加,可以通过仿真比较典型
阶系统和输出量速度反馈控制的二阶系统的单位阶跃响应的性能指标。
0.1s1
建立仿真框图如图2-4所示。
图中0.1s10.1s10.001s1
图2-4典型二阶系统和输出量速度反馈控制的二阶系统比较仿真框图
三、实验要求
1、完成实验任务所有的仿真分析;
2、撰写实验报告。
实验报告内容包括:
1)实验题目和目的;
2)实验原理;
3)实验任务中要求的所有仿真框图和阶跃响应曲线;
4)讨论下列问题:
a)
Mp%和ts的
Mp%和ts的影
试讨论欠阻尼时参数n对二阶系统阶跃响应曲线及性能指标影响;
b)试讨论欠阻尼时参数对二阶系统阶跃响应曲线及性能指标
响;
c)试讨论二阶系统加入比例微分控制后性能指标的变化;
d)试讨论二阶系统加入带输出量速度反馈控制后性能指标的变化。
5)实验体会。
实验三自动控制系统的稳定性和稳态误差分析
一、实验目的
1、研究高阶系统的稳定性,验证稳定判据的正确性;
2、了解系统增益变化对系统稳定性的影响;
3、观察系统结构和稳态误差之间的关系。
1、稳定性分析欲判断系统的稳定性,只要求出系统的闭环极点即可,而系统的闭环极点就是闭环传递函数的分母多项式的根,可以利用MATLAB中的tf2zp函数求出系统的零极点,或者利用root函数求分母多项式的根来确定系统的闭环极点,从而判断系统的稳定性。
MATLAB编写程序来判断闭环系统的稳定性,并绘制闭环系统的零极点图在MATLAB命令窗口写入程序代码如下:
z=-2.5
p=[0,-0.5,-0.7,-3]
k=0.2
Go=zpk(z,p,k)
Gc=feedback(Go,1)
Gctf=tf(Gc)
dc=Gctf.den
dens=ploy2str(dc{1},'s')
运行结果如下:
dens=
s^4+4.2s^3+3.95s^2+1.25s+0.5dens是系统的特征多项式,接着输入如下MATLAB程序代码:
den=[1,4.2,3.95,1.25,0.5]
p=roots(den)
运行结果如下:
p=
-3.0058
-1.0000
-0.0971+0.3961i
-0.0971-0.3961i
p为特征多项式dens的根,即为系统的闭环极点,所有闭环极点都是负的实部,因此闭环系统是稳定的。
下面绘制系统的零极点图,MATLAB程序代码如下:
z=-2.5
p=[0,-0.5,-0.7,-3]
k=0.2
Go=zpk(z,p,k)
Gc=feedback(Go,1)
Gctf=tf(Gc)
[z,p,k]=zpkdata(Gctf,'v')
pzmap(Gctf)
grid
运行结果如下:
z=
-2.5000
p=
-3.0058
-1.0000
-0.0971+0.3961i
-0.0971-0.3961i
k=
0.2000
输出零极点分布图如图3-1所示
图3-1零极点分布图
取k=1,10,100用MATLAB编写程序来判断闭环系统的稳定性。
只要将
(1)代码中的k值变为1,10,100,即可得到系统的闭环极点,从而判断系统的稳定性,并讨论系统增益k变化对系统稳定性的影响。
2、稳态误差分析
1)已知如图3-2所示的控制系统。
其中G(s)s2(ss510),试计算当输入为单位
阶跃信号、单位斜坡信号和单位加速度信号时的稳态误差
从Simulink图形库浏览器中拖曳Sum(求和模块)、Pole-Zero(零极点)模块、Scope(示波器)模块到仿真操作画面,连接成仿真框图如图3-3所示。
图中,Pole-Zero(零极点)模块建立G(s),信号源选择Step(阶跃信号)、Ramp(斜坡信号)和基本模块构
成的加速度信号。
为更好观察波形,将仿真器参数中的仿真时间和示波器的显示时间范围设置为300。
图3-3系统稳态误差分析仿真框图
信号源选定Step(阶跃信号),连好模型进行仿真,仿真结束后,双击示波器,输
出图形如图3-4所示。
信号源选定Ramp(斜坡信号),连好模型进行仿真,仿真结束后,双击示波器,输出图形如图3-5所示。
信号源选定加速度信号,连好模型进行仿真,仿真结束后,双击示波器,输出图形如图3-6所示。
从图3-4、3-5、3-6可以看出不同输入作用下的系统的稳态误差,系统是II型系统,因此在阶跃输入和斜坡输入下,系统稳态误差为零,在加速度信号输入下,存在稳态误差。
(2)若将系统变为I型系统,G(s),在阶跃输入、斜坡输入和加速度信
s(s10)
号输入作用下,通过仿真来分析系统的稳态误差。
三、实验要求
1、完成实验任务中的所有内容;
2、撰写实验报告。
实验报告内容包括:
(1)实验题目和目的;
(2)实验原理;
(3)实验任务中要求完成实验的程序代码、仿真框图、波形和数据结果;
(4)讨论下列问题:
a)讨论系统增益k变化对系统稳定性的影响;
b)讨论系统型数以及系统输入对系统稳态误差的影响。
(5)实验体会。
实验四自动控制系统根轨迹的分析
一、实验目的
1、学习用MATLAB绘制系统根轨迹;
2、掌握根据系统根轨迹图分析系统性能。
、实验任务
统的根轨迹时,首先将传递函数的分子分母多项式的系数写成两个一维数组:
num[bmbm1Lb1b0]den[anan1La1a0]
利用MATLA中的rlocus函数绘制系统的根轨迹。
1、使用MATLAB绘制负反馈系统的根轨迹,该系统的开环传递函数为
MATLAB程序代码如下:
num=[1,8]den=conv([1,2,0],[1,8,32])sys=tf(num,den)rlocus(sys)%绘制根轨迹图axis([-155-1010])%调整绘制区域MATLAB绘制的根轨迹如图4-1所示。
2、使用MATLAB绘制正反馈系统的根轨迹,该系统的开环传递函数为
MATLAB程序代码如下:
num=[1,8]den=conv([1,2,0],[1,8,32])
图4-1负反馈系统根轨迹图
图4-2正反馈系统根轨迹图
3、使用MATLAB绘制参数a的根轨迹,该系统的开环传递函数为
MATLAB程序代码如下:
den=conv(conv([1,1],[1,3]),[1,12])
k=5poles=[]param=[]%定义数组存储结果fora=1:
100%a从1变化到100num=[00kk*a]clpoly=num+denclp=roots(clpoly)%计算闭环极点poles=[poles;clp]param=[param;a]endplot(poles,'*')axisequalaxis([-40-22])
MATLAB绘制的根轨迹如图4-3所示
图4-3系统参变量根轨迹图
的根轨迹,并求下面两种情况下的K值:
(1)两分支进入右半平面时;
(2)两条分支
从实轴进入复平面时。
MATLAB程序代码如下:
num=[1]den=conv([1,1,0],[0,1,4])sys=tf(num,den)rlocus(sys)%绘制根轨迹图axis([-155-1010])%调整绘制区域[k,poles]=rlocfind(sys)%计算增益值和极点MATLAB绘制的根轨迹如图4-4所示。
图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自控 Matlab 仿真