垃圾回收物流仿真系统设计

  • 格式:doc
  • 大小:220.00 KB
  • 文档页数:14

实验2 垃圾回收物流仿真系统设计

实验大纲

一. 实验目的

仿真程序研究如何设计物流系统,能够使收集系统在满足时间约束,载重约束的条件下,使垃圾处理公司的物流总成本最低.

二. 实验设备与仪器

1. 微机; 2. Witness仿真软件

三. 实验计划与安排

计划学时4学时,每次一个班30人;

四. 实验步骤

1.明确地理及需求信息:各个收集点所有的人口数,距离垃圾转运站,公司停车场的距离信息.

2.明确与收集车辆有关的信息:固定成本;可变成本;行驶速度;收集时间;卸载时间.

3.明确与垃圾相关的信息:人均垃圾量;垃圾比例;

4.建立收集垃圾的成本函数

5.分析系统逻辑结构:垃圾产生模块;叫车模块;收集模块;收工模块;数据处理模块.

6.仿真模型建立.

五. 实验报告要求

1. 要求建立具有2个垃圾收集点,一个垃圾转运站的Witness垃圾回收仿真模型.

2. 要求有元素定义;元素显示;元素详细设计;数据处理子模块;

3. 仿真运行与结果分析

六. 预习及思考题

1. 复习Witness建模元素;

2. 学习输入规则和输出规则以及劳动者规则;

3. 预习Witness程序设计基础

4. 预习归档器及其应用;

5. 预习优化器及其应用.

(注:大纲要求要求较高,使用Witness教育版无法完成。根据同学们的学习情况和现有条件,对实验内容进行了调整,同学们做实验和写报告时,以所给教程准。)

总体概述与结果预览[阅读]

实验2 垃圾回收物流仿真系统(总体概述与结果预览)

在Witness软件认识实验中,我们设计了简单的流水线生产系统。在系统中,元素之间的逻辑关系比较简单,很容易掌握。今天,我们将试着设计一个相对复杂的物流系统,实验中,将会用到更多的元素和Witness语法知识。希望大家能集中精力,力争完成。

模型概述

我们设计垃圾回收模型由居民小区垃圾投放点、垃圾中转站、垃圾运输车辆、道路、垃圾回收公司停车场等组成。物流系统可描述为:生活垃圾积累(居民区垃圾投放点)→达到收集量后发出清理请求→公司派车(及人员)清运→装载台装载→中转站(卸载),如图1所示。

图1 物流系统示意图

已知信息

小区1 居民1.4千人 每天产生垃圾4吨;

小区2 居民1.8千人 每天产生垃圾5吨;

小区1、2间距1公里,小区1和回收公司间距1公里,小区1和中转站间距3公里;

清运车辆1部,载重3吨。

模型最终布局

见图2。

图2 模型布局图(75%)

返回实验专题

注:上述模型是对《Witness工业物流仿真平台基础教程》垃圾回收模型的简化。

定义元素(Step1) [上机操作]

实验2 垃圾回收物流仿真系统(定义元素)

启动Witness,另存为dump.mod。通过菜单Window/control...将布局区背景设为白色。点击display edit工具条上grid按钮,取消栅格,见图1。

图1 取消布局区栅格

在系统布局区中添加垃圾(dump1 dump2)、垃圾箱(buffer1 buffer2)道路(road0_1 road1_0 road1_2 road2_1 road1_t

roadt_1)、车辆(dumpcart)、公司停车场(corppark)、中转站(transfer_station)等元素。布局如图2所示。元素细节设定见表1。

图2 插入元素后的初步可视化设计

注意图中的路径元素(如road0_1)的方向(黑箭头),如何改变track、conveyer等元素的传输方向,见“在简单的流水线仿真模型设计(第二阶段)”一文。

表1 实体元素列表

名称 类别 说明 初步设定(detail)

dump1 Part 小区1产生的垃圾

dump2 Part 小区2产生的垃圾

dumpcart Vehicle 垃圾回收车

buffer1 Buffer 小区1垃圾箱

buffer2 Buffer 小区2垃圾箱

Corppark Track 公司停车场

Transfer_station Buffer 中转站

road0_1 Track 停车场向小区1方向的道路 Phisical Length=1

road1_0 Track 小区1向停车场方向的道路 Phisical Length=1

road1_2 Track 小区1向小区2方向的道路 Phisical Length=1

road1_2 Track 小区2向小区1方向的道路 Phisical Length=1

road1_t Track 小区1向中转站方向的道路 Phisical Length=3

roadt_1 Track 中转站向小区1方向的道路 Phisical Length=3

get1 get2 Track 车辆通过它们收集垃圾箱中的垃圾,相当于装载台 以上可视化设计和实际相差太大。下面对其进行修改。

1.利用菜单View/Picture Gallery,打开Picture Gallery窗口,选中预留图片位置32、33,右击,由import子菜单分别导入图片,见图3。然后选中依次选中buffer1、buffer2、Transfer_station,点击,将菜单选项置于图4所示位置,点击选定新增加的图片32、33,见图5,之后点击Draw按钮,在buffer1等附近绘出。

图3 导入新的元素图片(icon)

图4 元素外观设计工具条

图5 选择元素标志图片(icon)

仿照上述方法,你还可以修改垃圾运输车dumpcart、公司停车场等元素的标志。图6为修改后的布局图。

图6 修改后的布局图

注:具体操作步骤如有疑问,同学之间可讨论解决。

添加变量(Step2) [上机操作]

实验2 垃圾回收物流仿真系统(定义变量)

要使物流模型系统正常运转,需要添加一些变量(逻辑元素)。见表1。变量添加方法和添加其它元素相同,见图1。

表1 逻辑元素

名称 类别 说明 备考

capacitycart Integer 垃圾车载重量,3吨

laborneed Integer 跟车工人数,1人

loadnum Integer 垃圾车在垃圾收集点的收集量 quantity=2

unloadspeed Real 空载速度1.2KM/Min

loadspeed Real 重载速度1.0Km/min

loadtime Real 装车时间 quantity=2

unloadtime Real 卸车时间

dayloadtime Real 总装车时间

dayunloadtime Real 总卸车时间

图1 添加Real变量

元素详细设定(Step3)[上机操作]

实验2 垃圾回收物流仿真系统(元素详细设定)

●系统初始化(intitialize actions),通过选择系统菜单model、initializ action...菜单项,得到初始化程序编辑框,输入程序:

capacitycart=3

unloadtime=0

laborneed=1

●dump1详细设计

双击dump1打开其detail part窗口,按图1进行设定。点击to...按钮,设置to规则为push

to buffer1。

图1 dump1细节设置

inter arrival:工作循环间隔,这里设为1440分钟,即1天;

First Arrival:事件Events发生顺序,dump1为0.0001,dump2为0.0002,这样的话,dump1事件就先发生,即首先生成每天的生活垃圾;

lost size:这里指每天生产的垃圾量,4吨。

●dump2详细设计

和dump1差不多,见图2。to...规则设置为push to buffer2

图2 dump2细节设置

●垃圾车dumpcart详细设定

照图3设置,to...规则设为push to corppark

图3 垃圾车详细设置

Capacity:3,表示车辆载重3吨;

unloaded:1.2,表示空车行驶速度

loaded:1.0,表示重车行驶速度。

●垃圾箱buffer1详细设定

照图4设置,action on input规则设为: IF NPARTS (buffer1) >= 4

CALL dumpcart,get1,road1_t,0

VSEARCH Corppark,road0_1,road1_0,road1_t,roadt_1,road1_2,road2_1,get1,get2

ENDIF

图4 buffer1详细设置

Capacity:10,表示垃圾箱容量为10吨;

●垃圾箱buffer2详细设定

照图5设置,action on input规则设为:

IF NPARTS (buffer2) >= 4

CALL dumpcart,get2,road1_t,1

VSEARCH Corppark,road0_1,road1_0,road1_t,roadt_1,road1_2,road2_1,get1,get2

ENDIF

图5 buffer2详细设置

Capacity:10,表示垃圾箱容量为10吨;

●路径get1详细设定

照图6设置,action on Front规则设为:

IF NFREE (dumpcart) >= NPARTS (buffer1)

loadnum (1) = NPARTS (buffer1)

ELSE

loadnum (1) = NFREE (dumpcart)

ENDIF

loadtime (1) = 3 + loadnum (1) * 1000 / 60 * laborneed

dayloadtime = dayloadtime + loadtime (1)

output to...规则设为:

PUSH to road1_t(1)

点击loading选项钮,照图7设置,input loading rule设置为PULL from buffer1