基于MATLAB的数字模拟仿真..
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于MATLAB的数字模拟仿真
摘要:本文阐述了计算机模拟仿真在解决实际问题时的重要性,并较为系统的介绍了使用计算机仿真的原理及方法。对于计算机模拟仿真的三大类方法:蒙特卡罗法、连续系统模拟和离散事件系统模拟,在本文中均给出了与之对应的实例及基于MATLAB模拟仿真的相关程序,并通过实例深入的分析了计算机模拟解决实际问题的优势及不足。
关键词:计算机模拟;仿真原理;数学模型;蒙特卡罗法;连续系统模拟;离散事件系统模拟
在实际问题中,我们通常会面对一些带随机因素的复杂系统,用分析方法建模常常需要作许多简化假设,这样进行处理过后的模型与我们面临的实际问题可能相差很远,以致求解得到答案根本无法应用,这时,计算机模拟几乎成为唯一的选择。本文通过对计算机模拟仿真进行系统地介绍,寻求利用模拟仿真来解决问题的一般方法,并深入探讨了这些方法的长处和不足。我们定义一些具有特定的功能、相互之间以一定的规律联系的对象所组成的总体为一个系统,模拟就是利用物理的、数学的模型以系统为问题解决对象,来类比、模仿现实系统及其演变过程,以寻求过程规律的一种方法。模拟的基本思想是建立一个实验的模型,这个模型包含所研究系统的主要特点,这样做的目的就是通过对这个实验模型的运行,获得所要研究系统的必要信息。另外,系统的运行离不开算法,仿真算法是将系统模型转换成仿真模型的一类算法,在数字仿真模型中起核心和关键作用。
1、所谓计算机仿真
计算机仿真是利用计算机对一个实际系统的结构和行为进行动态演示,以评价或预测该系统的行为效果。它是解决较复杂的实际问题的一条有效途径。针对一个确定的系统,根据运行的相似原理,利用计算机来逼真模仿研究对象(研究对象可以是真实的系统,也可以是设想中的系统),计算机仿真是将研究对象进行数学描述,建模编程,且在计算机中运行实现。
对比于物理模拟通常花费较大、周期较长,且在物理模型上改变系统结构和系数都较困难的诸多缺陷,计算机模拟不怕破坏、易修改、可重用,有更强的系统适应能力。但是计算机模拟也有缺陷,比如受限于系统建模技术,即系统数学模型不易建立、程序调试复杂等。
计算机仿真可以用于研制产品或设计系统的全过程中,包括方案论证、技术指标确定、设计分析、生产制造、试验测试、维护训练、故障处理等各个阶段。
2、计算机仿真的目的
对于一个系统,是否选择进行计算机模拟的问题,基于判断计算机模拟与非计算机模拟方法孰优孰劣的问题。归纳以下运用计算机模拟的情况:
(1)在一个实际系统还没有建立起来之前,要对系统的行为或结果进行分析研究时,计算机仿真是一种行之有效的方法。
(2)在有些真实系统上做实验会影响系统的正常运行,这时进行计算机模拟就是为了避免给实际系统带来不必要的损失。如在生产中任意改变工艺参数可能会导致废品,在经济活动中随意将一个决策付诸行动可能会引起经济混乱。
(3)当人是系统的一部分时,他的行为往往会影响实验的效果,这时运用系统进行仿真研究,就是为了排除人的主观因素的影响。
(4)在实际系统上做实验时,由于系统误差和偶然误差的存在,对实验结果的好坏我们很难作出正确的判断,这时运用计算机模拟,就可以保证每次操作的条件相同,排除误差。(5)有些系统一旦建立起来之后就无法复原,利用计算机模拟可重复性的这一优势,可以获得显著的经济效益。例如要投资建立一个大型企业,要分析它建成之后的经济效益和社会效益,不能用建立起来试试看的办法,因为建成后就无法回到原来的状态了。
3、计算机仿真的分类
计算机模拟分为动态模拟和静态模拟,数值分析中的蒙特卡罗法就是典型的静态模拟,动态模拟可以分为连续系统模拟和离散事件系统模拟。连续系统模拟研究系统的状态随时间连续变化的情况,在解决实际问题时,一般要建立微分方程模型,先确定系统的连续状态变化量,然后将它在时间上进行适当的离散量化处理,并由此模拟系统的运行状态。而离散事件系统模拟讨论的是系统状态只在一些离散时间点上,由于随机时间的推进而发生变化,其问题解决模型一般用流程图或网络来表示。
注:连续系统模拟中虽然有时也考虑一些随机作用,但经常还是把它当作确定性问题去考虑,而在离散事件系统模拟中事件的出现和系统状态变量几乎总都是随机的。但是,值得注意的一点是,在这两种系统模拟中时间具有重要作用,我们都是要观察系统在时间过程中的变化。
4、计算机仿真的原理
事实告诉我们,现实世界充满不确定性,我们所研究的现实对象往往难以摆脱随机因素的影响。要使我们的数学模型能够较真实地刻画实际对象,必须面对这个现实。概率论是用数学的思想和方法处理和研究随机现象的一个有效的工具。但有时它还难以用来处理复杂系统中的随机性。而我们运用计算机来模拟随机现象的方法基于随机数,它经常应用于复杂系统的动态仿真的研究当中。仿真模型是处理复杂系统中随机性的计算机模型,也是使用计算机研究和解决实际问题的一条重要途径。
对随机现象进行模拟,实质上要给出随机变量的模拟,也就是说利用计算机随机地产生一系列数值(称为随机数),它们的出现要服从一定的概率分布。目前,经常使用的是按照
在实际应用中用哪种随机数生成法,要针对具体的系统做出与之相适应的选择。
(1)当研究对象视为大量相互独立的随机变量之和,且其中每一种变量对总和的影响都很小时,可以认为该对象服从正态分布。
(2)考试分数的偏差、射击命中点与目标的偏差、人的身高、体重等,都可近似看成服从正态分布。
(3)排队服务系统中顾客到达率为常数时的到达间隔、故障率为常数时零件的寿命都服从指数分布。指数分布在排队论、可靠性分析中有广泛应用。
(4)涉及到排队系统、产品检验、天文、物理等领域时可用到泊松分布。
5、计算机仿真的方法
5.1解决计算机模拟的一般步骤:
进行计算机仿真一般要进过四个步骤:系统分析,模型构造,运行与改进和输出结果[]
1。
图中A 表示系统分析,B 表示模型构造,C 表示运行与改进,D 表示输出结果
第一步:系统分析,明确目标。就是要明确问题和提出总体方案。首先要把被仿真系统的内容表达清楚,弄清仿真的目的,然后选择描述这些目标的主要环节和状态变量,明确定义所研究问题的范围、边界和初始条件,并充分估计初始条件对系统主要性能的影响。
第二步:模型构造、采集数据。包括建立模型、收集数据、编写程序、程序验证和模型确认等。建立模型就是选择合适的仿真方法,如时间步长法、事件表法等,确定系统的初始状态, 设计整个系统的仿真流程。最后选择合适的通用语言或仿真语言编写、调试程序。
第三步:模型的运行与改进。首先确定一些具体的运行方案,如初始条件、参数、步长、重复次数等,然后输入数据,运行程序,直到符合实际系统的要求及精度为止。
第四步:模型输出、统计分析。包括提供文件的清单,记录重要的中间结果,输出格式要有利于用户了解整个仿真过程,分析和使用仿真结果。
D 图4-1:仿真步骤流程