做原系统的Bode图与阶跃响应曲线,检查是否满足题目要求 >> k0=30;n1=1; >> d1=conv(conv([1,0],[0.1,1]),[0.2,1]); >> s1=tf(k0*n1,d1);
>> figure(1);margin(s1);hold on
>> figure(2);sys=feedback(s1,1);step(sys)
滞后校正器的传递函数。根据题目要求,wc>2.3 >> wc=2.3;
>> na=polyval(k0*n1,j*wc); >> da=polyval(d1,j*wc); >> g=abs(na/da); >> T=1/(0.1*wc); >> bt=g*T;
>> Gc=tf([T,1],[bt,1])
校验系统校正后是否满足题目要求。 >> s1=tf(k0*n1,d1); >> s=s1*Gc;
>> sys=feedback(s,1); >> step(sys);
方法二(运用给定的r=40) >> k=30;num=1; den=conv(conv([1,0],[0.1,1]),[0.2,1]); g0=tf(k*num,den);
figure(1);margin(g0);hold on [m0,p0,wcg0,wcp0]=margin(g0); [m,p,w]=bode(g0); r=40;
gama=-180+r+10; wc=spline(p,w,gama); b=spline(p,m,gama); t=10/wc;
gc=tf([t,1],[b*t,1]); g=g0*gc;
figure(1);margin(g);
5.滞后-超前校正
k0=10;r>45;wc>1.5
做原系统的Bode图与阶跃响应曲线,检查是否满足题目要求。 >> k0=20;num=1; >> den=conv(conv([1,0],[1,1]),[1,2]);
11
>> g0=tf(k0*n1,d1);
>> [mag,phase,w]=bode(g0); >> figure(1);margin(g0); hold on
>> figure(2);sys=feedback(g0,1);step(sys) 求滞后校正器的传递函数
>> wc=1.5;beta=9.5;T=1/(0.1*wc);(bata一般取10或9.5) >> betat=beta*T;Gc1=tf([T,1],[betat,1]) 求超前校正器的传递函数 sope=g0*Gc1;
gama=45;(r的取值) gamal=gama+5; gam=gamal*pi/180;
alfa=(1-sin(gam))/(1+sin(gam)); wc=1.5;
T=1/(wc*sqrt(alfa)); alfat=alfa*T;
Gc=tf([T,1],[alfat,1])
校验系统校正后是否满足题目要求 s=g0*Gc1*Gc; margin(s);
作出系统校正后阶跃响应曲线 sys=feedback(s,1); >> step(sys) 方法2
>> k=20;num=1; >> den=conv(conv([1,0],[1,1]),[1,2]); >> g0=tf(k*num,den);
>> figure(1);margin(g0); hold on >> figure(2);sys=feedback(g0,1); >> step(sys);
>> [m0,p0,wcg0,wcp0]=margin(g0); >> wc=wcg0; >> t2=10/wc;
>> b=10;(b取10或9.5) >> t1=b*m0/wc;
>> gc1=tf([t1,1],[t1/b,1]); >> gc2=tf([t2,1],[b*t2,1]); >> gc=gc1*gc2; >> g=g0*gc;
>> figure(1);margin(g); >> sys=feedback(g,1); >> figure(3);step(sys);
其外还有一个滞后-超前校正的例题见试题
12
13