Matlab控制系统计算机辅助设计_第1页
Matlab控制系统计算机辅助设计_第2页
Matlab控制系统计算机辅助设计_第3页
Matlab控制系统计算机辅助设计_第4页
Matlab控制系统计算机辅助设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实 验 目 录实验一:Matlab环境熟悉与基本运算(设计型)实验二:Matlab语言程序设计(设计型)实验三:控制系统模型的建立(设计型)实验四:Simulink仿真入门(验证型)实验五:控制系统时域仿真分析(设计型)实验六:Simulink环境下时域仿真实验七:控制系统根轨迹仿真分析实验八:控制系统频域仿真分析(设计型)实验名称:Matlab环境熟悉与基本运算(设计型)1、矩阵运算(1)矩阵的乘法A=1 2;3 4;B=5 5;7 8;y=A2*By = 105 115 229 251(2)矩阵除法A=1 2 3;4 5 6;7 8 9;B=1 0 0;0 2 0;0 0 3;y1=AB警

2、告: 矩阵接近奇异值,或者缩放错误。结果可能不准确。RCOND = 1.541976e-18。 y1 = 1.0e+16 * -0.4504 1.8014 -1.3511 0.9007 -3.6029 2.7022 -0.4504 1.8014 -1.3511y2=A/By2 = 1.0000 1.0000 1.0000 4.0000 2.5000 2.0000 7.0000 4.0000 3.0000(3)矩阵的转置及共轭转置A=5+i,2-i,1;6*i,4,9-i;y1=A.'y1 = 5.0000 + 1.0000i 0.0000 + 6.0000i 2.0000 - 1.00

3、00i 4.0000 + 0.0000i 1.0000 + 0.0000i 9.0000 - 1.0000iy2=A'y2 = 5.0000 - 1.0000i 0.0000 - 6.0000i 2.0000 + 1.0000i 4.0000 + 0.0000i 1.0000 + 0.0000i 9.0000 + 1.0000i(4)使用冒号选出指定元素A=1 2 3;4 5 6;7 8 9;y1=A(1:2,3)y1 = 3 6y2=A(2:3,:)y2 = 4 5 6 7 8 9(5)复数矩阵的生成:syms a1 a2 a3 a4 b1 b2 b3 b4A=a1+b1*j a2+

4、b2*j;a3*exp(b3*j) a4*exp(b4*j) A = a1 + b1*1i, a2 + b2*1i a3*exp(b3*1i), a4*exp(b4*1i)a1=3;a2=-2;a3=9;a4=23;b1=5;b2=3;b3=6;b4=33;A=a1+b1*j a2+b2*j;a3*exp(b3*j) a4*exp(b4*j)A = 3.0000 + 5.0000i -2.0000 + 3.0000i 8.6415 - 2.5147i -0.3054 +22.9980i2、 多项式p = 1 0 2 4roots(p)%用roots函数求多项式的根ans = 0.5898 +

5、1.7445i 0.5898 - 1.7445i -1.1795 + 0.0000iA=1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4;P=poly(A);poly2sym(P) ans =x4 - (69*x3)/10 - (3863*x2)/50 - (8613*x)/100 + 12091/20polyval(P,20)ans = 7.2778e+04polyvalm(P,A)ans = 1.0e-11 * -0.4093 -0.4849 -0.3876 -0.4519 -0.5002 -0.8072 -0.6004 -0.5684 -0.4704 -0.61

6、96 -0.6480 -0.5230 -0.3297 -0.4455 -0.3595 -0.36383、基本绘图命令(1)t=0:0.01:2*pi;y=cos(t);plot(t,y)运行结果如右图所示:(2)t=0:0.01:2*pi;y1=cos(t-0.25);y2=sin(t-0.5);plot(t,y1,t,y2)运行结果如右图所示: 4、基本绘图控制t=0:0.01:4*pi;x1=10*sin(t);plot(t,x1,'-.b*')axis(-20 20 -20 20)grid ontitle('正弦曲线x1=10*sin(t)图')xlabe

7、l('t=0:0.01:4*pi')ylabel('x1')text(pi/2,10,'最大值')运行结果如右图所示: 实验名称:Matlab语言程序设计(设计型)1、编写命令文件:计算 1+2+n<5000 时的最大 n 值;解: 建立M文件,文件名称记为two1,编辑程序内容如下所示:s=0;n=1;while(s<5000), s=s+n; n=n+1;end,n 保存,并在命令窗口中输入two1,运行结果如下所示:two1n = 1012、编写函数文件:解:用for循环结构编写程序: 建立函数文件,文件名称记为findsum1

8、,编辑程序内容如下所示:function s1 =findsum1( )%findsum1 用for循环编写的程序% 求2的0到30次幂的和,s表示和,i表示执行次数s1=0;for i=0:30, s1=s1+2i;Endend保存,并在命令窗口中输入s1=findsum1( ),运行结果如下所示:s1=findsum1( )s1 = 2.1475e+09用while循环结构编写程序: 建立函数文件,文件名记为findsum2,编辑程序内容如下所示:function s2 =findsum2( )%findsum2 用while循环编写的程序% 求2的0到30次幂的和,s表示和,i表示执行次

9、数s2=0;i=0;while(i<=30), s2=s2+2i; i=i+1;end end保存,并在命令窗口中输入 s2 =findsum2( ),运行结果如下所示: s2 =findsum2( )s2 = 2.1475e+093、解:建立M文件,文件名记为two3,编辑程序内容如下:x=input('please input a character:n','s');if x='y'|x='Y', disp('x=1');else if x='n'|x='N', disp(

10、'x=0'); else disp('its erro'); endend保存,并在命令窗口中输入two2,运行结果如下所示:two2please input a character:nx=0two2please input a character:Sits errotwo2please input a character:Yx=11、在MATLAB环境中输入下面的系统模型解:实验名称:控制系统模型的建立和分析(设计型) 建立M文件,文件名称记为thr1,编辑程序内容如下所示:num=1,4,3,2; %系统模型的分子系数den=conv(1,0,0,conv(

11、1,1,1,8,20);%分母系数G1=tf(num,den);%得到开环系统模型G2=feedback(G1,1);%得到闭环系统模型p1,z1=pzmap(G1)%不加分号,在命令窗口可显示出开环系统的零极点p2,z2=pzmap(G2)% 不加分号,在命令窗口可显示出闭环系统的零极点 在命令窗口输入thr1,则得出以下结果:thr1p1 = 0 0 -4.0000 + 2.0000i -4.0000 - 2.0000i -1.0000 z1 = -3.2695 -0.3652 + 0.6916i -0.3652 - 0.6916ip2 = -3.9174 + 2.1007i -3.917

12、4 - 2.1007i -1.1449 -0.0102 + 0.2972i -0.0102 - 0.2972iz2 = -3.2695 -0.3652 + 0.6916i -0.3652 - 0.6916i2、假设系统由两个模块和串联连接而成,已知 且 解:建立M文件,文件名称为thr2,编辑程序内容如下所示:G3=tf(1,1,1,3,4);%实验三的第二题,题中的G1(s)模型G4=tf(1,3,5,1,4,3,2,1);% 题中的G2(s)模型G5=series(G3,G4)%用串联函数,将G3和G4模型串联,得到G5模型,在命令窗口显示出模型Gss=ss(G5)%用ss得到G5模型的状

13、态方程模型在命令窗口中输入thr2,得到以下运行结果:Transfer function: s3 + 4 s2 + 8 s + 5-s6 + 7 s5 + 19 s4 + 27 s3 + 19 s2 + 11 s + 4 a = x1 x2 x3 x4 x5 x6 x1 -7 -2.375 -1.688 -0.5938 -0.3438 -0.25 x2 8 0 0 0 0 0 x3 0 2 0 0 0 0 x4 0 0 2 0 0 0 x5 0 0 0 1 0 0 x6 0 0 0 0 0.5 0 b = u1 x1 1 x2 0 x3 0 x4 0 x5 0 x6 0 c = x1 x2 x

14、3 x4 x5 x6 y1 0 0 0.0625 0.125 0.25 0.3125 d = u1 y1 0 Continuous-time model.3、 假设系统的对象模型为解: 建立M文件,文件名称为thr3,编辑程序内容如下所示:s=tf('s');%拉氏算子G6=10/(s+1)3);%实验三第3题的对象模型Gpid=0.48*(1+1/(1.814*s)+0.4353*s/0.04353);%PID控制器G7=series(G6,Gpid);%控制器与对象模型进行串联得到的开环系统模型G8=feedback(G7,1)%闭环系统的传递函数模型z3,p3,k3=zp

15、kdata(G7,'v')%得到开环系统的零极点及增益z4,p4,k4=zpkdata(G8,'v') %得到闭环系统的零极点及增益在命令窗口中输入thr3,得到以下运行结果Transfer function: 3.79 s2 + 0.379 s + 0.2089-0.07896 s4 + 0.2369 s3 + 4.027 s2 + 0.458 s + 0.2089z3 = -0.0500 + 0.2294i -0.0500 - 0.2294ip3 = 0 -1.0000 -1.0000 + 0.0000i -1.0000 - 0.0000ik3 = 48z4

16、 = -0.0500 + 0.2294i -0.0500 - 0.2294ip4 = -1.4442 + 6.9670i -1.4442 - 6.9670i -0.0558 + 0.2217i -0.0558 - 0.2217ik4 = 484、解:三种典型模型建模函数: 传递函数模型:G=tf(num,den); 零极点增益模型:G=zpk(z,p,k); 状态空间模型:G=ss(A,B,C,D);各种模型之间的转换语句:A,B,C,D=tf2ss(num,den);num,den=ss2tf(A,B,C,D,iu);z,p,k=tf2zp(num,den);num,den=zp2tf(z,

17、p,k);A,B,C,D=zp2ss(z,p,k);z,p,k=ss2zp(A,B,C,D,i)实验名称:Simulink仿真环境入门(验证型)1、搭建下图所示控制系统模型,自己设计输入正弦曲线参数,观察示波器及输出数据。解:画出的仿真图如下,Sine Wave:O(t)=3*sin(2*t),增益为5。实验名称:Simulink仿真环境入门(验证型)出现以下波形图:左图为使用plot函数画出的figure图,右图为示波器显示的图。实验名称:控制系统时域仿真(设计型)1、时域分析(1)解:建立M文件,写入以下程序:G1=tf(5,25,30,1,6,10,8);t=0:0.0005:25;y1

18、,t=step(G1,t);ymax,tp=max(y1);max_overshoot=ymax-1y2,t=impulse(G1,t);plot(t,y1,t,y2)figure图如右图所示:(2)解:建立M文件,写入以下程序:wn=2:2:12;z=0.7;t=0:0.0005:25;hold onfor i=1:length(wn)G2=tf(wn(i)2,1,2*z*wn(i),wn(i)2);step(G2,t)endgrid on,hold offlegend('wn=2','wn=4','wn=6','wn=8',&

19、#39;wn=10','wn=12')figure图如右图所示:(3)解:建立M文件,写入以下程序:wn=6;zetas=0.2 0.4 0.6 0.8 1.0 1.5 2.0;t=0:0.0005:25;hold onfor i=1:length(zetas)G3=tf(wn2,1,2*zetas(i)*wn,wn2);step(G3,t)endgrid on,hold offlegend('zetas=0.2','zetas=0.4','zetas=0.6','zetas=0.8','zetas

20、=1.0','zetas=1.5','zetas=2.0')figure图如右上图所示:2、系统稳定性分析(1)解:零极点分布图法程序:G4=zpk(-2,0;-1;-20,100)G5=feedback(G4,1)pzmap(G5)figure图:由图可知该系统的极点均位于左半平面,所以该系统稳定。程序判定法程序:G4=zpk(-2,0;-1;-20,100)G5=feedback(G4,1)p=pole(G5);for i=1:length(p) if real(p(i)>0 disp('系统不稳定') break endend

21、disp('系统稳定')pzmap(G5)figure图:实验名称:Simulink环境下时域仿真1、 解:仿真图: 阶跃响应: 方波响应:2、解:仿真图: 阶跃响应: 正弦信号输入响应: 斜坡输入响应:3、 解:仿真图: 建立M文件,编写以下程序: G1=tf(1 1,2 1); G2=tf(5,2 3 1); H1=tf(1,2 1); G3=series(G1,G2); G4=feedback(G3,H1) isstable(G4) 得到以下实验结果: g3 Transfer function: 10 s2 + 15 s + 5 - 8 s4 + 20 s3 + 18 s

22、2 + 12 s + 6 ans = 1 结论:编写程序判断该系统的稳定性结果是该系统是稳定的。 在Simulink环境下验证编程结果: 给出阶跃信号,画出以下仿真图进行仿真: 示波器显示结果: 从上图可以看出该系统是是稳定的,所以编程结果是正确的。实验名称:控制系统根轨迹分析1、(1)解:编写程序如下所示:G=zpk(-0.5,0;-1;-2;-5,1)rlocus(G)k,p=rlocfind(G)Figure图:系统的根轨迹图:(2)解:编写程序如下所示:G=zpk(,0;-2,1)rlocus(G)k,p=rlocfind(G)Figure图:系统的根轨迹图:2、根轨迹分析(1)解:编

23、写程序如下所示:G=zpk(-3,0;-5;-6;-1+j;-1-j,1)rlocus(G)k,p=rlocfind(G)Figure图:系统的根轨迹图:由根轨迹图可以看出点击的这一点的增益k=35.2;闭环极点的位置p=-0.00587+1.35i,因为p<0,所以该点系统闭环是稳定的。(2)解:编写以下程序:G=zpk(,0;-1;-2,1)rlocus(G)k=0:0.01:98;r,k=rlocus(G,k);m,n=size(r);for i=1:n if real(r(2,i)>0 break endendkg=k(i-1)程序的执行结果:Zero/pole/gain: 1-s (s+1) (s+2) kg = 6由上述的执行结果可以看出该系统稳定的k值范围是当k<6时,系统是稳定的。Figure图如右图所示:实验名称:控制系统频域仿真分析(设计型)1、(1)解:编写以下程序:zeta=0.7;wn=2,4,6,8,10,12;for i=1:length(wn) num=wn(i)2; den=1,2*zeta*wn(i),wn(i)2; G1=tf(num,den) bode(G1)endlegend('wn=2','wn=4','wn=6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论