系统建模与仿真作业Word文件下载.docx
《系统建模与仿真作业Word文件下载.docx》由会员分享,可在线阅读,更多相关《系统建模与仿真作业Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。
Thispaperusingtheknownmodel,usingMATLABSimulinktoolboxofmodelofaccuratedescription,thenthesimulationanalysis.
EachsubmodeSimulinkthisrepositorycontainsacorrespondingfunctionmodule,userscanalsocustomizeandcreateuserownmodule,modelinggraphinputisSimulinkprovidessomeaccordingtothebasicfunctionclassificationsystemmodule,throughtothesebasicmodulescalls,andthenconnectthemupcanformrequiredsystemmodel,andthen,asimulationandanalysis.
Throughtheanalysisofinfectiousdiseaseshaveaccurateunderstanding,benefitofinfectionstatusofcontrol.
Keywords:
Modeling,MATLAB/Simulink,Analysis
引言
传染病是致病性(微)生物在人与人、动物与人及动物与动物之间相互传播的疾病,其流行既有隐蔽性又有突发性.不论急性还是慢性传染病都给人类健康带来极大灾难、给社会经济发展造成很大的损失。
导致传染病发生的因素有多种,如不科学的生活、生产方式,自然环境的破坏,耐药微生物的不断增多等等.降低传染病危害的关键在于预防及整个社会协调一致的努力.每个社会公民都应该掌握预防传染病方面的基本知识并不断提高预防意识,各级政府应该采取更加科学的管理和预防措施,并加强对传染病和突发性疾病的研究投入和推广现有疫苗的使用等。
对传染病人群传染情况的动态模型的分析了解有利于传染病的防治与治疗。
1系统模型的描述
已知某地区在有病菌传染下的描述三种类型人数变化的动态模型如下:
其中
表示可能传染的人数;
表示已经得病的人数;
表示已经治愈的人数;
=0.001;
=0.072。
2simulink进行的仿真分析
2.1用simulink建立系统模型
首先,我们采用MATLAB中的Simulink工具箱对其进行仿真。
Matlab是矩阵实验室(MatrixLaboratory)之意。
除具备卓越的数值计算能力外,它还提供了专业水平的符号计算、文字处理、可视化建模仿真和实时控制等功能。
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-1simulink下编辑的三类人数变化的模型
2.2系统模块的参数设置
Integrator模块的参数设置:
双击该模块,可以在弹出的对话框中对积分的初始值进行修改,默认值为零。
在此模型中
;
。
参数设置对话框如图2-2所示。
图2-2Integrator模块参数设置对话框
Gain模块的参数设置:
双击该模块,出现相应的模块参数设置对话框设置系统参数。
该模型中Gain为-0.001;
Gain1为0.001;
Gain2为-0.072。
参数设置对话框如图2-3所示。
图2-3Gain模块参数设置对话框
Product模块及Add模块的参数设置直接为缺省状态。
参数设置对话框如图2-4,2-5所示。
图2-4Product模块参数设置对话框
图2-5Add模块参数设置对话框
2.3系统仿真分析
Scope为信号显示器,显示仿真期间产生的信号,输出分析曲线。
Scope模块是一个用途非常广泛的显示模块,它以图形的方式直接显示指定的信号,对系统的仿真分析有重要作用。
Scope模块可以使用户对输出曲线进行各种控制调整,以便进行观测和分析输出结果,而非仅仅使用Scope的默认设置进行信号显示。
该模型中
的信号输出曲线如图2-6,2-7,2-8所示。
图2-6
输出曲线
图2-7
图2-8
3用MATLAB语句进行仿真
3.1MATLAB计算方法简介
该模型的动态变化情况也可以通过直接编写MATLAB程序得以解决。
借助于常微分方程系统ODE,该系统处理的是初始值已知的一阶微分方程。
对于某一时间间隔0≤t≤T,初始值问题的解决方法是将时间分成一组有限和离散的时间点,例如用相同的时间间隔
进行等分:
=
,i=0,…..N
其中时间步长
=T/N,N为某一整数。
这种导数能被微分方程的可微分的商所代替,微分方程表示在不同时间点的解。
这种方法的稳定性取决于
的大小和所采用的数值方法,用这种方法能得到ODE的近似值。
在许多应用中有一些微分过程非常复杂的微分方程,在某些区域里这些方程要求有非常小的时间步长
解决这些问题的困难在于问题中涉及不同的时间尺度,如解的导数可能有较大的变化。
MATLAB使用龙格-库塔-芬尔格(Runge-Kutta-Fehlberg)方法来解决ODE问题。
在有限点内计算求解,而这些点的间距由解本身来决定。
当解比较平滑时,区间内使用的点数少一些;
在解变化很快时,区间内应使用较多的点。
函数ode45使用(4,5)阶的龙格-库塔-芬尔格方法。
该模型的仿真分析中选用函数ode45.
3.2仿真及结果显示
首先创建函数rosslor,并将其保存在M文件rosslor.m中:
functiondx=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
的信号输出曲线
4结果分析
前述过程通过不同的仿真方法得到了未来20年内三种人数的动态变化情况。
我们可以使用Simulink工具箱中的Display模块得到各时间处的人数分布情况。
20年后该地区的患病情况如图3-2所示。
图3-220年后各种情况人数
综述,从各曲线中可以看出
所表示的可能传染的人数呈逐年递减的趋势,20年后可能传染的人数大约为4人;
所表示的已经治愈的人数呈先上升后下降的趋势,大概在12年达到最大值,20年后的人数约为260人;
所表示的已经治愈的人数呈逐年增多的趋势,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]DuaneHanselman,BruceLittlefield.精通MATLAB7.北京:
清华大学出版社,2006.5