计算机仿真实验报告实验一
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一常微分方程的求解及系统数学模型的转换一.实验目的
通过实验熟悉计算机仿真中常用到的Matlab指令的使用方法,掌握常微分方程求解指令和模型表示及转换指令,为进一步从事有关仿真设计和研究工作打下基础。
二. 实验设备
个人计算机,Matlab软件。
三. 实验准备
预习本实验有关内容(如教材第2、3、5章中的相应指令说明和例题),编写本次仿真练习题的相应程序。
四. 实验内容
1. Matlab中常微分方程求解指令的使用
题目一:请用MATLAB的ODE45算法分别求解下列二个方程。要求:1.编写出Matlab 仿真程序;2.画出方程解的图形并对图形进行简要分析;3.分析下列二个方程的关系。
1.2.
1.仿真程序
方程一:
M文件;
function f1=f1(t,x)
f1=-x^2
[t,x]=ode45(‘f1’,[0,40],[1]);
plot(t,x);
grid
方程二:
function f1=f1(t,x)
f1=x^2
[t,x]=ode45(f2,[0,40],[-1]);
plot(t,x);
grid
2.方程解的图形并对图形进行简要分析
3.
3.二个方程的关系
题目二:下面方程组用在人口动力学中,可以表达为单一化的捕食者-被捕食者模式(例如,狐狸和兔子)。其中1x 表示被捕食者, 2x 表示捕食者。如果被捕
食者有无限的食物,并且不会出现捕食者。于是有1'1x x ,则这个式子是以指数
形式增长的。大量的被捕食者将会使捕食者的数量增长;同样,越来越少的捕食者会使被捕食者的数量增长。而且,人口数量也会增长。请分别调用ODE45、ODE23算法求解下面方程组。要求编写出Matlab 仿真程序、画出方程组解的图形并对图形进行分析和比较。
fun3 m 文件:
function fun3=fun3(t,x)
fun3=[x(1)-0.1*x(1)*x(2)+0.01*t;-x(2)+0.02*x(1)*x(2)+0.04*t] Ode45解函数程序:
[t,x]=ode45('fun3',[0,20],[30,20]);
plot(t,x);title('ode45作图');
xlabel('蓝线为捕食者,绿线为被捕食者');
grid
Ode45解函数图像:
Ode23解函数程序:
[t,x]=ode23('fun3',[0,20],[30,20]);
plot(t,x);title('ode23作图');
xlabel('蓝线为捕食者,绿线为被捕食者');
grid
Ode23解函数图像:
2. Matlab 中模型表示及模型转换指令的使用 题目三:若给定系统的的传递函数为
1
132106126)(23423+++++++=s s s s s s s s G 请用MATLAB 编程求解其系统的极零点模型。 fz=[6 12 6 10];fm=[1 2 3 1 1];
[z,p,k]=tf2zp(fz,fm);
Gzpk=zpk(z,p,k)
[zero poles k]=zpkdata(Gzpk,'v')
结果:
Gzpk =
6 (s+1.929) (s^2 + 0.07058s + 0.8638)
----------------------------------------------- (s^2 + 0.08663s + 0.413) (s^2 + 1.913s + 2.421)
Continuous-time zero/pole/gain model.
zero =
-1.9294 + 0.0000i
-0.0353 + 0.9287i
-0.0353 - 0.9287i
poles =
-0.9567 + 1.2272i
-0.9567 - 1.2272i
-0.0433 + 0.6412i
-0.0433 - 0.6412i
k =
6
题目四:习题2.4
)
65)1(54)(22+++++=s s s s s s G (的对角标准型 fz=[1 4 5] ;
fm=conv([1 1],[1 5 6]);
Gtf=tf(fz,fm);
diag=canon(Gtf,'modal')
结果:
diag =
a =
x1 x2 x3
x1 -3 0 0
x2 0 -2 0
x3 0 0 -1
b =
u1
x1 -15.52
x2 -19.6
x3 5.745
c =
x1 x2 x3 y1 -0.06442 0.05103 0.1741
d =
u1
y1 0
题目五:习题5.8
02
.03.0)z (2+-=z z z G 采样周期 Ts=0.02s 先在t=0.1s 仿真 fz=[1,0 ];
fm=[1 -0.3 0.02];T1=0.1;T2=0.02; firstsys=tf(fz,fm,T1)
secondsys=d2d(firstsys,T2)
结果:
firstsys =
z
------------------
z^2 - 0.3 z + 0.02
Sample time: 0.1 seconds
Discrete-time transfer function.
secondsys =
0.278 z - 0.1369
----------------------
z^2 - 1.356 z + 0.4573
Sample time: 0.02 seconds
Discrete-time transfer function.
五.总结与体会