ExtendSim培训

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

王岩峰美国波士顿大学制造工程系博士美国工业工程师协会(IIE)资深会员刃之砺信息科技(上海)有限公司ExtendSim入门培训(离散事件仿真)声明ExtendSim培训系列视频旨在促进ExtendSim仿真工具的正确和有效使用。本视频录制只看重知识的交流,而由于能力有限,视频录制本身由非专业人士完成。诸多不足请学习者谅解。说明(1)本视频针对ExtendSim版本8(2)版本8演示版可以从这里下载(3)ExtendSim版本8和版本7差别不是特别大,用户也可以使用清华大学教材附带光盘中的版本7学生版初学ExtendSim仿真的诀窍:(1)弄清楚仿真作用(2)弄清楚ExtendSim基本操作(3)弄清楚ExtendSim最重要的模块(4)弄清楚一旦逻辑复杂,如何扩展(5)弄清楚数据如何交换(Excel,ODBC)(1)弄清楚仿真作用请参考“ExtendSim介绍”视频(2)弄清楚ExtendSim的基本操作ExtendSim是•搭积木的益智类游戏•刻画流程的运作规律•提升关键绩效指标•找到资源分配、占用、释放的最佳方式模块组合模块连线克隆分层贴图图形着色文字/字体ExtendSim主要模块库模块库模块数量说明Item31物件(实体)处理模块Value30数值(信息)处理模块Plotter14图表绘制模块Animation2D3D9二维和三维动画Rate11基于流速(批量化处理)模块Utilities16辅助支持模块Electronics44电子电路设计对一般离散系统来说,最重要的模块库是Item和ValueExtendSim主要模块库ExtendSim可以从任何一个模块库中拖拉模块组成模型。ExtendSim像砖厂,提供了优质的砖头,如何把它们建成心目中最完美的建筑,还需要优秀的设计师和施工队。用户就是设计师和施工队。ExtendSim基本构成ExtendSim模块之间有两种逻辑流。一种是物件(Item),代表系统中的物体。物件可被赋予属性(预制属性和自定义属性)和优先级。物件的涵义很广,既可以代表被处理的物体,包括生产零部件、病人和通讯传输中的信息包等,也可以代表处理的资源,包括人员、设备和工具等。仿真模型中可以跟据需要在这两个角色之间自由转换。在二维模型中,默认的动画形态是一个绿色的小球,用户可以根据需要更改这个小球的图片。物件的传输一般需要耗费时间。第二种逻辑流是数值或者说是信息(Value),在模型运行期间不断变化。所谓的数值是一个单纯的数,包括队列长度、统计值和容器中液面高度等等。这些数值可以是输入值,也可以是统计结果,或者是某种数据存储的地址索引等等。这些信息往往在仿真运行中决策判断时需要。数值或者信息的传递是不需要耗费时间。ExtendSim基本构成ExtendSim模块的端口种类种类输入输出说明数值(Value)模块利用数值(信息)的输入输出端口传递数值(信息)物件(Item)Item或者Rate模块库中的模块通过物件端口传递物体(实体)流体(Flow)离散速率模块库中的模块传递流体。通用(Universal)通用输入端口更常用,可以接收来自数值、物件、流体和用户自定义端口的任何输出类型端口数组(Array)用于通过端口同时传递一组数值(信息)用户定义(UserDefined)用户可以通过编程改变自定义端口的类型。Activity模块ExtendSim基本构成ExtendSim模块的端口种类•所有输入端口命名以“In”结尾,输出端口命名以“Out”结尾(大小写不区分)。可以通过修改名称的结尾在输入和输出之间转换•用户可以在自己设定的模块上添加任意端口,包括分层模块•端口的添加按钮在工具栏最右侧•新加入的端口默认为输入端口,用户可以通过修改端口的结尾命名来改变成输出端口•为了动画需要,用户可以选择菜单中Model-HideConnectors隐藏端口ExtendSim基本构成ExtendSim模块之间的连线•物件端口之间的连线往往表明了物件流转的路径;二维模型中的连线可以在三维动画窗口中自动生成三维物体移动路径。•数值端口之间的连线表明了数值(信息)传递的通路。•连线的线型可以通过菜单Model-ConnectionLines定义•连线可以通过菜单Model-HideConnections隐藏•ExtendSim支持命名连线,大大简化连线的密集程度,便于组织。用户在模型任何地方双击,激活文本输入,就可以输入连线名称;连接到相同命名上的连线为实际连通在一些的连线,例如ExtendSim基本构成ExtendSim模块基本结构•ExtendSim模块100%开源,选择模块后右键选择OpenStructure•每个模块的源代码由对话框设计和代码设计两部分组成。对话框设计包括用户需要输入的参数和观察的结果,见右图•添加对话框中的控件是通过菜单Develop-NewDialogItem…实现•添加对话框中的分页是通过Develop-NewTab实现ExtendSim基本构成ExtendSim模块基本结构•代码设计分为五个部分,包括动画设计、端口定义、变量定义、模块帮助和模块源代码。见右图•这个窗口也是ExtendSim集成开发环境的组成部分,用户可以在这个环境中设定断点,进行代码调试。•关闭模块时,会自动提示错误信息,如果没有错误,则自动编译成机器代码。动画设计端口定义变量定义模块帮助模块源代码(3)ExtendSim15个最重要模块(1)流程中资源要素和实体的产生:Create,ResourceItem,ResourcePool,ResourcePoolRelease(2)流程中各种延迟和处理:Activity(3)流程中资源属性的界定:Get,Set(4)流程中路径流转:SelectItemIn,SelectItemOut,Gate(5)流程中资源的合并和拆分:Batch,Unbatch(6)流程中的队列等待:Queue,QueueEquation(7)流程中的决策:Equation(I)Activities:Activity,ConveyItem,TransportItem,WorkstationBatching:Batch,UnbatchDataAccess:Read(I),Write(I)Information:CostbyItem,CostStats,History,InformationProperties:Equation(I),Get,SetQueues:Queue,QueueEquation,QueueMatchingResources:ResourceItem,ResourcePool,ResourcePoolRelease,Shift,ShutdownRouting:CatchItem,Create,Exit,SelectItemIn,SelectItemOut,ThrowItem,GateExecutive离散事件仿真:(1)描述了大部分现实系统随时间变化的演变(2)仿真的运行是由在不确定时间点上发生的事件驱动(3)仿真时间是跳跃的,间隔不一定相等,有时是不确定的(4)因为是模拟随时间变化的演变,因此需要包含延迟模块,包括作业、运输,或者广义的活动(5)在ExtendSim中,主要由Item模块库中的模块搭建而成,如果仿真中需要传递数据或信息,还可能包含Value模块库中的模块。ExtendSim模拟离散事件仿真,需要注意:(1)模块可以来源于Item和Value模块库中的模块。(2)至少有一个可以延迟时间的模块,例如Activity,Transport,ConveyItem或Workstation,否则时间无法向前推进。(3)必须有Executive模块,而且放置于模型的左上角,担当离散事件时钟的角色。(4)必须有物件生成模块,模拟需要被处理的物体或有处理能力的资源。生成模块包括Create和ResourceItem。默认情况下,产生的物件以绿色小球作为二维动画图片。(5)模块被激发的机制每个模块详细功能中文说明参见模块库中模块的类型Item模块库中的模块根据对“绿色小球”处理和滞留的时间分为三类:Residence(驻留),Passing(穿过),Decision(决策)。每个Item模块在对话框左下角都标注了属于哪种类型(BlockType)。大部分类型都比较直观,不必刻意去记住。种类特点Residence(驻留)驻留类型的模块可以让绿色小球在模块内停留一段时间。Passing(穿过)穿过类型的模块只是让绿色小球一带即过,不产生任何时间停留。这些模块只是为了辅助模型的逻辑。Decision(决策)决策模块在决定绿色小球走哪个分支的时候,根据用户选项,既可能暂留绿色小球,也可能不予暂留。ExtendSimItem模块库中模块的类型每个模块详细功能中文说明参见建模思路抓住(离散事件)仿真的本质:有限资源的分配、占用、释放的方式的研究(1)什么是有限的资源?(2)谁在消耗有限的资源?(3)资源在各个环节是如何分配、占用和释放的?(4)时间是怎样向前推进的?在哪些环节上有时间延迟?(5)系统中有多少种类物件?(6)它们是怎样走完整个流程的?有哪些流程是重合的,哪些是分离的?(7)什么是模型的量化指标(观察指标、目标指标)?(8)什么是模型可控变量(可以改变量化指标的变量)?(4)ExtendSim如何扩展Equation(I)ExtendSim编程(1)ExtendSim提供了集成开发环境、编译环境和调试环境,用户无须安装其他编译器。(2)起步最容易的编程方式是将程序嵌入到Equation或者Equation(I)模块中,如果是决定队列排列方式的算法,可以嵌入到Queue,Equation模块。这是最容易的操作,也无须对ExtendSim运作机制有太深了解。而且这些模块关闭时就即刻编译成机器代码(如果有错误,提示出错信息),模块运行效率高。(3)如果自己开发模块,可以在已有的功能相近模块基础上开发,不必闭门造车,从零开始;(4)如果希望从零开始开发,需要了解ExtendSim消息传递机制,事件触发机制(见开发手册)。最好的学习方法就是打开模块的结构(右键点击模块,选择OpenStructure)。ExtendSim编程ExtendSim采用ModL语言,和C非常类似,保持C语言作为相对底层语言运行的速度、效率以及低内存,但ModL和C之间的主要差别*ModL不区分大小写;ModL比C语言有更多种字符串类型;ModL是受事件驱动的过程语言;ModL中的事件驱动机制可以方便扩展,允许编程人员编写更复杂消息处理逻辑。*具体区别可以参考开发手册案例1问题模拟一个简单的生产线关键模块(Item)Create,Queue,Activity,Exit,SelectItemOut•产品每隔4分钟到达一个,间隔时间服从指数分布;•有两台设备,设备1不具备冷却功能,设备2具备冷却功能;•设备1的处理时间为6分钟;设备2为8分钟•只有25%的产品需要冷却处理。案例2问题车辆最佳配载关键模块(Item)Create,Queue,Activity,Batch,Unbatch,Exit辅助模块Information(Item),Plotter,DiscreteEvent(Plotter),Constant(Value),Plotter,Scatter(Plotter)PartArrivalPartWaitingBatchingOvenUnbatchingCalculateCycleTimeandExit产品按照指数分布达到,间隔为1分钟。产品按照一定数量进行成批处理后放入运输车,每一车运输时间为2

1 / 45
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功