您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > Enterprise Dynamics 物流仿真软件案例7 公交车站
案例7公交车站1.分析问题1.1介绍在过去,一个公交车站是由很多个地方和城市的公交车以及它们专属的位置所组成的。一个或者几个公交线路会使用同一个站台来让乘客上下车。由于技术的进步,乘客们现在可以在显示屏上看到他们的公交车的到达时间和上车位置。因此,之前的刚性分布(公交线路5总是到达3站台)可以被打破(5号公交车在5分钟内到达3站台)。有了这种技术,5号公交车可以到达3站台,也可以到达5站台。此外,一个暂时不会出发的公交车长期占用一个站台的现象是非常不必要的,也是不乐见的。通过设计一个独立的站台,公交车在这里可以到达一个停车区(缓冲区),只有在出发前的2分钟内会开到站台。这两项支柱技术构成了紧凑型动力公交站概念的基础:动态分配和过程的分解。根据更高的设备利用率这一物流概念,我们想要用更少的平台来实现同样多的进程。这在空间有限且昂贵或者有其他目的的时候非常实用。对于一个城市或乡镇来说,建设这样一个新型公交站的核心问题是:需要多少个站台,缓冲区的面积应该多大?答案很大程度上取决于时间表,由于一个新型公交站是一个很大的投资,因此,进行一个模拟研究将是非常明智的做法。1.2情况说明有一个居住人口为150000的城市有一个过时的公交汽车站和很少的空间。市议会要求进行一个紧凑的公交站的动态模拟。模拟研究的目的是确定站台数量和缓冲区的面积。该项研究选择一个典型时期:星期一早晨上班高峰时间。所有的公交车都会经过公交站。包括城市公交车、客车和专用线路,如校车。总计有37条线路,每条线路都指定一个优先站台。在文件Bus.xls中有公交指南。附件1中说明了总计275公交车在典型时期的内容。公交车在出发前5分钟到达一个偏远位置让乘客下车,这个过程需要30秒,随后,开到缓冲区,在出发前2分钟到达站台,乘客上车。公交车在开车前5分钟直接开到站台,乘客的上下车同时进行,这个过程需要2分钟,但是在出发时间到达前,公交车是不会出发的。因此,上下车同时进行的公交车占用站台最多为5分钟,其他的公交车占用时间为2分钟。公交车在缓冲区,偏远位置和站台之间的行驶时间不考虑,同样不考虑的还有乘客的行为。图1-1是一个过程的布局图。图1-1公交站布局图每个站台都有两个车位,所以可以同时停放两辆公交车。只有前面的车位是空的时候,后面的公交车才能离开。当站台没有公交车的时候,第一辆车到达前面的车位。当后面的车位上有车的时候,前面的车位就无法再有车辆到达。如果前面的为空的时候,后车位上的公交车并不会移动至前车位。图1-2站台的车位为了乘客的方便,每个线路都有优先站台。当该站台被占用的时候,会选择相邻的站台。如4号站台的线路可以改为使用3号或者5号站台。首末两个站台的线路则只能选择一个站台作为候选。在这个模型中,操作的时间都是常数(确定性),这便排除了公交车到达时间早晚,乘客上下车时间长短所造成的干扰。通过确定的模型,可以很方便的确认结果。在之后的阶段中,干扰因素可以很轻松的添加。1.3任务1.是否可能对所需的站台数量进行事前的估计?2.创建一个包含6个站台的模型,基础是bus.xls中的优先分布。并确定停车区以及缓冲区的面积。注意:你可以直接从Excel文件bus.xls中直接读取数据,也可以通过复制粘贴,将Arrival5minbeforeDepartArrival=5minbeforeDepartDescend1Descend2DescendnBusstop1bBusstop1aBusstop2bBusstop2aBusstopn-aBusstopn-bBufferFirstStopSecondStop数据写入Arrivallist。(busstation1.mod和busstation2.mod)3.添加一个标准差为1分钟的分布到静态的到达时间间隔中,来观察在什么程度下,之前的静态模型中的确定性结果仍然有效。4.设计你自己的优先站台分布来研究是否可以使用更少的站台来实现类似的结果。附件公交车指南公交指南bus.xls将在本附件中阐述。在指南中,你可以找到在规范时期内37条线路中的275辆公交车。起始时间0对应着周一上午开始的时间表这个时间段有大约4个小时。Bus.xls分为3部分:表格“公交时间表”根据到达时间区分所有275辆公交车、表格“站台查看”还有37条公交线路。公交时间表下图显示了表格“公交时间表”中前十个公交车。这个表格代表了在繁忙时间段内到达公交车站的所有公交车。每一行都代表一个公交车。图1-1bus.xls“公交站牌”表格A列:到达模型的时间。根据这个安排,这个时间应该比到达时间提前5分钟(参见E列)。B列:公交线路的数字C列:公交车的数目。这是为了粘贴到Arrivallist表格时方便。有了这列,格式便相同。D列:输出公交车的通道。也是为了粘贴的方便。E列:时间表中的到达时间。F列:时间表中的出发时间。G列:优先的站台H列:到达时间间隔。当前车辆的到达系统与之前车辆到达系统时间的间隔。站台查看在本表格(图1-2)中给出了一个公交线路的概览以及他们的优先站台。这个表格的目的只是为了做出一个概述,不得调整。为了改变一个公交线路的优先站台,相关公交线路的表格必须打开(图1-3)。图1-2bus.xls“站台查看”表格公交线路下图是1号线路时间表的概览,为了改变优先站台,优先站台后面的红色数字必须被改为新选定的优先站台。这样,优先站台的数字也将随之在“公交时间表”和“站台查看”中被自动更改。图1-3bus.xls表1,公交线路1的时间表2.ED建模建议公交车进入模型有两种方式:1是通过一个arrivallist,通过将bus.xls中的表格复制到arrivallist中来生成公交车。2是通过一个连接bus.xls的Source来生成。在两种方法中,都需要设定标签来命名这些在Excel表格中Arrival、Depart和Platform列中的数据。当它们根据bus.xls中的时间进入系统之后,公交车首先需要等待5分钟。另外,为了研究随机抵达的模式,选择一个平均5分钟但具有1分钟的标准偏差的正态分布。想要了解更多的详情,参见附件1.多服务器原子可以用来同时处理多个公交车。它可以实现给所有公交车一个相同的循环时间也可以给每个公交车一个不同的循环时间。使用这些原子来使公交车进行5分钟的等待以及下车过程还有缓冲区。使用一个队列来向各个站台分发公交车。站台本身可以用Server原子和一个供应缓冲区来实现。一个原子的输入和输出通道可以通过closeinput,closeoutput,openinput和openoutput等功能语句进行开关。还可以通过引用来控制其他的原子。例如closeinput(out(1,c))。在一个连接到Excel的模型中,TO82-Excel原子必须被拖入模型中,阅读帮助文档以获得更多细节。在这个原子中,可以建立一个与Excel文档的连接。此后,使用excelread(a,b)。a和b代表着表格中的行和列的值。当所有的公交车都创建完成后,在Excel表格中就没有到达时间间隔了。ED将会认为这是0然后创造新的原子。因此,在275辆公交车进入系统以后,可以通过使用closeoutput(c)语句来停止生成新的原子。3模型说明busstation1.mod和busstation2.mod两个模型都是涉及到时间表的确定性计算。方案1busstation1.mod公交车根据Arrivallist进入系统,在进入的时候会被定义三个标签:一个是到达时间、一个是出发时间和一个优先平台。然后,公交车到达Multiservice1,在那里停留5分钟。这样做的目的是创造他们在生成和实际到达时间的间隔。在5分钟等待过后,公交车到达下车的站台,然后是缓冲区。如果一辆公交车在出发点5分钟之前就到达,它将会被发送至下车点,或者是到Queue6.公交车在下车点等待30秒然后到达缓冲区,在那里等待直到出发前2分钟。在这个时候,公交车到达Queue6.Queue6根据定义在公交车上的优先站台的标签将公交车发送至优先站台。公交车然后被送至该站台的相应队列中,并被发送至第一个可用的站台。首先,检查优先站台是否可用。如果被占用了,检查相邻的站台是否可用。例如优先为2号站台的公交车,先检查2a站台,然后是2b站台,然后是1a,然后3a,然后1b,最后3b。模型中使用Arrivallist的作用跟使用Excel原子的作用是一样的。Source原子在这里用Arrivallist原子来代替,同时Excel原子被移除。图4-1使用Excel的模型图当有公交车停在后方的停车点时,前面的停车位就不可用,没有公交车可以停到前车位。如果前车位有公交车的话,后车位上的公交车若想离开,必须等待直到前车位的公交车离开。例如站台1,停车点1b是后车位1a是前车位。ArrivalList:公交车生成器参数编辑,到达数量275.标签数量3个。标签名称:标签1Arrival标签2Depart标签3Platform数据从bus.xls文件中的公交车时间表中复制,然后粘贴到Arrivallist的表格中。每一个multiservice原子必须有足够的容量,所以它的容量设定为100.Multiservice1:公交车生成与实际到达间隔过渡Cycletime:mins(5)Sendto:if(label([Depart],first(c))-time300,1,2)如果公交车在5分钟内将要离开,将会通过通道1发送到分配工具。如果距离离开时间还大于5分钟,通过通道2到达下车点。MultiserviceUnload:下车点Cycletime:30下车时间为30秒。MultiserviceWait:缓冲区Cycletime:label([Depart],last(c))-120-time公交车必须在出发前2分钟的时候离开。因此,周期时间就是出发时间减去当前时间和2分钟。Queue6:优先站台分配工具Sendto:7.Bylabelvalue(direct):thechannelnumberiswrittendirectlyonthelabelnamedPlatformofthe1statominthequeue.Ifthelabelvalueis0thensendtochannel1.Queue1toQueue5:queuefortheplatformsSendto:2.Anopenchannel(Firstchannelfirst):search,startingfromthefirstchannel,andsendtothefirstopenchannelfound.Stop1atoStop5b:Stop1atoStop5bCycletime:if(label([Depart],first(c))-time120,120,label([Depart],first(c))-time)假如出发时间距到达时间不足2分钟,公交车必须等待2分钟,因此,周期时间为2分钟。否则,等待时间是出发时间和当前时间的差值。后车位设置:TriggeronEntry:closeinput(out(2,c))TriggeronExit:openinput(out(2,c))前车位设置:TriggeronEntry:closeoutput(in(2,c))TriggeronExit:openoutput(in(2,c))方案2busstation2.mod该方案的布局设置在4-1图中。Source:公交车生成器Inter-arrivaltime:excelread(output(c)+2,8)TriggeronExit:do(setlabel([Depart],excelread(input(c)+1,6),i),setlabel([Platform],excelread(input(c)+1,7),i),if(output(c)=275,closeoutput(c)))此外,由于该模型跟方案1的标签名称相同,所以,模型的其他部分保持不变。
本文标题:Enterprise Dynamics 物流仿真软件案例7 公交车站
链接地址:https://www.777doc.com/doc-6675 .html