matlab.docx

上传人:b****5 文档编号:28679821 上传时间:2023-07-19 格式:DOCX 页数:10 大小:53.44KB
下载 相关 举报
matlab.docx_第1页
第1页 / 共10页
matlab.docx_第2页
第2页 / 共10页
matlab.docx_第3页
第3页 / 共10页
matlab.docx_第4页
第4页 / 共10页
matlab.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

matlab.docx

《matlab.docx》由会员分享,可在线阅读,更多相关《matlab.docx(10页珍藏版)》请在冰豆网上搜索。

matlab.docx

matlab

1、通过举例说明运用MATLAB判别控制系统稳定的所有方法

方法一:

用单位阶跃响应曲线判定系统稳定

方法二:

用代数稳定判据法判断系统的稳定性

(1)系统数学模型为传递函数形式G(S)=tf(num,den):

执行语句:

roots(G.den{1});

注:

“{}”表示维数

(2)系统数学模型为零极点增益形式G(S)=zpk(z,p,k);

执行语句:

G.p{1};

(3)系统数学模型为状态空间形式G(S)=ss(A,B,C,D);

执行语句:

eig(G.A);

注:

eig()表示计算系统的极点

方法三:

用根轨迹法判断系统的稳定性

若根轨迹在参数取值过程中,部分在左半平面,部分在右半平面,则系统的稳定性与可变参数的取值有关。

函数命令调用格式:

[kpoles]=rlocfind(G)

方法四:

用Bode图判断系统的稳定性

函数调用格式为:

margin()或[GmPmwcpwcg]=margin(G)

对于最小相位系统:

当相角裕度Pm(γ)>0o或幅值裕度Gm(h)>1时,表示系统稳定

当相角裕度Pm(γ)<0o或幅值裕度Gm(h)<1时,表示系统不稳定

幅值裕度Gm(h)、相角裕度Pm(γ)越大,系统稳定程度越好。

在使用时,Gm(h)、Pm(γ)是成对使用的,有时仅使用一个裕度指标Pm(γ)。

方法五:

用Nyquist稳定判据判断系统的稳定性

Nyquist稳定判据:

若想使得闭环系统稳定,则开环系统G(S)H(S)的Nyquist曲线逆时针绕临界点(-1,j0)点的圈数R必需等于G(S)H(S)(系统的开环传函)位于S的右半平面开环极点数P。

即:

Z=P-RZ=0稳定;

Z≠0不稳定,Z为闭环正实部根的个数。

 

NOWBEGIN

例:

已知系统的开环传函为:

方法一:

用单位阶跃响应曲线判定系统稳定性

>>n1=16*[169];d1=conv([-2-5-11],[-3-10-12]);

>>G=tf(n1,d1);G1=feedback(G,1);

>>step(G1)

 

方法二:

用代数稳定判据法判断系统的稳定性

1)

>>n1=16*[169];d1=conv([-2-5-11],[-3-10-12]);

>>G=tf(n1,d1);G1=feedback(G,1);

>>roots(G1.den{1})

ans=

-0.7748+2.7853i

-0.7748-2.7853i

-2.1419+0.9570i

-2.1419-0.9570i

2)

>>n1=16*[169];d1=conv([-2-5-11],[-3-10-12]);

>>G=tf(n1,d1);G1=feedback(G,1);

>>G2=zpk(G1);

>>G2.p{1}

ans=

-0.7748+2.7853i

-0.7748-2.7853i

-2.1419+0.9570i

-2.1419-0.9570i

3)

>>n1=16*[169];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*[169];d1=conv([-2-5-11],[-3-10-12]);

>>sys=tf(n1,d1);

>>rlocus(sys)

>>[kpoles]=rlocfind(sys)

在0

方法四:

用Bode图判断系统的稳定性

1)

>>n1=16*[169];d1=conv([-2-5-11],[-3-10-12]);

>>sys=tf(n1,d1);

>>bode(sys)

>>margin(sys)

2)

>>n1=16*[169];d1=conv([-2-5-11],[-3-10-12]);

>>sys=tf(n1,d1);

>>[GmPmWcpWcg]=margin(sys)

Gm=

57.1528

 

Pm=

84.6160

 

Wcp=

12.7129

 

Wcg=

1.9907

可以看出相角裕度Pm=84.6160>0,所以系统是稳定的

 

方法五:

用Nyquist稳定判据判断系统的稳定性

先求开环传递函数在右半S平面极点个数P

>>n1=16*[169];d1=conv([-2-5-11],[-3-10-12]);

>>sys=tf(n1,d1);

>>roots(sys.den{1})

ans=

-1.2500+1.9843i

-1.2500-1.9843i

-1.6667+1.1055i

-1.6667-1.1055i

开环传递函数在右半S平面极点个数P=0。

 

再求nyquist曲线包围临界点的圈数R

>>n1=16*[169];d1=conv([-2-5-11],[-3-10-12]);

>>sys=tf(n1,d1);

>>nyquist(sys)

nyquist曲线包围临界点的圈数R=0。

所以Z=P-R=0,系统稳定。

 

2、查阅相关书籍或上网搜索,找出一个运用MATLAB制作的动画,要求有程序说明和必要的文字注释

台球模拟程序动画演示

axis([-1.6,12.6,-1.6,10.7])%确定坐标轴参数范围

holdon%保持当前图形及轴系的所有特性

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','.','erasemode','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=line(12,10,'color','g','marker','.','erasemode','xor','markersize',80);%设置右上角圆的颜色,大小,线条的擦拭方式

title('完全非弹碰在模拟台球比赛的应用','color','r','fontsize',15);%图形标题

pause

(1)%设定暂停时间的长度

t=0;dt=0.005;%设制初始数值

whilet<7.2%设定横轴范围

  t=t+dt;%设制横轴计算公式

  y=1/2*t+5;%设制纵轴计算公式

    set(ball1,'xdata',t,'ydata',y)%设制球的运动

  drawnow;%刷新屏幕

end  %结束

whilet<8.8%设定横轴范围

  t=t+dt;%设制横轴计算公式

  y=1/2*t+5;%设制纵轴计算公式

    set(ball2,'xdata',t,'ydata',y)%设制球的运动

  drawnow;%刷新屏幕

end  %结束

whilet<11.5%设定横轴范围

  t=t+dt;%设制横轴计算公式

  y=-1/2*t+14.3;%设制纵轴计算公式

    set(ball2,'xdata',t,'ydata',y)%设制球的运动

  drawnow;%刷新屏幕

end%结束

whilet>-0.5%设制横轴范围

  t=t-dt;%设制横轴计算公式

  y=1/2*t+2.90;%设制纵轴计算公式

    set(ball2,'xdata',t,'ydata',y)%设制球的运动

  drawnow;%刷新屏幕

end%结束

whilet<6%设制横轴范围

  t=t+dt;%设制横轴计算公式

  y=-1/2*t+2.40;%设制纵轴计算公式

    set(ball2,'xdata',t,'ydata',y)%设制球的运动

  drawnow;%刷新屏幕

end%结束

whilet<11.5%设制横轴范围

  t=t+dt;%设制横轴计算公式

  y=1/2*t-3.0;%设制纵轴计算公式

    set(ball2,'xdata',t,'ydata',y)%设制球的运动

  drawnow;%刷新屏幕

end%结束

whilet>-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