《计算机仿真》上机实验报告姓名:学号: 2012104021专业:测控班级: 12级实验一常微分方程的求解及系统数学模型的转换一.实验目的通过实验熟悉计算机仿真中常用到的Matlab指令的使用方法,掌握常微分方程求解指令和模型表示及转换指令,为进一步从事有关仿真设计和研究工作打下基础。
二. 实验设备个人计算机,Matlab软件。
三. 实验准备预习本实验有关内容(如教材第2、3、5章中的相应指令说明和例题),编写本次仿真练习题的相应程序。
四. 实验内容1. Matlab中常微分方程求解指令的使用题目一:请用MATLAB的ODE45算法分别求解下列二个方程。
要求:1.编写出Matlab 仿真程序;2.画出方程解的图形并对图形进行简要分析;3.分析下列二个方程的关系。
1.2.1.function fun=funl(t,x)fun=-x^2;[t,x]=ode45('fun1',[0,20],[1]); figure(1);plot(t,x);grid2.function fun=fun2(t,x)fun=x^2;[t,x]=ode45('fun2',[0,20],[-1]); figure(2);plot(t,x);grid题目二:下面方程组用在人口动力学中,可以表达为单一化的捕食者-被捕食者模式(例如,狐狸和兔子)。
其中1x 表示被捕食者, 2x 表示捕食者。
如果被捕食者有无限的食物,并且不会出现捕食者。
于是有1'1x x ,则这个式子是以指数形式增长的。
大量的被捕食者将会使捕食者的数量增长;同样,越来越少的捕食者会使被捕食者的数量增长。
而且,人口数量也会增长。
请分别调用ODE45、ODE23算法求解下面方程组。
要求编写出Matlab 仿真程序、画出方程组解的图形并对图形进行分析和比较。
1.ODE45function fun=fun3(t,x)fun=[x(1)-0.1*x(1)*x(2)+0.01*t;-x(2)+0.02*x(1)*x(2)+0.04*t];[t,x]=ode45('fun3',[0,20],[30,20]);plot(t,x);Grid2.ODE23function fun=fun3(t,x)fun=[x(1)-0.1*x(1)*x(2)+0.01*t;-x(2)+0.02*x(1)*x(2)+0.04*t];[t,x]=ode23('fun3',[0,20],[30,20]);plot(t,x);Grid2. Matlab 中模型表示及模型转换指令的使用题目三:若给定系统的的传递函数为1132106126)(23423+++++++=s s s s s s s s G请用MATLAB 编程求解其系统的极零点模型。
num=[6 12 6 10]; den=[1 2 3 1 1]; sys=tf(num,den); H=zpk(sys)题目四:习题2.4系统传递函数为)65)(1(54)(22+++++=s s s s s s G 求其对角标准型实现。
num=[1 4 5]; den=[1 6 11 6]; sys=tf(num,den); canon(sys,'modal')题目五:习题5.8已知某离散系统02.003.0)(2+-=z z zz D ,采样周期Ts=0.02s,现需要在T=0.1s下作数字仿真,求该系统的数字仿真模型。
D=zpk(0,[0.1 0.2],1,0.1) D2=d2d(D,0.02)五.总结与体会初步掌握了Matlab常用指令的使用方法,为下一步学习打下了基础。
实验二 Matlab 优化工具箱的使用一.实验目的通过上机操作熟悉Matlab 优化工具箱的主要功能及其使用方法,掌握优化工具箱中常用函数的功能和语法,并利用其进行极值运算、求解线性和非线性问题等,为进一步的仿真设计和研究打下基础。
二. 实验设备个人计算机,Matlab 软件。
三. 实验准备预习本实验有关内容(如教材第6章中的相应指令说明和例题),编写本次仿真练习题的相应程序。
四. 实验内容1. 应用Matlab 优化工具箱求解优化问题例题6.6~6.10,选做2题,要求自行修改方程系数,并比较运行结果。
例6.6 例如求解非线性方程:21212122x x e x x e x x --=+-=-初始值为x0 = [-5 -5]。
原程序function F=myfun(x)F=[2*x(1)-x(2)-exp(-x(1));-x(1)+2*x(2)-exp(-x(2))];x0=[-5,-5];options=optimset('Display','iter');[x,fval]=fsolve(@myfun,x0,options)改变后function F=myfun(x)F=[3*x(1)-x(2)-exp(-x(1));-x(1)+3*x(2)-exp(-x(2))];x0=[-5,-5];options=optimset('Display','iter');[x,fval]=fsolve(@myfun,x0,options)例 6.8利用Matlab 命令求解下面的无约束非线性规划问题。
)12424()(min 221222112++++=∈x x x x x e x f x R x原程序function f=fun(x)f=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);x0=[-1,1];options=[];[x,options]=fminu('fun',x0,options)改变后function f=fun(x)f=exp(x(1))*(5*x(1)^2+3*x(2)^2+2*x(1)*x(2)+4*x(2)+1);x0=[-1,1];options=[];[x,options]=fminu('fun',x0,options)2. 应用Matlab优化工具箱求解极值问题已知函数f(x)=10*exp(-x)*cos(x) ,求函数的极值。
(1)x∈[2,5]时,求函数的最小值,并画出函数的曲线。
X=fmin('10*exp(-x*cos(x)',2,5)X=2.3562f='10*exp(-x)*cos(x)';fplot(f,[2,5])Y=-0.6702(2)x∈[3,9]时,求函数的最大值,并画出函数的曲线。
X=fmin('-10*exp(-x*cos(x)',3,9)X=5.4978f='10*exp(-x)*cos(x)';fplot(f,[3,9])Y=0.0290五.总结与体会熟悉了Matlab优化工具的主要功能和使用方法,常用函数的功能,并利用进行极值运算,求解线性非线性问题。
实验三利用Matlab和Simulink进行系统仿真设计一.实验目的通过实验对一个汽车运动控制系统进行实际设计与仿真,掌握控制系统性能的分析和仿真处理过程,熟悉用Matlab和Simulink进行系统仿真的基本方法。
二. 实验设备个人计算机,Matlab软件。
三. 实验准备预习本实验相关说明,复习PID控制器的原理和作用,明确汽车运动控制系统问题的描述及其模型表示,编写本次仿真练习的相应程序。
四. 实验说明本实验是对一个汽车运动控制系统进行实际设计与仿真,其方法是先对汽车运动控制系统进行建摸,然后对其进行PID 控制器的设计,建立了汽车运动控制系统的模型后,可采用Matlab 和Simulink 对控制系统进行仿真设计。
注意:设计系统的控制器之前要观察该系统的开环阶跃响应,采用阶跃响应函数step( )来实现,如果系统不能满足所要求达到的设计性能指标,需要加上合适的控制器。
然后再按照仿真结果进行PID 控制器参数的调整,使控制器能够满足系统设计所要求达到的性能指标。
五. 实验内容1. 问题的描述如下图所示的汽车运动控制系统,设该系统中汽车车轮的转动惯量可以忽略不计,并且假定汽车受到的摩擦阻力大小与汽车的运动速度成正比,摩擦阻力的方向与汽车运动的方向相反,这样,该汽车运动控制系统可简化为一个简单的质量阻尼系统。
根据牛顿运动定律,质量阻尼系统的动态数学模型可表示为:⎩⎨⎧==+v y u bv v m 系统的参数设定为:汽车质量m =1000kg ,比例系数b =50 N ·s/m ,汽车的驱动力u =500 N 。
根据控制系统的设计要求,当汽车的驱动力为500N 时,汽车将在5秒内达到10m/s 的最大速度。
由于该系统为简单的运动控制系统,因此将系统设计成10%的最大超调量和2%的稳态误差。
这样,该汽车运动控制系统的性能指标可以设定为:上升时间:t r <5s ;最大超调量:σ%<10%;稳态误差:e ssp <2%。
2.系统的模型表示假定系统的初始条件为零,则该系统的Laplace 变换式为:⎩⎨⎧==+)()()()()(s V s Y s U s bV s msV 即 )()()(s U s bY s msY =+ 则该系统的传递函数为:bms s U s Y +=1)()( 如果用Matlab 语言表示该系统的传递函数模型,相应的程序代码如下:num=1;den=[1000,50];sys=tf(num,den)同时,系统的数学模型也可写成如下的状态方程形式:⎪⎩⎪⎨⎧=+-=vy u m v m b v 1如果用Matlab 语言表示该系统状态空间模型,相应的程序代码如下:A=-50/1000;B=1/1000;C=1;D=0;sys=ss(A,B,C,D)3. 系统的仿真设计●利用Matlab进行仿真设计I.求系统的开环阶跃响应在Matlab命令窗口输入相应的程序代码,得出该系统的模型后,接着输入下面的指令:step(500*sys)可得到该系统的开环阶跃响应曲线,如下图所示:从图上可看出该系统不能满足系统设计所要求达到的性能指标,需要加上合适的控制器。
II .PID 控制器的设计PID 控制器的传递函数为:sK s K s K s K s K K I P D D I P ++=++2在PID 控制中,比例(P )、积分(I )、微分(D )这三种控制所起的作用是不同的(请注意在实验总结中进行归纳)。
下面分别讨论其设计过程。
(1)比例(P )控制器的设计增加比例控制器之后闭环系统的传递函数为:)()()(P P K b ms K s U s Y ++= 由于比例控制器可以改变系统的上升时间,现在假定Kp =100,观察一下系统的阶跃响应。