程序结果为:
即校正后系统的开环传递函数为:
120.1s2?70.02s?10G(s)?Gc(s)? 54320.5063s?12.05s?49.84s?39.3s?s
图1-2 滞后-超前校正后系统的伯德图
所以,剪切频率?C?2.5rad/s,相角裕度?0?59.5??45?,幅值裕度Kg=18.3dB。从而,满足题目要求。
2、利用MATLAB函数求出校正前与校正后系统的特征根,并判断其系统是否稳定,为什么?
校正前的开环传递函数为:
G(s)?10
s(s?1)(0.25s?1)MATLAB程序为:
5
程序结果为:
故该系统的闭环特征方程为:
0.25s3?1.25s2?s?10?0
MATLAB程序为:
由于校正前系统单位负反馈的特征方程有右半平面的根,故校正前的闭环不系统稳定。
校正后的开环传递函数为:
120.1s2?70.02s?10G(s)?Gc(s)? 54320.5063s?12.05s?49.84s?39.3s?s故该系统的闭环特征方程为:
0.5063s5?12.05s4?49.84s3?159.4s2?71.02s?10?0
MATLAB程序为:
由于校正后系统单位负反馈的特征方程没有右半平面的根,故校正后的闭环
6
系统稳定。
3、利用MATLAB作出系统校正前与校正后的单位脉冲响应曲线,单位阶跃响应曲线,单位斜坡响应曲线,分析这三种曲线的关系?求出系统校正前与校正后的动态性能指标σ%、tr、tp、ts以及稳态误差的值,并分析其有何变化。
校正前系统的动态性能分析:
校正前的开环传递函数为:
G(s)?10
s(s?1)(0.25s?1)[1] 单位脉冲响应 MATLAB程序为:
图3-1 校正前系统的单位脉冲响应
⑵单位阶跃响应 MATLAB程序为:
7
图3-2 校正前系统的单位阶跃响应
要计算出阶跃响应动态性能参数,就编写求解阶跃响应动态性能参数的MATLAB程序,其中调用了函数perf(),perf.m保存在matlab7.0\\work\\文件夹下,其中key=1时,表示选择5%误差带,当key=2时表示选择2%误差带。y,t是对应系统阶跃响应的函数值与其对应的时间。函数返回的是阶跃响应超调量sigma(即σ)、峰值时间tp、调节时间ts。 perf.m编制如下: function [sigma,tp,ts]=perf(key,y,t)
%MATLAB FUNCTION PROGRAM perf.m %
%Count sgma and tp [mp,tf]=max(y); cs=length(t); yss=y(cs);
sigma= (mp-yss)/yss tp=t(tf) %Count ts i=cs+1; n=0;
while n==0, i=i-1; if key==1,
8
if i==1, n=1;
elseif y(i)>1.05*yss, n=1; end;
elseif key==2, if i==1, n=1;
elseif y(i)>1.02*yss, n=1; end; end end; t1=t(i);
cs=length(t); j=cs+1; n=0;
while n==0, j=j-1; if key==1, if j==1, n=1;
elseif y(j)<0.95*yss, n=1; end;
elseif key==2, if j==1, n=1;
elseif y(j)<0.98*yss, n=1; end; end; end; t2=t(j);
if t2 if t1>t2; ts=t1 end elseif t2>tp, if t2 9