自动控制系统的稳定性和稳态误差分析.docx
《自动控制系统的稳定性和稳态误差分析.docx》由会员分享,可在线阅读,更多相关《自动控制系统的稳定性和稳态误差分析.docx(14页珍藏版)》请在冰豆网上搜索。
自动控制系统的稳定性和稳态误差分析
实验二自动控制系统的稳定性和稳态误差分析
一、实验目的
1、研究高阶系统的稳定性,验证稳定判据的正确性;
2、了解系统增益变化对系统稳定性的影响;
3、观察系统结构和稳态误差之间的关系。
二、实验任务
1、稳定性分析
欲判断系统的稳定性,只要求出系统的闭环极点即可,而系统的闭环极点就是闭环传递函数的分母多项式的根,可以利用MATLAB中的tf2zp函数求出系统的零极点,或者利用root函数求分母多项式的根来确定系统的闭环极点,从而判断系统的稳定性。
(1)已知单位负反馈控制系统的开环传递函数为
,用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=poly2str(dc{1},'s')
运行结果如下:
dens=
s^4+4.2s^3+3.95s^2+1.25s+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)已知单位负反馈控制系统的开环传递函数为
,当取
=1,10,100用MATLAB编写程序来判断闭环系统的稳定性。
只要将
(1)代码中的k值变为1,10,100,即可得到系统的闭环极点,从而判断系统的稳定性,并讨论系统增益k变化对系统稳定性的影响。
Matlab程序:
求出系统的特征多项式
z=-2.5
p=[0,-0.5,-0.7,-3]
k1=1
k2=10
k3=100
Go1=zpk(z,p,k1)
Go2=zpk(z,p,k2)
Go3=zpk(z,p,k3)
Gc1=feedback(Go1,1)
Gc2=feedback(Go2,1)
Gc3=feedback(Go3,1)
Gctf1=tf(Gc1)
Gctf2=tf(Gc2)
Gctf3=tf(Gc3)
dc1=Gctf1.den
dc2=Gctf2.den
dc3=Gctf3.den
dens1=poly2str(dc1{1},'s')
dens2=poly2str(dc2{1},'s')
dens3=poly2str(dc3{1},'s')
由此可得:
dens1=
s^4+4.2s^3+3.95s^2+2.05s+2.5
dens2=
s^4+4.2s^3+3.95s^2+11.05s+25
dens3=
s^4+4.2s^3+3.95s^2+101.05s+250
求系统的闭环极点:
dens1=[1,4.2,3.95,2.05,2.5]
dens2=[1,4.2,3.95,11.05,25]
dens3=[1,4.2,3.95,101.05,250]
p1=roots(dens1)
p2=roots(dens2)
p3=roots(dens3)
由此得出:
P1=
-3.0297
-1.3319
0.0808+0.7829i
0.0808-0.7829i
P2=0.6086+1.7971i
0.6086-1.7971i
-3.3352
-2.0821
P3=1.8058+3.9691i
1.8058-3.9691i
-5.3575
-2.4541
每个系统都有两个不是负实部,所以k=1,10,100时的这三个系统均不稳定。
总的matlab程序:
当k=1时:
z=-2.5
p=[0,-0.5,-0.7,-3]
k=1
Go=zpk(z,p,k)
Gc=feedback(Go,1)
Gctf=tf(Gc)
[z,p,k]=zpkdata(Gctf,'v')
pzmap(Gctf)
grid
当k=10时:
z=-2.5
p=[0,-0.5,-0.7,-3]
k=10
Go=zpk(z,p,k)
Gc=feedback(Go,1)
Gctf=tf(Gc)
[z,p,k]=zpkdata(Gctf,'v')
pzmap(Gctf)
grid
当k=100时:
z=-2.5
p=[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
2、稳态误差分析
(1)已知如图3-2所示的控制系统。
其中
,试计算当输入为单位阶跃信号、单位斜坡信号和单位加速度信号时的稳态误差。
图3-2系统结构图
从Simulink图形库浏览器中拖曳Sum(求和模块)、Pole-Zero(零极点)模块、Scope(示波器)模块到仿真操作画面,连接成仿真框图如图3-3所示。
图中,Pole-Zero(零极点)模块建立
,信号源选择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型系统,
,在阶跃输入、斜坡输入和加速度信号输入作用下,通过仿真来分析系统的稳态误差。
㈠、阶跃输入:
阶跃输入的仿真图
阶跃输入的响应
㈡、斜坡输入
斜坡输入响应的仿真图
斜坡输入的仿真波形
㈢、加速度信号输入
加速度信号输入的仿真图
加速度信号输入的仿真波形
3、编程求稳态误差方法
sys=tf([5],[1,10,0]);
Css=dcgain(sys);
结果如下Css=Inf
例1已知传递函数为:
利用以下MATLAB命令可得阶跃响应曲线如图14所示。
图14MATLAB绘制的响应曲线
>>num=[0,0,25];
den=[1,4,25];
step(num,den)
grid %绘制网格线。
title(¹Unit-StepResponseofG(s)=25/(s^2+4s+25)¹)%图像标题
我们还可以用下面的语句来得出阶跃响应曲线
>>G=tf([0,0,25],[1,4,25]);
t=0:
0.1:
5; %从0到5每隔0.1取一个值。
c=step(G,t); %动态响应的幅值赋给变量c
plot(t,c) %绘二维图形,横坐标取t,纵坐标取c。
Css=dcgain(G) %求取稳态值。
系统显示的图形类似于上一个例子,在命令窗口中显示了如下结果
Css=
1
3、实验体会
通过这次实验,我熟悉了高阶系统的稳定性的判断,进一步验证了验证稳定判据的正确性。
不但了解了系统增益变化对系统稳定性的影响,也更深刻的练习了MATLAB软件。
这在以后的学习中有很大的帮助。