ExtendSim培训

上传人:仙*** 文档编号:242533012 上传时间:2024-08-27 格式:PPTX 页数:45 大小:490.50KB
返回 下载 相关 举报
ExtendSim培训_第1页
第1页 / 共45页
ExtendSim培训_第2页
第2页 / 共45页
ExtendSim培训_第3页
第3页 / 共45页
点击查看更多>>
资源描述
,王岩峰,美国波士顿大学制造工程系博士,美国工业工程师协会(,IIE,)资深会员,刃之砺信息科技(上海)有限公司,ExtendSim,入门培训,(离散事件仿真),声明,ExtendSim,培训系列视频旨在促进,ExtendSim,仿真工具的正确和有效使用。本视频录制只看重知识的交流,而由于能力有限,视频录制本身由非专业人士完成。诸多不足请学习者谅解。,初学,ExtendSim,仿真的诀窍:,(,1,)弄清楚仿真作用,(,2,)弄清楚,ExtendSim,基本操作,(,3,)弄清楚,ExtendSim,最重要的模块,(,4,)弄清楚一旦逻辑复杂,如何扩展,(,5,)弄清楚数据如何交换 (,Excel, ODBC,),(,1,)弄清楚仿真作用,请参考“,ExtendSim,介绍”视频,(,2,)弄清楚,ExtendSim,的基本操作,ExtendSim,是,搭积木的益智类游戏,刻画流程的运作规律,提升关键绩效指标,找到资源分配、占用、释放的最佳方式,模块组合,模块连线,克隆,分层,贴图,图形着色,文字,/,字体,ExtendSim,主要模块库,模块库,模块数量,说明,Item,31,物件(实体)处理模块,Value,30,数值(信息)处理模块,Plotter,14,图表绘制模块,Animation 2D 3D,9,二维和三维动画,Rate,11,基于流速(批量化处理)模块,Utilities,16,辅助支持模块,Electronics,44,电子电路设计,对一般离散系统来说,最重要的模块库是 Item 和 Value,ExtendSim,主要模块库,ExtendSim,可以从任何一个模块库中拖拉模块组成模型。,ExtendSim,像砖厂,提供了优质的砖头,如何把它们建成,心目中最完美的建筑,还需要优秀的设计师和施工队。用,户就是设计师和施工队。,ExtendSim,基本构成,ExtendSim,模块之间有两种逻辑流。,一种是物件(,Item,),代表系统中的物体。物件可被赋予属性(预制属性和自定义属性)和优先级。物件的涵义很广,既可以代表被处理的物体,包括生产零部件、病人和通讯传输中的信息包等,也可以代表处理的资源,包括人员、设备和工具等。仿真模型中可以跟据需要在这两个角色之间自由转换。在二维模型中,默认的动画形态是一个绿色的小球,用户可以根据需要更改这个小球的图片。物件的传输一般需要耗费时间。,第二种逻辑流是数值或者说是信息(,Value,),在模型运行期间不断变化。所谓的数值是一个单纯的数,包括队列长度、统计值和容器中液面高度等等。这些数值可以是输入值,也可以是统计结果,或者是某种数据存储的地址索引等等。这些信息往往在仿真运行中决策判断时需要。数值或者信息的传递是不需要耗费时间。,ExtendSim,基本构成,ExtendSim,模块的端口种类,种类,输入,输出,说明,数值,(,Value,),模块利用数值(信息)的输入输出端口传递数值(信息),物件,(,Item,),Item,或者,Rate,模块库中的模块通过物件端口传递物体(实体),流体,(,Flow,),离散速率模块库中的模块传递流体。,通用,(,Universal,),通用输入端口更常用,可以接收来自数值、物件、流体和用户自定义端口的任何输出类型,端口数组,(,Array,),用于通过端口同时传递一组数值(信息),用户定义,(,User Defined),用户可以通过编程改变自定义端口的类型。,Activity,模块,ExtendSim,基本构成,ExtendSim,模块的端口种类,所有输入端口命名以“,In”,结尾,输出端口命名以“,Out”,结尾(大小写不区分)。可以通过修改名称的结尾在输入和输出之间转换,用户可以在自己设定的模块上添加任意端口,包括分层模块,端口的添加按钮在工具栏最右侧,新加入的端口默认为输入端口,用户可以通过修改端口的结尾命名来改变成输出端口,为了动画需要,用户可以选择菜单中,Model- Hide Connectors,隐藏端口,ExtendSim,基本构成,ExtendSim,模块之间的连线,物件端口之间的连线往往表明了物件流转的路径;二维模型中的连线可以在三维动画窗口中自动生成三维物体移动路径。,数值端口之间的连线表明了数值(信息)传递的通路。,连线的线型可以通过菜单,Model - Connection Lines,定义,连线可以通过菜单,Model - Hide Connections,隐藏,ExtendSim,支持命名连线,大大简化连线的密集程度,便于组织。用户在模型任何地方双击,激活文本输入,就可以输入连线名称;连接到相同命名上的连线为实际连通在一些的连线,例如,ExtendSim,基本构成,ExtendSim,模块,基本结构,ExtendSim,模块,100%,开源,选择模块后右键选择,Open Structure,每个模块的源代码由对话框设计和代码设计两部分组成。对话框设计包括用户需要输入的参数和观察的结果,见右图,添加对话框中的控件是通过菜单,Develop-New Dialog Item,实现,添加对话框中的分页是通过,Develop-New Tab,实现,ExtendSim,基本构成,ExtendSim,模块,基本结构,代码设计分为五个部分,包括动画设计、端口定义、变量定义、模块帮助和模块源代码。见右图,这个窗口也是,ExtendSim,集成开发环境的组成部分,用户可以在这个环境中设定断点,进行代码调试。,关闭模块时,会自动提示错误信息,如果没有错误,则自动编译成机器代码。,(,3,),ExtendSim 15,个最重要模块,(,1,)流程中资源要素和实体的产生:,Create, Resource Item, Resource Pool, Resource Pool Release,(,2,)流程中各种延迟和处理:,Activity,(,3,)流程中资源属性的界定:,Get, Set,(,4,)流程中路径流转:,Select Item In, Select Item Out,Gate,(,5,)流程中资源的合并和拆分:,Batch, Unbatch,(,6,)流程中的队列等待:,Queue,Queue Equation,(,7,)流程中的决策:,Equation,(,I,),Activities:,Activity, Convey Item, Transport Item, Workstation,Batching,:,Batch, Unbatch,Data Access: Read(I), Write(I),Information: Cost by Item, Cost Stats,,,History, Information,Properties:,Equation(I), Get, Set,Queues,:,Queue,,,Queue Equation,,,Queue Matching,Resources:,Resource Item, Resource Pool, Resource Pool Release, Shift, Shutdown,Routing:,Catch Item,Create,Exit,Select Item In, Select Item Out,Throw Item,,,Gate,Executive,离散事件仿真:,(,1,)描述了大部分现实系统随时间变化的演变,(,2,)仿真的运行是由在不确定时间点上发生的事件驱动,(,3,)仿真时间是跳跃的,间隔不一定相等,有时是不确定的,(,4,)因为是模拟随时间变化的演变,因此需要包含延迟模块,包括作业、运输,或者广义的活动,(,5,)在,ExtendSim,中,主要由,Item,模块库中的模块搭建而成,如果仿真中需要传递数据或信息,还可能包含,Value,模块库中的模块。,ExtendSim,模拟离散事件仿真,需要注意:,(,1,)模块可以来源于,Item,和,Value,模块库中的模块。,(,2,)至少有一个可以延迟时间的模块,例如,Activity, Transport, Convey Item,或,Workstation,,否则时间无法向前推进。,(,3,)必须有,Executive,模块,而且放置于模型的左上角,担当离散事件时钟的角色。,(,4,)必须有物件生成模块,模拟需要被处理的物体或有处理能力的资源。生成模块包括,Create,和,Resource Item,。 默认情况下,产生的物件以绿色小球作为二维动画图片。,(,5,)模块被激发的机制,ExtendSim Item,模块库中模块的类型,Item,模块库中的模块根据对“绿色小球”处理和滞留的时间分为三类:,Residence,(驻留),,Passing,(穿过),,Decision,(决策)。 每个,Item,模块在对话框左下角都标注了属于哪种类型(,Block Type,)。,大部分类型都比较直观,不必刻意去记住。,种类,特点,Residence,(驻留),驻留类型的模块可以让绿色小球在模块内停留一段时间。,Passing,(穿过),穿过类型的模块只是让绿色小球一带即过,不产生任何时间停留。这些模块只是为了辅助模型的逻辑。,Decision,(决策),决策模块在决定绿色小球走哪个分支的时候,根据用户选项,既可能暂留绿色小球,也可能不予暂留。,ExtendSim Item,模块库中模块的类型,ExtendSim,建模思路,抓住(离散事件)仿真的本质:,有限资源的分配、占用、释放的方式的研究,(,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,消息传递机制,事件触发机制 (见开发手册)。最好的学习方法就是打开模块的结构(右键点击模块,选择,Open Structure,)。,ExtendSim,编程,ExtendSim,采用,ModL,语言,和,C,非常类似,保持,C,语言作为相对底层语言运行的速度、效率以及低内存,但,ModL,和,C,之间的主要差别 *,ModL,不区分大小写;,ModL,比,C,语言有更多种字符串类型;,ModL,是受事件驱动的过程语言,;ModL,中的事件驱动机制可以方便扩展,允许编程人员编写更复杂消息处理逻辑。,* 具体区别可以参考开发手册,案例,1,问题,模拟一个简单的生产线,关键模块,(,Item,),Create, Queue,,,Activity,,,Exit,,,Select Item Out,产品每隔,4,分钟到达一个,间隔时间服从指数分布;,有两台设备,设备,1,不具备冷却功能,设备,2,具备冷却功能;,设备,1,的处理时间为,6,分钟;设备,2,为,8,分钟,只有,25%,的产品需要冷却处理。,案例,2,问题,车辆最佳配载,关键模块,(,Item,),Create, Queue,,,Activity,,,Batch,,,Unbatch, Exit,辅助模块,Information (Item), Plotter, Discrete Event (Plotter), Constant (Value), Plotter, Scatter (Plotter),产品按照指数分布达到,间隔为,1,分钟。产品按照一定数量进行成批处理后放入运输车,每一车运输时间为,20,分钟。确定最佳的批量数量,使得产品从到达开始到离开运输车的平均周期时间最短。,案例,3,问题,制造周期缩短,关键模块,(,Item,),Create, Queue,,,Activity,,,Batch,,,Unbatch, Exit, Set, Get,辅助模块,Information (Item), Random Number (Value), Math (Value),产品的平均到达间隔为每,20,分钟投入,5,个产品。产品需要经过二个工作站,并且在第一个和第二个工作站之间需要搬运。在第一个工作站上,制造时间为均值为,1,的指数分布,在第二工作站上,处理时间为均值为,2,的指数分布。搬运采用了较大的叉车,每次凑足,10,个产品后搬运一次,一次搬运时间为,15,分钟。在建立这个模型后,我们可以思考如何改善这个流程,使得产品的平均周期时间最短。,案例,4,问题,最佳人员配比,关键模块,(Item),Create, Queue,,,Activity,,,Batch,,,Unbatch, Exit, Resource Pool, Resource Item, Resource Pool Release, Select Item Out, Equation(I), Set, Get, Batch, Unbatch,辅助模块,Random Number (Value),一条产线生产产品,A,(,40%,比例)和产品,B,(,60%,比例),平均到达时间间隔为,1,分钟。每个产品需要一个工人处理。如果产品到达时,没有空闲工人,那么产品需要等待。 产品,A,的处理时间为,5,分钟到,15,分钟的均值分布,U(5,15),,产品,B,为,U(15,25),。产品加工完,需要经过测试过程,大概有,10%,的产品没有通过测试,需要再经过,2,分钟的后处理才能完成。所有产品离开产线后释放工人。,在这个问题中,我们需要知道最佳的工人数量。,案例,5,问题,汽车产线节拍平衡,关键模块,(,Item),Create, Queue,,,Activity,,,Exit, Select Item Out, Select Item In,汽车从主装配线按照,1,分钟间隔下线后,需要经过检测线进行检测,检测线有三条,检测通过的汽车可以到调整线,做出厂前的最后调整;而没有通过检测的汽车需要驶回第三条检测线上进行进一步检测。汽车没有通过检测线需要进一步检测的概率为,5%,。每条检测线的处理时间为,2,分钟。调整线有两条,每条处理时间为,1,分钟。,我们希望汽车从装配线到检测线再到调整线的过程流畅,不发生设备闲置的现象,也不发生汽车在产线之间拥堵而停线的现象。这就需要各个环节节拍设置合理。同时,也可以在产线之间设定一定数量的缓冲区,可以容纳一定数量的汽车。,这个模型可以用来研究产线节拍的平衡,以及如何设置合理数量的缓冲区。,案例,6,问题,以客户订单为驱动的拉式系统,关键模块,(Item),Create, Queue,,,Activity,,,Exit, Gate,辅助模块,Decision (Value),这是一个通过模型来研究客户订单如何驱动生产的案例。假设每个客户订单只需要一个产品,按照每隔,5,分钟的指数分布到达,产线的终端维持一定数量的成品,用于满足客户订单的即时需要。当成品库存下降到一定水平后,产线,2,开始生产,一旦开始生产,就连续不断地生产到成品库存达到上限为止,然后停止生产。产线,2,生产的产品来源于产线,1,后面的库存。一旦产线,1,的库存降低到一定数量,和产线,2,一样,产品,1,也开始连续生产,直到达到产线,1,的库存上限为止。我们假设产线,1,上游的原材料库数量无限。,利用这个模型,我们可以研究产线,1,和产线,2,的库存上下限如何设定,可以既及时满足客户需求,又不导致库存积压。,案例,7,问题,复杂排序规则,关键模块,(Item),Queue Equation,有二个产品A,B进入到处理队列中,下游只有二台设备,,设备1只能处理A, 设备2可以处理A和B,后面是A,B 两个各,自的库存。当A,B库存降低到一定水平时,加工相应产品;,否则无需加工。,rank=0;,if (Type=1 & L1=5 & (F1 =0 | F2=0),rank=1;,if (F1=0) whichmachine=0;,if (F2=0) whichmachine=1;,if (Type=2 & L2=5 & F2=0),rank=1;,whichmachine=1;,案例,8,问题,简单供应链配送仿真(优化),一个配送中心需要为三个区域的客户配送货品。客户的需求是按照一定分布函数波动。该配送中心到三个客户的运输时间分别为10,15,20个小时,返程时间也如此。一旦客户发出配送指令,配送中心就需要尽快派车配送。该配送中心需要根据客户需求的情况,决定最佳的车辆配备数量。我们假设客户的需求都是按照整车计量的。,案例,9,问题,入库模型(全局数组应用),一个配送中心接收三种货物。货物每隔5小时到达一个。货架为10层高,4列宽,按照随机分配的原则为每一个进货找到一个货位。,常用方法:如何通过程序和全局数组交换数据,integer arrayindex;,arrayindex=GAGetIndex(string GlobalArrayName); /,通过数组名称获得数组索引,GAGetInteger (arrayindex, row, column); /,获得整数型数组某个单元数值,GAGetReal (arrayindex, row, column); /,获得实数型数组某个单元数值,GASetInteger (value, arrayindex, row, column); /,写入整数型数组某个单元数值,GASetReal (value, arrayindex, row, column); /,写入实数型数组某个单元数值,全局数组数据更改是即刻、全局生效,ExtendSim,编程,案例,10,问题,生产工艺仿真(,Excel,),三个产品按照不同的工艺路线在四个操作之间流转。Excel 当中记录了工艺路线和每个工序的处理时间。如何直接读取 Excel 数据并仿真。,IPCConnect(EXCEL,Data.xlsRouting);,IPCRequest(IPC,R1C1”);,IPCRequest(IPC,R+row+C+column);,IPCPoke(IPC,value, R1C1”);,IPCPoke(IPC,Pass,R+row+C+column);,IPCDisconnect(IPC);,案例,11,问题,外部数据库,ODBC,调用方法,建立,DSN,文件,建立链接,调用,SQL,语句,断开链接,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!