系统建模与仿真作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

病菌传染人数动态变化模型的仿真
专业:机械电子工程
姓名:王勇(10S030039)
日期:2010年11月8日
摘要
本文利用已知的模型,运用MATLAB中Simulink工具箱对模型进行的准确的描述,然后进行仿真分析。

Simulink的每个子模型库包含有相应的功能模块,用户也可以定制和创建用户自已的模块,模型化图形输入是Simulink提供了一些按功能分类的基本的系统模块,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型,进而进行仿真与分析。

通过分析对传染情况有了准确的了解,利于对传染情况的控制。

关键字:建模,MATLAB/Simulink,分析
Abstract
This paper using the known model, using MATLAB Simulink toolbox of model of accurate description, then the simulation analysis.
Each submode Simulink this repository contains a corresponding function module, users can also customize and create user own module, modeling graph input is Simulink provides some according to the basic function classification system module, through to these basic modules calls, and then connect them up can form required system model, and then, a simulation and analysis.
Through the analysis of infectious diseases have accurate understanding, benefit of infection status of control.
Keywords:Modeling,MATLAB/Simulink,Analysis
引言
传染病是致病性(微)生物在人与人、动物与人及动物与动物之间相互传播的疾病,其流行既有隐蔽性又有突发性.不论急性还是慢性传染病都给人类健康带来极大灾难、给社会经济发展造成很大的损失。

导致传染病发生的因素有多种,如不科学的生活、生产方式,自然环境的破坏,耐药微生物的不断增多等等.降低传染病危害的关键在于预防及整个社会协调一致的努力.每个社会公民都应该掌握预防传染病方面的基本知识并不断提高预防意识,各级政府应该采取更加科学的管理和预防措施,并加强对传染病和突发性疾病的研究投入和推广现有疫苗的使用等。

对传染病人群传染情况的动态模型的分析了解有利于传染病的防治与治疗。

1 系统模型的描述
已知某地区在有病菌传染下的描述三种类型人数变化的动态模型如下:
112'X X X α=- 1(0)620
X =
2122'X X X X αβ=- 2(0)10X = 32'X X β= 3(0)70
X =
其中1X 表示可能传染的人数;2X 表示已经得病的人数;3X 表示已经治愈的人数;α=0.001;β=0.072。

2 simulink 进行的仿真分析
2.1 用simulink 建立系统模型
首先,我们采用MATLAB 中的Simulink 工具箱对其进行仿真。

Matlab 是矩阵实验室(Matrix Laboratory)之意。

除具备卓越的数值计算能力外,它还提供了专业水平的符号计算、文字处理、可视化建模仿真和实时控制等功能。

Matlab 的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用Matlab 来解算问题要比用C, FORTRAN 等语言完成相同的事情简捷得多。

Simulink 是Matlab 软件的扩展,它是实现动态系统建模和仿真的一个软件包。

它与Matlab 语言的主要区别在于,其与用户交互接口是基于Windows 的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。

Simulink 的每个子模型库包含有相应的功能模块,用户也可以定制和创建用户自已的模块,模型化图形输入是Simulink 提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl 文件进行存取),进而进行仿真与分析。

除此之外,用户还可以在改变参数后迅速观看系统中发生的变化。

仿真的结果还可以存放到Matlab 的工作空间做事后处理。

仿真步骤如下。

1)在命令窗口中输入Simulink 后回车,或单击MATLAB 工具栏中的Simulink 图标则可打开Simulink 模型库窗口。

在File 菜单下选择new/model ,打开一个
新的空白窗口,命名为“bingjun.mdl”。

2)建立此系统模型所需要的系统模块主要有:
Continuous模块库中的Integrator模块:积分器模块。

Math运算库中的Product模块:乘法器,产生模块各输入的简积或商。

Math运算库中的Gain模块:信号增益模块。

Math运算库中的Add模块:信号相加。

3)按图2-1编辑三种类型人数变化的动态模型。

图2-1 simulink下编辑的三类人数变化的模型
2.2 系统模块的参数设置
Integrator模块的参数设置:双击该模块,可以在弹出的对话框中对积分的
初始值进行修改,默认值为零。

在此模型中
1(0)620
X=;2(0)10
X=;3(0)70
X=。

参数设置对话框如图2-2所示。

图2-2 Integrator模块参数设置对话框
Gain模块的参数设置:双击该模块,出现相应的模块参数设置对话框设置系统参数。

该模型中Gain为-0.001;Gain1为0.001;Gain2为-0.072。

参数设置对话框如图2-3所示。

图2-3 Gain模块参数设置对话框
Product模块及Add模块的参数设置直接为缺省状态。

参数设置对话框如图2-4,2-5所示。

图2-4 Product模块参数设置对话框
图2-5 Add模块参数设置对话框
2.3 系统仿真分析
Scope为信号显示器,显示仿真期间产生的信号,输出分析曲线。

Scope模块是一个用途非常广泛的显示模块,它以图形的方式直接显示指定的信号,对系统的仿真分析有重要作用。

Scope模块可以使用户对输出曲线进行各种控制调整,以便进行观测和分析输出结果,而非仅仅使用Scope的默认设置进行信号显示。

该模型中
X,2X,3X的信号输出曲线如图2-6,2-7,2-8所示。

1
图2-6
X输出曲线
1
图2-7
X输出曲线
2
图2-8
X输出曲线
3
3 用MATLAB语句进行仿真
3.1MATLAB计算方法简介
该模型的动态变化情况也可以通过直接编写MATLAB程序得以解决。

借助于常微分方程系统ODE,该系统处理的是初始值已知的一阶微分方程。

对于某一时间间隔 0≤t≤T,初始值问题的解决方法是将时间分成一组有限和离散的时间点,例如用相同的时间间隔t∆进行等分:
t=i t∆,i=0,…..N
i
其中时间步长t∆=T / N,N为某一整数。

这种导数能被微分方程的可微分的商所代替,微分方程表示在不同时间点的解。

这种方法的稳定性取决于t∆的大小和所采用的数值方法,用这种方法能得到 ODE的近似值。

在许多应用中有一些微分过程非常复杂的微分方程,在某些区域里这些方程要求有非常小的时间步长t∆。

解决这些问题的困难在于问题中涉及不同的时间尺度,如解的导数可能有较大的变化。

MATLAB使用龙格-库塔-芬尔格(Runge-Kutta-Fehlberg)方法来解决ODE 问题。

在有限点内计算求解,而这些点的间距由解本身来决定。

当解比较平滑时,区间内使用的点数少一些;在解变化很快时,区间内应使用较多的点。

函数ode45使用(4,5)阶的龙格-库塔-芬尔格方法。

该模型的仿真分析中
选用函数ode45.
3.2仿真及结果显示
首先创建函数rosslor ,并将其保存在M 文件rosslor.m 中:
function dx=rossler(t,x);
dx=[-0.001*x(1)*x(2);0.001*x(1)*x(2)-0.072*x(2);0.072*x(2)];
然后调用一个ODE 算法和画出解的图形:
x0=[620;10;70];
[t,y]=ode45('rossler',[0,20],x0);
plot(t,y);
所得结果如图3-1所示。

图3-1 1X ,2X ,3X 的信号输出曲线
4 结果分析
前述过程通过不同的仿真方法得到了未来20年内三种人数的动态变化情况。

我们可以使用Simulink工具箱中的Display模块得到各时间处的人数分布情况。

20年后该地区的患病情况如图3-2所示。

图3-2 20年后各种情况人数
综述,从各曲线中可以看出
X所表示的可能传染的人数呈逐年递减的趋势,
1
20年后可能传染的人数大约为4人;
X所表示的已经治愈的人数呈先上升后下
2
降的趋势,大概在12年达到最大值,20年后的人数约为260人;
X所表示的
3
已经治愈的人数呈逐年增多的趋势,20年后约为436人。

5 结论
利用已知模型及初始条件,运用MATLAB通过仿真方法的分析可以精确了解未来20年内三种人数的动态变化情况,十分有利于对该传染病情况的控制。

Simulink与MATLAB的无缝结合使建立仿真模型,监控仿真过程,分析仿真结果变得非常方便。

参考文献
[1] 张晓华.系统建模与仿真.北京:清华大学出版社,2006.12
[2] 孙祥等.MATLAB7.0基础教程.北京:清华大学出版社,2005.5
[3] 王孝武.现代控制理论基础(第二版).北京:机械工业出版社,2006.8
[4] 薛定宇.高等应用数学问题的MATLAB求解.北京:清华大学出版社,2004.8
[5] 姚俊,马松辉.Simulink建模与仿真.西安:西安电子科技大学出版社,
2002.8
[6] 黄永安,李文成,高小科.Matlab7.0/Simulink6.0应用实例仿真与高效算
法开发.北京:清华大学出版社,2008.6
[7] 邹伯敏.自动控制理论(第二版).北京:机械工业出版社,2002.1
[8] 黄道平.MATLAB与控制系统的数字仿真及CAD.北京:化学工业出版社,
2004.8
[9] Duane Hanselman,Bruce Littlefield.精通MATLAB 7.北京:清华大学出
版社,2006.5。

相关文档
最新文档