基于flexsim的运动供应链建模与仿真_第1页
基于flexsim的运动供应链建模与仿真_第2页
基于flexsim的运动供应链建模与仿真_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于flexsim的运动供应链建模与仿真

1将击穿车作为仿真的实体库交叉车辆是一种具有自身辊道的辅助设备和链式收割机。它具有垂直和水平交通的功能。在短距离内,灵活连接其他设备,以达到搬运货物的目的。它带有智能轨道导引型搬运设备和速度控制微处理器,可以通过计算脉冲编码器的脉冲数进行加减速控制来实现排队停止,也可以通过计算安装在轨道边的计数板来进行停止控制。由于其具有节约用地和人力,作业迅速准确,提高保管效率等优点,随着物流业的不断发展,越来越多的仓库和物流配送中心在出库和入库方面都是通过穿梭车来实现的。所以在对物流配送中心进行仿真建模时,不可避免地要涉及到对穿梭车进行仿真。在flexsim的实体库中,主要有两类实体:一种是自身不移动而对临时实体进行某些操作的实体,如发生器,吸收器,输送带,货架等;一种是自身移动而不对临时进行操作的实体,如操作员,叉车,堆垛机等。但是穿梭车比较特殊,它是一种可以运动的输送带,既要自身移动--将货物从一个出货口运到一个入货口,又要对临时实体进行操作--装货和卸货。所以很难在flexsim的实体库里找到一个与它的这两个特性都相符合的实体来对其进行仿真模拟,而这就是本文需要解决的问题。本文将以某物流配送中心为基础并基于flexsim对穿梭车——主要是往复式穿梭车的仿真编程进行研究。2物流运行仿真应用Flexsim对某物流配送中心进行建模的基本步骤为:①构建模型布局,即将仿真所需要的对象模型从对象库中拖拽到仿真视图窗口中的适当位置;②定义物流流程,根据对象之间关系将有关联的对象进行连接;③编辑对象参数,具体到物流过程中为定义货物到达的时间分布、数量,叉车搬运能力,订单处理速度等;④编译运行仿真,通过3D的可视化效果直观的了解仿真运行过程;⑤分析仿真结果。穿梭车既然是一种能够运动的输送带,那么可以选用输送带这个实体来模拟其装货和卸货的功能。虽然输送带这个实体一般是不能运动的,但我们可以通过在实体属性里带有的能够画图的API以及一些触发器的API中写入flexsim脚本语言所提供的运动学函数及其他相关函数,构成一些程序,使输送带按照我们所需要的方式进行运动。所以,我们可以在输送带的基础上,加入一些函数来实现模拟仿真穿梭车的调度,装货,运输,卸货等功能。3完成过程3.1抗穿透车时的回库动作该物流配送中心通过穿梭车来实现立库的出货。该立库有5个巷道,5个出货口和一个入货口,另外还有专门一个出货口来负责实现货物的回库功能。货物以托盘形式出库后,通过立库巷道边上的输送带被送出。当货物到达出货口时向穿梭车发出请求,如果穿梭车空闲,则向该出货口运动,与相应的输送带对接后装上货物,然后向入货口运动,与相应的输送带对接后将货物卸下。如此穿梭车完成一次操作,然后停在原处等待下一次请求。之后货物有两个可能的流向,一是由叉车整托盘叉走,如此就不需要回库;另一种是将托盘内的货物捡走一部分,然后通过一个特殊的出货口进行回库的动作。当托盘运动到该出货口时,也会向穿梭车发出请求,如果穿梭车空闲,则会向该出货口运动,与相应的穿梭带对接完成装货的动作,然后将货物运到它原来从立库出货的那个传送带,在那里将货物卸下,完成回库的动作。需要补充说明的是,所有的出货口在货物到达发出请求时,若穿梭车不空闲,这些货物就在原处等待,直到穿梭车空闲并接受请求为止。3.2程序逻辑程序逻辑流程如图3所示:3.3执行过程3.3执行过程3.3.1击穿车下的运动函数主要程序代码如下:以上代码以全局表index里的值的变化为依据判断穿梭车是否空闲,通过函数settablenum0在穿梭车收到请求开始运动时将该值设为0,在穿梭车完成卸货动作后再把该值设为1,这样判断简单而又明了,一般推荐使用。而当货物由前一个输送带进入后一个输送带之后就会触发一个消息发送函数,向穿梭车发出请求,于是穿梭车开始运动。3.3.2击穿车运动的控制穿梭车收到请求之后,马上开始向发出请求的出货口方向运动,代码如下:以上代码在穿梭车收到相应的出货口输送带发出的消息后开始运行。它首先关闭所有出货口输送带的入口,使穿梭车在运行过程中不再收到其他出货口输送带发出的请求,然后设定运动的各项参数。值得注意的是y值的设定,y的值等于穿梭车的初始位置到目的位置的距离,也就是穿梭车运动的距离,这里专门加入了yloc()函数,可以动态地获取穿梭车的初始位置,灵活调整y的值。而函数addkinematic0的返回值是运动完成时的时间,函数time0的返回值是当前时间。所以delaytime就是运动所消耗的时间,在运动结束一段时间之后再发消息打开穿梭车和出货口输送带的出入口,这样就保证了穿梭车与出货口输送带对接之后才将货物装入。3.3.3回库逻辑判断与向出货口输送带方向的运动不同,穿梭车向人货口输送带方向的运动分为两种情况,一种是正常的出库,另一种是回库。所以这里就需要一段程序来进行逻辑判断:以上代码中value3的值就是上段代码中向穿梭车发送的消息的最后一个值,这个值表示某一个人货口输送带的位置。然后通过inty=value3-yloc(current);这段代码计算出需要运动的距离,完成对穿梭车运动的“指示”作用。3.3.4编写drwn用api在编写完穿梭车运行的代码后,如果对视图没有进行特别处理,将会出现穿梭车在开始运动后一直停在原处,在运动结束后突然出现在目标位置这样的情况。因此需要编写DrawCode的API。这个API是与视图有关的,与别的API不同,它不是由某些特殊事件触发,而是以一种“刷新”的方式运行的一每秒钟运行几次,根据编写的代码不断“刷新”视图。运动学函数updatekinematics0就非常符合这种特性,在DrawCode的API中写入该“运动刷新函数”之后,就能根据穿梭车的运动程序不断改变穿梭车的位置,创造出穿梭车连续运动的视图效果。4中心模型的建立在物流仓库和配送中心,穿梭车的应用已经非常广泛,所以在建模过程中会频繁地使用到它。但是在flexsim的实体库里面却无法找到一个能很简易地实现穿梭车功能的实体,这给相关的仿真建模带来极大不便。通过将本文所研究的方法用于某医药物流配送中心的穿梭车建模,基本达到了模拟实现穿梭车运行的目标,取得了预期的效果,说明本建模方法的合理性。货物传输过程如图1所示:通过上述思路,利用flexism的实体库建立基础的模型,如图2所示。以上代码所应用到的全局表的值是通过判断进入穿梭车的货物是从哪一个出货口输送带出来的来写入的。当货物是从立库巷道边上的输送带出来的,表明这是正常的出库,将该值设为0;当货物是从回库出库口输送带出来的,表明这是回库,将该值设为1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论