应用MATLAB控制系统仿真.ppt
《应用MATLAB控制系统仿真.ppt》由会员分享,可在线阅读,更多相关《应用MATLAB控制系统仿真.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五节第五节 应用应用MATLABMATLAB控制系统仿真控制系统仿真提纲v一、弹簧一、弹簧-重物重物-阻尼器系统阻尼器系统v二、传递函数二、传递函数v三、结构图模型三、结构图模型引言MATLAB是一套高性能的数值计算和可视化软件,它集数值分析、矩阵运算和图形显示于一体,构成了一个方便的界面友好的用户环境。控制系统的分析与设计方法,都是以数学模型为基础进行的。MATLAB可以用于以传递函数形式描述的控制系统。在本节中,首先举例说明如何使用MATLAB进行辅助分析。然后讨论传递函数和结构图。一、弹簧一、弹簧-重物重物-阻尼器系统阻尼器系统弹簧重物阻尼器动力学系统如图2-1所示。重物M的位移由y(
2、t)表示,用微分方程描述如下:该系统在初始位移作用下的瞬态响应为:其中q=cos-1z,初始位移是y(0)。系统的瞬态响应当z1时为欠阻尼,当z时为过阻尼,当z1时为临界阻尼。过阻尼情况:y(0)=0.15mwn=(弧度/秒)()欠阻尼情况:y(0)=0.15m wn=(弧度/秒)()利用MATLAB程序unforced.m,可以显示初始位移为y(0)的物体自由运动曲线,如图2-63所示。在unforced.m程序中,变量y(0),wn,t,z 1和z 2的值由指令直接输入工作区,然后运行unforced.m程序就可以产生响应曲线。y0=0.15;wn=sqrt(2);zeta1=3/(2*s
3、qrt(2);zeta2=1/(2*sqrt(2);t=0:0.1:10;unforced(a)MATLAB指令窗口*计算系统在给定初始条件下的自由运动t1=acos(zeta1)*ones(1,length(t);t2=acos(zeta2)*ones(1,length(t);c1=(y0/sqrt(1-zeta12);c2=(y0/sqrt(1-zeta22);y1=c1*exp(-zeta1*wn*t)sin(wn*sqrt(1-zeta12)*t+t1);y2=c2*exp(-zeta2*wn*t)sin(wn*sqrt(1-zeta22)*t+t2);*计算运动曲线的包络线bu=c2
4、*exp(-zeta2*wn*t);bl=-bu;*画图plot(t,y1,-,t,y2,-,t,bu,-,bl,-),gridxlabel(Timesec),ylabel(y(t)Displacementm)text(0.2,0.85,oeverdampedzeta1=,num2str(zeta1),)text(0.2,0.80,underdampedzeta2=,num2str(zeta2),)(b)分析弹簧重物阻尼器的MATLAB程序unforced.m图2-63分析弹簧重物阻尼器的MATLAB指令图2-64弹簧重物阻尼器的自由运动曲线在欠阻尼和过阻尼情况下的响应曲线如图2-64所示:M
5、ATLAB可分析以传递函数形式描述的系统。分子多项式和分母多项式都必须在MATLAB指令中指定。在MATLAB中多项式由行向量组成,这些行向量包含了降次排列的多项式系数。例如多项式p(s)=1s3+3s2+0s1+4s0,按图2-65的格式输入p=1304,p=1304;r=roots(p)r=-3.3553e+001.7765e-01+1.0773e+00j1.7765e-01-1.0773e+00jp=poly(r)p=1.0003.0000.000-0.000j4.000+0.000j图2-65输入多项式并求根矩阵乘法由MATLAB的conv()函数完成。把两个多项式相乘合并成一个多项式
6、n(s),即:n(s)=(3s2+2s+1)(s+4)=3s3+14s2+9s+4与此运算相关的MATLAB函数就是conv()。函数polyval()用来计算多项式的值。多项式n(s)在s=-5处值为n(-5)=-66,见图2-66。p=321;q=14;n=conv(p,q)n=31494value=polyval(n,-5)value=-66图2-66MATLAB的conv()函数和polyval()函数设传递函数为G(s)=num/den,其中num和den均为多项式。利用函数:二、传递函数二、传递函数P,Z=pzmap(num,den)可得G(s)的零极点位置,即P为极点位置列向量,
7、Z为零点位置列向量。该指令执行后自动生成零极点分布图。考虑传递函数:和图2-67零极点图传递函数G(s)/H(s)的零极点图如图2-67所示,相应的MATLAB指令如图2-68所示。numg=601;deng=1331;z=roots(numg)z=0+0.4082j0-0.4082jp=roots1(deng)p=-1-1-1n1=11;n2=12;d1=12*j;d2=12*j;d3=13;numh=conv(n1,n2);denh=conv(d1,conv(d2,d3);num=conv(numg,denh);den=conv(deng,numh);printsys(num,den)nu
8、m/den=6s5+18s4+25s3+图2-68绘制零极点图指令三、三、结构图模型结构图模型一个开环控制系统可以通过G1(s)与G2(s)两个环节的串联而得到,利用series()函数可以求串联连接的传递函数,函数的具体形式为:num,den=series(num1,den1,num2,den2)例如G1(s)和G2(s)的传递函数分别为:则串联函数的用法示于图2-69:num1=1;den1=50000;num2=11;den2=12;num,den=series(num1,den1,num2,den2);printsys(num,den)num/den=s+1500s3+1000s2图2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 应用 MATLAB 控制系统 仿真
限制150内