一、例:已知系统开环传递函数为:
用所有方法判别系统稳定性
1、代数稳定判据。
G=tf([100 1000 2500],[1 0 8 9]);
>> G=feedback(G,1);
>> roots(G.den{1})
ans =
-88.97
-6.9586
-4.0517
闭环极点全部为负实部,系统稳定。
2、根轨迹法。
n1=[100 1000 2500];
>> d1=[1 0 8 9];
>> sys=tf(n1,d1);
>> rlocus(sys)
[k poles]=rlocfind(G)
Select a point in the graphics window
selected_point =-0.0018 + 5.3907i
k = 0.0211
poles =
0.0061 + 5.3946i
0.0061 - 5.3946i
-2.1198
当0 G1=feedback(G,1); >> step(G1) 由图知,曲线最终趋于稳定。 4、Bode法图。 bode(sys) [Gm Pm Wcp Wcg]=margin(sys) Gm =0.0212 Pm = 84.2934 Wcp = 5.4078 Wcg =100.3285 相交裕度Pm=84.2934>0,所以系统稳定。 margin(sys) 验证:见方法1。 5、Nyquist稳定判据。 方法1知P=0, nyquist(sys) 由图知R=0,故Z=P-R=0,系统稳定。 二、卫星绕地球运动 % h=figure('numbertitle','off','name','卫星绕地球旋转演示动画——matlabfan');%设置标题名字 s1=0:.01:2*pi; hold on; axis equal;%建立坐标系 axis off;%除掉Axes r1=10;%地球到太阳的平均距离 r2=3;%卫星的轨道半径 w1=1;%设置地球公转角速度 w2=12;%设置卫星绕地球公转角速度 t=0;%初始时刻 pausetime=.002;%设置视觉暂留时间 sita1=0; sita2=0;%设置开始它们都在水平线上 set(gcf,'doublebuffer','on') %消除抖动 plot(-20,18,'color','r','marker','.','markersize',40); text(-17,18,'太阳');%对太阳进行标识 plot(-20,16,'color','b','marker','.','markersize',20); text(-17,16,'地球');%对地球进行标识 plot(-20,14,'color','w','marker','.','markersize',13); text(-17,14,'卫星');%对卫星进行标识 plot(0,0,'color','r','marker','.','markersize',60);%画太阳 plot(r1*cos(s1),r1*sin(s1));%画地球公转轨道 set(gca,'xlim',[-20 20],'ylim',[-20 20]); p1=plot(r1*cos(sita1),r1*sin(sita1),'color','b','marker','.','markersize',30);%画地球初始位置 l1=plot(r1*cos(sita1)+r2*cos(s1),r1*sin(sita1)+r2*sin(s1));%画卫星绕地球的公转轨道 p2x=r1*cos(sita1)+r2*cos(sita2); p2y=r1*sin(sita1)+r2*sin(sita2); p2=plot(p2x,p2y,'w','marker','.','markersize',20);%画卫星的初始位置 orbit=line('xdata',p2x,'ydata',p2y,'color','r');%画卫星的运动轨迹 while 1 if ~ishandle(h),return,end set(p1,'xdata',r1*cos(sita1),'ydata',r1*sin(sita1));%设置地球的运动过程 set(l1,'xdata',r1*cos(sita1)+r2*cos(s1),'ydata',r1*sin(sita1)+r2*sin(s1));%设置卫星绕地球的公转轨道的运动过程 ptempx=r1*cos(sita1)+r2*cos(sita2); ptempy=r1*sin(sita1)+r2*sin(sita2); set(p2,'xdata',ptempx,'ydata',ptempy);%设置卫星的运动过程 p2x=[p2x ptempx]; p2y=[p2y ptempy]; set(orbit,'xdata',p2x,'ydata',p2y);%设置卫星运动轨迹的显示过程 sita1=sita1+w1*pausetime;%地球相对太阳球转过的角度 sita2=sita2+w2*pausetime;%卫星相对地球转过的角度 pause(pausetime); %视觉暂停 drawnow %刷新屏幕,重绘 end 3、总结MATLAB的学习体会。 通过这学期的MATLAB学习,初步掌握了MATLAB一些基本操作,而且学会了结合自动控制原理的一些知识作图,进一步巩固了自动控制原理的知识,比如求根轨迹,画伯德图和乃奎斯特曲线等,在自动控制原理里很复杂,但是用MATLAB作图简单易懂,很方便,感觉MATLAB功能很强大。我们只是学习了其中的一小部分,这学期我同时还选修了曹艳老师的《MATLAB在工程数学的应用》,两门功课结合学习,更好的熟练了MATLAB的一些操作。最后感谢老师的辛勤指导。