Matlab环境下校正环节的设计

  • 格式:doc
  • 大小:243.00 KB
  • 文档页数:6

实验十七 Matlab 环境下校正环节的设计
一、实验类型 综合设计性实验
二、实验目的
1. 研究校正环节的工作原理以及设计实现方法;
2. 研究校正环节对系统稳定性及过渡过程的影响;
3. 熟练掌握利用Matlab 实现系统辅助设计及仿真技术。

三、实验内容
在Matlab 环境下实现校正环节的设计,包括利用Simulink 对校正前、后系统进行仿真,得出系统的动、静态性能。

四、实验要求
1. 熟悉校正装置的几种校正结构及其校正特点;
2. 熟悉Matlab 环境,可以利用Simulink 对系统建模,并且利用m 函数实现校正环节的设计;
3. 已知系统的开环传递函数为)
1.01)(25.01()(s s s K s G ++=,试设计校正环节使得稳态速度误差系数为10,相位裕度为 45;
五、实验步骤
1.根据实验要求,利用Matlab 环境下的Simulink 对校正前系统进行仿真,观测系统的动、静态性能。

1)在单位斜坡信号作用下,系统稳态速度误差系数K=10,则被控对象的传递函数为:
)
1.01)(25.01(10)(s s s s G ++= 2)做原系统的伯德图及系统阶跃响应曲线
由图1可知:增益裕量:Gm=2.96dB 相位裕量:Pm=9.08deg< 45 且由图2可以看出,系统阶跃响应曲线虽然衰减,但是振荡较为剧烈,同样说明系统不符合要求。

图1 未校正前系统的伯德图
图2 未校正前系统的阶跃响应曲线
2.根据对系统性能的要求,设计系统的校正装置,
1)求超前校正装置的传递函数
取相位裕量为 45,根据超前校正装置要求,编写程序,得出校正装置传递函数。

1
+ s 0.050561 + s 0.2947)(
s G 2)根据校正后的结构与参数,编制程序,得出校正后系统的伯德图,观察是否符合实验要求。

由图3可得,第一次超前校正后,系统的相关系数: 增益裕量:Gm=8.86dB 相位裕量:Pm=31.7deg< 45
不符合实验要求,需再次进行矫正。

图3 第一次校正后系统的伯德图
3)第二次系统矫正
仍取相位裕量为 45,根据超前校正装置要求,编写程序,得出第二次校正装置传递函数。

1
+ s 0.03031 + s 0.1766)(
s G 再次校正得系统伯德图
图4 第二次校正后系统伯德图
由图4可得:增益裕量:Gm=11.3dB 相位裕量:Pm=48.9deg
此次校正后,数据基本符合实验要求。

4)计算系统校正后阶跃响应曲线及其性能指标
图5 校正后系统的阶跃响应曲线
六、实验整理
超前校正的基本原理是利用超前校正网络的相位超前特性去增大系统的相位裕度,以改善系统的的动态响应。

基于频域法的超前校正网络通过使系统的剪切频率增大而增加相位滞后量,从而改变系统的相位裕量及超调量,使系统趋于实验要求的指标。

同时,为了保
60。

证较高的系统信噪比及稳定性等,系统的最大超前角不宜超过
七、实验体会
自己动手仿真,不仅使我再次捡起了快被遗忘的Matlab软件,也加深了我对基于频域法的超前校正网络的认识。

最开始做的时候就是仿照书上的例子,一点点编制程序,但是在第一次进行矫正后没能得到理想的实验数据,于是就想通过改变相位裕度来达到实验要求,发现不行,随后就想在第一次校正的基础上增添第二次超前校正,结果实验结果符合实验要求,皆大欢喜。

在学习之余自己动手做一些东西,挺不错。

八、附录
函数1:做未校正前系统伯德图及阶跃响应曲线
k0=10;num1=1;
den1=conv(conv([1 0],[0.25 1]),[0.1 1]);
[mag,phase,w]=bode(k0*num1,den1);
figure(1);
margin(mag,phase,w);hold on
figure(2);
sys1=tf(k0*num1,den1);
sys=feedback(sys1,1);
step(sys)
函数2:求超前校正的传递函数
k0=10;num=1;den=conv(conv([1 0],[0.25 1]),[0.1 1]); sys=tf(k0*num,den);
[mag,phase,w]=bode(sys);
gama=45;[mu,pu]=bode(sys,w);
gam=gama*pi/180;
alfa=(1-sin(gam))/(1+sin(gam));
adb=20*log10(mu);am=10*log10(alfa);
ca=adb+am;wc=spline(adb,w,am);
T=1/(wc*sqrt(alfa));
alfa=alfa*T;
Gc=tf([T 1],[alfa 1])
Transfer function:
0.2947 s + 1
-------------
0.05056 s + 1
函数3:做校正后系统伯德图
k0=10;num1=1; den1=conv(conv([1 0],[0.25 1]),[0.1 1]); sys1=tf(k0*num1,den1);
num2=[0.2947 1];den2=[0.05056 1];
sys2=tf(num2,den2);
sys=sys1*sys2;
[mag,phase,w]=bode(sys);
margin(mag,phase,w);
函数4:求二次超前校正的传递函数
k0=10;num=1;den=conv(conv([1 0],[0.25 1]),[0.1 1]); sys1=tf(k0*num,den);
num1=[0.2947 1];
den1=[0.05056 1];
sys2=tf(num1,den1);
sys=sys1*sys2;
[mag,phase,w]=bode(sys);
gama=45;[mu,pu]=bode(sys,w);
gam=gama*pi/180;
alfa=(1-sin(gam))/(1+sin(gam));
adb=20*log10(mu);am=10*log10(alfa);
ca=adb+am;wc=spline(adb,w,am);
T=1/(wc*sqrt(alfa));
alfa=alfa*T;
Gc=tf([T 1],[alfa 1])
Transfer function:
0.1766 s + 1
------------
0.0303 s + 1
函数5:做二次校正后系统的伯德图
k0=10;num=1;den=conv(conv([1 0],[0.25 1]),[0.1 1]); sys1=tf(k0*num,den);
num1=[0.2947 1];
den1=[0.05056 1];
sys2=tf(num1,den1);
num2=[0.1766 1];
den2=[0.0303 1];
sys3=tf(num2,den2);
sys4=sys1*sys2*sys3;
margin(sys4)
函数6:做二次校正后系统的阶跃响应曲线
k0=10;num=1;den=conv(conv([1 0],[0.25 1]),[0.1 1]); sys1=tf(k0*num,den);
num1=[0.2947 1];
den1=[0.05056 1];
sys2=tf(num1,den1);
num2=[0.1766 1];
den2=[0.0303 1];
sys3=tf(num2,den2);
sys4=sys1*sys2*sys3;
[mag,phase,w]=bode(sys);
[mag,phase,w]=bode(sys); figure(3);
sys4=feedback(sys,1);
step(sys4)。