垃圾回收物流仿真系统设计.docx
- 文档编号:15488735
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:22
- 大小:233.80KB
垃圾回收物流仿真系统设计.docx
《垃圾回收物流仿真系统设计.docx》由会员分享,可在线阅读,更多相关《垃圾回收物流仿真系统设计.docx(22页珍藏版)》请在冰点文库上搜索。
垃圾回收物流仿真系统设计
实验2垃圾回收物流仿真系统设计
实验大纲
1.实验目的
仿真程序研究如何设计物流系统,能够使收集系统在满足时间约束,载重约束的条件下,使垃圾处理公司的物流总成本最低.
2.实验设备与仪器
1•微机;2.Witness仿真软件
3.实验计划与安排
计划学时4学时,每次一个班30人;
4.实验步骤
1.明确地理及需求信息:
各个收集点所有的人口数,距离垃圾转运站,公司停车场的距离信息•
2.明确与收集车辆有关的信息:
固定成本;可变成本;行驶速度;收集时间;卸载时间.
3.明确与垃圾相关的信息:
人均垃圾量;垃圾比例;
4.建立收集垃圾的成本函数
5.分析系统逻辑结构:
垃圾产生模块;叫车模块;收集模块;收工模块;数据处理模块.
6.仿真模型建立.
5.实验报告要求
1.要求建立具有2个垃圾收集点,一个垃圾转运站的Witness垃圾回收仿真模型.
2.要求有元素定义;元素显示;元素详细设计;数据处理子模块;
3.仿真运行与结果分析
6.预习及思考题
1.复习Witness建模元素;
2.学习输入规则和输出规则以及劳动者规则;
3.预习Witness程序设计基础
4.预习归档器及其应用;
5.预习优化器及其应用.
(注:
大纲要求要求较高,使用Witness教育版无法完成。
根据同学们的学习情况和现有条件,对实验内容进行了
调整,同学们做实验和写报告时,以所给教程准。
)
总体概述与结果预览[阅读]
实验2垃圾回收物流仿真系统(总体概述与结果预览)
在Witness软件认识实验中,我们设计了简单的流水线生产系统。
在系统中,元素之间的逻辑关系比较简
单,很容易掌握。
今天,我们将试着设计一个相对复杂的物流系统,实验中,将会用到更多的元素和Witness
语法知识。
希望大家能集中精力,力争完成。
模型概述
我们设计垃圾回收模型由居民小区垃圾投放点、垃圾中转站、垃圾运输车辆、道路、垃圾回收公司停车场等组成。
物流系统可描述为:
生活垃圾积累(居民区垃圾投放点)t达到收集量后发出清理请求t公司派车
(及人员)清运T装载台装载T中转站(卸载),如图1所示。
中转站
回收公司
图1物流系统示意图
已知信息
小区1居民1.4千人每天产生垃圾4吨;
小区2居民1.8千人每天产生垃圾5吨;
1公里,小区1和中转站间距3公里;
小区1、2间距1公里,小区1和回收公司间距清运车辆1部,载重3吨。
模型最终布局
见图2。
-J
DemahdLkt
(Hfvonm冏曲佃rtKfemaid曲口粧Q
1.53ODDD1
15
图2模型布局图(75%)
返回实验专题
注:
上述模型是对《Witness工业物流仿真平台基础教程》垃圾回收模型的简化。
定义元素(Stepl)[上机操作]实验2垃圾回收物流仿真系统(定义元素)
启动Witness,另存为dump.mod。
通过菜单Window/control...将布局区背景设为白色。
点击displayedit工具条
上grid按钮,取消栅格,见图1。
图1取消布局区栅格
在系统布局区中添加垃圾(dump1dump2)、垃圾箱(bufer1buffer2)道路(roadO_1road1_0road1_2road2_1road1_t
roadt_1)、车辆(dumpcart)、公司停车场(corppark)、中转站(transfer_station)等元素。
布局如图2所示。
元素细节设定见表1。
图2插入元素后的初步可视化设计
注意图中的路径元素(如road0_1)的方向(黑箭头),如何改变track、conveyer等元素的传输方向,见在简单
的流水线仿真模型设计(第二阶段)”一文。
表1实体元素列表
名称
类别
说明
初步设定(detail)
dumpl
Part
小区1产生的垃圾
dump2
Part
小区2产生的垃圾
dumpcart
Vehicle
垃圾回收车
bufferl
Buffer
小区1垃圾箱
buffer2
Buffer
小区2垃圾箱
Corppark
Track
公司停车场
Transfer_station
Buffer
中转站
road0_1
Track
停车场向小区1方向的道路
PhisicalLength=1
road1_0
Track
小区1向停车场方向的道路
PhisicalLength=1
road1_2
Track
小区1向小区2方向的道路
PhisicalLength=1
road1_2
Track
小区2向小区1方向的道路
PhisicalLength=1
road1_t
Track
小区1向中转站方向的道路
PhisicalLength=3
roadt_1
Track
中转站向小区1方向的道路
PhisicalLength=3
get1get2
Track
车辆通过它们收集垃圾箱中的垃圾,相当于装载台
dumpl
buiferl
buffer^
Transfer_statitMi
F阴出_t
+get?
roadt1
durnpcarJ
DemandList
几9
///
road"!
0
■.71^-1^14.15
/roadO1
///
/^/
roaiJI_2
corpparh,
=;%/
以上可视化设计和实际相差太大。
下面对其进行修改。
1.利用菜单View/PictureGallery,打开PictureGallery窗口,选中预留图片位置32、33,右击,由import子菜单
分别导入图片
,见图3。
然后选中依次选中
buffer1、buffer2、
选项置于图4所示位置,点击匚选定新增加的图片32、33,见图5,之后点击
Transfer_station,点击□,将菜单
Draw按钮,在buffer1等附近绘
出。
图3导入新的元素图片(icon)
HDisplayBuffer-bufTerl
H回國画圖叵S
|Braw3
图4元素外观设计工具条
图5选择元素标志图片(icon)
仿照上述方法,你还可以修改垃圾运输车dumpcart、公司停车场等元素的标志。
6为修改后的布局图。
Transferstation
dumpl
buffer1
durrip2
13
[f
r1
(Z
■
resellt
ro餉21
roadl2
roacll1
dumpcarl
roech0
roadO1
则W前LIST
1corppark
图6修改后的布局图注:
具体操作步骤如有疑问,同学之间可讨论解决。
添加变量(Step2)[上机操作]
实验2垃圾回收物流仿真系统(定义变量)
要使物流模型系统正常运转,需要添加一些变量(逻辑元素)。
见表1。
变量添加方法和添加其它元素相同,见
图1。
表1逻辑元素
名称
类别
说明
备考
capacitycart
Integer
垃圾车载重量,3吨
laborneed
Integer
跟车工人数,1人
loadnum
Integer
垃圾车在垃圾收集点的收集量
quantity=2
unioadspeed
Real
空载速度1.2KM/Min
loadspeed
Real
重载速度1.0Km/min
loadtime
Real
装车时间
quantity=2
unioadtime
Real
卸车时间
dayloadtime
Real
总装车时间
dayunioadtime
Real
总卸车时间
图1添加Real变量
元素详细设定(Step3)[上机操作]
实验2垃圾回收物流仿真系统(元素详细设定)
•系统初始化(intitializeactions),通过选择系统菜单model、initializaction...菜单项,得
到初始化程序编辑框,输入程序:
capacitycart=3
unioadtime=0
laborneed=1
•dumpl详细设计
双击dump1打开其detailpart窗口,按图1进行设定。
点击to…按钮,设置to规则为pushtobuffer1。
图1dump1细节设置
interarrival:
工作循环间隔,这里设为1440分钟,即1天;
FirstArrival:
事件Events发生顺序,dump1为0.0001,dump2为0.0002,这样的话,dump1事件就先发生,即首先生成每天的生活垃圾;
lostsize:
这里指每天生产的垃圾量,4吨。
•dump2详细设计
和dump1差不多,见图2。
to…规则设置为pushtobuffer2
图2dump2细节设置
如圾车dumpcart详细设定
照图3设置,to…规则设为pushtocorppark
图3垃圾车详细设置
Capacity:
3,表示车辆载重3吨;unloaded:
1.2,表示空车行驶速度loaded:
1.0,表示重车行驶速度。
•垃圾箱buffer1详细设定
照图4设置,actiononinput规则设为:
IFNPARTS(bufferl)>=4
CALLdumpcart,get1,road1_t,0
VSEARCHCorppark,road0_1,road1_0,road1_t,roadt_1,road1_2,road2_1,get1,get2ENDIF
图4buffer1详细设置
Capacity:
10,表示垃圾箱容量为10吨;
•垃圾箱buffer2详细设定
照图5设置,actiononinput规则设为:
IFNPARTS(buffer2)>=4
CALLdumpcart,get2,road1_t,1
VSEARCHCorppark,road0_1,road1_0,road1_t,roadt_1,road1_2,road2_1,get1,get2
ENDIF
图5buffer2详细设置
Capacity:
10,表示垃圾箱容量为10吨;
•路径getl详细设定
照图6设置,actiononFront规则设为:
IFNFREE(dumpcart)>=NPARTS(bufferl)
loadnum
(1)=NPARTS(buffer1)
ELSE
loadnum
(1)=NFREE(dumpcart)
ENDIFloadtime
(1)=3+loadnum
(1)*1000/60*laborneed
dayloadtime=dayloadtime+loadtime
(1)
outputto…规则设为:
PUSHtoroad1_t
(1)
点击loading选项钮,照图7设置,inputloadingrule设置为PULLfrombuffer1
图6getl详细设置
图7getl的loading(装车)设置
Quantityto:
loadnum
(1),表示车辆在垃圾收集点处的收集量;
Timetoload:
loadtime
(1),表示收集时间
Condition:
NPARTS(buffer1)>0,表示垃圾收集条件为垃圾箱中有垃圾。
•路径get2详细设定
照图8设置,actiononFront规则设为:
IFNFREE(dumpcart)>=NPARTS(buffer2)
loadnum
(2)=NPARTS(buffer2)
ELSE
loadnum
(2)=NFREE(dumpcart)
ENDIF
loadtime
(2)=3+loadnum
(2)*1000/60*laborneeddayloadtime=dayloadtime+loadtime
(2)
注释:
这里60是垃圾清运工的装车速度:
60公斤/分钟
ifNFREE(dumpcart)>=NPARTS(buffer2)表达式包含了两个函
数:
NFREE和NPARTS,表达式的含义是假如垃圾车dumpcart的剩余载重量大于或等于垃圾桶buffer2中的垃圾数量”。
outputto…规则设为:
PUSHtoroad2_1
(1)
点击loading选项钮,照图9设置,inputloadingrule设置为PULLfrombuffer2
图8get2详细设置
图9get2的loading(装车)设置
•亭车场corpark详细设定
outputto…规则设为:
IFNDemands(dumpcart)>=0
PUSHtoroad0_1
ELSE
Wait
ENDIF
注:
NDemands(dumpcart)>=0意思为:
假如垃圾车回收任务未完成。
•道路roat0_1详细设定
outputto…规则设为:
IFVEHICLE(road0_1,1)=dumpcart
IFNPARTS(buffer1)>=4
PUSHtoget1
ELSE
PUSHtoroad1_2
ENDIF
ELSE
Wait
ENDIF
注释:
IFVEHICLE(road0_1,1)=dumpcart用来判断垃圾车是否在路径road10_1的头部,
判断是否在尾部用VEHICLE(road0_1,0)。
•道路roat1_0详细设定
outputto…规则设为:
IFVEHICLE(road1_0,1)=dumpcart
PUSHtoCorppark
(1)
ELSE
Wait
ENDIF
•道路roat1_2详细设定outputto...规则设为:
IFVEHICLE(road1_2,1)=dumpcart
PUSHtoget2
ELSE
Wait
ENDIF•道路roat2_1详细设定outputto...规则设为:
IFVEHICLE(road2_1,1)=dumpcart
IFNPARTS(buffer1)>0ANDNFREE(dumpcart)>0
PUSHtoget1
ELSE
PUSHtoroad1_tENDIF
ELSE
Wait
ENDIF•道路roat1_t详细设定outputto...规则设为:
PUSHtoroadt_1
(1)Actiononfront规则设为:
IFVEHICLE(road1_t,1)=dumpcartunloadtime=3+NPARTS(dumpcart)*1000/100/laborneeddayunloadtime=dayunloadtime+unloadtimeENDIF
这里100是垃圾清运工的卸车速度:
100公斤/分钟
点击unloading选项钮,对照图10进行设置。
outputunloadingrule设为:
PUSHtoSHIP
图10roat1_t的unioading设置道路roatt_1详细设定
outputto…规则设为:
PUSHtoroad1_0
至此元素定义完毕!
由于我和大家一样,都是当之处,希望大家及时指出,谢谢!
Witness的初学者,文中难免有错误和不
几个重要的函数(Step4)[参考]
实验2垃圾回收物流仿真系统(几个重要的函数)
NFree(vehicle.name):
返回车辆剩余载重量;
NPARTS(buffer.name):
返回容器元素中实物数量;
NDEMANDS(vehicle_name):
返回车辆未完成任务数;
CALL叫车函数,例如CALLdumpcart,get1,road1_t,0的意思是请求车辆dumpcart把getl处的货物运送到road1_t。
VSEARCH在指定路径上搜索车辆。
例如:
VSEARCHCorppark,road0_1,road1_0,road1_t,roadt_1,road1_2,road2_1,get1,get2
意思是在垃圾回收物流系统所有路径上搜索车辆。
返回实验专题
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 垃圾 回收 物流 仿真 系统 设计