ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:66.76KB ,
资源ID:4360168      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4360168.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(垃圾回收物流仿真系统设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、垃圾回收物流仿真系统设计 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】垃圾回收物流仿真系统设计第十一章 垃圾回收物流仿真系统设计 垃圾回收物流系统介绍城市某一区域,共有7个居民小区,每个小区有一个固定垃圾投放处,两个垃圾箱分别投放完全废弃垃圾和可回收利用垃圾;每天有专门公司(垃圾处理公司)派运输车收集垃圾,将垃圾从居民区运送之中转站,再由中转站运至目的地垃圾处理中心。仿真程序研究如何设计物流系统,能够使收集系统在满足时间约束、载重约束的条件下,使垃圾处理公司的物流总成本最低。系统配置的项目主要有车辆载重量、随车工作人员数、客户满意度。本节内容

2、可以参看随书光盘models/垃圾回收仿真文件夹下的,模型运行结果参看此目录下的文件。 数据信息 仿真系统涉及的数据信息如下: 地理及需求信息各个收集点所有的人口数、距离垃圾转运站、公司停车场的距离信息如表所示。各收集点之间以及停车场和转运站之间的距离信息如表所示。表 收集点信息收集点名称收集点居民数people(i)(千人)距离停车场距离distance(ip)(km)距离垃圾转运站距离distance(it)(km)Dump001616Dump0021627Dump0032624Dump0043836Dump0052826Dump0061614Dump007108表 点间距离路径起点路径终

3、点距离(km)符号Tran_stationCorp park11Distance(pt)Dump001Dump00210Distance(12)Dump002Dump00310Distance(23)Dump003Dump00412Distance(34)Dump004Dump00510Distance(45)Dump005Dump00612Distance(56)Dump006Dump0076Distance(67) 与收集车辆有关的信息固定成本price(i):收集车辆的购买费用;可变成本cost(i):车辆的行驶费用、维护费用和雇员工资;行驶速度:分为空车行驶速度unloadspeed(

4、i)和载重行驶速度loadspeed(i);收集时间loadtime(i):在垃圾收集点收集垃圾所需的时间卸载时间unloadtime(i):在转运站卸载垃圾所需的时间具体信息如表所示:表 收集车辆信息车辆名称载重t固定成本万元可变成本元/km载重速度km/h空载速度km/h人员人人员工资元/天.人收集时间min卸载时间min车1X12+ X1X16072P1603+y*6/ P13+ X1*6/ P1车2X22+* X2X26072P2602+y*8/ P22+ X2*6/ P2说明:车1用来收集不可回收垃圾;车2用来收集可回收利用垃圾;X1,X2为现有两种车的吨位数,X1取值:3,4或5吨

5、;X2取值:;2;y为每次收集的垃圾量,单位-吨;P1,P2为两种车可配备的随车工作人员数(可以是1,2,3)。 与垃圾相关的信息 人均垃圾量:平均每人每天产生的垃圾数量;垃圾比例:各种垃圾成分所占比例。假设人均垃圾量服从均值为天的埃尔郎分布,垃圾成分分为两类:一类为可重复利用资源,一类为无用需销毁垃圾,两者比例为1:2。 收集垃圾的成本函数现在假设仿真一年365天的垃圾回收工作,决定两种型号的车配置何种吨位以及随车工作人员数,垃圾回收物流成本(Total Logistic Cost,TLC)最低。TLC=车1成本车2成本车I所耗成本=I的固定成本+I的可变成本+I的服务时间成本+I的人员成本

6、即:TLC=CC1+CC2CCi=Xi+Vi+Si+Pi*365*60Si=(runtimei-240)*mSi为垃圾回收的服务时间成本,m为收集时间对服务时间成本的惩罚因子。垃圾回收公司在十二点之前收集完毕,社会效应好,给予奖励;在十二点后完成,社会满意度低,影响公司信誉,成本增加。runtimei为垃圾车将垃圾全部回收完成的最终时间,也即垃圾车每天的运行时间; 系统逻辑结构此垃圾回收物流系统的逻辑结构分为五个子模块:垃圾产生模块、叫车模块、收集模块、收工模块、数据处理模块。垃圾产生模块 每天收集工作开始时,系统根据小区的人数、人均垃圾量、两种垃圾量的比例,通过爱尔朗随机分布函数,随机产生各

7、个小区的两种垃圾数量,分别存放入各个小区的两个垃圾箱内。叫车模块 在垃圾存放入各个小区的两个垃圾箱过程中,根据每种垃圾的总量以及每种垃圾车的载重量,生成叫车的次数。收集模块 叫车次数确定之后,车辆根据需求,沿着最短路径依次收集垃圾。在收集过程中,在一个垃圾点,如果垃圾车收集满了或当天的收集工作全部完成,车辆驶向垃圾中转站,进行卸载操作;如果垃圾车未满,则驶向下一最近垃圾收集点继续收集。收工模块 当天的收集工作全部完成之后,车辆驶向公司停车场,当天收集工作完毕。数据处理模块 每天车辆收工时, 仿真模型的建立根据系统逻辑结构和数据信息,我们建立具有7个垃圾收集点、一个垃圾转运站的WITNESS垃圾

8、回收仿真模型。具体步骤如下: 元素定义Difine建立仿真模型时,首先定义仿真模型中所需的元素,并设计它们的可视效果。我们将设计的元素分为两类实体元素和逻辑元素,名称如下。表 实体元素列表:元素名称类型说明dumpa(1) dumpa(7)Part七个小区不可回收的垃圾dumpb(1) dumpb(7)Part七个小区可回收利用的垃圾dumpcart(1)Vehicle专门回收dumpa的垃圾回收车dumpcart(2)Vehicle专门回收dumpb的垃圾回收车buffera(1) buffera(7)Buffer各小区不可回收垃圾的垃圾箱bufferb(1) bufferb(7)buffe

9、r各小区可回收利用垃圾的垃圾箱CorpparkTrack公司停车场,Transfer_stationBuffer垃圾转运站road(i,j)Track由节点实体i向节点实体j方向的道路road(j,i)track由节点实体j向节点实体i方向的道路Geta(1)geta(7)Track车辆将通过它们来进行垃圾a的回收Getb(1)getb(7)Track车辆将通过它们来进行垃圾b的回收表 逻辑元素变量列表:变量名称类型说明people(7)integer各小区的居民数量capacitycart(2)integer两种垃圾车每次可收集的垃圾数量,即载重量ndemand(2)integer每天对两种

10、垃圾车的需求次数labor(2)integer两种垃圾车的随车工作人员数SalaryReal工作人员每天工资price(2)Real两种垃圾车的购买价格costrate(2)Real两种垃圾车的运行费率unloadspeed(2)Real两种垃圾车的空载速度loadspeed(2)Real两种垃圾车的实载速度loadnum(2)integer两车辆到达垃圾收集点可收集的垃圾数量nfree(2)integer两车辆剩余载重能力Nparts7)integer每一垃圾收集点在特定仿真时点剩余垃圾量loadtime(2)Real两车辆收集垃圾所需的时间unloadtime(2)Real两车辆卸载垃圾所

11、需的时间runtime(2,3)Real存储车辆的时间参数,runtime(k,1)存储仿真钟的当前数值,runtime(k,2)存储车辆k在当天的运行时间,runtime(k,3)存储车辆k在仿真过程中总的运行时间TimeweighReal时间惩罚因子timecost(2)Real时间惩罚成本sumcostReal目标函数objfun中用于统计系统运行的总费用 定义一个实数型逻辑函数objfun(),用于计算和统计系统运行一年365天所花费的总费用。 元素显示display各个元素的显示设置如图所示。图 垃圾回收物流仿真系统可视化界面 元素详细设计在该子模块中定义随着仿真钟的推进,装载垃圾的

12、逻辑条件。该系统的工作班次制度采用每天工作8小时,每一仿真时间等价于现实时间一分钟。为了实现系统的仿真运行,需要对系统中的元素进行详细设计。系统初始化程序设计(initialize actions),通过选择系统菜单model/initialize actions菜单项,得到初始化程序编辑框,输入如下程序:personum (1) = personum (2) = personum (3) = personum (4) = personum (5) = personum (6) = personum (7) = !给各小区的人数赋初值,单位:千人FOR num = 1 TO 7 meandum

13、p (num) = * personum (num) * 1000NEXT!分别生成每天七个小区产生垃圾的均值set capacity of dumpcart1 to capacitycart(1)set capacity of dumpcart2 to capacitycart(2)!分别设定两个车辆的载重量,由变量数组capacitycart(1)和capacitycart(2)决定。unloadtime = 0 !卸载时间FOR num = 1 TO 7 moddemanda (num) = 0 moddemandb (num) = 0 !决定叫车次数的变量NEXTFOR num = 1

14、 TO 4 roadchoicea (num) = 0 roadchoiceb (num) = 0 !最短路径控制变量NEXTFOR num = 1 TO 3 runtimea (num) = 0 runtimeb (num) = 0 !车辆运行时间控制变量NEXTintervaltime = 1440 !每天的分钟数timeweigh = 5 !时间惩罚因子laborneeda = 1laborneedb = 1 !两辆车随车工作人员数!对变量赋初始值各个小区垃圾的详细设计表 垃圾元素详细设计列表NameFirst arrivalInter arrivalLot sizeToDumpa114

15、40ERLANG (meandump (1) / 3,3,1)PUSH to buffera1Dumpa21440ERLANG (meandump (2) / 3,3,2)PUSH to buffera2Dumpa31440ERLANG (meandump (3) / 3,3,3)PUSH to buffera3Dumpa41440ERLANG (meandump (4) / 3,3,4)PUSH to buffera4Dumpa51440ERLANG (meandump (5) / 3,3,5)PUSH to buffera5Dumpa61440ERLANG (meandump (6) /

16、3,3,6)PUSH to buffera6Dumpa71440ERLANG (meandump (7) / 3,3,7)PUSH to buffera7Dumpb11440ERLANG (meandump (1) / 3,3,8)PUSH to bufferb1Dumpb21440ERLANG (meandump (2) / 3,3,9)PUSH to bufferb2Dumpb31440ERLANG (meandump (3) / 3,3,10)PUSH to bufferb3Dumpb41440ERLANG (meandump (4) / 3,3,11)PUSH to bufferb4D

17、umpb51440ERLANG (meandump (5) / 3,3,12)PUSH to bufferb5Dumpb61440ERLANG (meandump (6) / 3,3,13)PUSH to bufferb6Dumpb71440ERLANG (meandump (7) / 3,3,14)PUSH to bufferb7垃圾名称*一天的分钟数Meandump为通过各小区人数计算出来的变量数组决定垃圾的存放*决定每天各个小区的垃圾依次产生,以便于生产叫车次数。运输车辆详细设计表 运输车辆详细设计列表NameUnload speedLoad speedtoDumpcart11210PU

18、SH to corppark(1)Dumpcart21210PUSH to corppark(2)车辆名称空载速度(km/min)实载速度生成时,放入公司停车场的车位垃圾箱详细设计设计垃圾放入垃圾箱时的活动,也即每个垃圾箱的“actions on input”中的程序。 on input:IF MOD (NPARTS (buffera1),cartcapacity(1) = 1 CALL dumpcart1, get1, road7_t, 1VSEARCH road0_1, corppark, road1_2, road1_0, road2_3, road3_4, road4_5, road5

19、_6, road6_5, road6_7, road7_t, roadt_7, road1_0, road3_6, road6_3, road7_0, road0_7, road2_1, geta1, geta2, geta3, geta4, geta5, geta6, geta7, getb1, getb2, getb3, getb4, getb5,getb6,getb7ENDIFmoddemanda (1) = MOD (NPARTS (buffera1),cartcapacity(1)程序解释:第一行:判断当buffera1中的垃圾的数量同车辆1的载重量取余为1时,发生ifendif之间

20、的活动;第二行:叫车dumpcart1,该车将在路径get1上装载垃圾,在路径road7_t上卸载垃圾,优先级为1;第三行至第五行:在所有路径上搜索车辆dumpcart1;第七行:汇总非整车垃圾的数量,带到buffera2中继续计算并叫车。Buffera2buffera7的actions on input:IF MOD (moddemanda (i-1) + NPARTS (buffera(i),cartcapacity1) = 1 CALL dumpcart1,geta(i),road7_t,0VSEARCH road0_1, corppark, road1_2, road1_0, road

21、2_3, road3_4, road4_5, road5_6, road6_5, road6_7, road7_t, roadt_7, road1_0, road3_6, road6_3, road7_0, road0_7, road2_1, geta1, geta2, geta3, geta4, geta5, geta6, geta7, getb1, getb2, getb3, getb4, getb5,getb6,getb7ENDIFmoddemanda (i) = MOD (moddemanda (I-1) + NPARTS (buffera(i),cartcapacity1)i表示本垃

22、圾箱的序号,为2,3,4,5,6,7;第一行:将其上一个垃圾箱的非整车垃圾数量同本垃圾箱中的垃圾数相加,然后与车辆一的载重量取余,当结果为1时,叫车。 垃圾箱bufferb1bufferb7的“actions on input”同垃圾箱buffera1buffera7的“actions on input”处理逻辑完全一样,只需要将buffera改为bufferb、dumpcart1改为dumpcart2、moddemanda改为moddemandb、geta改为getb即可。两点间运输路径上的程序设计下面以road2_3为例,加以说明其逻辑流程。其它路径类似,可以在路径的general det

23、ail 中的output to中加以查看。IF VEHICLE (road2_3,1) = dumpcart1 IF NPARTS (buffera3) 0 PUSH to geta3(1) ELSE PUSH to road3_4 ENDIFELSEIF VEHICLE (road2_3,1) = dumpcart2 IF NPARTS (bufferb3) 0 PUSH to getb3 ELSE PUSH to road3_4 ENDIFELSE WaitENDIF第一行到第六行:决定车辆dumpcart1到达路径road2_3末端时,它的运行路径。如果此时垃圾箱buffera3中有垃圾

24、,则车辆dumpcart1驶向路径geta3,进行垃圾收集(第二行到第四行);如果垃圾箱buffera3中没有垃圾,则车辆dumpcart1驶向路径road3_4。第七行到第十二行:决定车辆dumpcart2到达路径road2_3末端时,它的运行路径。如果此时垃圾箱bufferb3中有垃圾,则车辆dumpcart2驶向路径getb3,进行垃圾收集(第八行到第十行);如果垃圾箱bufferb3中没有垃圾,则车辆dumpcart2驶向路径road3_4。 如果是其他情况,等待(第十三行到第十四行)。路径get系列的设置在Get系列(Geta1geta7,Getb1getb7)路径中设置车辆的装载(

25、loading)程序和条件,它们的设定以及程序的处理流程基本相同,下面举geta2加以说明。其中装载数量(loadnum)和装载时间(loadtime)在general detail页的actions on front中设定;装载程序和条件在loading detail页中进行设定。General detail页的actions on front程序如下:IF NFREE (dumpcart1) = NPARTS (buffera2) loadnum = NPARTS (buffera2)ELSE loadnum = NFREE (dumpcart1)ENDIFloadtimea (1) =

26、3 + loadnum / 1000 * loadindexa / laborneedadayloadtimea = dayloadtimea + loadtimea (1)程序解释:第一行至第五行:如果车辆dumpcart1的空余容量NFREE(dumpcart1)不小于垃圾箱buffera2中的垃圾数量,则收集数量loadnum为垃圾箱buffera2中的所有垃圾;否则,收集数量loadnum为车辆的空余容量。第六行:计算本次收集所需的时间loadtimea(1),它是本次垃圾收集量、随车工作人员数以及收集时间系数的函数。图 路径geta2中的loading详细设计图路径geta2中的lo

27、ading detail页框的设定如图所示。在选中loading enabled(能够装载)前的复选框后,将会出现该界面上的其他内容。Transfer Mode(装载模式)有三种:if、call、always。我们选择条件模式if,在条件condition:框中输入条件表达式NPARTS(buffera2)0,即当垃圾箱buffera2中的垃圾数量大于零时,能够装载;装载数量等于Quantity to框中的变量loadnum的值;装载的时间需要Time to Load框中的变量loadtimea(1);装载的源在Input Loading Rule规则中进行设定,为“PULL from buf

28、fera2”,从垃圾箱buffera2中收集。road7_t的设定 车辆每次到达路径road7_t的末端时,都要进行卸载处理,所以对路径road7_t的详细设计项目包括卸载所需的时间,卸载模式等。通过路径road7_t的General detail页的actions on front 中设定卸载所需的时间,程序如下:IF VEHICLE (road7_t,1) = dumpcart1 unloadtime = 3 + 6 * NPARTS (dumpcart1) / 1000 / laborneeda dayunloadtimea = dayunloadtimea + unloadtimeEL

29、SE unloadtime = 2 + 6 * NPARTS (dumpcart2) / 1000 / laborneedb dayunloadtimeb = dayunloadtimeb + unloadtimeENDIF程序解释:第一行至第三行,根据函数VEHICLE()的结果,如果到达车辆是dumpcart1,就通过车辆dumpcart1中所装载的垃圾数量NPARTS (dumpcart1)、车辆dumpcart1的随车工作人员数laborneeda来确定卸载时间unloadtime (第二行),然后统计车辆dumpcart1的总的卸载时间dayunloadtimeb (第三行)。第四行至第七行,否则,也就是到达的车辆是dumpcart2,就通过车辆dumpcart2中所装载的垃圾数量NPARTS (dumpcart2)、车辆dumpcart2的随车工作人员数laborneedb来确定卸载时间unloadtime(第五行),然后统计车辆dumpcart2的总卸载时间dayunloadtimeb (第六行)。 图是路径road7_t设置中的另一项内容,就是

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1