基于MATLAB的数字模拟仿真...doc
《基于MATLAB的数字模拟仿真...doc》由会员分享,可在线阅读,更多相关《基于MATLAB的数字模拟仿真...doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于MATLAB的数字模拟仿真.基于MATLAB的数字模拟仿真摘 要:本文阐述了计算机模拟仿真在解决实际问题时的重要性,并较为系统的介绍了使用计算机仿真的原理及方法.对于计算机模拟仿真的三大类方法:蒙特卡罗法、连续系统模拟和离散事件系统模拟,在本文中均给出了与之对应的实例及基于MATLAB模拟仿真的相关程序,并通过实例深入的分析了计算机模拟解决实际问题的优势及不足。关键词:计算机模拟;仿真原理;数学模型;蒙特卡罗法;连续系统模拟;离散事件系统模拟在实际问题中,我们通常会面对一些带随机因素的复杂系统,用分析方法建模常常需要作许多简化假设,这样进行处理过后的模型与我们面临的实际问题可能相差很远,以
2、致求解得到答案根本无法应用,这时,计算机模拟几乎成为唯一的选择。本文通过对计算机模拟仿真进行系统地介绍,寻求利用模拟仿真来解决问题的一般方法,并深入探讨了这些方法的长处和不足。我们定义一些具有特定的功能、相互之间以一定的规律联系的对象所组成的总体为一个系统,模拟就是利用物理的、数学的模型以系统为问题解决对象,来类比、模仿现实系统及其演变过程,以寻求过程规律的一种方法。模拟的基本思想是建立一个实验的模型,这个模型包含所研究系统的主要特点,这样做的目的就是通过对这个实验模型的运行,获得所要研究系统的必要信息。另外,系统的运行离不开算法,仿真算法是将系统模型转换成仿真模型的一类算法,在数字仿真模型中
3、起核心和关键作用。1、所谓计算机仿真计算机仿真是利用计算机对一个实际系统的结构和行为进行动态演示,以评价或预测该系统的行为效果。它是解决较复杂的实际问题的一条有效途径。针对一个确定的系统,根据运行的相似原理,利用计算机来逼真模仿研究对象(研究对象可以是真实的系统,也可以是设想中的系统),计算机仿真是将研究对象进行数学描述,建模编程,且在计算机中运行实现.对比于物理模拟通常花费较大、周期较长,且在物理模型上改变系统结构和系数都较困难的诸多缺陷,计算机模拟不怕破坏、易修改、可重用,有更强的系统适应能力。但是计算机模拟也有缺陷,比如受限于系统建模技术,即系统数学模型不易建立、程序调试复杂等。计算机仿
4、真可以用于研制产品或设计系统的全过程中,包括方案论证、技术指标确定、设计分析、生产制造、试验测试、维护训练、故障处理等各个阶段。2、计算机仿真的目的对于一个系统,是否选择进行计算机模拟的问题,基于判断计算机模拟与非计算机模拟方法孰优孰劣的问题。归纳以下运用计算机模拟的情况:(1)在一个实际系统还没有建立起来之前,要对系统的行为或结果进行分析研究时,计算机仿真是一种行之有效的方法.(2)在有些真实系统上做实验会影响系统的正常运行,这时进行计算机模拟就是为了避免给实际系统带来不必要的损失。如在生产中任意改变工艺参数可能会导致废品,在经济活动中随意将一个决策付诸行动可能会引起经济混乱.(3)当人是系
5、统的一部分时,他的行为往往会影响实验的效果,这时运用系统进行仿真研究,就是为了排除人的主观因素的影响。(4)在实际系统上做实验时,由于系统误差和偶然误差的存在,对实验结果的好坏我们很难作出正确的判断,这时运用计算机模拟,就可以保证每次操作的条件相同,排除误差。(5)有些系统一旦建立起来之后就无法复原,利用计算机模拟可重复性的这一优势,可以获得显著的经济效益。例如要投资建立一个大型企业,要分析它建成之后的经济效益和社会效益,不能用建立起来试试看的办法,因为建成后就无法回到原来的状态了。3、计算机仿真的分类计算机模拟分为动态模拟和静态模拟,数值分析中的蒙特卡罗法就是典型的静态模拟,动态模拟可以分为
6、连续系统模拟和离散事件系统模拟。连续系统模拟研究系统的状态随时间连续变化的情况,在解决实际问题时,一般要建立微分方程模型,先确定系统的连续状态变化量,然后将它在时间上进行适当的离散量化处理,并由此模拟系统的运行状态。而离散事件系统模拟讨论的是系统状态只在一些离散时间点上,由于随机时间的推进而发生变化,其问题解决模型一般用流程图或网络来表示。注:连续系统模拟中虽然有时也考虑一些随机作用,但经常还是把它当作确定性问题去考虑,而在离散事件系统模拟中事件的出现和系统状态变量几乎总都是随机的.但是,值得注意的一点是,在这两种系统模拟中时间具有重要作用,我们都是要观察系统在时间过程中的变化。4、计算机仿真
7、的原理 事实告诉我们,现实世界充满不确定性,我们所研究的现实对象往往难以摆脱随机因素的影响。要使我们的数学模型能够较真实地刻画实际对象,必须面对这个现实.概率论是用数学的思想和方法处理和研究随机现象的一个有效的工具.但有时它还难以用来处理复杂系统中的随机性.而我们运用计算机来模拟随机现象的方法基于随机数,它经常应用于复杂系统的动态仿真的研究当中.仿真模型是处理复杂系统中随机性的计算机模型,也是使用计算机研究和解决实际问题的一条重要途径。对随机现象进行模拟,实质上要给出随机变量的模拟,也就是说利用计算机随机地产生一系列数值(称为随机数),它们的出现要服从一定的概率分布。目前,经常使用的是按照一定
8、的算法产生的随机数。下面列举的是MATLAB中各种分布下产生随机数的命令:常见的分布函数MATLAB语句均匀分布均匀分布指数分布正态分布二项分布分布以上语句均产生的矩阵在实际应用中用哪种随机数生成法,要针对具体的系统做出与之相适应的选择.(1)当研究对象视为大量相互独立的随机变量之和,且其中每一种变量对总和的影响都很小时,可以认为该对象服从正态分布。(2)考试分数的偏差、射击命中点与目标的偏差、人的身高、体重等,都可近似看成服从正态分布。(3)排队服务系统中顾客到达率为常数时的到达间隔、故障率为常数时零件的寿命都服从指数分布。指数分布在排队论、可靠性分析中有广泛应用.(4)涉及到排队系统、产品
9、检验、天文、物理等领域时可用到泊松分布。5、计算机仿真的方法 否问题的分析项目研究计划数据收集模型建立编制程序程序检验模型确认实验设计运行分析进一步分析输出结果仿真结果否否是否ABCD图4-1:仿真步骤流程5.1解决计算机模拟的一般步骤:进行计算机仿真一般要进过四个步骤:系统分析,模型构造,运行与改进和输出结果.图中表示系统分析,表示模型构造,表示运行与改进,表示输出结果第一步:系统分析,明确目标.就是要明确问题和提出总体方案。首先要把被仿真系统的内容表达清楚,弄清仿真的目的,然后选择描述这些目标的主要环节和状态变量,明确定义所研究问题的范围、边界和初始条件,并充分估计初始条件对系统主要性能的
10、影响.第二步:模型构造、采集数据。包括建立模型、收集数据、编写程序、程序验证和模型确认等。建立模型就是选择合适的仿真方法,如时间步长法、事件表法等,确定系统的初始状态, 设计整个系统的仿真流程。最后选择合适的通用语言或仿真语言编写、调试程序。第三步:模型的运行与改进。首先确定一些具体的运行方案,如初始条件、参数、步长、重复次数等,然后输入数据,运行程序,直到符合实际系统的要求及精度为止。第四步:模型输出、统计分析.包括提供文件的清单,记录重要的中间结果,输出格式要有利于用户了解整个仿真过程,分析和使用仿真结果。5.2针对不同的模拟方法举例5.2。1基于随机数来进行计算机模拟的蒙特卡罗法(Ran
11、dom simulation)蒙特卡罗法属于实验数学的一个分支,它利用随机数进行统计试验,以求得的统计特征值(如均值、概率等)作为待解决问题的数值解.而在这一过程中所作的统计试验称为蒙特卡罗法。蒙特卡罗法的基本思想原理是首先建立一个概率模型,使所求问题的解正好是该模型的参数或其他有关的特征量.然后通过模拟、统计,即多次随机抽样实验,统计出某事件发生的百分比。只要实验次数很大,该百分比便近似于事件发生的概率.而这实际上也就是概率的统计定义.5。2.1.1蒙特卡罗法的原理这里引用资料,根据车比雪夫定理,设,是相独立的随机变量序列,它们服从相同的分布,且有有限的数学期望和方差 ,则,,的算术平均值当
12、时按概率1收敛于,即对于任意有:由中心极限定理得到:即当n很大时,近似服从标准正态分布。5。2。1。2蒙特卡罗法的实例应用这里应用蒙特卡洛法解决最古老但又不失经典的例子浦丰(Buffon)投针问题。问题重述:若干条相互平行线间的距离为,针的长度为,将针投出后其与平行线相交的概率为,求出其概率.模型建立:通过计算可知针与平行线相交的概率为:其中为平行线间距离,为针的长度,其中,将针投次,若有次与平行线相交,则可用作为的近似值。由此可计算出的近似值为:注:要使结果更加准确就需使尽量大一些编程求解:设是一随机变量,它服从区间上的均匀分布。同理,是服从区间上的均匀分布。按照某种抽样法,产生随机变量的可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB 数字 模拟 仿真
限制150内