计算机仿真实验报告实验.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《计算机仿真》上机实验报告
姓名:
学号: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);
grid
2.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.ODE45
function 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);
Grid
2.ODE23
function 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);
Grid
2. Matlab 中模型表示及模型转换指令的使用
题目三:若给定系统的的传递函数为
1
132106126)(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 z
z 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 例如求解非线性方程:21
212122x 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 优化工具箱求解极值问题