Matlab大作业(6)

2019-04-15 13:54

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


Matlab大作业(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:案例分析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: