垃圾回收物流仿真系统设计1.垃圾回收物流系统介绍城市某一区域,共有7个居民小区,每个小区有一个固定垃圾投放处,两个垃圾箱分别投放完全废弃垃圾和可回收利用垃圾;每天有专门公司(垃圾处理公司)派运输车收集垃圾,将垃圾从居民区运送之中转站,再由中转站运至目的地—垃圾处理中心。仿真程序研究如何设计物流系统,能够使收集系统在满足时间约束、载重约束的条件下,使垃圾处理公司的物流总成本最低。系统配置的项目主要有车辆载重量、随车工作人员数、客户满意度。2.数据信息仿真系统涉及的数据信息如下:(1)地理及需求信息各个收集点所有的人口数、距离垃圾转运站、公司停车场的距离信息如表一所示。各收集点之间以及停车场和转运站之间的距离信息如表二所示。表一收集点信息收集点名称收集点居民数people(i)(千人)距离停车场距离distance(ip)(km)距离垃圾转运站距离distance(it)(km)Dump0011.5616Dump0021.451627Dump0031.652624Dump0041.853836Dump0051.42826Dump0062.051614Dump0071.6108表二点间距离路径起点路径终点距离(km)符号Tran_stationCorppark11Distance(pt)Dump001Dump00210Distance(12)Dump002Dump00310Distance(23)Dump003Dump00412Distance(34)Dump004Dump00510Distance(45)Dump005Dump00612Distance(56)Dump006Dump0076Distance(67)(2)与收集车辆有关的信息①固定成本[price(i)]:收集车辆的购买费用;②可变成本[cost(i)]:车辆的行驶费用、维护费用和雇员工资;③行驶速度:分为空车行驶速度[unloadspeed(i)]和载重行驶速度[loadspeed(i)];④收集时间[loadtime(i)]:在垃圾收集点收集垃圾所需的时间⑤卸载时间[unloadtime(i)]:在转运站卸载垃圾所需的时间具体信息如表三所示:表三收集车辆信息车辆名称载重t固定成本万元可变成本元/km载重速度km/h空载速度km/h人员人人员工资元/天.人收集时间min卸载时间min车1X12+X1X16072P1603+y*6/P13+X1*6/P1车2X22+1.2*X2X26072P2602+y*8/P22+X2*6/P2说明:车1用来收集不可回收垃圾;车2用来收集可回收利用垃圾;X1,X2为现有两种车的吨位数,X1取值:3,4或5吨;X2取值:1.5;2;2.5;y为每次收集的垃圾量,单位--吨;P1,P2为两种车可配备的随车工作人员数(可以是1,2,3)。(3)与垃圾相关的信息①人均垃圾量:平均每人每天产生的垃圾数量②垃圾比例:各种垃圾成分所占比例假设人均垃圾量服从均值为1.2kg/天的埃尔郎分布,垃圾成分分为两类:一类为可重复利用资源,一类为无用需销毁垃圾,两者比例为1:2。(4)收集垃圾的成本函数现在假设仿真一年365天的垃圾回收工作,决定两种型号的车配置何种吨位以及随车工作人员数,垃圾回收物流成本(TotalLogisticCost,TLC)最低。TLC=车1成本+车2成本车I所耗成本=I的固定成本+I的可变成本+I的服务时间成本+I的人员成本即:TLC=CC1+CC2CC[i]=X[i]+V[i]+S[i]+P[i]*365*60S[i]=(runtime[i]-240)*mS[i]为垃圾回收的服务时间成本,m为收集时间对服务时间成本的惩罚因子。垃圾回收公司在十二点之前收集完毕,社会效应好,给予奖励;在十二点后完成,社会满意度低,影响公司信誉,成本增加。runtime[i]为垃圾车将垃圾全部回收完成的最终时间,也即垃圾车每天的运行时间;3.系统逻辑结构此垃圾回收物流系统的逻辑结构分为四个字模块:垃圾产生模块、叫车模块、收集模块、收工模块、数据处理模块。(1)垃圾产生模块每天收集工作开始时,系统根据小区的人数、人均垃圾量、两种垃圾量的比例,通过爱尔朗随机分布函数,随机产生各个小区的两种垃圾数量,分别存放入各个小区的两个垃圾箱内。(2)叫车模块在垃圾存放入各个小区的两个垃圾箱过程中,根据每种垃圾的总量以及每种垃圾车的载重量,生成叫车的次数。(3)收集模块叫车次数确定之后,车辆根据需求,沿着最短路径依次收集垃圾。在收集过程中,在一个垃圾点,如果垃圾车收集满了或当天的收集工作全部完成,车辆驶向垃圾中转站,进行卸载操作;如果垃圾车未满,则驶向下一最近垃圾收集点继续收集。(4)收工模块当天的收集工作全部完成之后,车辆驶向公司停车场,当天收集工作完毕。(5)数据处理模块每天车辆收工时,4.仿真模型的建立根据系统逻辑结构和数据信息,我们建立具有7个垃圾收集点、一个垃圾转运站的WITNESS垃圾回收仿真模型。具体步骤如下:(1)元素定义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)buffer各小区可回收利用垃圾的垃圾箱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每天对两种垃圾车的需求次数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两车辆卸载垃圾所需的时间runtime(2,3)Real存储车辆的时间参数,runtime(k,1)存储仿真钟的当前数值,runtime(k,2)存储车辆k在当天的运行时间,runtime(k,3)存储车辆k在仿真过程中总的运行时间TimeweighReal时间惩罚因子timecost(2)Real时间惩罚成本sumcostReal目标函数objfun中用于统计系统运行的总费用定义一个实数型逻辑函数objfun(),用于计算和统计系统运行一年365天所花费的总费用。(2)元素显示display各个元素的显示设置如下图所示。(3)元素详细设计在该子模块中定义随着仿真钟的推进,装载垃圾的逻辑条件。该系统的工作班次制度采用每天工作8小时,每一仿真时间等价于现实时间一分钟。为了实现系统的仿真运行,需要对系统中的元素进行详细设计。具体设计如下:a.系统初始化程序设计(initializeactions)personum(1)=1.5personum(2)=1.45personum(3)=1.65personum(4)=1.85personum(5)=1.4personum(6)=2.05personum(7)=1.6!给各小区的人数赋初值,单位:千人FORnum=1TO7meandump(num)=1.2*personum(num)*1000NEXT!分别生成每天七个小区产生垃圾的均值setcapacityofdumpcart1tocapacitycart(1)setcapacityofdumpcart2tocapacitycart(2)!分别设定两个车辆的载重量,由变量数组capacitycart(1)和capacitycart(2)决定。unloadtime=0!卸载时间FORnum=1TO7moddemanda(num)=0moddemandb(num)=0!决定叫车次数的变量NEXTFORnum=1TO4roadchoicea(num)=0roadchoiceb(num)=0!最短路径控制变量NEXTFORnum=1TO3runtimea(num)=0runtimeb(num)=0!车辆运行时间控制变量NEXTintervaltime=1440!每天的分钟数timeweigh=5!时间惩罚因子laborneeda=1laborneedb=1!两辆车随车工作人员数!对变量赋初始值b.各个小区垃圾的详细设计垃圾元素详细设计表NameFirstarrivalInterarrivalLotsizeToDumpa10.00011440ERLANG(meandump(1)/3,3,1)PUSHtobuffera1Dumpa20.00021440ERLANG(meandump(2)/3,3,2)PUSHtobuffera2Dumpa30.00031440ERLANG(meandump(3)/3,3,3)PUSHtobuffera3Dumpa40.00041440ERLANG(meandump(4)/3,3,4)PUSHtobuffera4Dumpa50.00051440ERLANG(meandump(5)/3,3,5)PUSHtobuffera5Dumpa60.00061440ERLANG(meandump(6)/3,3,6)PUSHtobuffera6Dumpa70.00071440ERLANG(meandump(7)/3,3,7)PUSHtobuffera7Dumpb10.00011440ERLANG(meandump(1)/3,3,8)PUSHtobufferb1Dumpb20.00021440ERLANG(meandump(2)/3,3,9)PUSHtobufferb2Dumpb30.00031440ERLANG(meandump(3)/3,3,10)PUSHtobufferb3Dumpb40.00041440ERLANG(meandump(4)/3,3,11)PUSHtobufferb4Dumpb50.00051440ERLANG(meandump(5)/3,3,12)PUSHtobufferb5Dumpb60.00061440ERLANG(meandump(6)/3,3,13)PUSHtobufferb6Dumpb70.00071440ERLANG(meandump(7)/3,3,14)PUSHtobufferb7垃圾名称*一天的分钟数Meandump为通过各小区人数计算出来的变量数组决定垃圾的存放*决定每天各个小区的垃圾依次产生,以便于生产叫车次数。C.运输车辆详细设计NameUnloadspeedLoadspeedtoDumpcart11.21.0PUSHtocorppark(1)Dumpcart21.21.0PUSHtocorppark(2)车辆名称空载速度(km/min)实载速度生成时,放入