>> figure(4)
>> step(feedback(Gc*G,1))
作业6.3
在图6.1中,已知单位负反馈系统被控对象的传递函数为 G(s)?K
s(s?1)(s?2)试编写matlab程序,设计系统的滞后-超前校正器Gc(s),要求:
1) 在单位斜坡信号r(t)=t作用下,系统的速度误差系数Kv=20s-1; 2) 校正后系统的实际相位裕量Pm范围为:42~58; 3) 校正后系统的实际剪切频率wc2>=1.3rad/s; 4) 绘制系统校正前后的bode图和阶跃响应曲线。 由题知 Kv?limsG(s)?limss?0s?0KK??20 K=40
s(s?1)(s?2)2程序如下:先绘制校正前的bode图和单位阶跃响应曲线,再绘制校正后的 第一种 >> s=tf('s');
>> G0=40/(s*(s+1)*(s+2)); >> figure(1) >> margin(G0) >> figure(2)
>> step(feedback(G0,1))
校正前系统的增益裕量Gm=-16.5,相位裕量Pm=-40.4都是负值,系统不稳定 剪切频率wc1=3.19rad/s,阶跃响应曲线是发散的。
>> wc2=4;
>> [Gm,Pm,wc1]=margin(G0); >> beta=9;T1=1/(0.1*wc1); >> betat=beta*T1;
>> Gc1=tf([T1 1],[betat 1]) %计算并显示滞后校正器传递函数
Transfer function: 7.071 s + 1 ----------- 63.64 s + 1
>> sope=G0*Gc1; %计算原系统与滞后校正器串联后的传递函数 >> num=sope.num{1};den=sope.den{1}; >> na=polyval(num,j*wc2); >> da=polyval(den,j*wc2); >> G=na/da; >> g1=abs(G);
>> L=20*log10(g1); >> alfa=10^(L/20);
>> T=1/(wc2*(alfa)^(1/2)); >> alfat=alfa*T;
>> Gc2=tf([T 1],[alfat 1])
Transfer function: 1.018 s + 1 ------------- 0.06139 s + 1
>> G=G0*Gc1*Gc2; >> sys=feedback(G,1); >> figure(3) >> margin(G) >> figure(4) >> step(sys)