Bode DiagramGm = -2.5 dB (at 2.24 rad/sec) , Pm = -6.02 deg (at 2.57 rad/sec)200)100dB( edut0ingaM-100-200-90 G-135G*Gc)geSystem: G*Gcd( -180Phase Margin (deg): 49.6esDelay Margin (sec): 1.57ahPAt frequency (rad/sec): 0.551-225Closed Loop Stable? Yes-270 10-410-310-210-1100101102103Frequency (rad/sec)图10.21滞后校正前后系统伯德图
得到校正滞后系统传递函数
Gc(s)?18.23s?1231.8s?1 不含增益K0 程序30
sys2=feedback(Gc*sys,1);%校正后闭环传递函数 step(sys2)%求阶跃响应
26
(10.22)
Step Response1.41.21System: sys2Peak amplitude: 1.22Overshoot (%): 22.2At time (sec): 5.12Amplitude0.80.60.40.200102030Time (sec)405060
图10.22滞后校正后系统阶跃响应
没有达到要求二 误差分析:
1)编程中很多赋值只是取得一些分散的点,因而求取参数时存在误差
2)预计相位裕度虽然理论足够,但相位滞后校正器的最大相位不为零,余量5可能不足 改变相位裕度余量 程序31
Ko=20;
G=zpk([],[0,-1,-5],2*Ko);%原系统开环传递函数 sys=tf(G);
[mag,phase,w]=bode(sys) figure(1);margin(sys) grid hold on
gama=50;%频域下要求二
pha=gama+10-180;
wgc=spline(phase,w,pha);%找校正后的频率穿越点 na=polyval(sys.num{1},j*wgc); da=polyval(sys.den{1},j*wgc); g=na/da;
g1=abs(g);
h=20*log10(g1);%h的取值等于20lg(beta),才能使幅值等于0 beta=10^(h/20);%求beta
27
T=10/wgc;betat=beta*T;
Gc=tf([T 1],[betat 1])%滞后校正系统函数 bode(G*Gc)
legend('G','G*Gc')
Gc(s)?21.71s?1340.9s?1 (10.23)
Step Response1.41.2System: sys2Peak amplitude: 1.17Overshoot (%): 17.1At time (sec): 6.051Amplitude0.80.60.40.200102030Time (sec)40506070
图10.23修改后系统的阶跃响应
Bode DiagramGm = -2.5 dB (at 2.24 rad/sec) , Pm = -6.02 deg (at 2.57 rad/sec)200Magnitude (dB)1000-100-200-90G-135Phase (deg) G*Gc-180-225-270 System: G*GcPhase Margin (deg): 54.6Delay Margin (sec): 2.06At frequency (rad/sec): 0.463Closed Loop Stable? Yes10-410-310-210-1100101102103Frequency (rad/sec)
图10.24修正后系统伯德图
加入增益后传递函数为
28
Gc(s)?434.1s?20340.9s?1 (10.24)
与式(10.12)(10.13)相比较,其介于两者之间。又因为K可以去0.5和1.0之间的值,则时域和频域下的结果可以得到统一
五、总结(暨心得)
本次设计是结合了英文教材Binder10和课件Chapter10来设计的,两者的方向截然不同。英文教材虽然提及滞后校正,但其完全是基于时域下,用理论推导出传递函数,似乎只有在运用根轨迹处依赖了电脑操作,而课件里侧重于频域下编程。所以设计分析是时域,深入探讨是频域,结合着线性控制的理论。
两种方法的优缺点。频域下的滞后校正也有很多不严格的地方,一些参数求取的近似。但其更加直观和易于操作。时域下省略了转化要求参数的步骤,但时域的下的高阶系统分析比较繁琐,若采用近似模型误差很大。
铣床系统是一型系统,在斜坡输入下的稳态误差不为零。是否工程上一定要求非零的稳态误差。如果没有此类要求是否可以通过改善系统的型来消除稳态误差,更加符合要求一。当然了这一章的侧重点是滞后校正系统的设计(Lag Compensator Design)。这也与该系统的频率特性有关,充足的相位可以采用滞后校正。然而本次设计并没有考虑,滞后校正对于频带带宽的影响,如果转折频率1/T和1/βT选取的过小,会造成带宽过小,是系统响应变得缓慢。那么由滞后校正引起的响应时间的增加,应如何再不影响斜坡输入稳态误差和阶跃响应超调量的前提下,得到改善。我分别从时域和频域下求取了滞后校正器,是否可以利用状态空间的方法。如果利用状态空间的话,要求又如何转变。
学习matlab还是觉得只是纯粹的数学问题,虽然每一章都有实例,但最根本的还是围绕着传递函数来解决问题的。不理解系统原理的话,仍然可以掌握每一章节的精髓。个人比较喜欢sisotool,虽然用的很少,但对于根轨迹和零极点配置的理解和掌握有很大帮助。这次也用到了借助根轨迹来限制阻尼比,也使得自控上的这方面知识得到应用。
六、致谢和参考文献
《线性控制系统工程》(《Linear Control Systems Engineering》)
七、附录(程序)
程序1:
29
G=zpk([],[0,-1,-5],2);%原系统开环传递函数 sys=feedback(G,1);%单位负反馈,构成闭环
程序2 tf1=10; a=1;
t=[0:0.1:tf1]; u=a*t;%斜坡输入
y_t=lsim(sys,u,t);
plot(t,y_t,'b-',t,u,'r:') yss=y_t(length(t));
y_deta=t(length(t))-yss
if y_deta<(a/8)%稳态误差小于a/8 disp('yes') else
disp('no') end 程序3
step(sys);%加阶跃响应
程序4
sigmaN=0.2;%要求超调上限 A=log(1/sigmaN);
zeta=sqrt((A^2)/(pi^2+A^2));
程序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')
程序6
G=zpk([],[0,-1,-5],2);%原系统开环传递函数 G2=2.02*G;%引入K/alpha
sys2=feedback(G2,1);%单位负反馈,构成闭环 step(sys2)
30