y_deta=t(length(t))-yss if y_deta<(a/8)%稳态误差小于a/8 disp('yes') else
disp('no') end
100009000800070006000500040003000200010000010002000300040005000600070008000900010000
图10.3原系统单位斜坡输入的稳态误差
得到原系统E(s)=2.500 no 根据闭环传递函数求原系统性能 程序3
step(sys);%加阶跃响应
6
Step Response1.4System: sys1.2Peak amplitude: 1.04Overshoot (%): 3.75At time (sec): 7.43System: sysSettling Time (sec): 9.6410.8udelitAmp0.60.40.20051015Time (sec)图10.4原系统阶跃响应
第二个要求超调量小于20%,则根据阻尼比与超调量的函数关系
???P.O.?100*e1??2 (10.4)
程序4
sigmaN=0.2;%要求超调上限 A=log(1/sigmaN);
zeta=sqrt((A^2)/(pi^2+A^2)); 得到阻尼比??0.4559 引入滞后校正系统
Gc(s)?Ks?z?s?p,p?z??z,
p 先考虑要求(1)
limsEas?0(s)?limsG?ac(s)G(s)8s?0 ?limsGc(s)G(s)?8 ?K2?K??z??2??z?vcomp?5??????5K????p??8????p??? 7
(10.5)
(10.6)
(10.7)
(10.8)
?1?K2s(s?1)(s?5)?0 (10.9)
画出其根轨迹
并且找到满足??0.4559的点, 程序5
n=[2];d=[1 6 5 0]; rlocus(n,d),hold on grid
z=0.4559; hs=12*z;
hc=12*sqrt(1-z^2);
plot([0 -hs],[0 hc],'--',[0 -hs],[0 -hc],'--') text(-9.5,1,'Desired performance region')
会显示Select a point in the graphics window之后在图上找符合条件的点
Root Locus150.86100.945Imaginary Axis0.760.640.50.340.160.98520017.51512.510Desired performance region7.552.50.985-50.94-100.860.76-15-20-150.64-100.50.34-5Real Axis0.160510
图10.5原系统的根轨迹来求取K的临界值
为了精确性采用Data Cursor,得到闭环极点p=-0.401+0.782i
K?2.02
8
Root Locus0.4580.785System: sysGain: 2.02Pole: -0.401 + 0.782iDamping: 0.456Overshoot (%): 20Frequency (rad/sec): 0.8790.8790.4560.4550.4540.4530.4520.880.7840.7830.878Imaginary Axis0.4590.7820.8770.7810.460.780.8760.8750.779-0.404-0.403-0.402-0.401Real Axis-0.4-0.399-0.3980.874-0.397
图10.6找寻K临界值
仅当引入增益K下,系统的阶跃响应
程序6
G=zpk([],[0,-1,-5],2);%原系统开环传递函数 G2=2.02*G;%引入K/alpha
sys2=feedback(G2,1);%单位负反馈,构成闭环 step(sys2)
9
Step Response1.41.2System: sys2Peak amplitude: 1.25Overshoot (%): 25.11At time (sec): 3.78e0.8duitlpmA0.60.40.20051015Time (sec)图10.7引入增益2.02下的阶跃响应
要满足要求一则:
?K2?K??z??2??z?vcomp?5????????p??K?5????p??8?? 根据K,并取
Kvcomp?10
程序7
Kvc=10;%Kvcopm>8
Kgang=2.02;%K/alpha Kvu=2*Kgang/5;
alpha=Kvc/Kvu%alpha即z/p 得到零点与极点的倍数 ??12.3762
得到了校正后系统开环传递函数
G2(s)?4.04s?0.01238s(s?1)(s?5)(s?0.001) 看系统是否符合要求(1)
程序8
G=zpk([],[0,-1,-5],2);%原系统开环传递函数
10
(10.10)
(10.11)