自动控制原理simulink实验指导
自动控制原理
上机实验指导书
王芳、杨志超编写
南京工程学院电力工程学院
二〇〇七年二月
目 录
Simulink仿真集成环境简介„„„„„„„„„„„„„„„„„„„„„„„„„2 实验一
实验二
实验三
实验四
实验五
实验六
实验七
典型环节的性能分析„„„„„„„„„„„„„„„„„„„„„„„11 二阶系统的性能分析„„„„„„„„„„„„„„„„„„„„„„„14 自动控制系统的稳定性和稳态误差分析„„„„„„„„„„„„„„„17 自动控制系统根轨迹的分析„„„„„„„„„„„„„„„„„„„„22 27 控制系统的校正及设计„„„„„„„„„„„„„„„„„„„„„„32 非线性系统的稳定性分析„„„„„„„„„„„„„„„„„„„„„39 自动控制系统的频域分析„„„„„„„„„„„„„„„„„„„
Simulink仿真集成环境简介
Simulink是可视化动态系统仿真环境。1990年正式由Mathworks公司引入到MATLAB中,它是Slmutation 和Link的结合。这里主要介绍它的使用方法和它在控制系统仿真分析和设计操作的有关内容。
1、进入Simulink操作环境
双击桌面上的MATLAB图标,启动MATLAB,进入开发环境,如图0-1所示:
图0-1 MATLAB开发环境
从MATLAB的桌面操作环境画面进入Simulink操作环境有多种方法,介绍如下: ①点击工具栏的Simulink图标,弹出如图0-2的图形库浏览器画面。
②在命令窗口键入“simulink”命令,可自动弹出图形库浏览器。
上述两种方法需从该画面“File”下拉式菜单中选择“New/Model”,或点击图标
得到图0-3的图形仿真操作画面。
③从“File”下拉式菜单中选择“New/Model”,弹出图0-3所示的未命名的图形仿真操
作画面。从工具栏中点击图形库浏览器图标,调出图0-2的图形库浏览器画面。图,0-3用于仿真操作,图0-2的图形库用于提取仿真所需的功能模块。
图0-2 Simulink图形库浏览器画面
图0-3 simulink仿真操作环境画面
2、提取所需的仿真模块
在提取所需仿真模块前,应绘制仿真系统框图,并确定仿真所用的参数。
图0-2中的仿真用图形库,提供了所需的基本功能模块,能满足系统仿真的需要。该图形库有多种图形子库,用于配合有关的工具箱。下面将对本书中实验可能用到的功能模块作一个简单介绍。
(1) Sources(信号源模块组)
点击图0-2图形库浏览器画面中的Sources,界面右侧会出现各种常用的输入信号,
如图0-4所示。
图0-4信号源模块组
·In(输入端口模块)——用来反映整个系统的输入端子,这样的设置在模型线性化与命令行仿真时是必需的。
·Signal Generator(信号源发生器)——能够生成若干种常用信号,如方波信号、正弦波信号、锯齿波信号等,允许用户自由调整其幅值、相位及其它信号。
·From File(读文件模块)和From Workspace(读工作空间模块)——两个模块允许从文件或MATLAB工作空间中读取信号作为输入信号。
·Clock(时间信号模块)——生成当前仿真时钟,在于事件有关的指标求取中是很有意义的。
·Constant(常数输入模块)——此模块以常数作为输入,可以在很多模型中使用该模块。
·Step(阶跃输入模块)——以阶跃信号作为输入,其幅值可以自由调整。
·Ramp(斜坡输入模块)——以斜坡信号作为输入,其斜率可以自由调整。
·Sine Wave(正弦信号输入模块)——以正弦信号作为输入,其幅值、频率和初相位可以自由调整。
·Pulse Genetator(脉冲输入模块)——以脉冲信号作为输入,其幅值和脉宽可以自由调整。
(2)Continuous(连续模块组)
连续模块组包括常用的连续模块,如图0-5所示。
图0-5 连续模块组
·Derivative(微分器)——此模块相当于自动控制系统中的微分环节,将其输入端的信号经过一阶数值微分,在其输出端输出。在实际应用中应该尽量避免使用该模块。 ·Integrator(积分器)——此模块相当于自动控制系统中的积分环节,将输入端信号经过数值积分,在输出端输出。
·Transfer Fcn(传递函数)——此模块可以直接设置系统的传递函数,以多项式的比值bmsmbm1sm1b1sb0形式描述系统,一般形式为G(s)n,其分子分母多项式的系n1san1sa1sa0
数可以自行设置。
·Pole-Zero(零极点)——将传递函数分子和分母分别进行因式分解,变成零极点表达形式G(s)K
自行设置。
·Transport Delay(时间延迟)——此模块相当于自动控制系统中的延迟环节,用于将输入信号延迟一定时间后输出,延迟时间可以自行调整。
(3)Math Operations(数学函数模块组)
数学函数模块组包含各种数学函数运算模块,如图0-6所示。
·Gain(增益函数)——此模块相当于自动控制系统中的比例环节,输出信号等于输入信号的乘以模块中种指定的数值,此数值可以自行调整。
·Sum(求和模块)——此模块相当于自动控制系统中的加法器,将输入的多路信号进(sz1)(sz2)(szm),其中zi(系统的零点)、pj(系统的极点)可以(sp1)(sp2)(spn)
行求和或求差。
·其它数学函数,如Abs(绝对值函数)、Sign(符号函数)、Rounding Function(取整模块)等。
图0-6 数学函数模块组
(4)Sinks(输出池模块组)
输出池模块组包含那些能显示计算结果的模块,如图0-7所示。
图0-7 输出池模块组
·Out(输出端口模块)——用来反映整个系统的输出端子,这样的设置在模型线性化与命令行仿真时是必需的,另外,系统直接仿真时这样的输出将自动在MATLAB工作空间中生成变量。
·Scope(示波器模块)——将其输入信号在示波器中显示出来。
·x-y Graph(x-y示波器)——将两路输入信号分别作为示波器的两个坐标轴,将信号
的相轨迹显示出来。
·To Workspace(工作空间写入模块)——将输入的信号直接写到MATLAB的工作空间中。
·To File(写文件模块)——将输入的信号写到文件中。
·Display(数字显示模块)——将输入的信号以数字的形式显示出来。
·Stop Simulation(仿真终止模块)——如果输入的信号为非零时,将强行终止正在进行的仿真过程。
·Terminator(信号终结模块)——可以将该模块连接到闲置的未连接的模块输出信号上,避免出现警告。
从图0-2中用鼠标点击打开所需子图形库,用鼠标选中所需功能模块,将其拖曳到图0-3中的空白位置,重复上述拖曳过程,直到将所需的全部功能模块拖曳到图0-3中。
拖曳时应注意下列事项:
(1) 根据仿真系统框图,选择合适的功能模块进行拖曳,放到合适的位置,以便
于连接。
(2) 对重复的模块,可采用复制和粘贴操作,也可以反复拖曳。
(3) 功能模块和图0-3的大小可以用鼠标移动到图标或图边,在出现双向箭头后
进行放大或缩小的操作。
(4) 选中功能模块的方法是直接点击模块,用鼠标选定所需功能模块区域来选中
区域内所有功能模块和连接线,点击选中,并按下“shift”键,再点击其它
功能模块。
3、功能模块的连接
根据仿真系统框图,用鼠标点击并移动所需功能模块到合适的位置,将鼠标移到有关功能模块的输出端,选中该输出端并移动鼠标到另一个功能模块的输入端,移动时出现虚线,到达所需输入端时,释放鼠标左键,相应的连接线出现,表示该连接已完成。重复以上的连接过程,直到完成全部连接,组成仿真系统。
4、功能模块参数设置
使用者需设置功能模块参数后,方可进行仿真操作。不同功能模块的参数是不同的,用鼠标双击该功能模块自动弹出相应的参数设置对话框。
例如,图0-8是Transfer Fcn(传递函数)功能模块的对话框。功能模块对话框由功能模块说明和参数设置框组成。功能模块说明框用于说明该功能模块使用的方法和功能,参数框用于设置该模块的参数。Transfer Fcn的参数框由分子和分母多项式两个编辑框组成,在分子多项式框中,用户可输入系统模型的分子多项式,在分母多项式框中,输入系统模型的分母多项式。设置功能模块的参数后,点击OK进行确认,将设置的参数送仿真操作画面,并关闭对话框。
图0-8 Transfer Fcn(传递函数)模块参数设置对话框
5、仿真器参数设置
点击图0-3操作画面“Simulation”下拉式菜单“Simulation Parameters„”选项,弹出如图0-9所示的仿真参数设置画面。共有Solver、Workspace I/O、Diagnostics、Advanced和Real-Time Workshop等五个页面。在Solver中设置Solver Type、Solver(步长)等。仿真操作时,可根据仿真曲线设置终止时间和最大步长,以便得到较光滑的输出曲线。
6、示波器参数设置
当采用示波器显示仿真曲线时,需对示波器参数进行设置。双击Scope模块,弹出如图0-10所示的示波器显示画面,点击画面的图标,弹出如图0-11所示的示波器属性对话框,分2个页面,用于设置显示坐标窗口数、显示时间范围、标记和显示频率或采样时间等。时间范围可以在示波器属性对话框里的General页中的Time range设置,
设置值应与仿真器终止时间一致,以便最大限度显示仿真操作数据。鼠标右键点击示波器显示窗口,从弹出菜单选择“Autoscale”,或直接点击图标,可在响应曲线显示后
,自动调整纵坐标范围;从弹出菜单选择“Save current axes settings”,或直接点击图标
将当前坐标轴范围的设置数据存储。此外,还有打印、放大或恢复等操作。
图0-9 仿真参数设置画面
图0-10 示波器显示画面 图0-11 示波器属性对话框
7、运行仿真
模型编辑好后,点击图0-3操作画面“Simulation”下拉式菜单“start”或“start
Simulation”按钮运行,双击Scope模块,显示输出曲线。
8、对数据作后续处理
当仿真任务比较复杂时,需要将Simulation生成的数再导入到工作空间进行处理和分析,仿真结束后,输出结果通过“To workspace”传送到工作空间中,在工作空间窗口中能看到这些变量,使用“whos”命令能看到这些变量的详细信息。另外,“To file”、“From file”模块能实现文件与Simulink的数据传输。
实验一 典型环节的性能分析
一、实验目的
1、熟悉各种典型环节的阶跃响应曲线; 2、了解参数变化对典型环节动态特性的影响。
二、实验任务
1、比例环节(K)
从图0-2的图形库浏览器中拖曳Step(阶跃输入)、Gain(增益模块)、Scope(示波器)模块到图0-3仿真操作画面,连接成仿真框图。
改变增益模块的参数,从而改变比例环节的放大倍数K,观察它们的单位阶跃响应曲线变化情况。可以同时显示三条响应曲线,仿真框图如图1-1所示。
图1-1比例环节仿真框图
1
) Ts
将图1-1仿真框图中的Gain(增益模块)换成Transfer Fcn(传递函数)模块,设
1
置Transfer Fcn(传递函数)模块的参数,使其传递函数变成型。
Ts
2、积分环节(
改变Transfer Fcn(传递函数)模块的参数,从而改变积分环节的T,观察它们的单位阶跃响应曲线变化情况。仿真框图如图1-2所示。
图1-2 积分环节仿真框图
3、一阶惯性环节(
1
) Ts1
1Ts1
将图1-2中Transfer Fcn(传递函数)模块的参数重新设置,使其传递函数变成
型,改变惯性环节的时间常数T,观察它们的单位阶跃响应曲线变化情况。仿真框图如图1-3所示。
图1-3 惯性环节仿真框图
4、实际微分环节(
Ks
) Ts1
KsTs1
将图1-2中Transfer Fcn(传递函数)模块的参数重新设置,使其传递函数变成型,(参数设置时应注意T1)。
令K不变,改变Transfer Fcn(传递函数)模块的参数,从而改变T,观察它们的单位阶跃响应曲线变化情况。仿真框图如图1-4所示。
图1-4 实际微分环节仿真框图
2
n
5、二阶振荡环节(2) 2
s2nsn
将图1-2中Transfer Fcn(传递函数)模块的参数重新设置,使其传递函数变成
2n
型(参数设置时应注意01),仿真框图如图1-5所示。 22
s2nsn
(1)令n不变,取不同值(01),观察其单位阶跃响应曲线变化情况; (2)令=0.2不变,n取不同值,观察其单位阶跃响应曲线变化情况。
图1-5 二阶振荡环节仿真框图
6、延迟环节(es)
将图1-2仿真框图中的Transfer Fcn(传递函数)模块换成Transport Delay(时间延迟)模块,改变延迟时间,观察单位阶跃响应曲线变化情况。仿真框图如图1-6所示。
图1-6 延迟环节仿真框图
三、实验要求
1、完成实验任务所有的仿真分析; 2、撰写实验报告。 实验报告内容包括: (1) 实验题目和目的; (2) 实验原理;
(3) 各环节的仿真框图和阶跃响应曲线; (4) 讨论各环节中参数变化对阶跃响应的影响; (5) 实验的体会。
实验二 二阶系统的性能分析
一、实验目的
1、研究二阶系统的两个重要参数阻尼比和自然振荡频率n对系统动态性能的影响;
2、比较比例微分控制的二阶系统和典型二阶系统的性能; 3、比较输出量速度反馈控制的二阶系统和典型二阶系统的性能。
二、实验任务
1、典型二阶系统
2n
二阶系统的传递函数为(s)=2,仿真框图如图1-5所示。 2
s2nsn
(1)令n=10不变,取不同值:1=0,2、3(01),4=1,5>1,观察其单位阶跃响应曲线变化情况;
(2)令=0不变,n取不同值,观察其单位阶跃响应曲线变化情况;
(3)令=0.2不变,n取不同值,观察其单位阶跃响应曲线变化情况,并计算超调量Mp%和ts;
(4)令n=10不变,取不同值(01),观察其单位阶跃响应曲线变化情况,并计算超调量Mp%和ts。
2、比例微分控制的二阶系统
比例微分控制的二阶系统的结构图如图2-1。
图2-1 比例微分控制的二阶系统的结构图
系统中加入比例微分控制,使系统阻尼比增加,并增加一个闭环零点,可以通过仿
真比较典型二阶系统和比例微分控制的二阶系统的单位阶跃响应的性能指标。
2n25
上图所示的控制系统,令,Td0.1,其中n5,0.2,从
s(s2n)s(s2)
Simulink图形库浏览器中拖曳Step(阶跃输入)、Sum(求和模块)、Pole-Zero(零极点)模块、Scope(示波器)模块到仿真操作画面,连接成仿真框图如图2-2所示。图中Pole-Zero(零极点)模块建立G(s)。
图2-2 典型二阶系统和比例微分控制的二阶系统比较仿真框图
3、输出量速度反馈的二阶系统
输出量速度反馈的二阶系统的结构图如图2-3。
图2-3 输出量速度反馈的二阶系统的结构图
系统中加入输出量的速度反馈控制,使系统阻尼比增加,可以通过仿真比较典型二阶系统和输出量速度反馈控制的二阶系统的单位阶跃响应的性能指标。
2
n25
图2-3所示的控制系统,令,Kf0.1,其中n5,0.2,
s(s2n)s(s2)
建立仿真框图如图2-4所示。图中
0.1s1
0.1s1。
0.001s1
图2-4 典型二阶系统和输出量速度反馈控制的二阶系统比较仿真框图
三、实验要求
1、完成实验任务所有的仿真分析; 2、撰写实验报告。 实验报告内容包括: (1) 实验题目和目的; (2) 实验原理;
(3) 实验任务中要求的所有仿真框图和阶跃响应曲线; (4) 讨论下列问题:
a) 试讨论欠阻尼时参数n对二阶系统阶跃响应曲线及性能指标Mp%和ts的
影响;
b) 试讨论欠阻尼时参数对二阶系统阶跃响应曲线及性能指标Mp%和ts的影
响;
c) 试讨论二阶系统加入比例微分控制后性能指标的变化;
d) 试讨论二阶系统加入带输出量速度反馈控制后性能指标的变化。
(5)实验体会。
实验三 自动控制系统的稳定性和稳态误差分析
一、实验目的
1、研究高阶系统的稳定性,验证稳定判据的正确性; 2、了解系统增益变化对系统稳定性的影响; 3、观察系统结构和稳态误差之间的关系。
二、实验任务
1、稳定性分析
欲判断系统的稳定性,只要求出系统的闭环极点即可,而系统的闭环极点就是闭环传递函数的分母多项式的根,可以利用MATLAB中的tf2zp函数求出系统的零极点,或者利用root函数求分母多项式的根来确定系统的闭环极点,从而判断系统的稳定性。 (1)已知单位负反馈控制系统的开环传递函数为G(s)
0.2(s2.5)
,用
s(s0.5)(s0.7)(s3)
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.2 s^3 + 3.95 s^2 + 1.25 s + 0.5
dens是系统的特征多项式,接着输入如下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 零极点分布图
(2)已知单位负反馈控制系统的开环传递函数为G(s)
k(s2.5)
,当
s(s0.5)(s0.7)(s3)
取k=1,10,100用MATLAB编写程序来判断闭环系统的稳定性。
只要将(1)代码中的k值变为1,10,100,即可得到系统的闭环极点,从而判断系统的稳定性,并讨论系统增益k变化对系统稳定性的影响。
2、稳态误差分析
(1)已知如图3-2所示的控制系统。其中G(s)
s5
,试计算当输入为单位
s2(s10)
阶跃信号、单位斜坡信号和单位加速度信号时的稳态误差。
图3-2 系统结构图
从Simulink图形库浏览器中拖曳Sum(求和模块)、Pole-Zero(零极点)模块、Scope(示波器)模块到仿真操作画面,连接成仿真框图如图3-3所示。图中,Pole-Zero(零极点)模块建立G(s),信号源选择Step(阶跃信号)、Ramp(斜坡信号)和基本模块构成的加速度信号。为更好观察波形,将仿真器参数中的仿真时间和示波器的显示时间范围设置为300。
图3-3 系统稳态误差分析仿真框图
信号源选定Step(阶跃信号),连好模型进行仿真,仿真结束后,双击示波器,输出图形如图3-4所示。
图3-4 单位阶跃输入时的系统误差
信号源选定Ramp(斜坡信号),连好模型进行仿真,仿真结束后,双击示波器,输出图形如图3-5所示。
图3-5 斜坡输入时的系统误差
信号源选定加速度信号,连好模型进行仿真,仿真结束后,双击示波器,输出图形如图3-6所示。
图3-6 加速度输入时的系统误差
从图3-4、3-5、3-6可以看出不同输入作用下的系统的稳态误差,系统是II型系统,因此在阶跃输入和斜坡输入下,系统稳态误差为零,在加速度信号输入下,存在稳态误差。
(2)若将系统变为I型系统,G(s)
5
,在阶跃输入、斜坡输入和加速度信
s(s10)
号输入作用下,通过仿真来分析系统的稳态误差。
三、实验要求
1、完成实验任务中的所有内容; 2、撰写实验报告。 实验报告内容包括: (1) 实验题目和目的; (2) 实验原理;
(3) 实验任务中要求完成实验的程序代码、仿真框图、波形和数据结果; (4) 讨论下列问题:
a) 讨论系统增益k变化对系统稳定性的影响; b) 讨论系统型数以及系统输入对系统稳态误差的影响。
(5)实验体会。
实验四 自动控制系统根轨迹的分析
一、实验目的
1、学习用MATLAB绘制系统根轨迹; 2、掌握根据系统根轨迹图分析系统性能。
二、实验任务
bmsmbm1sm1b1sb0
根据系统的开环传递函数GH(s)n,用MATLAB绘制系n1
ansan1sa1sa0统的根轨迹时,首先将传递函数的分子分母多项式的系数写成两个一维数组:
num[bmbm1b1b0] den[anan1a1a0]
利用MATLA中的rlocus函数绘制系统的根轨迹。
1、使用MATLAB绘制负反馈系统的根轨迹,该系统的开环传递函数为
GH(s)
k(s8)
2
s(s2)(s8s32)
MATLAB程序代码如下: num=[1, 8]
den=conv([1,2,0],[1,8,32]) sys=tf(num,den)
rlocus(sys) %绘制根轨迹图 axis([-15 5 -10 10]) %调整绘制区域 MATLAB绘制的根轨迹如图4-1所示。
2、使用MATLAB绘制正反馈系统的根轨迹,该系统的开环传递函数为
GH(s)
k(s8)
。
s(s2)(s28s32)
MATLAB程序代码如下: num=[1, 8]
den=conv([1,2,0],[1,8,32])
sys=tf(num,den)
rlocus(-sys) %绘制根轨迹图 axis([-15 5 -10 10]) %调整绘制区域 MATLAB绘制的根轨迹如图4-2所示。
图4-1 负反馈系统根轨迹图
图4-2 正反馈系统根轨迹图
3、使用MATLAB绘制参数a的根轨迹,该系统的开环传递函数为
GH(s)
5(sa)
,其中1a100。
(s1)(s3)(s12)
MATLAB程序代码如下:
den=conv(conv([1,1],[1,3]),[1,12]) k=5 poles=[]
param=[] %定义数组存储结果 for a=1:100 %a从1变化到100 num=[0 0 k k*a] clpoly=num+den
clp=roots(clpoly) %计算闭环极点 poles=[poles;clp] param=[param;a] end plot(poles,'*') axis equal axis([-4 0 -2 2])
MATLAB绘制的根轨迹如图4-3所示。
图4-3系统参变量根轨迹图
4、某负反馈系统的开环传递函数为GH(s)
k
,用MATLAB绘制系统
s(s1)(s4)
的根轨迹,并求下面两种情况下的K值:(1)两分支进入右半平面时;(2)两条分支
从实轴进入复平面时。
MATLAB程序代码如下: num=[1]
den=conv([1,1,0],[0,1,4]) sys=tf(num,den)
rlocus(sys) %绘制根轨迹图 axis([-15 5 -10 10]) %调整绘制区域 [k,poles]=rlocfind(sys) %计算增益值和极点 MATLAB绘制的根轨迹如图4-4所示。
图4-4 根轨迹图
利用rlocfind命令,可求得任意点对应的K值。两分支进入右半平面时,K19,对应的极点为poles=-4.9701、-0.0149 + 1.9625i、-0.0149 - 1.9625i,因此可得当K19时,系统由两个闭环极点位于s右半平面,系统不稳定;两条分支从实轴进入复平面时,
K0.88,对应的极点为poles= -4.0706、-0.4647 + 0.0296i、-0.4647 - 0.0296i,则当19K0.88时,系统存在一对共轭的复数极点,系统响应由单调变为振荡。
5、使用MATLAB绘制负反馈系统的根轨迹,该系统的开环传递函数为
GH(s)
k
,并求系统稳定的范围。
s(s5)(s22s5)
6、使用MATLAB绘制正反馈系统的根轨迹,该系统的开环传递函数为
GH(s)
k
,并求系统响应无超调的范围。
s(s2)(s5)
三、实验要求
1、完成实验任务中所有根轨迹的绘制及分析; 2、撰写实验报告。 实验报告内容包括: (1) 实验题目和目的; (2) 实验原理;
(3) 实验任务中要求完成实验的程序代码、根轨迹图和运行结果; (4) 实验体会。
实验五 自动控制系统的频域分析
一、实验目的
1、利用MATLAB绘制系统的频率特性图; 2、根据Nyquist图判断系统的稳定性; 3、根据Bode图计算系统的稳定裕度。
二、实验任务
利用MATLAB绘制系统的频率特性图,是指绘制Nyquist图、Bode图,所用到的函数主要是nyquist、ngrid、bode和margin等。
1、Nyquist图的绘制及稳定性判断
nyquist函数可以计算连续线性定常系统的频率响应,当命令中不包含左端变量时,仅产生Nyquist图。
命令nyquist(num,den)将画出下列传递函数的Nyquist图:
bmsmbm1sm1b1sb0
GH(s)nn1
ansan1sa1sa0
其中num[bmbm1b1b0],den[anan1a1a0]。
(1)已知某控制系统的开环传递函数为G(s)统的Nyquist图,并判断系统的稳定性。
MATLAB程序代码如下: num=[50] den=[1,3,-10] nyquist(num,den) axis([-6 2 -2 0]) title('Nyquist 图')
执行该程序后,系统的Nyquist图如图5-1所示。
50
,用MATLAB绘制系
(s5)(s2)
图5-1 系统的Nyquist图
由上图可知Nyquist曲线逆时针包围(-1,j0)点半圈,而开环系统在右半平面有一个极点,故系统稳定。
(2)已知系统的开环传递函数为G(s)
100k
,用MATLAB分别绘制
s(s5)(s10)
k1,8,20时系统的Nyquist图,并判断系统的稳定性。
2、Bode图的绘制及稳定裕度的计算
MATLAB提供绘制系统Bode图函数bode( ),bode( num,den)绘制以多项式函数表示的系统Bode图。
2n
(1)已知典型二阶环节的传递函数为G(s)2,其中n0.7,分别2
s2nsn
绘制0.1,0.4,1,1.6,2时得Bode图。
MATLAB程序代码如下: w=[0,logspace(-2,2,200)] wn=0.7
tou=[0.1,0.4,1,1.6,2] for j=1:5
sys=tf([wn*wn],[1,2*tou(j)*wn,wn*wn])
bode(sys,w) hold on end
gtext('tou=0.1') gtext('tou=0.4') gtext('tou=1') gtext('tou=1.6') gtext('tou=2')
执行该程序后,系统的Bode图如图5-2所示。
图5-2 系统的Bode图
(2)已知某高阶系统的传递函数为G(s)
5(0.0167s1)
,绘制
s(0.03s1)(0.0025s1)(0.001s1)
系统的Bode图,并计算系统的相角裕度和幅值裕度。
MATLAB程序代码如下: num=5*[0.0167,1]
den=conv(conv([1,0],[0.03,1]),conv([0.0025,1],[0.001,1])) sys=tf(num,den)
w=logspace(0,4,50)
bode(sys,w)
grid
[Gm,Pm,Wg,Wc]=margin(sys)
执行该程序后,系统的Bode图如图5-3所示。
图5-3 系统的Bode图
运行结果如下:
Gm =
455.2548
Pm =
85.2751
Wg =
602.4232
Wc =
4.9620
由运行结果可知,系统的幅值裕度Lg455.2548,相角裕度85.2751,相角穿越频率g602.4262rad/s,截止频率c4.962rad/s。
(3)已知某高阶系统的传递函数为G(s)
Bode图,并计算系统的相角裕度和幅值裕度。
三、实验要求
1、完成实验任务中所有的内容;
2、撰写实验报告。
实验报告内容包括:
(1) 实验题目和目的;
(2) 实验原理; 100(0.5s1),绘制系统的s(s1)(0.1s1)(0.05s1)
(3) 实验任务中要求完成实验的程序代码、结果图、结论和运行结果;
(4) 讨论系统增益变化对系统稳定性的影响;
(5) 实验体会。
实验六 控制系统的校正及设计
一、实验目的
1、掌握串联校正环节对系统稳定性的影响;
2、了解使用SISO系统设计工具(SISO Design Tool)进行系统设计。
二、设计任务
串联校正是指校正元件与系统的原来部分串联,如图6-1所示。
图6-1 串联校正
图中,Gc(s)表示校正部分的传递函数,Go(s)表示系统原来前向通道的传递函数。当Gc(s)1aTs1aTs(a1),为串联超前校正;当Gc(s)(a1),为串联迟后校正。 1Ts1Ts
我们可以使用SISO系统设计串联校正环节的参数,SISO系统设计工具(SISO Design Tool)是用于单输入单输出反馈控制系统补偿器设计的图形设计环境。通过该工具,用户可以快速完成以下工作:利用根轨迹方法计算系统的闭环特性、针对开环系统Bode图的系统设计、添加补偿器的零极点、设计超前/滞后网络和滤波器、分析闭环系统响应、调整系统幅值或相位裕度等。
(1)打开SISO系统设计工具
在MATLAB命令窗口中输入sisotool命令,可以打开一个空的SISO Design Tool,也可以在sisotool命令的输入参数中指定SISO Design Tool启动时缺省打开的模型。注意先在MATLAB的当前工作空间中定义好该模型。如图6-2为一个DC电机的设计环境。
(2)将模型载入SISO设计工具
通过file/import命令,可以将所要研究的模型载入SISO设计工具中。点击该菜单项后,将弹出Import System Data对话框,如图6-3所示。
(3)当前的补偿器(Current Compensator)
图6-2中当前的补偿器(Current Compensator)一栏显示的是目前设计的系统补偿器的结构。缺省的补偿器增益是一个没有任何动态属性的单位增益,一旦在跟轨迹图和Bode图中添加零极点或移动曲线,该栏将自动显示补偿器结构。
(4)反馈结构
SISO Design Tool 在缺省条件下将补偿器放在系统的前向通道中,用户可以通过“+/-”按钮选择正负反馈,通过“FS”按钮在如下图6-4几种结构之间进行切换。
图6-2 SISO系统的图形设计环境
图6-3 Import System Data对话框
图6-4 SISO Design Tool中的反馈控制结构
1、图6-1所示的控制系统,原开环传递函数为Go(s)2,试用SISOs(0.1s1)(0.3s1)
系统设计工具(SISO Design Tool)设计超前校正环节,使其校正后系统的静态速度误差系数Kv6,相角裕度为45,并绘制校正前后的Bode图,并计算校正前后的相角裕度。
(1)将模型载入SISO设计工具
在MATLAB命令窗口先定义好模型Go(s)
num=2
den=conv([0.1,1,0],[0.3,1])
G=tf(num,den)
得到结果如下:
Transfer function:
2
----------------------
0.03 s^3 + 0.4 s^2 + s
输入sisotool命令,可以打开一个空的SISO Design Tool,通过file/import命令,可以将模型G载入SISO设计工具中,如图6-5所示。
(2)调整增益
根据要求系统的静态速度误差系数Kv6,补偿器的增益应为3,将图6-5中的C(s)=1改为3,如图6-5所示。从图中Bode相频图左下角可以看出相位裕度21.2,不满足要求。
(3)加入超前校正网络
在开环Bode图中点击鼠标右键,选择“Add Pole/Zero”下的“Lead”菜单,该命2,代码如下: s(0.1s1)(0.3s1)
令将在控制器中添加一个超前校正网络。这时鼠标的光标将变成“X”形状,将鼠标移到Bode图幅频曲线上接近最右端极点的位置按下鼠标,得到如图6-6所示的系统。
图6-5 改变增益后的系统
图6-6 增加超前网络后的系统
从图中Bode相频图左下角可以看出相位裕度28.4,仍不满足要求,需进一步调整超前环节的参数。
(4)调整超前网络的零极点
将超前网络的零点移动到靠近原来最左边的极点位置,接下来将超前网络的极点向右移动,并注意移动过程中相角裕度的增长,一直到相角裕度达到45,此时超前网络满足设计要求。如图6-7所示。
图6-7 最后满足要求的系统 从图中可以看出来,超前网络的传递函数为3(10.26s),最后系统的Kv6,(10.054s)
45.9。
2、图6-1所示的控制系统,原开环传递函数为Go(s)k,试用SISO系统s(0.2s1)
设计工具(SISO Design Tool)设计超前校正环节,使其校正后系统的静态速度误差系数Kv100,相角裕度为30,并绘制校正前后的Bode图,并计算校正前后的相角裕
度。
3、使用SISO Design Tool设计直流电机调速系统。典型电机结构示意图如图6-8所示,控制系统的输入变量为输入电压Ua(t),系统输出是电机负载条件下的转动角速度(t)。现设计补偿器的目的是通过对系统输入一定的电压,使电机带动负载以期望的角速度转动,并要求系统具有一定的稳定裕度。
图6-8 直流电动机调速系统
直流电机动态模型本质上可以视为典型二阶系统,设某直流电机的传递函数为
G(s)1.5 s214s40.02
系统的设计指标为:上升时间tr0.5s,稳态误差ess5%,最大超调量MP%10%,幅值裕度Lg20dB,相角裕度40。
系统设计步骤:
(1)调整补偿器的增益
如果对该系统进行时域仿真,可发现其阶跃响应时间很大,提高系统响应速度的最简单方法就是增加补偿器增益的大小。在SISO的设计工具中可以很方便的实现补偿器增益的调节:鼠标移动到Bode幅值线上,按下鼠标左键抓取Bode幅值线,向上拖动,释放鼠标,系统自动计算改变的系统增益和极点。
既然系统要求上升时间tr0.5s,应调整系统增益,使得系统的穿越频率c位于3rad/s附近。这是因为3rad/s的频率位置近似对应于0.33s的上升时间。
为了更清楚的查找系统的穿越频率,点击鼠标右键,在快捷菜单中选择“Grid”命令,将在Bode图中绘制网格线。
观察系统的阶跃响应,可以看到系统的稳态误差和上升时间已得到改善,但要满足
所有的设计指标,还应加入更复杂的控制器。
(2)加入积分器
点击鼠标右键,在弹出的快捷菜单中选择“Add Pole/Zero”下的“Integrator”菜单,这时系统将加入一个积分器,系统的穿越频率随之改变,应调整补偿器的增益将穿越频率调整回3rad/s的位置。
(3)加入超前校正网络
为了添加一个超前校正网络,在开环Bode图中点击鼠标右键,选择“Add Pole/Zero”下的“Lead”菜单,该命令将在控制器中添加一个超前校正网络。这时鼠标的光标将变成“X”形状,将鼠标移到Bode图幅频曲线上接近最右端极点的位置按下鼠标。
从Bode图中可以看出幅值裕度还没有达到要求,还需进一步调整超前环节的参数。
(4)移动补偿器的零极点
为了提高系统的响应速度,将超前网络的零点移动到靠近电机原来最左边的极点位置,接下来将超前网络的极点向右移动,并注意移动过程中幅值裕度的增长。也可以通过调节增益来增加系统的幅值裕度。
试按照上述方法调整超前网络参数和增益,最终满足设计的要求。
三、实验要求
1、完成设计任务中所有的内容;
2、撰写实验报告。
实验报告内容包括:
(1) 实验题目和目的;
(2) 设计原理;
(3) 超前网络设计中的设计过程、网络传递函数、校正前后的Bode图及相角
裕度;
(4) 直流电机调速系统设计中的设计过程、补偿器的传递函数及最终的各性
能指标;
(5) 设计体会。
实验七 非线性系统的稳定性分析
一、实验目的
1、掌握使用MATLAB编程进行非线性系统的稳定性分析;
2、掌握稳定自振荡频率和振幅的计算。
二、实验任务
若非线性系统如图7-1所示,则使用描述函数法判别非线性系统稳定性的方法:先求出非线性环节的描述函数N(A),然后在极坐标图上分别画出线性部分的G(j)和非线性部分的1,并假设G(s)的极点均在s的左半平面,则(1)若G(j)曲线不包N(A)
围11曲线,则系统稳定;(2)若G(j)曲线包围曲线,则系统不稳定;(3)N(A)N(A)
1曲线相交,则系统产生自振荡。
N(A)若G(j)曲线与
图7-1 非线性系统结构图
1、某非线性系统结构图如图7-2所示,(1)试用MATLAB编程判断系统的稳定性
(2)如果系统为稳定的自振荡,计算自振荡的频率和振幅。
图7-2 系统结构图
非线性环节为理想继电器特性,描述函数为N(A)4A1,则=。使用A4N(A)
MATLAB编程画出G(j)曲线与
num=[10];
den=conv([1,1,0],[0,1,2]);
g=tf(num,den);
nyquist(g);
axis([-6 6 -2 2]);
hold on;
a=0:0.01:1000;
na=-pi*a/4;
plot(real(na),imag(na)); 1曲线,代码如下: N(A)
运行程序,可得如图7-3所示的G(j)曲线与1曲线:
N(A)
图7-3 G(j)曲线与1
N(A)曲线
图中G(j)曲线包含0和0两部分,Nyquist曲线指的是沿箭头方向的前半 40
部分,11曲线是负实轴(从0到-),从图中可看出,G(j)曲线与曲线N(A)N(A)相交,则系统产生自振荡,并且为稳定的自振荡。
下面计算自振荡的频率和振幅,MATLAB程序代码如下:
for w=0.01:0.001:100;
g=10/(j*w*(1+j*w)*(2+j*w));
re=real(g);
im=imag(g);
if abs(im)
break;
end;
end;
na=re;
a=-4*na/pi;
运行结果如下:
w =
1.4140
a =
2.1227
则自振荡的振幅A2.1227,频率1.414。
2、某非线性系统结构图如图7-3所示,(1)试用MATLAB编程判断系统的稳定性
(2)如果系统为稳定的自振荡,计算自振荡的频率和振幅。
图7-3 系统结构图
41
试用上述MATLAB编程画出G(j)曲线与
荡的频率和振幅。
三、实验要求
1、完成实验任务中所有的内容;
2、撰写实验报告。
实验报告内容包括:
(1)实验题目和目的;
(2)实验原理; 1曲线,并判断稳定性,计算自振N(A)
(3)实验任务中要求完成实验的程序代码、结果图、结论和运行结果;
(4)实验体会
42