初步认识MATLAB和控制系统仿真.doc
《初步认识MATLAB和控制系统仿真.doc》由会员分享,可在线阅读,更多相关《初步认识MATLAB和控制系统仿真.doc(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、自动控制原理实验报告实验题目:初步认识MATLAB和控制系统仿真院系:电气信息学院班级:姓名:学号:日期:实验一 初步认识MATLAB和控制系统仿真一、实验目的(1)了解并掌握MATLAB仿真软件的使用方法; (2)掌握控制系统数学模型的多种描述方法及其仿真实现和互相转换; (3) 熟悉控制系统仿真常用的MATLAB函数。二、实验设备(1)硬件:个人计算机;(2)软件:MATLAB仿真软件(版本6.5或以上)。三、实验内容和步骤 1. 质量-弹簧-阻尼器系统的零输入响应 运动方程 零输入响应 理论分析:质量-弹簧-阻尼器系统是一个典型的二阶系统,因为,所以的稳态值为0,即。其传递函数为:,化成
2、首一标准型为:,故,且当不变时越小,响应曲线衰减越慢。修改并运行程序lab1_1.m以求取下列情形的零输入响应曲线并存盘:(1) 理论分析:因为,所以为欠阻尼系统,响应曲线有振荡。经过一段时间衰减后衰减到零。编写程序如下:y0=0.15;wn=sqrt(2);zeta=1/(2*sqrt(2);t=0:0.1:10;c=y0/(sqrt(1-zeta2);y=c*exp(-zeta*wn*t).*sin(wn*sqrt(1-zeta2)*t+acos(zeta);bu=c*exp(-zeta*wn*t);bl=-bu;plot(t,y,t,bu,k-,t,bl,k-),gridxlabel(T
3、ime (sec),ylabel(y(t) (meters)legend(omega_n=,num2str(wn), zeta=,num2str(zeta)曲线如下图:经改动并检验正确的程序为:y0=0.15; wn=sqrt(2); zeta=1/(2*sqrt(2); t=0:0.1:10; s1=-wn*(zeta+sqrt(zeta2-1); s2=-wn*(zeta-sqrt(zeta2-1); k1=(1-zeta/sqrt(zeta2-1)/2; k2=(1+zeta/sqrt(zeta2-1)/2; y=y0*(k1*exp(s1*t)+k2*exp(s2*t); plot(t
4、,y),grid xlabel(Time (sec),ylabel(y(t) (meters) legend(omega_n=,num2str(wn), zeta=,num2str(zeta)该情形下的零输入响应曲线为:对比证明,实验结果与理论分析得到的结果一致,不过由于程序有些许的改动,导致图像有一些变化。(2)理论分析:因为,处于临界阻尼状态,没有振荡,信号逐渐衰减到0。编写程序如下:y0=0.15;wn=sqrt(2);zeta=1;t=0:0.1:10;y=y0*(exp(-wn*t)+wn*t.*exp(-wn*t); xlabel(Time (sec),ylabel(y(t) (m
5、eters)legend(omega_n=,num2str(wn), zeta=,num2str(zeta)其响应曲线如下图:经运行验证该理论猜想与实验结果相符,证明实验结果正确。(3) 理论分析:因为,为过阻尼状态,没有振荡,信号逐渐衰减到0。编写程序如下: y0=0.15;wn=sqrt(2);zeta=sqrt(2);t=0:0.1:10;s1=-wn*(zeta+sqrt(zeta2-1);s2=-wn*(zeta-sqrt(zeta2-1);k1=(1-zeta/sqrt(zeta2-1)/2;k2=(1+zeta/sqrt(zeta2-1)/2;y=y0*(k1*exp(s1*t)
6、+k2*exp(s2*t);plot(t,y),gridxlabel(Time (sec),ylabel(y(t) (meters)legend(omega_n=,num2str(wn), zeta=,num2str(zeta)响应曲线如下图:经运行检验实验结果与理论猜想相符,证明实验结果正确。2. 系统传递函数的MATLAB实现及零极点分布 (1) 多项式的表示及求值:系数按降幂顺序构成行向量;求值函数ployval;多项式的表示: p=1 3 0 4;降幂顺序排列构成行向量求值函数ployval: p=3 2 1;value=polyval(p,-5)输出结果为: value= 66(2)
7、多项式的根:由函数roots求得;函数ploy(roots()的功能; 函数roots: p=1 3 0 4;r=roots(p) 输出结果为:r =-3.3553 + 0.0000i 0.1777 + 1.0773i 0.1777 - 1.0773i 继续输入: p=poly(r) 输出结果为:p = 1.0000 3.0000 -0.0000 4.0000 结论得出函数ploy(roots()的功能为:将原来多项式转变为字符型多项 式输出。(3)多项式的积:由函数conv实现; 输入:p=3 2 1; q=1 4;n=conv(p,q) 输出:n = 3 14 9 4 (4)系统传递函数:
8、由函数tf实现; 输入:num1=10; den1=1 2 5; sys1=tf(num1,den1) 输出:sys1 = 10 - s2 + 2 s + 5(5) 传递函数的零极点表示:函数pole,zero和pzmap的运用。 输入:sys=tf(1 10,1 2 1); p=pole(sys) 输出:p = -1 -1 继续输入:z=zero(sys) 输出:z = -10 继续输入:pzmap(sys) 输出: 运行程序lab1_2.mlab1_6.m,并写(指)出各段程序中的多项式、传递函数和零极点。(1)运行程序lab1_2.m为: p=1 3 0 4; r=roots(p) p=
9、poly(r) r = -3.3553 + 0.0000i 0.1777 + 1.0773i0.1777 - 1.0773i p = 1.0000 3.0000 -0.0000 4.0000这段程序主要展现了roots和poly的用法,roots指的是多项式的零值,ploy指的是字符型多项式,而p=1 3 0 4是多项式。(2)运行程序lab1_3.m为: p=3 2 1; q=1 4; n=conv(p,q) value=polyval(n,-5) n = 3 14 9 4 value = -66这段程序主要表现的是求积函数conv和求值函数polyval的用法,而p=3 2 1,q=1 4
10、是这段程序中的多项式。(3)运行程序lam1_4.m为: num1=10; den1=1 2 5; sys1=tf(num1,den1) num2=1; den2=1 1; sys2=tf(num2,den2) sys=sys1+sys2 sys1 = 10 - s2 + 2 s + 5 Continuous-time transfer function. sys2 = 1 - s + 1 Continuous-time transfer function. sys = s2 + 12 s + 15 - s3 + 3 s2 + 7 s + 5 Continuous-time transfer
11、function.这段程序中,tf是传递函数,即传递函数为tf(num1,den1)和tf(num2,den2);num1=10,den1=1 2 5,num2=1,den2=1 1为多项式。(4)运行程序lam1_5.m为: sys=tf(1 10,1 2 1) p=pole(sys) z=zero(sys) sys = s + 10 - s2 + 2 s + 1 Continuous-time transfer function. p = -1 -1 z =-10这段程序中,1 10,1 2 1是多项式,tf(1 10,1 2 1)是传递函数,pole(sys)是函数的极点,zero(sy
12、s)是函数的零点。(5)运行程序lab1_6.m为: numg=6 0 1; deng=1 3 3 1; sysg=tf(numg,deng); z=zero(sysg) p=pole(sysg) n1=1 1; n2=1 2; d1=1 2*i; d2=1 -2*i; d3=1 3; numh=conv(n1,n2); denh=conv(d1,conv(d2,d3);sysh=tf(numh,denh)sys=sysg/syshpzmap(sys)z = 0.0000 + 0.4082i 0.0000 - 0.4082ip = -1.0000 + 0.0000i -1.0000 + 0.0
13、000i -1.0000 - 0.0000isysh = s2 + 3 s + 2 - s3 + 3 s2 + 4 s + 12 Continuous-time transfer function.sys = 6 s5 + 18 s4 + 25 s3 + 75 s2 + 4 s + 12 - s5 + 6 s4 + 14 s3 + 16 s2 + 9 s + 2Continuous-time transfer function.这段程序中,numg=6 0 1; deng=1 3 3 1,n1=1 1; n2=1 2; d1=1 2*i; d2=1 -2*i; d3=1 3是多项式,sysg=
14、tf(numg,deng);sysh=tf(numh,denh)是传递函数,sysg=tf(numg,deng);sysh=tf(numh,denh)是系统函数的零极点分布,pzmap(sys)是指系统函数零极点分布图。3. 系统联接及简化(1) 系统的串联 利用函数series实现图1_1所示两系统的串联:修改并运行程序lab1_7.m以求取当时系统的传递函数。程序运行为:numg=1;deng=500 0 0; sysg=tf(numg,deng);numh=1 1;denh=1 2; sysh=tf(numh,denh);sys =series(sysg,sysh);syssys = s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 初步 认识 MATLAB 控制系统 仿真
限制150内