ExtendSim7 培训材料_第一部分.ppt_第1页
ExtendSim7 培训材料_第一部分.ppt_第2页
ExtendSim7 培训材料_第一部分.ppt_第3页
ExtendSim7 培训材料_第一部分.ppt_第4页
ExtendSim7 培训材料_第一部分.ppt_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本培训资料附带演示案例。所有案例可以在ExtendSim 7 演示版软件中运行和观看。 感兴趣的同学可以注册并登陆 ExtendSim 中国区技术支持网站,免费下载 ExtendSim 7 演示版(约100M)。 http:/www.edgestone-:81/bbs/viewthread.php?tid=1149&extra=page%3D1,ExtendSim 7 培训,纲要: (1)仿真基础 (在前面的学习中已介绍,这里就略了。) (2)ExtendSim 介绍 (3)ExtendSim 基本体系结构 (4)ExtendSim 举例和模块说明 离散模型: 洗车模型;超市模型;食堂模型;产

2、能估算模型 连续模型:河流污染模型;飞机组装模型 (5)ExtendSim 数据管理 举例:项目管理模型;生产计划和调度模型 (6)ExtendSim 三维动画简介 举例:机器人手臂模型 (7)ExtendSim 编程简介,ExtendSim 仿真软件,美国 Imagine That, Inc. 开发的优秀通用仿真平台 经济、方便、功能强大、建模离散、连续和流体系统(和DCS接口) 开放源代码,集成开发环境(IDE),可扩展性在仿真软件中领先 学习周期短,适合教学、研究和企业咨询 全球用户超过13,000,有十多家企业以它为平台开发商业仿真系统 1000多内嵌函数,100多个预制模块,20多种

3、随机数发生和拟和器,全球拥有用户最多的仿真软件之一 “It is powerful and cheap” Accenture (埃森哲), 2001,半导体电子行业: Motorola, Ericsson, Nokia, National Semiconductor, Texas Instruments, Applied Materials, Canon 计算机和通信行业:IBM,HP, Apple Computer, Gateway, Hitachi, Toshiba, Microsoft,EDS ,AT&T, Cisco, Lucent, Nortel 工业系统: GE, ABB, Uni

4、ted Technologies, Honeywell, Pratt & Whitney, Siemens, DuPont 汽车和航空运输: Ford, Boeing, Honda, Mitsubishi, Northwest Airline, US Postal Service 零售品: Coca-Cola, Kodak, Johnson & Johnson, P&G, Unilever 石油化工和医药:Shell, Texco, Eli Lilly, Merck, Pfizer 钢铁冶金:Nippon Steel, Alcoa, Lukens Steel,部分客户,全球用户最多的仿真软件之

5、一,学校和研究机构:哈佛商学院,斯坦福大学,耶鲁大学, 美国宇航局,东京大学,普渡大学,佐治亚理工,伊利诺斯大学,依阿华大学,马里兰大学,麻州大学,墨尔本大学,宾州大学,德州大学,威斯康星大学 等等 政府机构:美国能源部、美国国防部、美国海军陆战队、美国海军、美国空军,美国环境保护署,世界银行等等,软件介绍,全球用户最多的仿真软件之一,英特尔、佳能、ABB、诺基亚、宝钢、华为、富士康、东风日产、纬地科技、Venetian(澳门)、空军研究所、航天科工集团、中科院、清华大学、上海交大、南京大学、上海理工、上海海事、解放军军事交通、中国矿业大学、陕西科大、中国传媒大学、同济大学、武汉理工大学、哈尔

6、滨工业大学、东北大学、重庆大学、北京理工大学、中国民航大学等等,软件介绍,在中国,在中国已经应用的领域: 半导体生产分析和调度; 钢铁物流运输调度; 供应链库存管理; 军事物流; 武器装备效能评估和维护; 港口运输; 煤矿车辆调度; 笔记本配件全球供应链分析; 通讯设备生产管理和供应链优化; 生产设备效能分析; 医疗流程; 物流仿真和培训; 电力调度; 等等,软件种类,应用领域,在供应链物流方面的部分应用,宝洁 P&G “Ultimate Supply Chain” 诺基亚 Nokia 安全库存 松下电工 全球供应链 索尼 全球电池供应链 美国能源部 石油战略储备供应链 US 邮政局 Post

7、al Service 邮政供应链 美国海军陆战队 军事物流仿真,ExtendSim 特点,易用性:ExtendSim是唯一采用物件流和信息流可以同时在模块图标上动态表达的仿真软件,采用模块组合的方式快速搭建模型,符合决策过程中的思维方式。 学习曲线短,建模效率高,适合教学、科研和咨询领域; 多用途:支持连续数值(包括蒙特卡罗等)、离散事件、离散速率(连续流体)、批量化流程、基于Agent的复杂系统建模、基于State-Action状态决策系统等多种建模方法的仿真集成平台;,ExtendSim 特点,可重复性和可扩展性:ExtendSim 模块100%开放源代码,自带集成开发环境,用户可以根据需

8、要修改已有模块和创造全新模块,这些模块可以归类在用户自己的模块库中,并加密保护,具备自己的知识产权,可以独立销售这些模块库,可以重复使用。这一特点增加了模型设计的效率和增值潜力。此外,ExtendSim 的三维虚拟现实系统本身也是源代码开放的成熟软件产品。 交互性:ExtendSim 运行前无需编译模型;即使在模型运行过程中,参数和模型逻辑也可以在线修改。方便的交互性可以快速回答和重新分析各种问题。,ExtendSim 特点,规模性:ExtendSim 充分利用类C语言的强大功能和运算能力,并且支持分层结构,所以可以用来创建含有成千上万个模块的复杂模型,运行效率在模型超过上万个模块和对象时也挥

9、洒自如。 可视性:ExtendSim提供了快捷的二维动画和复杂逼真的三维动画开发环境。ExtendSim的三维动画环境采用了最先进的开源网络游戏引擎,动画制作效率高,效果栩栩如生。 而且三维虚拟现实引擎本身也是开源的。 高级数据管理:ExtendSim 提供新一代图形化仿真数据库,和模型内参数和表格动态链接,自动产生更多统计数据报告,ExtendSim 特点,连接性:ExtendSim支持ActiveX/OLE控件和ODBC数据源。内嵌1000多个系统函数可以实现和数据库、EXCEL和其他数据源的集成,充分利用WINDOWS操作系统的资源,可以和Delphi、C+ Builder、Visual

10、 Basic、Visual C+代码链接; 性价比:ExtendSim 从第一个版本开始,就秉持高性价比的理念,软件的价格是其他主流仿真软件价格的1/2 到 1/4,具有不可比拟的投资回报率。,ExtendSim 主要模块库,对一般离散系统来说,最重要的模块库是 Item 和 Value,ExtendSim 主要模块库,ExtendSim 可以从任何一个模块库中拖拉模块组成模型。 ExtendSim 像砖厂,提供了优质的砖头,如何把它们建成 心目中最完美的建筑,还需要优秀的设计师和施工队。用 户就是设计师和施工队。,ExtendSim 主要模块库,100多个模块可以适应各种领域的不同问题?可以

11、! 如何做? 答案很简单,就是问题简化和抽象化,抓住运作 规律,重点放在逻辑的理解上,追求内部的相似,解决关键 绩效指标,动画的漂亮永远都可以后期制作。,先逻辑再动画是仿真项目成功的保证; 为了动画嵌入逻辑是项目失败的必然。,ExtendSim 主要模块库,加载模块库 选择菜单 library - Open library,用户可以创建和加密自己的模块库,每个模块库是位于 安装目录中 libraries 子目录下的一个文件,容易拷贝和 转移。 在第一次使用ExtendSim之前,请备份模块库子目录 libraries 一旦出现问题,可以用备份模块库直接覆盖损坏的模块库。,ExtendSim 主

12、要模块库,模型中的模块和模块库中模块的关联: 经过拖拉,放入到模型中的模块是模块库中模块的一个复制 品。在保存模型时,模型中的模块并不保存,而只是保存模块 源头(也就是模块库中的模块)的一个索引。因此,如果用 户更改了模块库中的模块,引用这个模块的所有模型都会更改。,不同模块库中的模块有颜色不同,便于区分 Item 模块:绿色;Value模块:橙色;Rate 模块:蓝色,ExtendSim 主要模块库,自动加载模块库: 如果希望每次启动ExtendSim,常用的模块库自动加载,可以 选择菜单 Edit-Options,在libraries分页中如下选择:,ExtendSim 基本构成,Exte

13、ndSim 模块之间有两种逻辑流。 一种是物件(Item),代表系统中的物体。物件可被赋予属性(预制属性和自定义属性)和优先级。物件的涵义很广,既可以代表被处理的物体,包括生产零部件、病人和通讯传输中的信息包等,也可以代表处理的资源,包括人员、设备和工具等。仿真模型中可以跟据需要在这两个角色之间自由转换。在二维模型中,默认的动画形态是一个绿色的小球,用户可以根据需要更改这个小球的图片。物件的传输一般需要耗费时间。 第二种逻辑流是数值或者说是信息(Value),在模型运行期间不断变化。所谓的数值是一个单纯的数,包括队列长度、统计值和容器中液面高度等等。这些数值可以是输入值,也可以是统计结果,或者

14、是某种数据存储的地址索引等等。这些信息往往在仿真运行中决策判断时需要。数值或者信息的传递是不需要耗费时间。,ExtendSim 基本构成,ExtendSim 模块的端口种类,ExtendSim 基本构成,ExtendSim 模块的端口种类,所有输入端口命名以“In”结尾,输出端口命名以“Out”结尾(大小写不区分)。可以通过修改名称的结尾在输入和输出之间转换 用户可以在自己设定的模块上添加任意端口,包括分层模块 端口的添加按钮在工具栏最右侧 新加入的端口默认为输入端口,用户可以通过修改端口的结尾命名来改变成输出端口 为了动画需要,用户可以选择菜单中 Model- Hide Connectors

15、 隐藏端口,ExtendSim 基本构成,ExtendSim 模块之间的连线,物件端口之间的连线往往表明了物件流转的路径;二维模型中的连线可以在三维动画窗口中自动生成三维物体移动路径。 数值端口之间的连线表明了数值(信息)传递的通路。 连线的线型可以通过菜单 Model - Connection Lines 定义 连线可以通过菜单 Model - Hide Connections 隐藏 ExtendSim 支持命名连线,大大简化连线的密集程度,便于组织。用户在模型任何地方双击,激活文本输入,就可以输入连线名称;连接到相同命名上的连线为实际连通在一些的连线,例如,ExtendSim 基本构成,E

16、xtendSim 模块 基本结构 ExtendSim 模块100%开源,选择模块后右键选择Open Structure 每个模块的源代码由对话框设计和代码设计两部分组成。对话框设计包括用户需要输入的参数和观察的结果,见右图 添加对话框中的控件是通过菜单Develop-New Dialog Item 实现 添加对话框中的分页是通过Develop-New Tab 实现,ExtendSim 基本构成,ExtendSim 模块 基本结构 代码设计分为五个部分,包括动画设计、端口定义、变量定义、模块帮助和模块源代码。见右图 这个窗口也是ExtendSim集成开发环境的组成部分,用户可以在这个环境中设定断

17、点,进行代码调试。 关闭模块时,会自动提示错误信息,如果没有错误,则自动编译成机器代码。,ExtendSim 基本构成,虽然ExtendSim 开放源代码,但不鼓励用户直接通过改写源代码进行建模。大部分情况下,ExtendSim已有的模块足够满足复杂逻辑的模拟。 学习ExtendSim的第一步就是熟悉已有模块的功能,可以灵活搭建各种复杂逻辑。最常用的模块是 Item 和 Value 模块库中的模块。 下面我们通过例子来说明主要模块的使用方法。先从离散事件模型开始。,ExtendSim 离散事件仿真 (1)描述了大部分现实系统随时间变化的演变 (2)仿真的运行是由在不确定时间点上发生的事件驱动

18、(3)仿真时间是跳跃的,间隔不一定相等,有时是不确定的 (4)因为是模拟随时间变化的演变,因此需要包含延迟模块,包括作业、运输,或者广义的活动 (5)在ExtendSim中,主要由Item模块库中的模块搭建而成,如果仿真中需要传递数据或信息,还可能包含Value模块库中的模块。,ExtendSim 模拟离散事件仿真,需要注意: (1)模块可以来源于Item 和 Value 模块库中的模块。 (2)至少有一个可以延迟时间的模块,例如Activity, Transport, Convey Item 或Workstation,否则时间无法向前推进。 (3)必须有Executive 模块,而且放置于模

19、型的左上角,担当离散事件时钟的角色。 (4)必须有物件生成模块,模拟需要被处理的物体或有处理能力的资源。生成模块包括 Create 和 Resource Item。 默认情况下,产生的物件以绿色小球作为二维动画图片。 (5)模块被激发的机制,每个模块详细功能中文说明 参见 http:/www.edgestone-,ExtendSim Item 模块库中模块的类型,Item 模块库中的模块根据对“绿色小球”处理和滞留的时间分为三类:Residence(驻留),Passing (穿过),Decision (决策)。 每个Item 模块在对话框左下角都标注了属于哪种类型(Block Type)。大部

20、分类型都比较直观,不必刻意去记住。,ExtendSim Item 模块库中模块的类型,每个模块详细功能中文说明 参见 http:/www.edgestone-,ExtendSim 建模思路,抓住(离散事件)仿真的本质:有限资源的分配、占用、释放的方式的研究 (1)什么是有限的资源? (2)谁在消耗有限的资源? (3)资源在各个环节是如何分配、占用和释放的? (4)时间是怎样向前推进的?在哪些环节上有时间延迟? (5)系统中有多少种类物件? (6)它们是怎样走完整个流程的?有哪些流程是重合的,哪些是分离的? (7)什么是模型的量化指标(观察指标、目标指标)? (8)什么是模型可控变量(可以改变量

21、化指标的变量)?,ExtendSim 举例(离散事件仿真)洗车模型,洗车模型 情形1 车辆每隔 4分钟到来一辆; 只有一条洗车线 洗车需要6分钟;,这个表格虽然有点繁琐,但可以帮助理清思路,在系统复杂时很有用,ExtendSim 举例(离散事件仿真)洗车模型,ExtendSim 中如何处理有限资源 (1)占用有限资源一段时间,可以简单用一段时间延迟模拟,资源并不显性地模拟出来; (2)如果资源本身占用方式很灵活,在占用过程中有其他复杂方式出现(拆分、合并、移动、产生、消灭、数量增减等),可以将资源显性模拟出来。显性模拟的方式有多种,我们会在后续例子中演示。,ExtendSim 举例(离散事件仿

22、真)洗车模型,ExtendSim 和时间延迟相关的模块有: 产生物件的时间延迟:Create 处理过程中的时间延迟:Activity, Transport, Convey Item, Workstation Activity 可以模拟广泛的时间延迟,包括处理、运输、传送等 Transport 主要是为了处理二维三维动画中物件的移动而设定 Convey Item 主要是为了处理二维三维动画中在传送带类型设备上物件的滑动移动而设定 Workstation 主要在需要显性设定延迟的过程需要多种资源都具备时才可以发生的情况(即使如此,这个模块的功能也可以通过其他模块组合实现),每个模块详细功能中文说明

23、 参见 http:/www.edgestone-,ExtendSim 举例(离散事件仿真)洗车模型,洗车模型 情形1 ( car1.mox),ExtendSim 举例(离散事件仿真)洗车模型,洗车模型 情形1 (用户可以打开 car1.mox),说明: (1)任何离散事件模型都要有Executive 模块,并且放置于模型左上角。 (2)洗车线和时间延迟用一个Activity来模拟,等待的汽车用Queue 来模拟,汽车的产生用Create 来模拟,离开系统的汽车通过Exit 模块销毁。 (3)模型可以采用ExtendSim 克隆功能,将任何输入输出参数和图表从对话框中克隆到模型中集中显示和调整。

24、克隆的做法是打开任何一个对话框,选择工具栏中的克隆按钮 然后将任何控件拖拉到模型中。 (4)采用了命名连线(length),动态显示队列的长度 (5)采用了绘图模块,一般来说,在离散事件仿真中,观察某个指标随时间的变化,可以采用Plotter模块库中的 Plotter, Discrete Event 模块。 (6)Activity 模块中 Maximum numbers in activity 设定为1,表明,每次只能处理一辆车,也就是说,只有一条洗车线。,思考:为什么汽车的队列长度直线上升? 答案:处理能力不够,处理速率小于汽车到达速率,ExtendSim 举例(离散事件仿真)洗车模型,情形

25、2 车辆每隔 4分钟到来一辆; 增加一条洗车、上光线 洗车需要6分钟; 洗车、上光需要8分钟 25%的车需要上光,ExtendSim 举例(离散事件仿真)洗车模型,ExtendSim 的分支路径 当流程中存在不同的处理路径,可以采用分支模块。分支现象非常普遍,在制造业中的工序处理,银行中不同业务等等。 ExtendSim 中最常用的分支模块包括: Select Item Out:从一个源头来的物件向多个出口中的一个输出; Select Item In: 从多个源头选择其中一个或者合并所有源头后输出物件; Throw Item / Catch Item:可以不用连线,不分模型层次,在任何两个模块

26、之间“抛送”和“接收”物件。这种物件转移方式可以使得复杂模型变得简洁 Gate: 有条件地让物件通过 Exit: 物件最后离开系统销毁的模块。,每个模块详细功能中文说明 参见 http:/www.edgestone-,ExtendSim 举例(离散事件仿真)洗车模型,洗车模型 情形2 这个情形可以有多种模块组合方法,我们会一一展示,所有的模型都以car2_开头,这些模型产生的效果都是一样的。 为了使模型简洁,部分在car1.mox中的克隆和图形控件被删除,ExtendSim 举例(离散事件仿真)洗车模型,洗车模型 情形2 模型1 ( car2_1.mox),说明: (1)为了表达车辆有两个分支

27、可选(洗车线,和 洗车上光线),采用了Select Item Out 模块 (2)在Select Item Out中选择 Select Output Based On = Random,然后在下面概率表格中将对应于洗车线的出口的选择概率定为0.75,对应于洗车上光线出口的选择概率为0.25,ExtendSim 举例(离散事件仿真)洗车模型,洗车模型 情形2 模型2 ( car2_2.mox),说明: (1)在Select Item Out中选择 Select Output Based On = Select Connector,同时Top Output is chosen by Select

28、value = 1, 这样在图标上就会出现一个数值输入端口,用户可以通过这个端口显性地指明物件应该选择哪个出口。如果这个端口输入值为1,那么依据Top Output is chosen by Select value = 1这个选项,物件选择最上面的出口,以下端口的选择数值依次加1,也就是说,如果输入值为2,物件选择第二个端口,依次类推。 (2)同时,从Value模块库中增加Random Number模块,这个非常常用的模块可以产生随机数。在这个模块中,采用Empirical Table (经验表格)分布,只能输出1(概率为0.75)和2(概率为0.25)。这里1和2数值的确定要和(1)中To

29、p Output is chosen by Select value 的设定相呼应。 (3)运行机制是,当一个汽车(绿色小球)进入到Select Item Out模块时,就会激发读取Select 端口的数值,会进一步激发读取Random Number 模块的数值。然后根据Random Number 的数值决定应该走哪条分支,如果是1就会走最上面的分支,如果是2,就会走最下面(第二条)分支。,ExtendSim 举例(离散事件仿真)洗车模型,洗车模型 情形2 模型3 ( car2_3.mox),说明: (1)这个模型中采用设定物件属性这一种非常常用的方法。属性可以刻划物件的特有特征,这些特征往往

30、是模型中采用不同处理方法、处理路径、处理时间的依据。 (2)我们用Set 模块定义了一个数值类型的属性 WashCar, 如果这个属性取值为1,那么选择洗车路径(最上面),如果取值为2,那么选择洗车上光路径(最下面)。 (3)这个属性的取值是由Random Number 模块输入 (4)在Select Item Out 中输入 Select Output based on = Property = WachCar,然后输入WachCar 取值和端口的对应关系。 这里也同样需要设定最上面的出口的对应取值,也就是 In Select Output column, X chooses top out

31、put,Car2 的三个模型虽然很简单,但展示了在复杂模型中常用的建模方法,ExtendSim 举例(离散事件仿真)洗车模型,情形3 车辆每隔 4分钟到来一辆; 增加一条洗车、上光线 洗车需要6分钟; 洗车、上光需要8分钟 25%的车需要上光 司机多给小费插队到前面,有10%的司机会给小费,ExtendSim 举例(离散事件仿真)洗车模型,ExtendSim 离散仿真中的队列 队列是最普遍的现象之一,队列可以改变这个流程的处理次序,也就改变了资源占用、分配和释放的方式,因此,队列是离散仿真中最重要的结构模块之一,也往往是资源等待被分配的规则进行运算的地方。 ExtendSim 中最常用的队列模

32、块包括: Queue, 用户很容易设定常用的队列特征,包括先入先出和具备优先级的队列;也可以设定为等待资源的队列(在后续例子中会详细说明)。 Queue, Equation 可以在此嵌入复杂的排序规则和算法 Queue, Matching 可以模拟多种队列中物件相互匹配并释放的情况。例如某种型号产品装配,需要所有零配件型号匹配、数量具备时才能释放。,每个模块详细功能中文说明 参见 http:/www.edgestone-,ExtendSim 举例(离散事件仿真)洗车模型,洗车模型 情形3 ( car3.mox),说明: (1)新定义了一个数值型变量Tip,Tip的数值由另外一个Random N

33、umber 模块赋值。数值0(概率0.9)表示没有给小费,数值1(概率0.1)表示给小费。 (2)在队列Queue 模块中,选择排序的依据是采用Tip属性,按照从大到小的顺序排列(Tip 数值为1的顾客排在数值为0的顾客之前),如下,(3)如果Tip数值相同,按照先入先出的原则。 (4)如果用户有复杂的排序规则,或者有不同的打破相同排序优先级的策略,可以采用Queue Equation,ExtendSim 举例(离散事件仿真)洗车模型,关于时间单位的说明 ExtendSim 除了提供我们熟悉的秒、分、天等时间单位,也提供了所谓的Generic 无量纲时间单位,用于当模型中所有时间单位都统一时的

34、一种设定方法,这也是默认方式。在洗车模型中,我们采用了这种方法。这种方法的好处,就是在于模型的维护成本很低,不需要考虑哪些模块采用了不同的时间单位,如果以后有单位变化,也不用打开不同时间单位的模块手工修改。 模型默认时间单位的修改在菜单 Run - Simulation Setup 中。用户可以在单个模块中调整时间单位。 ExtendSim 也支持日历时间,修改在Run-Simulation Setup 中。,ExtendSim 举例(离散事件仿真)洗车模型,ExtendSim 举例(离散事件仿真) 超市模型,一家小型自选超市,顾客到达时间服从指数分布。平均1分钟来一位顾客。市场准备了一批篮子

35、。顾客到达时,如发现有空的篮子,就取一个进入。如果没有空的,就离去。男顾客选取物品的时间为5-15分钟,女顾客则为15-25分钟。男顾客占顾客总数的40%。当顾客挑选完物品以后,就到出口的收款台处交款。收款台处有一位收款员,所需时间为1分钟。用后的篮子放回以被后用。有10%的顾客不买任何东西,将篮子交回后即离去。建立此问题模型,同时研究不同篮子的数量和顾客平均购物时间的关系。,ExtendSim 举例(离散事件仿真) 超市模型,ExtendSim 举例(离散事件仿真) 超市模型,我们将采用两种不同的方法模拟这个问题,效果是一样的。在ExtendSim中一个问题经常可以用多种方法模拟,鼓励大家用

36、多种方案模拟同一个问题,这是提升建模水平的好方法。,ExtendSim 举例(离散事件仿真) 超市模型,超市模型 方案1 ( market1.mox),说明: (1)这个模型大部分采用了我们在洗车模型中提到的方法和模块。 (2)最主要的差别在于模型采用Resource Pool 模块模拟篮子,采用Queue模块中Resource Pool Queue 的方式来模拟占用篮子,采用Resource Pool Release 模块模拟释放篮子。 (3)Resource Pool 模块用来模拟可以不用区分个体而更关心数量变化的资源群体,比如说这个例子中的篮子,或者说食堂中的桌椅等等。虽然我们不关心篮子

37、之间,或者桌椅之间的差别,但如果没有这些资源,物件将无法继续处理下去(顾客无法继续购物,用餐人员无法就餐等等)。这些资源使用完毕,需要释放并返还,供以后顾客利用。Resource Pool 也可以模拟有限数量的虚拟令牌或者指令,如果获得了令牌或者指令,就可以继续处理,否则就需要等待。 (4)用Activity模拟超市购物过程,设定Maximum items in activity 为无穷大,表明这个模型中超市有足够大的容量,我们更关心顾客占用超市空间的时间,而对空间的大小没有限制。,ExtendSim 举例(离散事件仿真) 超市模型,超市模型 方案1 ( market1.mox),说明: (5

38、)在购物环节,采用Equation(I) 模块来根据顾客性别选择合适的购物时间 (6)设定了一个命名连线 AvailableBaskets 一方面实时记录剩余的篮子数量,另外一方面用来控制顾客是否可以进入到超市进行购物 (7)当顾客在Queue (Resource Pool Queue)模式下获得需要的资源种类和数量时,就离开队列。在我们这个例子中,顾客离开队列时已经占用了一个篮子,相当于篮子和顾客已经捆绑在一起。记住:顾客在离开超市时,需要释放这个篮子。 (8)为了计算顾客平均购物时间,在顾客进入到超市后,设定了一个属性Entertime,数值来源于一个非常常用的Simulation Var

39、iable模块(在Value模块库中),这个模块可以不断输出一些系统变量的数值,例如当前时刻,当前运行次数等等。然后,在模型末尾,增加一个Information 模块,设定购物时间的起始时间是由Entertime属性决定的。,ExtendSim 举例(离散事件仿真) 超市模型,超市模型 方案1 ( market1.mox),我们换一个思路,既然在方案1中,篮子相当于和顾客捆绑在一起,那么我们也可以显性地用捆绑模块来模拟。,ExtendSim 举例(离散事件仿真) 超市模型,超市模型 方案2 ( market2.mox),说明: (1)和方案1相比,方案2取消了Resource Pool 模块,

40、而采用显性地将篮子模拟为一类资源,可以与顾客捆绑,在顾客购物结束后,将顾客和篮子再进行拆分,拆分后的篮子回流到篮子资源模块。主要的修改部分用橙色方块标注。 (2)与Resource Item 相比,Resource Pool 是没有物件的输入输出端口,获得和释放Resource Pool 中的资源都是在瞬间完成,也就是说,一旦获得资源,Resource Pool的剩余资源数量立刻减少1个,释放资源后,剩余资源数量立刻增加1个。而采用方案2中的捆绑方式,会增加一些灵活性。比如说,如果篮子释放后,需要花费一点时间清洗后才能放回到篮子群体中,就不能用Resource Pool的方式,而可以采用捆绑的

41、方式,在篮子和顾客拆分后,让篮子通过一个模拟清洗的延迟模块,再返回到篮子资源群体中。 (3)在Batch和Unbatch模块中,我们都选择了Preserve uniqueness 选项,就是因为我们还是需要保持篮子和顾客各自独立的属性,而不是融合在一起。 Preserve uniqueness 选项必须在匹配的Batch和Unbatch中都同时选择才有效,同时注意保持端口涵义的前后一致。,ExtendSim 举例(离散事件仿真) 超市模型,超市模型 方案2 ( market2.mox),ExtendSim 举例(离散事件仿真) 食堂模型,一家小型食堂,顾客到达服从指数分布。平均1分钟来一位顾客

42、。餐厅分为冷食部和热食部,冷食部有1个服务窗口,热食部有4个服务窗口,冷热食窗口服务时间均为1分钟。其中40%的顾客选择冷食,60%的顾客选择热食。选购后顾客寻找座位,食堂目前有200个座位,假设顾客只有找到座位后才能就餐而且冷食需要5-15分钟,热食需要15-25分钟。试建立模型,并确定使得顾客平均就餐时间保持在15分钟左右所需要的最少座位数量。,ExtendSim 举例(离散事件仿真) 食堂模型,这个例子不但注重模型的结构和模块使用方法,更重要我们要引入模型的目的,也就是模型如何帮助我们分析和解决一个明确的问题。 不知道航向的轮船,任何风都不是顺风。,ExtendSim 举例(离散事件仿真) 食堂模型,我们希望桌子的数量和顾客的平均就餐时间之间取得平衡 。桌子越多,顾客平均就餐时间就会因为等待时间的减少而减少,但我们需要付出的桌子成本就会增加。假设我们可以把桌子的数量和顾客的平均就餐时间转换为一个统一的成本函数 成本=桌子数量*2+平均就餐时间*5 我们希望这个成本函数越小越好。而这里,桌子的数量是决策变量(我们可以改变),平均就餐时间是仿真的结果(输出结果,我们无法直接修改)。,ExtendSi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论