计算机模拟的事件步长法

点赞:17815 浏览:80546 近期更新时间:2024-02-04 作者:网友分享原创网站原创

摘 要:介绍了事件步长法这通用一的计算机仿真建模方法,并提供了一个matlab的实例编程,分析了事件步长法的实现过程.

关 键 词:计算机仿真事件步长法

1.引言

计算机模拟(ComputerSimulation)也称系统仿真,是在数字计算机上对一个复杂系统的行为进行大量的动态仿真或重演,从而获得刻画该系统特征的数量指标,为决策过程提供依据的一种方法.模拟是利用模型来研究某些现象的性质的一种方法,自古有之.在中国几千年前就出现的弈(围棋)及中国象棋,就是模拟古代战争的一种游戏.18世纪中期,著名的布丰问题,用投针试验的结果来计算值,就是利用大量的重复试验的所得结果来进行数值计算的方法.19世纪70年代,德国在普法战争中应用沙盘作业进行模拟.20世纪40年代才出现计算机模拟.1944年前后,J.冯·诺伊曼和S.M.乌拉姆在的研究中利用计算机模拟中子在裂变物质中随机扩散的某些概率计算问题.他们把这种基于大量的统计试验的数值计算方法,称之为蒙特卡罗法.以后,由于高速度大容量的电子计算机的制成和使用,促使计算机模拟的更大发展而成为运筹学的一个独立分支.

计算机模拟的方法主要有时间步长法、事件步长法和MonteCarlo方法(统计试验方法).本文介绍事件步长法.

2.事件步长法

事件步长法是以事件发生的时间为增量按照时间的进展,一步一步地对系统的行为进行仿真,直到预定的时间结束为止.在整个仿真过程中,时间步长不是固定的.

在多数随机系统中,可以有多种性质的事件发生,通常按照发生时间的先后顺序逐个处理,首先处理发生时刻距初始时刻最短的事件,这种处理方法称为是最短时间的事件步长法.在这种方式下,仿真时钟按照下一事件预计将要发生的时刻,以不同的时间间隔向前推进的.为此,用一个称之为事件表的表格来调度事件执行的顺序,这种方法称为事件表法.对于那些当前需处理的事件,列入事件表中,从中取出最接近的事件进行处理,处理完毕后自动退出事件表.在处理当前事件的过程中,往往会产生一个后继事件,因此,必须预测出这一后继事件的出现时间,并将它列入事件表中.这样,事件表好像一本记事薄,干完一件事后就把它从记事薄中勾销,而把新的要完成的工作在登记到记事薄中相应的地方去.以此使得系统的仿真过程有条不紊的进行下去.


3.应用举例

例:一设备上三个相同的零件,每个零件正常工作寿命为随机变量,其概率分布如表所示.

在任何一个零件损坏都可以使设备停止工作,从有零件损坏,设备停止工作,到检修工到达开始更换件为止,称为一个延迟时间.延迟时间也是随机变量,其概率分布如下表所示:

设备停工是每分钟损失5元,检修工每小时工时费12元,零件每个成本16元.更换一个零件需要20min,同时更换两个零件需要30min,同时更换三个零件需要40min.

现在有两种方案,方案一是损坏一个更换一个;方案二是一旦有零件损坏就全部更换.试通过计算机仿真对这两种方案做出评价.

解:由于在这一问题中各个零件的寿命完全决定了系统的运行状态,也即决定了两个方案的费用大小,故我们选择零件发生故障作为事件,这三个零件发生故障的事件分别记为A、B、C.

(1)方案一的仿真

①产生初始事件表,见表3.

表3方案一初始事件表

②仿真时钟步进,计算费用,产生下一个事件.由表3看出,最早发生的事件是A,所以t等于1400h,cost等于25×5+4+16等于145元.下一个A事件发生的时刻为第2400h25min,刷新事件表,即删去老的A事件,产生新的A事件,刷新后的事件表见表4.

表4第一次刷新后的事件表

③寻找事件表中最早事件处理.由表4看出,B、C事件同时发生在第1500h,故同时处理.时钟步进为t等于1500h,费用为:cost等于145+225+6+32等于408元.最后利用随机数产生新事件B和C,刷新事件表,得到新事件表5.

表5第二次刷新后的事件表

④重复第三步,t等于2400h25min,cost等于408+125+4+16等于553元.

重复这一过程,一直到需要的时间结束为止,即可得到方案一的费用.

(2)方案二的仿真

方案二与方案一的区别就是一旦故障发生,就更换3个零件.设初始事件表仍为方案一初始表(表3).表中最早发生的是事件A,处理事件A时要考虑时延、更换3个零件的时间和费用.cost等于45×5+12×(40/60)+16×3等于281元.

计算机模拟的事件步长法参考属性评定
有关论文范文主题研究: 关于计算机模拟的论文范文集 大学生适用: 学士学位论文、在职研究生论文
相关参考文献下载数量: 43 写作解决问题: 怎么撰写
毕业论文开题报告: 论文提纲、论文前言 职称论文适用: 期刊目录、初级职称
所属大学生专业类别: 怎么撰写 论文题目推荐度: 最新题目

重复上述过程,累加费用,即可得到方案二的总费用.

4.仿真实验

针对上述问题,现利用matlab2012a进行编程计算,在具体的程序中本文1000小时是按1小时处理的,仿真8小时的运行结果如下:

方案一:cost等于963.00元,方案二:cost等于843.00元.方案二由于方案一.