1.用事件法描述装运系统
用事件法描述装运系统时,应包含以下几部分。
(1)建立模拟时钟用变量(CLOCK)
用以记录汽车在不同状态下所处的时刻。
(2)设定系统状态变量,描述系统状态
设定系统中的汽车数目(M)及表示汽车状态的变量。变量值为1表示汽车到达装车场而未离开前的各状态;2表示汽车处于满载运行状态;3表示汽车已到达卸车点还未离开前的各状态;4表示汽车处于空载运行状态。
(3)设定记录状态变化的时间变量
①设定记录已到达装车场的最后一辆汽车离开的时间变量(D),当模拟时钟所处时刻小于最后一辆汽车离开的时刻,则装车设备正在工作;否则,装车设备空闲。
②设定记录已到达卸车点的最后一辆汽车的离开时间变量(G)。当模拟时钟所处时刻小于最后一辆汽车离开的时刻,则卸车点有汽车正在卸车;否则,没有汽车在卸车。
(4)建立各种记录单元
①建立记录每一辆汽车每一次重复运行的装车设备空闲时间的时刻单元,根据累计的数据,计算装车设备空闲时间的样本均值和样本方差;
②建立记录每一辆汽车每一次重复运行的货物装运总数的单元,根据累计的数据,计算货物装运总数的样本均值和样本方差;
③建立记录每一辆汽车每一次运行装载等待总时间的单元,根据累计的数据,计算运行装载等待总时间的样本均值和样本方差;
④建立记录每仿真运行一次的卸车车数的单元。
2.进行系统模拟
(1)确定下次发生的事件
模拟开始以后时钟将依次指向顺序发生的每一事件。
①根据记录了的各辆汽车下一事件发生的时刻,只要将它们进行比较找出最小者,就是对整个系统而言下一事件发生的时刻。所找出的发生下一事件的汽车,这辆汽车在下一事件发生前的状态,决定了下一事件的种类。
②在模拟每次事件发生时,时钟指向这一事件发生的时刻,然后根据找出的汽车的状态变量的不同的值转向不同的事件子程序,用以记录系统的状态变化、累计统计数据以及产生该汽车下一事件发生的时刻。
③以上过程反复循环,时钟每次推移到一个新的事件,从而完成全部模拟过程。图5-5是该系统的粗框图。
图5-5 系统模拟过程的粗框图
(2)事件子程序
①子程序1用来处理某汽车装载完毕进入满载运行的事件。在这一子程序中不需累计数据,只需模拟系统状态的变化,即找出的汽车状态从1变成2,并按满载运行时间模型调用产生正态分布随机数的子程序,用以产生该汽车下一事件发生的时刻,即到达卸车点的时刻。
②子程序2用来处理某汽车到达卸车点后系统状态变化及累计卸车等待时间和货物装运量。图5-6是子程序2的框图。
图5-6 子程序2框图
从图5-6中可看出子程序2要处理两种可能的情况。当卸车点空闲时,应使卸车等待时间为0;不闲时则应使卸车等待时间为已到达装车场的最后一辆汽车离开的时刻减去模拟时钟所处的时刻,进行卸车等待时间的累计。
子程序2按卸车时间的模型调用产生指数分布随机数的子程序REXP,并指出该汽车下一事件离开卸车点的时刻。该时刻应为模拟时钟所指明的时刻加上等待卸车时间,再加上根据随机数所确定的卸车时间。
子程序2要将汽车状态从2变到3。该子程序中还要按每车货物装运量模型调用产生正态分布随机数的子程序产生该车货物装运量,进行货物装运总数累计,同时累计卸车的车数。
③子程序3用来处理某汽车卸完车进入空载返回状态的事件。在这一子程序中不需累计数据,只需模拟系统状态的变化,使该汽车状态由3变成4,并按空载运行时间模型调用产生指数分布随机数的子程序产生该汽车下一事件发生即到达装车场的时刻。
④子程序4用来处理汽车到达装车场后系统状态的变化及累计等待时间。图5-7是子程序4的框图。
图5-7 子程序4框图
从图中可看出子程序4要处理的两种可能的情况。当模拟时钟所处时刻大于最后一辆汽车离开的时刻时,累计装车空闲时间。
当模拟时钟所处时刻小于最后一辆汽车离开的时刻时,累计汽车排队等待时间。
子程序4将按装载时间模型调用产生正态分布随机数的子程序产生该汽车的装载时间,并按以上两种不同情况产生汽车离去时刻,即下一事件发生时刻。
子程序4还将该汽车的状态由4变作1。
3.控制模拟运行
每次模拟运行时间到模拟时钟为360分钟为止。本模型采用重复运行的方法对试验数据进行统计。循环控制变量用来控制在某个确定的汽车数目之下重复运行的次数。为了比较不同汽车数目下的试验结果,外循环每执行一次打印出某个确定汽车数目之下若干次重复运行试验结果的平均数。
①设置系统初始状态。在程序的开始部分要把存放累计数据的工作单元全部清零。考虑系统在每班工作开始时汽车全部在装车场等待。所以,使M辆汽车最初状态全为1,并连续产生M个装载时间,变量存放单元D存放的是它们的累加和,假设第一个事件发生于第一辆汽车。每次重复运行都从这一初始状态开始。
②产生随机数的子程序。装载时间、满载运行时间、卸车时间、空载运行时间、每车装运量各模型需用不同的参数调用产生正态分布随机数的子程序SNORM和产生指数分布随机数的子程序REXP,从而得到有不同均值和方差的服从以上分布的随机数。
③数据块子程序为了使同一程序可以方便地用于不同类型的汽车与装车设备配合数的研究以及不同的运输路程的情况,可以使用数据块子程序向公用区中的变量赋初值,从而得到装载时间、卸车时间、每车装载量以及满载运行时间、空载运行时间这些随机变量的均值和方差等有关参数。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。