1、资料配送中心仿真与分析第十三章 配送中心仿真与分析13.1 建立概念模型13.1.1系统描述配送中心时从事货物配送并组织对用户的送货,以实现销售和供应服务的现代流通设施。它不同于传统的仓储设施, 在现代商业社会中,配送中心已经成为连锁企业的商流中心、物流中心、信息流中心,是连锁经营得以正常运转的关键设施。下面是一个典型的配送中心建模过程,该配送中心从三个供应商进货,向三个生长商发货。仿真的目的是研究该配送中心的即时库存成本和利润,并试图加以改善。13.1.2系统数据供货商(三个):当三个供应商各自供应的产品在配送中心的库存小于10件时开始生产,库存大于20件时停止生产。供应商一和供应商二分别以
2、4小时一件的效率向配送中心送产品,供应商提供一件产品的时间服从36小时均匀分布。配送中心发货:当三个生产商各自的库存大于10件时停止发货。当生产商一的库存量小于2时,向该生产商发货;当生产商二的库存量小于3时,向该生产商发货;当生产商三的库存量小于4时,向该生产商发货。配送中心成本和收入:进货成本3元/件;供货价格5元/件;每件产品在配送中心存货100小时费用1元。生产商(三个):三个生产商均连续生产。生产商一每生产一件产品需要6小时;生产商二每生产一件产品的时间服从39小时的均匀分布;生产商二每生产一件产品的时间服从28小时的均匀分布。13.1.3概念模型供货商一供货商二供货商三生产商一生产
3、商二生产商三配货中心库存一库存二库存三13.2 建立Flexsim模型第1步:模型实体设计模型元素系统元素备注Flowitem产品Source发生产品3个Source发生产品的速度相同且快于供货商供应速度模型前面的三个Processor(按模型流程)供货商3个Processor加工速率不同,按照模型的系统数据进行设定Rack配送中心3个Rack分别对应3个供货商Queue生产商仓库3个Queue订货条件不同,根据模型的系统数据进行设定模型后面的三个Processor(按模型流程)生产商3个Processor加工速率不同,按照模型的系统数据进行设定Sink产品收集装置产品的最终去处第2步:在模型
4、中加入实体从模型中拖入3个Source、6个Processor、3个Rack、3个Queue和1个Sink到操作区中,如图13-1所示:图13-1 模型实体布局图第3步:连接端口根据配送的流程,对模型做如下的连接:每个Source分别连到各自的Processor,再连到各自的Rack,每个Rack都要与后面的每一个Queue进行连接(配送中心送出产品对三家生产商是均等的),每一个Queue再连接到各自的Processor,最后三个Processor都连到Sink。如图13-2所示:图13-2 连接后的模型实体布局图第4步:Source参数设置因为三个Source在这里只是产生产品的装置,所以对
5、三个Source做同样的设定。为了使Source产生实体不影响后面Processor的生产,应将它们产生实体的时间间隔设置的尽可能小。双击一个Source打开参数设置页。在Source项目下的Inter-Arrivaltime下拉菜单中选择Constant Value。如图13-3所示:图13-3 Inter-Arrivaltime下拉菜单点击Inter-Arrivaltime下拉菜单后的按钮,在弹出的编辑框中进行如下编辑:(粗体为改动部分)“Return constant time of 1 .” 如图13-4所示:图13-4 Source发生产品的时间间隔编辑窗口点击OK保存退出。然后对其
6、它两个Source做同样的设置。第5步:Processor(供货商)参数设置三个Processor相当于三个供货商,根据预先设计好的数据对其进行设置,为了描述的需要,我们按照模型中由上至下的顺序依次将三个Processor看作供货商一、供货商二、供货商三。双击最上面的Processor打开参数设置页,在ProcesTimes项目下Process Time的下拉菜单中选择默认设置。如图13-5所示:图13-5 Processor的参数编辑窗口点击Process Time下拉菜单后的参数编辑按钮,在弹出的编辑框中进行如下编辑:(粗体为改动部分)“Return constant time of 4
7、.” 如图13-6所示:图13-6 Constant Value的参数编辑窗口在这个模型中,我们将1个单位时间定义为1小时,那么这条指令的意思就是该供应商在收到订单后的成产效率为每4小时1个产品。根据预先设计的系统数据,供货商一和供货商二的生产效率是一样的,都为每4小时1个产品,所以对中间的Processor也进行同样的操作即可完成设置。对于最下面的Processor,在Process Time的下拉菜单中选择Uniform Distribution(均匀分布)。如图13-7所示:图13-7 Process Time下拉菜单点击Process Time下拉菜单后的参数编辑按钮,在弹出的编辑框中
8、进行如下编辑:(粗体为改动部分)“A Uniform distribution with a minimum value of 2 and a maximum value of 6 using random number stream 1 .” 如图13-8所示:图13-8 Uniform Distribution的参数编辑窗口这条指令的意思是该供应商在收到订单后每生产1个产品的时间服从26的均匀分布。第6步:Rack参数设置双击一个Rack打开参数设置页。在RackTriggers项目下的OnEntry下拉菜单中选择Close and Open Ports。如图13-9所示:图13-9 On
9、Entry下拉菜单点击OnEntry下拉菜单后的参数编辑按钮,在弹出的编辑框中进行如下编辑:(粗体为改动部分)“If content(current)=20 then closeinput ports of the inobject(current,1) object.” 如图13-10所示:图13-10 Close and Open Ports的参数编辑窗口这条指令的意思是,如果Rack的当前存储产品数增加到20的话就关闭与它的输入端口1相连的实体(即Processor)的输入端口,这就相当于当供货商一提供的产品达到20的库存时就配送中心就停止供货商一的供货。说明:语句content(cur
10、rent)=20表示当前实体中临时实体的个数等于20;语句closeinput表示关闭一个实体的输入端口;对应的openinput表示打开一个实体的输入端口,后面将会用到这个指令;语句inobject(current,1) 表示与当前实体输入端口1相连的实体。类似的,在RackTriggers项目下的OnExit下拉菜单中选择Close and Open Ports。点击OnEntry下拉菜单后的参数编辑按钮,在弹出的编辑框中进行如下编辑:(粗体为改动部分)“If content(current)=10 then openinput ports of the inobject(current,
11、1) object.” 如图13-11所示:图13-11 Close and Open Ports的参数编辑窗口这条指令的意思是,如果Rack的当前存储产品数减少到10的话就打开与它的输入端口1相连的实体(即Processor)的输入端口,这就相当于当来自供货商一的产品小于10个的时候供货商一就恢复对配送中心的供货。我们对另外两个货架进行同样的设置。第7步:Queue参数设置三个Queue在模型中代表三个生产商的仓库,它们根据自己的需求向配货中心订货。为了描述的需要,我们按照模型中由上至下的顺序依次将三个Queue和Processor看作生产商一、生产商二、生产商三。双击最上面的Queue打开
12、参数设置页。在Queue项目下,将Maximum Content改为15。如图13-12所示:图13-12 Queue参数设置页点击Apply保存设置。在Flow项目下的Pull选项前面点击打勾。如图13-13所示:图13-13 Queue参数设置页的Flow项目点击Pull From Port下拉菜单后面的代码编辑按钮,对代码进行如下的编辑(粗体为更改部分):“return duniform(1,3);” 如图13-14所示:图13-14 Pull From Port代码设置页说明:Pull命令表示实体将按照自己的需求从它前面的输出端口拉入所需实体(而不是被动的接受前面端口送来的实体);re
13、turn duniform(1,3)语句表示Queue从它前面的三个Rack机率均等的拉入实体;duniform(1,3)命令表示从1到3的均匀离散整数分布。经过这样的设置以后,配送中心的三个Rack将有均等的机会将自己的产品送到这个Queue。在QueueTriggers项目向的OnEntry下拉菜单中选择Close and Open Ports。如图13-15所示:图13-15 OnEntry下拉菜单点击OnEntry下拉菜单后的参数编辑按钮,在弹出的编辑框中进行如下编辑:(粗体为改动部分)“If content(current)=10 then closeinput ports of t
14、he current object.” 如图13-16所示:图13-16 Close and Open Ports的参数编辑窗口这条指令的意思是,如果Queue的当前存储产品数增加到10的话就关闭它的输入端口,这就相当于当生产商一的库存产品达到10的时候配送中心就不再送货给它。类似的,在QueueTriggers项目下的OnExit下拉菜单中选择Close and Open Ports。如图13-17所示:图13-17 OnExit下拉菜单点击OnExit下拉菜单后的参数编辑按钮,在弹出的编辑框中进行如下编辑:(粗体为改动部分)“If content(current)=2 then openi
15、nput ports of the current object.” 如图13-18所示:图13-18 Close and Open Ports的参数编辑窗口这条指令的意思是,如果Queue的当前存储产品数减少到2的话就打开它的输入端口,这就相当于当生产商一的库存产品减少到2的时候配送中心继续送货给它。保存退出。对于剩下的两个Queue,我们所做的相同设置是:改变Maximum Content为15,点选它们Flow项目下的Pull选项并进行相关的代码编辑,对QueueTriggers项目下的OnEntry触发进行同样的设置。不同的设置是对QueueTriggers项目下的OnExit触发进行的修改和编辑。对于中间的Queue,我们在OnExit下拉菜单中仍然选择Close and Open Ports。然后点击OnExit下拉菜单后的参数编辑按钮将指令改为:(粗体为改动部分)“If content(current)=3 then openinput ports of the current object.” 如图13-19所示:图13-19 Close and Open Ports
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1