1、matlab1、通过举例说明运用MATLAB判别控制系统稳定的所有方法方法一:用单位阶跃响应曲线判定系统稳定方法二:用代数稳定判据法判断系统的稳定性(1)系统数学模型为传递函数形式G(S)=tf(num,den):执行语句:roots(G.den1);注:“”表示维数 (2)系统数学模型为零极点增益形式G(S)=zpk(z,p,k);执行语句:G.p1;(3)系统数学模型为状态空间形式G(S)=ss(A,B,C,D);执行语句:eig(G.A);注:eig()表示计算系统的极点方法三:用根轨迹法判断系统的稳定性若根轨迹在参数取值过程中,部分在左半平面,部分在右半平面,则系统的稳定性与可变参数的
2、取值有关。函数命令调用格式:k poles=rlocfind(G)方法四:用Bode图判断系统的稳定性函数调用格式为:margin( )或Gm Pm wcp wcg=margin(G)对于最小相位系统:当相角裕度Pm()0o 或幅值裕度Gm(h) 1时,表示系统稳定当相角裕度Pm()0o 或幅值裕度Gm(h) n1=16*1 6 9;d1=conv(-2 -5 -11,-3 -10 -12); G=tf(n1,d1);G1=feedback(G,1); step(G1)方法二:用代数稳定判据法判断系统的稳定性1) n1=16*1 6 9;d1=conv(-2 -5 -11,-3 -10 -12
3、); G=tf(n1,d1);G1=feedback(G,1); roots(G1.den1)ans = -0.7748 + 2.7853i -0.7748 - 2.7853i -2.1419 + 0.9570i -2.1419 - 0.9570i2) n1=16*1 6 9;d1=conv(-2 -5 -11,-3 -10 -12); G=tf(n1,d1);G1=feedback(G,1); G2=zpk(G1); G2.p1ans = -0.7748 + 2.7853i -0.7748 - 2.7853i -2.1419 + 0.9570i -2.1419 - 0.9570i3) n1=
4、16*1 6 9;d1=conv(-2 -5 -11,-3 -10 -12); G=tf(n1,d1);G1=feedback(G,1); G3=ss(G1); eig(G3.A)ans = -0.7748 + 2.7853i -0.7748 - 2.7853i -2.1419 + 0.9570i -2.1419 - 0.9570i因为系统闭环极点全含负实部,故系统稳定方法三:用根轨迹法判断系统的稳定性 n1=16*1 6 9;d1=conv(-2 -5 -11,-3 -10 -12); sys=tf(n1,d1); rlocus(sys)k poles=rlocfind(sys)在0K n1
5、=16*1 6 9;d1=conv(-2 -5 -11,-3 -10 -12); sys=tf(n1,d1); bode(sys) margin(sys)2) n1=16*1 6 9;d1=conv(-2 -5 -11,-3 -10 -12); sys=tf(n1,d1); Gm Pm Wcp Wcg=margin(sys)Gm = 57.1528Pm = 84.6160Wcp = 12.7129Wcg =1.9907可以看出相角裕度Pm=84.61600,所以系统是稳定的方法五:用Nyquist稳定判据判断系统的稳定性先求开环传递函数在右半S平面极点个数P n1=16*1 6 9;d1=co
6、nv(-2 -5 -11,-3 -10 -12); sys=tf(n1,d1); roots(sys.den1)ans = -1.2500 + 1.9843i -1.2500 - 1.9843i -1.6667 + 1.1055i -1.6667 - 1.1055i开环传递函数在右半S平面极点个数P=0。再求nyquist曲线包围临界点的圈数R n1=16*1 6 9;d1=conv(-2 -5 -11,-3 -10 -12); sys=tf(n1,d1); nyquist(sys)nyquist曲线包围临界点的圈数R=0。所以Z=P-R=0,系统稳定。2、查阅相关书籍或上网搜索,找出一个运用
7、MATLAB制作的动画,要求有程序说明和必要的文字注释台球模拟程序 动画演示axis(-1.6,12.6,-1.6,10.7)%确定坐标轴参数范围hold on %保持当前图形及轴系的所有特性fill(-2,13,13,-2,-2,-2,11,11,0,1,0);%填充底座背景fill(-1,12,12,-1,-1,-1,10,10,0,0.5,0);%填充底座背景ball1=line(0,5,color,r,marker,.,erasemode,xor,markersize,60);%设置小球颜色,大小,线条的擦拭方式ball2=line(8,9,color,g,marker,.,erase
8、mode,xor,markersize,60);%设置小球颜色,大小,线条的擦拭方式ball3=line(-1,-1,color,g,marker,.,erasemode,xor,markersize,80);%设置左下角圆的颜色,大小,线条的擦拭方式ball4=line(12,-1,color,g,marker,.,erasemode,xor,markersize,80);%设置右下角圆的颜色,大小,线条的擦拭方式ball3=line(-1,10,color,g,marker,.,erasemode,xor,markersize,80);%设置左上角圆的颜色,大小,线条的擦拭方式ball4=
9、line(12,10,color,g,marker,.,erasemode,xor,markersize,80);%设置右上角圆的颜色,大小,线条的擦拭方式title(完全非弹碰在模拟台球比赛的应用, color,r,fontsize,15);%图形标题pause(1)%设定暂停时间的长度t=0;dt=0.005;%设制初始数值while t7.2%设定横轴范围 t=t+dt;%设制横轴计算公式 y=1/2*t+5;%设制纵轴计算公式 set(ball1,xdata,t,ydata,y)%设制球的运动drawnow;%刷新屏幕end%结束while t8.8%设定横轴范围 t=t+dt;%设制
10、横轴计算公式 y=1/2*t+5;%设制纵轴计算公式 set(ball2,xdata,t,ydata,y)%设制球的运动drawnow;%刷新屏幕end%结束while t-0.5%设制横轴范围 t=t-dt;%设制横轴计算公式 y=1/2*t+2.90;%设制纵轴计算公式 set(ball2,xdata,t,ydata,y)%设制球的运动drawnow;%刷新屏幕end%结束while t6%设制横轴范围 t=t+dt;%设制横轴计算公式 y=-1/2*t+2.40;%设制纵轴计算公式 set(ball2,xdata,t,ydata,y)%设制球的运动drawnow;%刷新屏幕end%结束w
11、hile t-2%设制横轴范围 t=t-dt;%设制横轴计算公式 y=-t*7.65/12.9+9.57;%设制纵轴计算公式 set(ball2,xdata,t,ydata,y)%设制球的运动drawnow;%刷新屏幕end%结束text(2,5,好!进球了啊!恭喜!,fontsize,16,color,r); %显示字幕的颜色和大小3、总结MATLAB的学习体会通过MATLAB课程的学习,我认识到MATLAB的实用性。我能够运用它完成控制系统仿真,加深了我对控制系统的理解和认识,同时还能解决一些数学中求解的问题。这次大作业,是我自己认真独立完成的,他让我复习了所有课程中所学的知识,让我更系统的回忆起课程中重点的内容,对这门课程有了新的认识。更重要的是,我通过学习这门课程,老师认真严谨的态度影响了我,让我能够更踏实的去学习一门技术。所以我觉得这门课程是我在大学里学习中十分有用的一门课程,谢谢王老师给我们这么认真细致的讲解,让我轻松的掌握了这门课程。特别是老师在课程中还给我们讲述了些在作图中的一些实用的方法,让我觉得真的是十分收益。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1