AGV系统仿真模型


一、 案例说明
    某一企业有一作业区仓库与加工机器之间需要AGV小车对仓库货物进行搬运。已知零件以uniform(60,80)的时间间隔主动进入系统,每次进入系统的批量服从iuniform(18,30)的分布。零件进入系统后放入仓库等待AGV小车装载。AGV小车主动进入系统,沿着T1和T2轨道循环对零件进行运输,AGV小车在T1的末端对零件进行装载,然后AGV小车沿着T2轨道运行,到T2轨道末端将零件卸载到缓冲区中,等待加工机器的加工。

    Witness仿真模型下载
相关数据说明如下:
     T1和T2的物理长度分别是120和100;

     AGV小车每次载物容量为1;

     T1末端装载货物的时间服从0.5~1之间的均匀分布;

     T2卸载货物的时间为0.33min;

     机器加工零件的时间服从平均数为3的负指数分布。
该模型建立有以下目的:
 掌握Witness建模的过程;
 系统运行一星期,找出瓶颈资源。


二、 系统建模
2.1 模型仿真界面
模型最终界面如图1所示:



图1 模型最终界面


2.2 建模元素说明
该模型中使用到仓库和缓冲区两个buffer元素,AGV小车由Vehicle元素表示,两个路径T1和T2由track元素表示,具体的模型元素说明如表1所示:

表1 元素说明


2.3 元素可视化设计
(1)Part元素可视化设计
产品元素主要对其name属性和icon属性进行可视化设计,按照图1所示,icon属性选择红色圆形图案。
(2)Buffer元素可视化设计
Buffer元素包括仓库和缓冲区。两个元素主要对name属性和part queue属性进行可视化设计。两个buffer元素的part queue属性选择count选项。
(3) track元素可视化设计
track元素有T1和T2两个元素,主要对其name属性和path属性进行可视化设计。
(4) machine元素可视化设计
Machine元素需要对其icon属性、part queue属性以及icon属性(静态图标)、icon(动态图标)进行可视化设计。
2.4 元素详细设计
(1)Part元素详细设计
产品的详细设计如图2所示:


图2 产品元素详细设计


其中,点击“To…”按钮,输入:“push to 仓库”
    UNIFORM (60,80)表示产品到达系统的时间间隔服从60到80的均匀分布;
    IUNIFORM (18,30)表示每次产品进入系统的批量数服从18到30的均匀分布。
(2)track元素详细设计
Track元素有T1和T2两种元素,首先对T1元素进行可视化设计。如图3所示:


图3 T1元素general选项详细设计

其中,点击“output to”按钮,输入:
     Push to T2 !表示AGV小车在T1上运行完毕后转移到T2的尾部。
   由案例实际情况可知,小车在T1头部实现装载作业,所以,还需对T1的loading选项进行可视化设计,如图4所示:


图4 T1元素loading选项详细设计

其中,transfer mode选择always,这里需要解释三种模式if、call和always有何区别:
 If:表示满足特定的限制条件时才允许小车装载,例如当缓冲库存是满的时候才允许小车对其进行装载。
 Call:call是系统中的一种action。如果使用这一模式表示当系统使用到call这一动作,小车才可以进行装载。
例如:call AGV,T1,T2 表示AGV小车在T1上装载,在T2上卸载。
 Always:表示小车在任何情况下都可以实现装卸载的任务。


Time to load中输入:UNIFORM (0.5,1),表示装载时间服从0.5min到1min的均匀分布;
在input loading rule...按钮中输入:pull from 仓库,表示从仓库这一缓冲中装载产品。
其次,我们还需对T2元素进行详细设计,如图5所示:


图5 T2general选项详细设计

其中 stop time中选择none模式,我们在此对三种模式进行简单介绍:
 None:表示当小车到达轨道track的头部时是不停止的。
 If:小车运行到轨道的头部的时候,对特定的条件进行判断,如果条件满足就停止,否则小车将不停止。
 Always:小车运行到轨道头部时在任何情况下都要停止。
点击“output to”按钮,输入:
     Push to T1 !表示AGV小车在T2上运行完毕后转移到T1的尾部。
其次,由案例实际情况可知,小车在T1头部实现装载作业,所以,还需对T2的unloading选项进行可视化设计,如图6所示:


图6 T2元素unloading选项详细设计

其中,点击“output unloading rule”,输入
    Push to缓冲区 !表示将产品卸载至缓冲区中等待加工机器加工。
(3) Vehicle元素详细设计
AGV小车的详细设计如图7所示:


图7 AGV详细设计

其中:

     点击entry中的“to…”选项,输入:
     Push to T1 !表示小车进入系统时首先在T1上运行。
(4) machine元素详细设计
   加工机器的详细设计如图8所示:


图8 加工机器详细设计

其中:

   “from”中输入:pull from 缓冲区。表示加工机器主动向缓冲区要零件进行加工。
   “to”中输入:push to ship,表示被加工完成的产品运出系统。
    Cycle time中输入:negexp(3),表示机器的加工时间服从均值为3的负指数分布。


三、 模型运行
   模型运行一周(7*24*60=1080min)结果如表2和表3所示:

表2 产品相关数据

    从表中我们可以看出,进入系统的产品为381件,而输出系统的零件数只有158件,存在大量的在制品库存。每个零件在系统中逗留的平均时间竟达到了333.1min。需要对瓶颈进行改善。

表3 buffer以及machine元素统计数据

     

 

    可以看出,仓库与缓冲区相比,仓库的平均库存高出许多,这一方面是由于产品过快的进入系统从而导致了产品在仓库中的堆压,继而导致了产品在系统中高的生产周期时间,另一方面是由于AGV小车的数量较少导致了仓库中的产品不能及时运送到缓冲区中,导致机器等待时间较多(达到55.84%)。
    因此,对该模型从两方面进行优化,一方面减少产品进入系统的频率,另一方面增加AGV小车的数量,将到达仓库的产品及时运送到缓冲区等待机器加工。这样机器闲余时间就会被充分利用。