Flexsim大型仿真项目模型经验分享:Lessons from a Massive Model
作者:Posted by Bill Proctor/ February 25, 2015/ ArticleSometimes you have to take a leap of faith when taking on a new project. Last year I had the opportunity to develop a FlexSim model of a 1,000,000 square-foot, multi-story distribution center operation. The client wanted a comprehensive model that could emulate all of their major operations, from receiving, put-away and picking to sorting, packaging and shipping. It was a major undertaking so, although I was comfortable completing the project, I was still nervous about FlexSim’s ability to effectively handle such a large system.
Through the completion of this project, I gained a good understanding of some of the challenges and solutions for working with large FlexSim models that I would like to share at this time.
进行一个新的项目有时需要一些跳跃性的思维。去年我有机会开发一个10万平方英尺的多层配送中心运作FlexSim模型。
客户想要一个可以模拟他们,从收货、堆放、分拣到储存、打包、发货在内的所有主要运作流程的全面模型。尽管我非常顺利地完成了项目,由于当时我对自己是否拥有高效地处理这种大型FlexSim系统的能力仍然心存疑虑,因此这对我来说的确是一个重大的挑战。通过该项目的完成,我更好地理解了如何处理大型FlexSim模型的挑战,我很乐意在此跟诸位分享。
System Memory is a Big Deal
Although FlexSim is a 64-bit software package, it is absolutely key to find ways to be “frugal” with your computer memory usage for larger models.
•I used data bundles versus tables, for example, to store model information. This helped considerably since data bundles use far less memory space than tables and can dynamically grow/shrink as necessary to hold the required data.
•An example of where this helped was in the storage of order wave information. At the beginning of a simulated day, the model would randomly generate up to 1.3MM lines (11 columns) of order information based upon user-defined order characteristics. Using a table to store this amount of data generated a huge memory overhead for the model.
•One thing to note is that it is more difficult to review data in bundles (vs. tables). One solution is to create scripts that will export the bundle data to an external file for review as needed.
系统内存是一个大问题
尽管Flexsim拥有64位的软件包,想方设法“节约”你的内存使用在大型模型中显然还是非常关键的。
• 我使用数据包来代替表格,用以存储模型信息等。由于数据包所需的内存空间更少,而且还可以动态的扩大或缩小来保存需要的数据。
• 以其帮助存储订单流信息为例,在一个仿真日的开始,模型将会随机产生根据用户自定义属性的130万行(11列)的订单信息。如果使用全局表来存储这些数据,模型将会占用巨大的内存空间。
• 不过值得一提的是,与全局表相比,数据包信息比较不利于阅读。一个解决方案是:必要时创建一个脚本将数据包的数据导出到外部的文件中进行查阅
Model Editing Challenges
It is progressively more difficult to make model changes as the model size/complexity grows.
•One thing that I did to counteract this potential issue was to create Object Groups for similar model elements. This enabled me to select and modify multiple elements simultaneously during the development and experiment phases of the project.
•In my model, for example, I had Object Groups for Order Sorting Locations (5,000+), Shipping Positions (350+), VAS Stations (350+) and Buffer Lanes (120+) which allowed me to quickly make changes based upon revised information.
•In addition to Object Groups, I also used User Commands extensively so that most of the model logic could be accessed/modified from a few places. This became an efficient way to debug the model during the development phase and modify the logic to run experiment alternatives towards the end of the project.
建模时遇到的挑战
随着模型尺寸和复杂度的增长,模型的更改变得越来越困难。
• 我用来解决这个潜在问题的一个办法是将模型相似的元素创建成组,这是的我可以在项目开发和试验阶段同时选择和修改多个元素。
• 例如,在我的模型中拥有订单排序组(5000+组件)、发货组件(350+组件)、分拣站(350+组件)以及暂存区(120+组件),使得我可以根据修改信息快速做出模型修改。
• 除对象组外,我还使用了广泛的用户命令,以便从几处位置就可以访问或修改大部分的模型逻辑。这个办法不用等到整个项目建模完成运用试验器,直接在开发阶段和模型修正阶段就可以有效地进行模型的调试。
Distribution Center Model Characteristics
•90,000+ different SKU’s stored in +3MM rack locations
•35,000+ orders to pick, sort, package and ship per day
•5,000+ order sorting locations
•1,200+ conveyors
•Areas Modeled: trailer receiving, inbound material operations, put-away, wave picking, staging, wave sorting, value-added services, outbound QA, manifesting, manual packaging, and shipping
配送中心模型的参数
• 超过9000个货物存储单位;
• 每天超过35000个订单需要拾取、分拣、包装、发货;
• 超过5000个订单分拣口;
• 超过1200条传送带;
• 模拟的区域包括:拖车接收、入料运作、上架、成批领料、暂存、分批分拣、增值服务、出货质检、仓单记录、手动包装、发货。
Comments, Comments, Comments
Finally, it’s more important than ever to use comments to document your model logic in a large model. As complexity grows, it gets harder to remember how individual elements work together within the system.
In the end, the project was considered a success and a great investment by the client. The project team was able to use the model to validate the concept design performance over the planning period, identify opportunities for design improvement, and clarify/refine a shared understanding of how the system will actually work.
注释、注释、注释(因为很重要所以要说三遍)
最后,在大模型中正确有效地使用注释比什么都重要。随着复杂性的增长,工程师很难记住每个实体在系统中如何运作。
最终,项目是否成功,投资回报是否值得都要由客户来决定。项目团队是可以运用模型在概念设计阶段就来验证项目的绩效,分析设计提升的可能性,以及阐明或提炼出真实系统的运作情况。
About Bill Proctor
William (Bill) Proctor, PE, MSODA has been using simulation modeling as a systems design and improvement tool for nearly 30 years. He is currently the president of Epicenter Development Group, an independent industrial engineering consulting firm, and has worked with over 100 organizations within a wide variety of manufacturing, service, retail and supply-chain industries. He holds a B.S. in Industrial Systems Engineering from The Ohio State University and a M.S. in Organizational Design and Analysis from Weatherhead School of Management.
关于作者比尔•普罗克特
威廉(比尔)普罗克特,MSODA公司项目工程师。他已经将仿真建模作为系统设计和提升的工具已经将近30年,目前是Epicenter Development集团(一家独立的工业工程咨询公司,为超过100家包括制作业、服务业、零售业和供应链企业提供多种解决方案)的总裁。他拥有俄亥俄州立大学的工业系统学士学位和韦瑟黑德管理学院的机构设计和分析硕士学位。 写的真的很不错 帮帮顶顶!! 小伙伴们在哪里~ 你们觉得楼主有我萌吗?`(*∩_∩*)′ 十几年的网站了 很不错 看完楼主的帖子,我的心情竟是久久不能平静。正如老子所云:大音希声,大象无形。我现在终于明白我缺乏的是什么了,正是楼主那种对真理的执着追求和楼主那种对理想的艰苦实践所产生的厚重感。面对楼主的帖子,我震惊得几乎不能动弹了,楼主那种裂纸欲出的大手笔,竟使我忍不住一次次地翻开楼主的帖子,每看一次,赞赏之情就激长数分,我总在想,是否有神灵活在它灵秀的外表下,以至能使人三月不知肉味,使人有余音绕梁、三日不绝的感受。楼主,你写得实在是太好了。我惟一能做的,就只有把这个帖子顶上去这件事了。 谁告诉我工业工程出路在哪 工业工程已经深深的代入到了各个行业 每次都是诱惑我们前来送经验…^_^