《计算机仿真报告.doc》由会员分享,可在线阅读,更多相关《计算机仿真报告.doc(17页珍藏版)》请在三一办公上搜索。
1、中南大学计算机仿真实验报告实验一 MATLAB语言编程一、 实验目的1、熟悉Matlab语言及其环境,掌握编程方法。2、要求认真听取实验指导老师讲解与演示。二、具体实验内容、步骤、要求 1、运行交互式学习软件,学习MATLAB语言; 2、在MATLAB的命令窗口下键入如下命令:INTRO(注意:intro 为一个用MATLAB语言编写的幻灯片程序,主要演示常用的MATLAB语句运行结果。) 然后,根据现实出来的幻灯片右面按钮进行操作,可按STARTNEXTNEXT按钮一步步运行,观察。3、 自编程序并完成上机编辑,调试,运行,存盘:(1)用MATLAB命令完成矩阵的各种运算,例如:求出下列运算
2、结果,并上机验证。解:实验程序如下:function chengxu1A=11 12 13 14;21 22 23 24;31 32 33 34;41 42 43 44;a1=A(:,1)a2=A(2,:)a3=A(1:2,2:3)a4=A(2:3,2:3)a5=A(:,1:2)a6=A(2:3)a7=A(:)a8=A(:,:)a9=ones(2,2)a10=eye(2)实验结果如下:(1) A(:,1)= (2) A(2,:)= (3) A(1:2,2:3)= (4) A(2:3,2:3)= (5) A(:,1:2)= (6) A(2:3)= (7) A(:)= (8) A(:,:)=(9)
3、 ones(2,2)= (10) eye(2)=(2)、绘制数学函数的图形,例如: y(t)=1-2e-tsin(t) (0=t=8) 理解数组运算与矩阵运算功能。解:根据题意编写MATLAB程序如下:%绘图程序如下:t=0:0.01:8;y=1-2*exp(1)-t.*sin(t) plot(t,y)绘制函数图形如下图所示:实验二 数值积分算法练习与函数调用一、实验目的1、理解数值积分法,熟练掌握MATLAB的函数调用。二、实验题目1、用Eular法求解初值问题的数值解:设方程如下:取步长,上机编写程序求出数值解。解:用MATLAB编程求解如下:%用Euler法求初值问题的数值解functi
4、on FZSYZ1t0=0;tf=1;x0=1;h1=0.1;t=t0:h1:tf;n=length(t);u=x0;uu(1)=u;for i=2:n du=u-2*t(i-1)/u; u=du*h1+u; uu(i)=u;enduuplot(t,uu)得到的结果如下图所示:2、编写MATLAB程序求解下列方程的数值解:解:用MATLAB编程求解如下:%用ode23法求初值问题的数值解function xdot=fun21(t,x)xdot=x-t2;function fzsy22t0=0;tf=3;tol=1e-6;x0=1;trace=1;t,x=ode23(fun21,t0,tf,x0
5、,tol,trace);plot(t,x)得到的实验结果如下图所示3、试将(2-2)方程改为用Eular编程求解试比较用ode23求解结果解:用MATLAB编程求解如下:%改用Euler法求初值问题的数值解function FZSYZ1t0=0;tf=3;x0=1;h1=0.1;t=t0:h1:tf;n=length(t);u=x0;uu(1)=u;for i=2:n du=u-(t(i-1)2; u=du*h1+u; uu(i)=u;enduuplot(t,uu)得到的实验结果如下图所示4、 试将(2-1)方程改为用ode23算法调用函数求解,并试比较结果。解:用MATLAB编程求解如下:f
6、unction xdot=fun21(t,x)xdot=x-2*t./x;function fzsy22t0=0;tf=1;tol=1e-6;x0=1;trace=1;t,x=ode23(fun21,t0,tf,x0,tol,trace);plot(t,x)得到的实验结果如下图所示:5、利用ode23或ode45求解线性时不变系统微分方程,并绘制出曲线,式中 解:用MATLAB编程求解如下:function xdot=fun21(t,x)A=-0.5 1;-1 -0.5;xdot=A*x;function fzsy22t0=0;tf=4;tol=1e-6;x0=0;1;trace=1;t,x=
7、ode23(fun21,t0,tf,x0,tol,trace);plot(t,x)得到的实验结果如下图所示:6、求出与的单位阶跃响应,并分别求出状态空间模型。解:(1)的状态空间模型求解如下:function shiyan2b1=2;a1=1 2 1;sys=tf(b1,a1);step(sys);A1,B1,C1,D1 = tf2ss(b1,a1)求解可得: 实验仿真结果如下图所示:(2) 的状态空间模型求解如下:function shiyan2b1=1;a1=2 3 3 1;sys=tf(b1,a1);step(sys);A1,B1,C1,D1 = tf2ss(b1,a1)求解可得: 实验
8、仿真结果如下图所示:7、选做题一:已知系统传递函数为,求对应的零极点模型,绘制系统阶跃响应。解:由MATLAB编程求解如下:function shiyan2b1=200 400;a1=1 11 52 42;step(b1,a1);z,p,k = tf2zp(b1,a1)有上述程序求解可得: 实验仿真结果如下图所示:实验三 控制工具箱与SIMULINK软件应用一、二、三、 待添加的隐藏文字内容2实验目的1、熟悉工具箱及其使用,进行系统仿真分析,通过仿真对系统进行校正校验。四、 实验预习要求2、必须先复习教材及上课介绍的有关控制工具箱命令与SIMULINK仿真工具的使用,并对实验题目作好准备。五、
9、 学会调出、运行已由SIMULINK建立的仿真模型1、仿真模型如下:仿真图形如下:2、仿真模型如下:仿真图形如下:实验四 数字控制系统仿真与综合应用一、实验目的1、 掌握用于离散系统的Matlab命令及数字控制系统仿真系统方法。应用仿真对系统的设计进行分析比较。二、实验内容1、实验题目与要求若,若使用零阶保持器将G(s)转换成G(z)。采用周期T=0.1s,用仿真方法得出G(s)与G(z)的阶跃响应图并进行比较。解:将连续系统的传递函数用下面的零阶保持器法转换成离散系统传递函数程序清单如下:function shiyan41num=10;den=1,7,10;ts=0.1;i=0:35;tim
10、e=i*ts;n_zoh,d_zoh=c2dm(nc,dc,ts);yc=step(nc,dc,time);y_zoh=dstep(n_zoh,d_zoh,36);xx,yy=stairs(time,y_zoh);plot(time,yc)hold on;plot(xx,yy)程序结果如下: 实验仿真结果如下图所示:2、 仿真研究与系统分析:,采样周期T=0.2s1、采用零阶保持器,将W1(s)转换为W1(z),串接一个计算机调节模型D(z)组成一个典型的数字反馈系统,当采用最少拍设计原则设计出来的。分别用仿真算法得到系统在单位阶跃输入作用下的响应,系统在单位速度输入是的输出响应。解:(1)首先将W1(s)转换为W1(z),采样周期T=0.2s,程序清单如下:function shiyan42num=10;den=0.005 0.15 1 0;ts=0.2;nc,dc=c2dm(num,den,ts)实验结果如下: (2)运行如下仿真程序可得结果如下:3、 思考题解:(1)将被控对象的传递函数G(s)离散化的程序如下:%将G(s)离散化的程序如下:function shiyan43num=10;den=1 1 0;ts=1;nc,dc=c2dm(num,den,ts)实验结果如下: 则离散化后的传递函数(2)运行如下仿真程序可得结果如下: