270 likes | 376 Views
第五讲 生产物流系统建模与仿真 王建华 jiannywang@126.com. 培训主题. Witness 软件介绍 基本元素、输入输出规则、复杂流程设计 数据类型、随机分布函数 WITNESS 建模与仿真基本过程 生产物流系统建模与仿真 生产物流系统描述 定义元素 Define 可视化元素 Display 细节设计 Detail 仿真实验 Run Simulation 统计报告分析 Report. Witness 介绍:建模元素. 三类建模元素: 实物元素 : 代表实际系统中看得见的实体,如 :
E N D
第五讲 生产物流系统建模与仿真 王建华 jiannywang@126.com
培训主题 • Witness软件介绍 • 基本元素、输入输出规则、复杂流程设计 • 数据类型、随机分布函数 • WITNESS建模与仿真基本过程 • 生产物流系统建模与仿真 • 生产物流系统描述 • 定义元素Define • 可视化元素Display • 细节设计Detail • 仿真实验Run Simulation • 统计报告分析Report
Witness介绍:建模元素 • 三类建模元素: • 实物元素:代表实际系统中看得见的实体,如: • 原材料part/fluid、加工设备machine/processor • 作业员labor、运输工具conveyer/track/vehicle/pipe • 仓库buffer/tank • 逻辑元素:用来处理数据,实现复杂流程和逻辑的建模要素,如: • 属性attribute、变量variable、经验分布distribution • 函数function、班次shift、文件file、模组module; • 图形元素:形象化表示实体的运行特征。如: • 时间序列图形timeseries, 饼状图piechart, 直方图histogram
Witness软件:输入/输出规则 Witness提供了两类规则用于控制仿真系统中的物料流:输入规则和输出规则 • 输出规则Output Rule: • BUFFER • PERCENT • PUSH • SELECT • SEQUENCE • DESTINATION • LEAST • MOST • WAIT • CONNECT • FLOW • RECIPE • 输入规则Input Rule: • BUFFER • MATCH • PERCENT • PULL • SELECT • SEQUENCE • LEAST • MOST • WAIT • FLOW • RECIPE 离散 离散 离散连续 离散连续 连续 连续
Witness软件:复杂流程控制 • 使用基本的输入/输出规则不能对复杂流程进行建模时,可以使用条件判断规则结合基本IO规则实现流程的建模。 • IF 条件1 • IO规则1 • ELSEIF 条件2 • IO规则2 • … • … • ENDIF 例: IF time<200 Connect with pipe1 Elseif time<300 Flow to tank1 rate(100) Else Wait endif
Witness软件:数据类型 witness提供了四种类型的变量,用来进行数据处理: 整型、实型、名型、字符型。 • 整型(integer)变量:用来存储不包含小数点部分的数字。在witness中,可以是-2 147 483 648到+2 147 483 647之间的整数。 • 实型(real)变量:可以存储由数字(0~9)、小数点和正负号组成的数据。范围为(3.4E-38,3.4E38); • 名型(name)变量:用来存储witness仿真系统组成元素的名称。例如: Widget miller(3) • 字符型(string)变量:用来存储不具有计算能力的字符型数据。字符型数据是由汉字和ASCII字符集中可打印字符(英文字符、数字字符、空格以及其他专用字符)组成,长度范围是0~4095个字符。
Witness软件:随机函数 (1)BETA β分布; (2) NORMAL 正态分布; (3)BINOMIAL 二项分布; (4)POISSON 泊松分布; (5)ERLANG 爱尔朗分布; (6)RANDOM 0-1均匀分布; (7)GAMMA γ分布; (8)TNORMAL 截断正态分布; (9)IUNIFORM 整数均匀分布; (10)TRIANGLE 三角分布; (11)LOGNORML 对数正态分布; (12)UNIFORM 均匀分布; (13)NEGEXP 负指数分布; (14)WEIBULL 威伯分布
Witness软件:界面介绍 元素设计工具栏 视图控制工具栏 元素列表窗口 模型布局窗口 运行控制工具栏 统计报表工具栏
Witness软件:建模和仿真基本过程 仿真实验 结果分析 详细参数 元素可视化 元素定义 校验 验证
生产物流系统描述 • 使用WITNESS建立该系统的仿真模型,并进行仿真实验,研究在480分钟,该系统的产量和各设备的利用率。 10‘ 10‘ 10‘
定义元素Define • WITNESS义元素的四种方式: • 通过系统布局区(layout window):在系统布局区点击鼠标右键,在弹出菜单中选择Define菜单项,将弹出新建元素对话框,然后进行元素定义。 • 通过元素选择窗口(elements) :选择元素选择窗口中的simulation项,单击鼠标右键,在弹出菜单中选择Define菜单项,将弹出新建元素对话框,然后进行元素定义。 • 使用工具栏进行元素的定义:点击工具栏中的 新建元素图标 ,将弹出新建元素对话框,然后进行元素定义。 • 通过用户元素窗口(designer elements) 元素模板:在该窗口中,鼠标选中所需建立的元素类型图标,然后在系统布局区中单击鼠标左键进行元素定义。
定义元素Define 定义:零件 定义:机器 定义:输送链 定义:变量
可视化元素Display • 操作演示
细节设计Detail • 操作演示
仿真实验Run • 操作演示
统计报告Report • 操作演示
备注:Pull 规则 • 1 Pull规则:输入规则Pull将从其它元素中拉动Part进入使用该规则的元素。如果Pull规则指定了几种输入的part,该规则将一次获取这些Part,直至条件满足。 • 语法: • PULL {from} location1 {, location2 ...} • 其中,每个location的详细格式如下: • {part_name {from}} location_name {(index_exp)} {at position_exp} {with labor_name {#labor_qty}} {using PATH}
备注:Pull 规则 • Location参数:{part_name {from}} location_name {(index_exp)} {at position_exp} {with labor_name {#labor_qty}} {using PATH} • part_name:名型,为模型中part的名称 • location_name:名型,可以是元素的名称,也可以是模块Module的名称,part将从该元素被拉出。 • index_exp:整型,当输出Part的Location元素的对象数量多于1时,可以指定Pull规则具体的从该Location的第几个对象中提取Part,例如:如果Location的名称为Buffer001,那么Buffer001(2)表示Buffer001中的第二个对象。如果不指定Index_exp,Pull规则将从该Location元素的所有对象中提取适当的Part,顺序为Location(1),Location(2),......,Location(n). • position_exp:整型,当输出Part的Location为输送链时,可以指定Part从输送链的具体位置上被取出,如果不指定该数值,则Part将从输送链的尾部Rear被取出。 • with labor_name:名型,指定输入规则是否需要Labor元素协助。 • #labor_qty:整型,需要Labor元素协助时,需要的Labor元素的数量。 • using PATH:名型,指定从一个Location中提取Part进入本元素,是否需要使用特定的路径,让part沿着该路径搬运至本元素。
备注:Pull 规则 • 示例: • PULL WIDGET FROM WORLD • 在这个例子中,输入规则Pull从World(模型之外)拉动一个Part元素WIDGET进入模型。 • PULL FROM ASSEMBLY, STORE(1), STORE(2) • 在这个例子中,PULL规则将从ASSEMBLY, STORE(1), STORE(2)中提取Part,如果ASSEMBLY元素中没有Part了,则从STORE(1)中提取,如果STORE(1)中也没有Part了,则从STORE(2)中提取Part,如果这三个Location中都没有part了,则等待。 • PULL FROM ASSEMBLY WITH ENGINEER#1 USING PATH • 在这个例子中,Pull规则需要一个名为ENGINEER的labor从ASSEMBLY元素中提取Part,然后使用合适的路径运送回该规则的作用元素。 • PULL WIDGET FROM ASSEMBLY(3) WITH ENGINEER#2 USING PATH, WIDGET FROM ASSEMBLY(5) • 在这个例子中,Pull规则将使用两个工程师ENGINEER从第三个ASSEMBLY中提取Part,然后通过合适的路径运送到规则的作用元素,如果不能从ASSEMBLY(3)中提取part,将直接从第五个ASSEMBLY中提取名为WIDGET的Part。
元素详解 • Part • Machine • Conveyor
Part • 到达模式: • 被动式(Passive) • 主动式(Active) • 特殊规则 的主动式 (Active with profile) • 主动式细节设计项目 • Maximum: • First Arrival: • Shift: • Inter Arrival: • Lot Size: • To...: • Actions on Create...: • Actions on Leave...:
Machine 类型 • (1)单处理机(Single)。 • (2)批处理机(Batch)。 • (3)装配机(Assembly)。 • (4)生产机(Production)。 • (5)通用机(General)。 • (6)多周期处理机(Multiple Cycle)。 • (7)多工作站机(Multiple Station)。
Conveyor • 类型 • 固定式Fixed: • 队列式Queuing: • 固定式和队列式输送链比较 • 移位式Indexed • 连续式Continuous • 移位式和连续式输送链的区别
练习题 • 在超市入口有一台银行ATM机,用于客户提取现金,假设需要提取现金的客户到达时间间隔服从均值为2分钟的负指数分布,客户提取现金所需的时间服从均值为1.8分钟的负指数分布;模拟客户具有下列特性时的系统: • 客户到达ATM机,不论队列有多长,都会等待直至完成取款; • 客户到达ATM机,如果已近有4个人再排队了,他将自动离开,不再取款; • 客户到达ATM机,如果发现已经有4个人再排队了,他将先进入超市购物,购物时间服从[3,20]分钟的均匀分布,购物完毕后,他再来取款,此时他将不再考虑队列长度,直至完成取款; • 客户在第(3)中情况下,购物完毕后,如果发现已经有5个人再排队,他将直接离开; • 模拟一天12小时的时间,以上四种情况下,完成取款的人数、取款顾客平均等待时间、最大队列长度、没有完成取款的人数,对第3和4种情况下,进入超市购物的人数等。
练习题 • 在发动机装配线上,缸体P从点A上线,上线时间为20s,然后通过输送链运行到组装工位B,花费[17,23]s装配,然后再通过输送链运行到组装工位C,花费[16,24]s时间装配,然后送出下道工序,每两个工位间滚轴输送链上可以放置10个托盘,移位时间为5s,试对该系统进行8小时的仿真,统计各工位的忙闲比率、缸体等待情况。 • 某汽车生产厂,在车架、车身焊接完成,并手工修补车身之后,对汽车进行油漆。首先是底漆。将白皮车身通过滚动方式浸入糖浆般的漆槽,取出烘干底漆;然后送入无尘车间,用静电喷漆工艺喷上面漆,然后用200度左右的温度烘干。试建立该工艺过程的仿真模型,其中时间量请自行设置。 • (1)首先分析系统中的临时实体和永久实体;即加工对象和加工单元; • (2)假设加工单元特性,为了问题的简单化,假设每个加工单元只有一套设备,而且每次只对一个车身进行加工; • (3)合理设计加工工序的节拍,即设计各加工单元的加工时间为围绕节拍具有一定的随机波动性,例如设计生产节拍为60秒,而加工单元加工时间为[60-a,60+a]的均匀分布,其中不同加工单元的a取值不同。 • (4)仿真结束,分析你设计的节拍和随机量a对系统运行绩效的影响,参考指标为:产出量、平均在制品库存、车身平均通过时间等;