MATLAB控制系统仿真.ppt
《MATLAB控制系统仿真.ppt》由会员分享,可在线阅读,更多相关《MATLAB控制系统仿真.ppt(30页珍藏版)》请在三一办公上搜索。
1、MATLAB控制系统仿真,提纲,一、弹簧-重物-阻尼器系统二、传递函数三、结构图模型,引言,MATLAB是一套高性能的数值计算和可视化软件,它集数值分析、矩阵运算和图形显示于一体,构成了一个方便的界面友好的用户环境。控制系统的分析与设计方法,都是以数学模型为基础进行的。MATLAB可以用于以传递函数形式描述的控制系统。在本节中,首先举例说明如何使用MATLAB进行辅助分析。然后讨论传递函数和结构图。,一、弹簧-重物-阻尼器系统,弹簧重物阻尼器动力学系统如图2-1所示。重物M的位 移由y(t)表示,用微分方程描述如下:,该系统在初始位移作用下的瞬态响应为:,其中q=cos-1z,初始位移是y(0
2、)。系统的瞬态响应当z1时为欠阻尼,当z时为过阻尼,当z1时为临界阻尼。,过阻尼情况:y(0)=0.15 m wn=(弧度/秒)()欠阻尼情况:y(0)=0.15 m 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*sqrt(2);zeta2=1/(2*sqrt(2);t=0:0.1:10;unforced,
3、(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*exp(-zeta2*wn*t);bl=-bu;*画图plot(t,y1,-,t,y2
4、,-,t,bu,-,bl,-),gridxlabel(Timesec),ylabel(y(t)Displacementm)text(0.2,0.85,oeverdamped zeta1=,num2str(zeta1),)text(0.2,0.80,underdamped zeta2=,num2str(zeta2),),(b)分析弹簧重物阻尼器的MATLAB程序unforced.m图2-63 分析弹簧重物阻尼器的MATLAB指令,图2-64 弹簧重物阻尼器的自由运动曲线,在欠阻尼和过阻尼情况下的响应曲线如图2-64所示:,MATLAB可分析以传递函数形式描述的系统。分子多项式和分母多项式都必须在
5、MATLAB指令中指定。,在MATLAB中多项式由行向量组成,这些行向量包含了降次排列的多项式系数。例如多项式p(s)=1s3+3s2+0s1+4s0,按图2-65的格式输入p=1 3 0 4,,p=1 3 0 4;r=roots(p)r=-3.3553e+00 1.7765e-01+1.0773e+00j 1.7765e-01-1.0773e+00jp=poly(r)p=1.000 3.000 0.000-0.000j 4.000+0.000j,图2-65 输入多项式并求根,矩阵乘法由MATLAB的conv()函数完成。把两个多项式相乘合并成一个多项式n(s),即:n(s)=(3s2+2s+
6、1)(s+4)=3s3+14s2+9s+4,与此运算相关的MATLAB函数就是conv()。函数polyval()用来计算多项式的值。多项式n(s)在s=-5处值为n(-5)=-66,见图2-66。,p=3 2 1;q=1 4;n=conv(p,q)n=3 14 9 4value=polyval(n,-5)value=-66,图2-66 MATLAB的conv()函数和polyval()函数,设传递函数为G(s)=num/den,其中num和den均为多项式。利用函数:,二、传递函数,P,Z=pzmap(num,den),可得G(s)的零极点位置,即P为极点位置列向量,Z为零点位置列向量。该指
7、令执行后自动生成零极点分布图。考虑传递函数:,和,图2-67 零极点图,传递函数G(s)/H(s)的零极点图如图2-67所示,相应的MATLAB指令如图2-68所示。,numg=6 0 1;deng=1 3 3 1;z=roots(numg)z=0+0.4082j0-0.4082j p=roots1(deng)p=-1-1-1n1=1 1;n2=1 2;d1=1 2*j;d2=1 2*j;d3=1 3;numh=conv(n1,n2);denh=conv(d1,conv(d2,d3);num=conv(numg,denh);den=conv(deng,numh);printsys(num,de
8、n)num/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=500 0 0;num2=1 1;den2=1 2;num,den=series(num1,den1,num2,den2);printsys(num,den)num/den=s+1 500s3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 控制系统 仿真
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5439110.html