当前位置首页 > 人力资源/企业管理 > 职业培训
搜柄,搜必应! 快速导航 | 使用教程  [会员中心]

《ExtendSim培训》PPT课件.ppt

文档格式:PPT| 45 页|大小 851KB|积分 15|2020-08-20 发布|文档ID:15560623
第1页
下载文档到电脑,查找使用更方便 还剩页未读,继续阅读>>
1 / 45
此文档下载收益归作者所有 下载文档
  • 版权提示
  • 文本预览
  • 常见问题
  • 王岩峰 美国波士顿大学制造工程系博士 美国工业工程师协会(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 主要模块库,对一般离散系统来说,最重要的模块库是 Item 和 Value,ExtendSim 主要模块库,ExtendSim 可以从任何一个模块库中拖拉模块组成模型。

    ExtendSim 像砖厂,提供了优质的砖头,如何把它们建成 心目中最完美的建筑,还需要优秀的设计师和施工队用 户就是设计师和施工队ExtendSim 基本构成,ExtendSim 模块之间有两种逻辑流 一种是物件(Item),代表系统中的物体物件可被赋予属性(预制属性和自定义属性)和优先级物件的涵义很广,既可以代表被处理的物体,包括生产零部件、病人和通讯传输中的信息包等,也可以代表处理的资源,包括人员、设备和工具等仿真模型中可以跟据需要在这两个角色之间自由转换在二维模型中,默认的动画形态是一个绿色的小球,用户可以根据需要更改这个小球的图片物件的传输一般需要耗费时间 第二种逻辑流是数值或者说是信息(Value),在模型运行期间不断变化所谓的数值是一个单纯的数,包括队列长度、统计值和容器中液面高度等等这些数值可以是输入值,也可以是统计结果,或者是某种数据存储的地址索引等等这些信息往往在仿真运行中决策判断时需要数值或者信息的传递是不需要耗费时间ExtendSim 基本构成,ExtendSim 模块的端口种类,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)模块被激发的机制,每个模块详细功能中文说明 参见 http://www.edgestone-,ExtendSim Item 模块库中模块的类型,Item 模块库中的模块根据对“绿色小球”处理和滞留的时间分为三类:Residence(驻留),Passing (穿过),Decision (决策) 每个Item 模块在对话框左下角都标注了属于哪种类型(Block Type)大部分类型都比较直观,不必刻意去记住ExtendSim Item 模块库中模块的类型,每个模块详细功能中文说明 参见 http://www.edgestone-,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中的事件驱动机制可以方便扩展,允许编程人员编写更复杂消息处理逻辑 具体区别可以参考开发手册,,产品每隔4分钟到达一个,间隔时间服从指数分布; 有两台设备,设备1不具备冷却功能,设备2具备冷却功能; 设备1的处理时间为6分钟;设备2为8分钟 只有25%的产品需要冷却处理。

    产品按照指数分布达到,间隔为1分钟产品按照一定数量进行成批处理后放入运输车,每一车运输时间为20分钟确定最佳的批量数量,使得产品从到达开始到离开运输车的平均周期时间最短产品的平均到达间隔为每20分钟投入5个产品产品需要经过二个工作站,并且在第一个和第二个工作站之间需要搬运在第一个工作站上,制造时间为均值为1的指数分布,在第二工作站上,处理时间为均值为2的指数分布搬运采用了较大的叉车,每次凑足10个产品后搬运一次,一次搬运时间为15分钟在建立这个模型后,我们可以思考如何改善这个流程,使得产品的平均周期时间最短一条产线生产产品A(40%比例)和产品B(60%比例),平均到达时间间隔为1分钟每个产品需要一个工人处理如果产品到达时,没有空闲工人,那么产品需要等待 产品A的处理时间为5分钟到15分钟的均值分布U(5,15),产品B为U(15,25)产品加工完,需要经过测试过程,大概有10%的产品没有通过测试,需要再经过2分钟的后处理才能完成所有产品离开产线后释放工人 在这个问题中,我们需要知道最佳的工人数量汽车从主装配线按照1分钟间隔下线后,需要经过检测线进行检测,检测线有三条,检测通过的汽车可以到调整线,做出厂前的最后调整;而没有通过检测的汽车需要驶回第三条检测线上进行进一步检测。

    汽车没有通过检测线需要进一步检测的概率为5%每条检测线的处理时间为2 分钟调整线有两条,每条处理时间为1 分钟 我们希望汽车从装配线到检测线再到调整线的过程流畅,不发生设备闲置的现象,也不发生汽车在产线之间拥堵而停线的现象这就需要各个环节节拍设置合理同时,也可以在产线之间设定一定数量的缓冲区,可以容纳一定数量的汽车 这个模型可以用来研究产线节拍的平衡,以及如何设置合理数量的缓冲区这是一个通过模型来研究客户订单如何驱动生产的案例假设每个客户订单只需要一个产品,按照每隔5分钟的指数分布到达,产线的终端维持一定数量的成品,用于满足客户订单的即时需要当成品库存下降到一定水平后,产线2开始生产,一旦开始生产,就连续不断地生产到成品库存达到上限为止,然后停止生产产线2生产的产品来源于产线1后面的库存一旦产线1的库存降低到一定数量,和产线2一样,产品1也开始连续生产,直到达到产线1的库存上限为止我们假设产线1上游的原材料库数量无限 利用这个模型,我们可以研究产线1和产线2的库存上下限如何设定,可以既及时满足客户需求,又不导致库存积压有二个产品A,B进入到处理队列中,下游只有二台设备, 设备1只能处理A, 设备2可以处理A和B,后面是A,B 两个各 自的库存。

    当A,B库存降低到一定水平时,加工相应产品; 否则无需加工rank=0; if (Type==1 ,,,,,,,,一个配送中心需要为三个区域的客户配送货品客户的需求是按照一定分布函数波动该配送中心到三个客户的运输时间分别为10,15,20个小时,返程时间也如此一旦客户发出配送指令,配送中心就需要尽快派车配送该配送中心需要根据客户需求的情况,决定最佳的车辆配备数量我们假设客户的需求都是按照整车计量的一个配送中心接收三种货物货物每隔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 编程,,,,,,,,三个产品按照不同的工艺路线在四个操作之间流转。

    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);,,,,,,,,建立 DSN 文件 建立链接 调用 SQL 语句 断开链接,谢谢对ExtendSim的兴趣 ExtendSim 入手容易,水也很深,有很多令人惊奇的功能 多看软件自带例子,ExtendSim 提供了丰富的例子,涵盖所有模块 开发商网站 国内网站 www.edgestone- 手册网站 www.edgestone-,。

    点击阅读更多内容
    卖家[上传人]:wxq362
    资质:实名认证