英语原文共 7 页,剩余内容已隐藏,支付完成后下载完整资料
建模与仿真的介绍
Anu Maria
美国纽约州立大学
系统科学工业工程系
纽约宾厄姆顿13902-6000美国
摘要
这个入门教程是对仿真建模及分析的概述。回答了许多关键问题,什么是建模?什么是仿真?什么是模型的建立及对其的分析?什么类型的问题适合建模?如何选择仿真软件?建模与仿真的优点和缺陷是什么?这篇文章适合那些对陌生领域离散事件的仿真以及想了解该领域的初学者,适合那些参与系统设计和修改的人,如系统分析师、管理人员、工程师、军事规划者、银行业分析师、经济学家和计算机科学家。为了更好的理解本篇文章熟悉概率和统计是必要的。
1什么是建模?
建模是一个建立模型的过程:这个模型代表了现实系统的结构及工作原理。模型与现实系统很相似但又比其简单,模型的目的之一是能够使分析师预测变化对现实系统的影响。一方面,一个模型应该是一个接近真实的系统,能够包含现实系统最突出的特征,另一方面它又不应太过复杂而不能容易理解和被试验,一个好的模型是一个在真实和简洁间的明智抉择。建模实践者建议增加迭代模型的复杂性,建模模型的有效性是一个重要问题,在已知的输入条件下模型的输出与现实系统的输出之间的比较是验证模型有效性的技术之一。
一般来说,用于仿真研究的模型是一个在仿真软件帮助下建立的数学模型。分类包括确定性数学模型(输入和输出变量是固定值)或随机性数学模型(至少一个输入或输出变量)静态数学模型(不考虑时间)或动态数学模型(考虑变量之间的可变时间的相互作用)。通常情况下,建模用的是随机和动态模型。
2什么是仿真?
对一个系统的仿真就是对这个系统模型的运算。模型可以被重新配置和多次试验,但通常情况下,这是不可能的,因为相比其所代表的系统而言花费太贵而且太不切实际。模型的运算可以被研究,因此,关于实际系统或子系统行为的性能可以推断出来。广义上来说,在不同配置和较长时间条件下,仿真是在现有合理方法中的一种评估系统性能的方法。
仿真常被用在变化的系统或者建立新系统之前,这会减少失败的可能性,以满足规范、消除不可预见的瓶颈、避免对资源的利用不足或过度使用、并优化系统性能。例如,仿真可以用来回答这样的问题:什么是对新电信网络最好的设计?相关的资源需求是什么?当负荷增加50%电信网络将表现如何?一种新的路由算法将如何影响它的性能?哪一种网络协议可以优化网络性能?链接失败所带来的影响是什么呢?
本教程的主题是对离散事件系统的仿真,其核心假设是对这一离散系统的某一离散事件是瞬间变化响应。例如,在一个M / M / 1队列,单个服务器排队过程中,到达和服务时间之间是指数关系,这使系统变化瞬间到来。另一方面,连续的模拟器像飞行模拟器和天气模拟器,试图量化系统不断随时间变化的响应控制。离散事件仿真不太详细(局限在最小的时间单位),但比连续模拟实现起来更加简单,因此,可以在各种各样的情况下使用。
图1是一个模拟研究的示意图。在仿真研究中,每个阶段都需要人类的决策(即模型开发、实验设计、输出分析,结论制定和做出改变系统的决定),唯一不需要人类干预的的就是运行阶段,大多数模拟软件的执行效率高。重要的是,强大的仿真软件只是保健因素它的缺失不利于系统仿真,但它的存在并不能保证成功。有经验的仿真建模师和分析师对于一个成功的模拟研究是不可或缺的。
开发一个仿真模型,设计一个模拟实验,并进行仿真分析的步骤是:
步骤1:识别问题。
步骤2:制定问题。
步骤3:真实系统收集和处理数据。
步骤4:制定和发展模式。
步骤5:验证模型。
步骤6:建立文档模型,以供将来使用。
步骤7:选择合适的实验设计。
步骤8:建立运行的实验条件。
步骤9:执行模拟运行。
步骤10:解释和展现结果。
步骤11:建议进一步的行动。
虽然这是一个在模拟研究中的逻辑顺序步骤,但完成仿真研究目标需要许多子阶段的迭代关系,并不是所有的步骤都需要和/或。另一方面,需要执行额外的步骤,接下来的三个部分详细描述这些步骤。
3如何开发一个仿真模型?
仿真模型包含以下组件:系统实体,输入变量,性能指标和函数关系。比如一个M / M / 1队列的仿真模型,队列和服务器是系统实体,到达率和服务速率是输入变量,等待时间和最大队列长度是性能指标,“系统时间=等待时间 服务时间”是一个函数关系。几乎所有的仿真软件包提供上述每个组件结构模型。建模仿真研究可以说是最重要的部分,实际上,模拟研究的就是仿真模型,仿真建模包括以下步骤:
步骤1:识别问题,列举现有系统的问题,为仿真系统提出需求。
步骤2:制定问题。选择系统的边界,要解决的问题进行研究。定义研究的总体目标和一些需要解决的具体问题。—定量标准的基础上,在不同系统配置进行比较和排名的基础上确定性能指标。在此阶段简短的假设制定系统性能。决定研究的时间框架,等等。确定仿真模型的最终用户,如企业管理和生产的主管,问题必须制定尽可能精确。
步骤3:收集处理现实系统的数据。收集系统规范方面的数据,如通信网络带宽,输入变量,以及现有系统的性能。识别系统中的随机性的来源即随机输入变量,为每个随机输入变量选择一个适当的输入概率分布和相应的参数估计。
标准的分布例如:正常、指数、泊松、hyperexponential等等,很容易建模仿真。尽管大多数仿真软件包包括许多分布作为标准功能,相关问题随机数生成器和生成不同分布的随机变量具有相关性,应该被考虑在内。当标准分布不合适或不能适应系统数据时经验分布常被使用,当没有可用数据时三角形分布或正态分布作为第一个猜测去使用,概率分布的详细研究看到玛丽亚和张(1997)。
步骤4:制定和开发模型。开发系统的示意图和网络图(实体如何流经系统?)。把这些概念模型翻译成仿真软件可接受的形式,验证仿真模型是否按计划执行。核查技术包括历史记录,可接受范围内不同的输入参数,检查输出,用常量代替随机的变量,手动检查结果和动画。
步骤5:验证模型。在已知条件下对模型与真实系统的性能进行对比。进行统计推理测试和系统专家检查模型,评估终端用户使用模型的信心,记录出现的任何问题。主要模拟研究中,在交给用户前经验丰富的顾问倡导一种通过仿真分析确定结构化模型的做法。这不仅确保了模型假设是正确完整一致的,也在模型中也增强了信心。
步骤6:建立文档模型,以供将来使用。详细记录目标、假设和输入变量。
4如何设计一个仿真实验?
模拟实验是一个或一系列的测试中由仿真模型的输入变量带来的有意义的变化,这样我们可以观察和识别性能指标变化的原因。实验模拟研究的数量大于或等于被问及的问题数量(如A和B通行网络的延迟会有重要的差异吗?至少哪一个网络延迟了,是A、B或C ? 一种新的路由算法将如何影响网络B的性能?)。仿真实验的设计涉及到回答这个问题:哪些数据需要获得,以什么形式和多少钱获得?下面的步骤说明了设计一个仿真实验的过程。
步骤7:选择合适的实验设计。选择一个性能指标(一些输入变量可能会影响它)和每个输入变量的水平。当可能的配置数量(产品输入变量的数量和每个输入变量的水平)很大且仿真模型很复杂的时候,常见的二阶 设计类包括中央复合、Box-Behnken、fullfactorial应该被考虑,最后记录实验设计。
步骤8:建立运行的实验条件。提出获得准确信息的问题,大多数信息来自每次的运行。确定系统是否是静态的(性能指标不随时间变化)或非静态(性能指标随时间变化)。一般来说,在静态的系统中,稳态响应的行为为变量。确定终止模拟还是无尽模拟运行哪个是适当的,选择运行长度,选择适当的起始条件。如果需要的话选择热身时间的长度,通过考虑输出数据样本的大小,决定独立运行的数量,每次运行使用一个不同的随机数流和相同的起始条件。样本容量必须足够大可为运行提供所需的性能评估信心。交替轮流使用一些常见的随机数来比较可替代的配置(通过在每个采样过程中使用一个单独的随机数流),识别输出数据最有可能具有相关性。
步骤9:执行模拟运行。根据以上步骤7 - 8进行运行。
5如何完成仿真分析?
大多数仿真软件包提供用于性能分析的运行数据(标准偏差,最小值,最大值)。例如等待时间(本文的持久数据)、库存(时间持续的统计),观察一个M / M / 1队列从n运行是W的平均等待时间。重要的是明白的平均等待时间W是一个随机变量,输出分析的目标是估计W的真正含义和量化其可变性。
尽管在模拟中没有数据收集错误、底层模型是完全已知的,用户可控制复制和配置,但仿真结果依然很难解释。观察到的可能只是系统特征或只是一个随机事件。正常情况下,统计推断可以评估一个观察到的现象的意义,但大多数统计推断技术被认为是独立的。大多数类型的仿真数据具有自相关性,因此,不满足这个假设。模拟输出数据的分析由以下步骤组成。
步骤10:解释和展示结果。为每个配置计算数值估计(平均值,置信区间)所需的性能分析。获得自相关数据均值的置信区间,可以使用批处理的技术手段。用批处理方式,原来连续的数据集在一次运行中被替换为一个更小的数据集。由此假设这批数据是独立的也许并不总是正确,增加总样本量和增加批长度可能会有所帮助。
对系统性能测试的假设。用构造图形(如饼状图,柱状图)显示输出数据,记录下结果和结论。
步骤11:建议采取进一步的行动。这可能包括进一步的实验来提高估计的精度和减少偏差,进行敏感性分析等。
6 事例
机器工厂包含两个钻机,一个矫直式的,一个组装式的。图2显示了一个机器工厂的示意图,两种类型在机械工厂中都有。
类型1需要钻头、矫正、精加工依次完成。类型2只需要钻头和精加工。对这两种类型来说,钻孔的达到频率和钻孔区域的路线时间都是一定的。
步骤1:识别问题。钻头、矫正和精加工需要评估,此外,以下对原系统的修改应当被注意:两个部分的到达频率与原系统的相关手段一样是指数级的。
步骤2:制定的问题。目标是为原始系统及对其的修改过程使用钻头,矫正,和精加工操作。这些假设包括:
diams;这两个钻头是相同的。
diams;在三个操作之间没有材料处理的时间。
diams;机器的可用性意味着操作的可用性。
diams;在FIFO的基础上处理部分。
diams;所有时间控制在几分钟内。
步骤3:收集和处理真实系统的数据。在车间作业,类型1部分到达每 30分钟一班,和类型2部分到达每 20 分钟一班。到钻井区域类型 1 部分需要 2 分钟,类型 2 部分需要10分钟,两个钻孔机有一个可用前都需要排队。钻孔后,类型 1 部分被送到矫直机,类型 2 部分被送到精加工。矫直过后,类型 1 部分被送到精加工。
任何一个部件的操作时间被确定为如下。钻井时间是正态分布的变量,10.0 平均值和标准偏差1.0,矫直时间服从指数分布均值15.0,精加工需要每部分 5 分钟。
步骤四:制定和建立模型,使用仿真软件包,建立和修改系统模型。通过跟踪验证部分车间作业,正如预期一样。
步骤5:验证模型的有效性。对原始系统进行足够长时间的运行,以机器操作员来判断其是否合理。
步骤6:记录文档模型供将来使用。原系统和修改的模型尽可能彻底被记录下来。
步骤7:选择适当的实验设计。研究了原系统和上文所述的修改。
步骤8:建立运行的实验条件。每个模型运行三次 4000 分钟,统计寄存器每隔1000分钟被清除一次,所以下面的统计数字,收集时间间隔 [1000,4000]。开始模拟运行,没有零件在机械加工车间。
步骤9:执行仿真运行。按照步骤8以上的步骤执行运行。
步骤10:解释和呈现结果。表 1 包含原始系统和修改(在括号内)的三个操作利用率统计数字。
钻孔 |
矫正 |
组装 |
|
平均值 运行#1 |
0.83(0.78) |
0.51(0.58) |
0.42(0.39) |
平均值 运行#2 |
0.82(0.90) |
0.52(0.49) |
0.41(0.45) |
平均值 运行#3 |
0.84(0.81) |
0.42(0.56) |
0.42(0.40) |
标准差 运行#1 |
0.69(0.75) |
0.50(0.49) |
0.49(0.49) |
标准差 运行#2 |
0.68(0.78) |
0.50(0.49) |
0.49(0.50) |
标准差 运行#3 |
0.69(0.76) |
0.49(0.50) |
0.49(0.49) |
7什么使一个问题适合仿真建模和分析?
一般来说,每当需要建模和分析系统中随机性时,仿真都是一种选择。更
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[152600],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。