1、例: 机器修理系统仿真 有m台机器,由c个工人共同负责修理,并设: 各台机器质量相同,机器的连续运转时间相互独立且服从同一负指数分布,平均寿命为1/v(v0)。 每个工人技术相同,且修理时间相互独立并服从同一负指数分布,平均修理时间为1/u(u0). 修复后的机器其寿命分布不变。 机器停止运转每单位时间的损失费为c1元,工人单位时间的产值为c2元。若机器的等待时间为E,工人总的空闲时间为F,则系统总的损失费为 S = c1E + c2F 试求当机器数m固定时,为使系统的总损失费最小,应配备多少工人为最优?,解:采用最短时间事件步长法进行仿真,首先要确定一个初始状态。假定开始时所有的机器都正常运
2、转,工人处于空闲状态。设T为仿真终止时间。依次仿真计算修理工人数C分别取1、2、3、时的系统损失费。最后根据系统损失费S的极小值来确定最优工人数。根据以上思想并采用最短时间事件步长法仿真。,输入原始数据c1,c2,U,V,m,T,给出m台机器的指数寿命,B(H)=1?,结束,F=F+x-K,P= T3/T,输出C,S,C=1,E=0 F=0,初始状态:B(i)=1,i=1,2,m;D(j)=0,j=1,2,c,选取寿命最短的机器i:H=i,K=A(i),选取最早释放时刻的工人j:y=j,x=D(j),xK?,F=F+x-K,改变第y个人工的释 放时刻:D(y)=A(H),机器由故障释放 改为正
3、常:B(H)=1,机器由正常改为 故障:B(H)=0,C=C+1,KT?,选取寿命最短的 机器i:H=i,K=A(i),给出机器修复时间 仿真时钟前进一个步长 A(H)=K-1/vLOG(RND(1),给出机器正常运行时间 仿真时钟前进一个步长 A(H)=K-1/vLOG(RND(1), ,是,否,否,是,是,否,框图中各标识符号含义如下: T:仿真终止时间 m:机器数 c:工人数 B(i):第i台机器所处状态A(i):第i台机器现在状态的当前时刻 D(j):第j个工人修复机器的释放时刻 c1:一个工人单位时间的产值 c2:一台机器单位故障时间的损失费,B(i)=,1 机器正常运转,0 机器发
4、生故障,U:一个工人单位时间平均能修复的机器数 V:一台机器在单位运转时间内发生故障的平均次数 S:总损失费用 E:机器故障时间累计 F:工人空闲时间累计 K:最短时间机器的当前时刻 H:最短时间机器对应的机器号 L:工人修完机器的释放时刻 x:最短释放时间工人的当前时刻 y:最短释放时间对应的工人序号,下表列出了当 m= 86,1/V= 500小时,1/U= 34小时,c1=3.46元/小时,c23.2元/小时时的仿真结果,其中每次预定仿真时间为一万个小时,连续仿真五次取其平均值作为仿真结果。由仿真结果可知当工人数c10时,最优工人数为7,应用举例-可靠性问题,例:一设备上三个相同的轴承,每
5、个轴承正常工作寿命为随机变量,其概率分布如表所示,在任何一个轴承损坏都可以使设备停止工作,从有轴承损坏,设备停止工作,到检修工到达开始更换部件为止,称为一个延迟时间延迟时间也是随机变量,其概率分布如下表所示,应用举例-可靠性问题,设备停工时每分钟损失5元,检修工每小时工时费12元,轴承每个成本 16元更换一个轴承需要 20 min,同时更换两个轴承需要30min,同时更换三个轴承需要40min,现在有两种方案:方案一是损坏一个更换一个;方案二是一旦有轴承损坏就全部更换试通过计算机仿真对这两种方案做出评价,在这一问题中,轴承寿命在1000到1900h之间,而延迟在5到 15min之间,故若用时间
6、步长法时,步长选取有些困难步长小浪费很大,步长大又不精确,所以采用事件步长法在事件发生时再考虑系统状态的变化情况,这就比较合理,应用举例-可靠性问题,为了进行仿真,首先对轴承寿命和延迟时间与随机数对应,对应规则分别如下两个表,轴承寿命随机数,延迟时间随机数,由于在这一问题中各个轴承的寿命完全决定了系统的运行状态,也即决定了两个方案的费用大小,故我们选择轴承发生故障作为事件,这三个轴承发生故障的事件分别记为A、B、C,(1)方案一的仿真,产生初始事件表,仿真时钟步进,计算费用,产生下一个事件由表上看出,最早发生的事件是A,所以,t 1400h cost (5+20)54116145元,,下一个A
7、事件发生的时刻为第2 400小时25分钟(随机产生轴承寿命为1000h),刷新事件表,即删去老的A事件,产生新的A事件刷新后的事件表如下表,寻找事件表中的最早事件进行处理,由上表看出,B、C事件同时发生在第1500 h,故同时处理时钟步进为 t 1500 h,再根据费用的计算方法得:,cost= 145(15+30)5 6216408元最后利用随机数产生新事件B和C,刷新事件表,得到的新事件表:, 重复,t=2400 h 25 min,cost= 408 (5+20)5 4 116= 553元,重复这一过程,一直需要的时间结束即可得到方案的费用,(2)方案二的仿真,方案二与方案一的区别就是一旦故障发生,就更换3个轴承设初始事件表仍为方案一初始表表中最早的事件是A,处理事件A时要考虑延时,更换3个轴承的时间和费用,cost = (5+40)58316281元,根据下一次三个轴承发生故障的时刻刷新后的事件表:,再重复上述过程,累加费用,即可得到方案二的总费用,最后比较两种方案的费用大小即可确定选取那一种,程序运行结果:T=100000h 方案一:cost=32705元 方案二:cost=24429元从而得出方案二较方案一优。,