实验五 自动控制系统的稳定性和稳态误差分析一、实验目的1、研究高阶系统的稳定性,验证稳定判据的正确性;2、了解系统增益变化对系统稳定性的影响;3、观察系统结构和稳态误差之间的关系。
二、实验任务1、稳定性分析欲判断系统的稳定性,只要求出系统的闭环极点即可,而系统的闭环极点就是闭环传递函数的分母多项式的根,可以利用MATLAB 中的tf2zp 函数求出系统的零极点,或者利用root 函数求分母多项式的根来确定系统的闭环极点,从而判断系统的稳定性。
(1)已知单位负反馈控制系统的开环传递函数为0.2( 2.5)()(0.5)(0.7)(3)s G s s s s s +=+++,用MATLAB 编写程序来判断闭环系统的稳定性,并绘制闭环系统的零极点图。
在MATLAB 命令窗口写入程序代码如下: z=-2.5p=[0,-0.5,-0.7,-3] k=0.2 Go=zpk(z,p,k) Gc=feedback(Go,1) Gctf=tf(Gc) dc=Gctf.dendens=poly2str(dc{1},'s') 运行结果如下: dens=s^4 + 4.2 s^3 + 3.95 s^2 + 1.25 s + 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.3961ip为特征多项式dens的根,即为系统的闭环极点,所有闭环极点都是负的实部,因此闭环系统是稳定的。
下面绘制系统的零极点图,MATLAB程序代码如下:z=-2.5p=[0,-0.5,-0.7,-3]k=0.2Go=zpk(z,p,k)Gc=feedback(Go,1)Gctf=tf(Gc)[z,p,k]=zpkdata(Gctf,'v')pzmap(Gctf)grid运行结果如下:z =-2.5000p =-3.0058-1.0000-0.0971 + 0.3961i-0.0971 - 0.3961ik =0.2000输出零极点分布图如图3-1所示。
图3-1 零极点分布图(2)已知单位负反馈控制系统的开环传递函数为(2.5)()(0.5)(0.7)(3)k s G s s s s s +=+++,当取k =1,10,100用MATLAB 编写程序来判断闭环系统的稳定性。
只要将(1)代码中的k 值变为1,10,100,即可得到系统的闭环极点,从而判断系统的稳定性,并讨论系统增益k 变化对系统稳定性的影响。
当K=1时,MATLAB 程序如下: z=-2.5p=[0,-0.5,-0.7,-3] k=1Go=zpk(z,p,k) Gc=feedback(Go,1) Gctf=tf(Gc)[z,p,k]=zpkdata(Gctf,'v') pzmap(Gctf) grid z =-2.5000p =0 -0.5000 -0.7000 -3.0000 k =1Zero/pole/gain:(s+2.5)-----------------------s (s+0.5) (s+0.7) (s+3)Zero/pole/gain:(s+2.5)--------------------------------------------(s+3.03) (s+1.332) (s^2 - 0.1616s + 0.6195)Transfer function:s + 2.5---------------------------------------s^4 + 4.2 s^3 + 3.95 s^2 + 2.05 s + 2.5z =-2.5000 p =-3.0297 -1.3319 0.0808 + 0.7829i 0.0808 - 0.7829i k = 1 波形图如下:-0.8-0.6-0.4-0.20.20.40.60.8P ole-Zero MapReal AxisI m a g i n a r y A x i s图一:K=1时的零点极点分布图当K=1时,由于闭环极点不是全都具有负实部,所以该系统是不稳定的。
当K=10时,MATLAB程序如下:z=-2.5p=[0,-0.5,-0.7,-3]k=10Go=zpk(z,p,k)Gc=feedback(Go,1)Gctf=tf(Gc)[z,p,k]=zpkdata(Gctf,'v')pzmap(Gctf)gridz =-2.5000p =0 -0.5000 -0.7000 -3.0000k =10Zero/pole/gain:10 (s+2.5)-----------------------s (s+0.5) (s+0.7) (s+3)Zero/pole/gain:10 (s+2.5)-----------------------------------------(s+2.082) (s+3.335) (s^2 - 1.217s + 3.6)Transfer function:10 s + 25---------------------------------------s^4 + 4.2 s^3 + 3.95 s^2 + 11.05 s + 25z =-2.5000p =0.6086 + 1.7971i0.6086 - 1.7971i-3.3352-2.0821k =10 波形图如下:-2-1.5-1-0.50.511.52P ole-Zero MapReal AxisI m a g i n a r y A x i s图二:K=10时的零点极点分布图当K=10时, 由于闭环极点不是全都具有负实部,所以该系统是不稳定的。
当K=100时,MATLAB 程序如下:z=-2.5p=[0,-0.5,-0.7,-3] k=100 Go=zpk(z,p,k) Gc=feedback(Go,1) Gctf=tf(Gc)[z,p,k]=zpkdata(Gctf,'v') pzmap(Gctf) grid z = -2.5000p =0 -0.5000 -0.7000 -3.0000k =100Zero/pole/gain:100 (s+2.5)-----------------------s (s+0.5) (s+0.7) (s+3)Zero/pole/gain:100 (s+2.5)-------------------------------------------(s+5.358) (s+2.454) (s^2 - 3.612s + 19.01)Transfer function:100 s + 250----------------------------------------s^4 + 4.2 s^3 + 3.95 s^2 + 101.1 s + 250z =-2.5000 p =1.8058 + 3.9691i 1.8058 - 3.9691i -5.3575 -2.4541 k = 100 波形图如下:-4-3-2-101234P ole-Zero MapReal AxisI m a g i n a r y A x i s图三:K=100时的零点极点分布图当K=100时, 由于闭环极点不是全都具有负实部,所以该系统是不稳定的。
2、稳态误差分析(1)已知如图3-2所示的控制系统。
其中25()(10)s G s s s +=+,试计算当输入为单位阶跃信号、单位斜坡信号和单位加速度信号时的稳态误差。
图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型系统,5()(10)G ss s=+,在阶跃输入、斜坡输入和加速度信号输入作用下,通过仿真来分析系统的稳态误差。
系统稳态误差分析仿真框图:图四:系统稳态误差分析仿真框图仿真波形图如下所示:图五:系统稳态误差仿真波形图三、实验要求1、完成实验任务中的所有内容;2、撰写实验报告。
实验报告内容包括:(1)实验题目和目的;(2)实验原理;(3)实验任务中要求完成实验的程序代码、仿真框图、波形和数据结果;(4)讨论下列问题:a)讨论系统增益k变化对系统稳定性的影响;增益K可在临界k的附近改变系统的稳定性。
b)讨论系统型数以及系统输入对系统稳态误差的影响。
增大系统的开环增益k,可以减少0型系统在阶跃输入时的位置误差,可以减少i型系统在斜坡输入时的速度误差,可以减小ii型系统在加速度输入时的加速度误差。
(5)实验体会。
通过本次实验,我明白了如何用零点极点增益的形式在MATLAB 上通过编程来判断一个高阶系统的稳定性,以及不同的增益对系统的影响。