设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4125|回复: 7

[选题] 【选题】用ExtendSim实现电梯仿真

  [复制链接]
发表于 2012-5-17 00:06:50 | 显示全部楼层 |阅读模式
本帖最后由 木寻云 于 2012-5-17 00:08 编辑


查阅了网上资料后看到关于电梯仿真的主流研究主要有以下两个方面:
(1)        面向对象的电梯运行仿真,通常采用面向对象的编程语言来实现,比如C++。
(2)        面向Agent的电梯群控仿真。

ExtendSim作为面向应用的仿真建模工具,尚未在文献中看到用于电梯的模拟。我希望能做电梯运行层面的仿真。当然另外的原因也是因为群控算法要求的知识更加多,我觉得我hold不住。

我们想要研究的方向是:
(1)        单部电梯在上行高峰、下行高峰以及闲时的情况下,乘客等待时间的规律。原型是本部图书馆电梯,南北楼各有单部电梯,也就是说虽然本部图书馆有两部电梯,但是相互独立的。在高峰期他们能否让学生满意?直接走上楼划算还是等候电梯划算?为学生做决策提出参考意见。
(2)        大家都知道本部电梯南北两部停靠的楼层是不同的,一边是停1,5,7,9;另一边是停1,6,8,10错层停靠。我们将模拟错层停靠和全部都停,这两种情况下到底哪种服务水平高。

合作项目。2人完成。

由于没有参考资料可以借鉴,与ExtendSim善于解决供应链、生产流程等问题的方向些许不同,
在初期设计阶段遇到如下问题,以及初步想到的解决办法:


(1)由于电梯只有一部,但是楼层有n层,每一层都有可能上来乘客,每一层都有可能下去乘客,因此不能简单地用一个activity表示电梯运行的行为。
解决办法:
每一层楼都设置一个activity,
        它包括两个入口(可以用SII模块):1电梯原有乘客从n-1楼(上行时)或n+1楼(下行时)来到这一层;2 在该层外等候的乘客。
        它还包括两个出口(可以用SIO模块):1 电梯中的乘客需要上楼或下楼的;2 在该层下电梯的乘客。

(2)电梯在每一层停靠的时间是不一样的,这是我们为什么烦躁在电梯上看到4,5,6,7,8,9层全被人点亮是一种什么心情。而如果我一个人独自上9楼又是另一种心情。由于电梯停靠一个楼层和不停一个楼层相差时间比较大(心理估算下来约3倍左右,会再精确测算),因此每个activity时间可能是不同的。
        当该层有乘客在外等候,则需要停靠,费时15s;
        当该层有乘客出电梯,则需要停靠,费时15s;
        如果以上两种情况都没有发生,则直接通过该activity,费时5s。

(3)乘客属性:1 所在楼层;2 到达楼层;3 优先级

(4)上电梯行为:
电梯只有一部,根据顺序一个一个activity来的,但是我们知道每个activity有两个入口,如何避免在外的等候的乘客直接进入该activity呢,我们决定使用门。当电梯行驶到这一个activity的时候门打开,判断里面的小球数量,如果低于上限(就是每部电梯的最大运载量啦),则进入乘客,直到达到上限。(但是电梯总是先下后上,看是看起来这里只能先上,再下?)此时就把门关上,外面的乘客继续等候。如果门打开,则activity=15s;如果门没有打开,则activity=5s。

另外,我本来想,如果电梯已经人满,则后面即使到达一个有乘客在外等候的楼层,门也不开,这样activity=5.但是现实情况是,超载之后多出来的人会下来,下来之后这部电梯就变成了不超载,于是到了下一个楼层会继续停,但是这时候只要上来一个人,它都会警告说超载,于是造成了已经满员,但是层层都停的惨象。——我觉得这也是现在很多电梯要改进的地方——如果上一个楼层已经报警,那么后面遇到外面有人按键但是里面没人按键的情况,就都不要停了!(好像也有点缺陷 = =。)我想多了……

(5)下电梯行为:
电梯有两个出口,该楼层只要有一个人他的“到达楼层”=该楼层数字,则activity就要=15s。但是在这个仿真软件里面,小球是要一个一个过的。那么第一个小球到达的时候就应该要决定该楼层是停多久了。于是我就想到再加一个属性:优先级=到达楼层,上行的时候越小的排在前面,下行的时候越大的排在前面。这样保证其决定性因素的小球走在最前面,来决定activity的运行时间。

(6)判断电梯运行到哪一层了。
另一个问题是:比如楼高1-10,我们可以做一条流水线,1-10楼,然后再10-1楼,这样就有上下行了。但是这样就变成了一个类似地铁的流程:永远从第一个站运行到最后一个,周而复始,即使车上没人了也是这样。但其实电梯不是的,电梯运行到5楼上面楼层没有人呼唤,电梯里也没有人了的话,它就不会往上走的,它原地停下或是返回到一楼。如何解决这个问题呢?
解决办法:目前想到的解决办法是,设置一个另类的小球,它是另一个形状的,它用来表示,小球到达哪一个流程了。完了,这样每一个activity有三个入口和三个出口了!假设乘客都是绿色小球,那么这个“电梯因子”我们就设成黄色小球。黄色小球作为先锋总是走在最前面,上行时,当小球总数>=2的时候,它就按照流程一个一个走下来。如果走到5楼,小球只剩它一个,而楼上的楼层没有乘客在呼唤,则直接走到5楼的下行activity,直接下去接一楼的乘客。如果7楼有一个乘客需要下去,则按照流程走到7楼上行activity,直接飘到7楼下行activity。这样我觉得更符合实际情况一些?

目前就想到这些。


我们要解决的问题:
(1)        高峰时是选择等待电梯,还是选择自己走上去?(取决于队列等待时间)
(2)        错层停靠的效率是否真的有显著提高?(对学生来说:等待时间是否大幅缩短)
发表于 2012-5-18 20:40:49 | 显示全部楼层
有趣而又有难度的原创选题!
发表于 2012-5-19 17:41:54 | 显示全部楼层
我感觉电梯模拟中电梯在楼层中的升升降降可以用类似于 生产制造中的 jobshop.mox (extendsim 安装后自带的案例)方法。 就是每层模拟成一台机器,当一个机器处理后(当一个楼层启动后),可以后面加一个判断逻辑,决定下一个楼层是什么。这个判断可以包括
(1)是升,还是降
(2)这个判断模块可以引入每个楼层的人数来决定下一个升或者降的楼层是什么?
(3)特殊逻辑,比如说 VIP 电梯等。

所以,我认为,电梯的模拟不但在 Extendsim 中很容易模拟,并且也可以做到模块很简洁。

我有空给大家做一个范例。
 楼主| 发表于 2012-5-30 02:52:24 | 显示全部楼层
我们就决定做这个吧,放弃电梯啦。。
附件里一个是一篇论文,一个是这本书的电子版。
我们的案例在书中301页。
主要按书上303页上的模型建。。
有四个流程:
1.零售商销售以及库存决策流程
2.物流中心订单处理流程
3.工厂订单处理流程
4.制造商处理流程



我们放弃电梯了……………………………………!
发表于 2012-5-30 09:42:00 | 显示全部楼层
木寻云 发表于 2012-5-30 02:52
我们就决定做这个吧,放弃电梯啦。。
附件里一个是一篇论文,一个是这本书的电子版。
我们的案例在书中301 ...

如果更换选题的话,请单独发一个选题帖。

发帖时别又忘了上传附件。
发表于 2012-7-30 12:55:17 | 显示全部楼层
这个电梯的题目我们已经做过,是用plant simulation实现的,基本要求和你这个完全一样。
发表于 2012-8-7 10:49:36 | 显示全部楼层
nickzhao78 发表于 2012-7-30 12:55
这个电梯的题目我们已经做过,是用plant simulation实现的,基本要求和你这个完全一样。 ...

simulway上高手如云啊!能不能发表在论坛上让我们的学员也学习一下,提供链接也可。
发表于 2012-8-14 15:54:23 | 显示全部楼层
本帖最后由 iesim 于 2012-8-15 10:34 编辑

之前一直没有时间细致考虑这个问题。这两天正好有些时间,做了一个单电梯的模拟,可能还有错误,欢迎大家指正。也请大家随便采用,修改。

这个模型是用 版本 8 做的,如果没有,可以下载试用版  www.extendsim.cn/download/E8Demo.rar

补充说明一下:这个例子不是针对一楼的学校作业,而是基于普通对电梯的理解。欢迎在此基础上扩充发挥。

关于这个模型的说明视频也已经上载,欢迎下载

http://www.edgestone-it.com/extend_training.htm

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2024-11-25 09:52 , Processed in 0.014950 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表