当前位置:文档之家› witness仿真系统ppt课件

witness仿真系统ppt课件


用来将Excel工作表中某些区域的数据读给
Witness的变量或变量数组,若成功,返回1;否
则,返回0。
14
示例: XLReadArray
(“\\XLLinks.xls”,“InputData”,“$D$6:$ D$8”,CycleTime), 其作用是将与模型在同一路径下的工作簿 XLLinks.xls 打开,并将该工作簿的工作表 InputData 中的 D6:D8 三个单元格的数据 读出来,最后赋予 CycleTime(1) 、 CycleTime(2)、 CycleTime(3)。
设计; – 了解负指数分布NEGEXP()的使用;
25
四、组装作业工序建模案例
三种类型的零件A、B、C随机到达系统,分别暂 存于仓库的特定库区,有一装配机器将1个A、2 个B和1个C组装一个成品D,放入专有缓冲区中; 其中:
• 示例
IF (water_level >= 0) AND (water_level <= 5)
PRINT "The level in the water tank is low"
ELSEIF (water_level > 5) AND (water_level <= 10)
PRINT "The level in the water tank is normal"
ENDWHILE
7
使用循环语句时应注意的几点
• WHILE 和ENDWHILE、FOR 和NEXT 必须配 对使用。
• 〈命令行序列〉可以是任何WITNESS 的命令或 语句,也可以是循环语句,即可以嵌套为多重循 环。
8
五、 Witness常用系统函数 1、数字函数 Abs(R) Amax(R1,R2,R3…,Rn) 2、转换函数 Chr(I) Float(I) Str(R or I) Strstr(Sa,Sb) Leftstr(S,N)
这三项作业都需要一名工人参与 ; 假设该生产线上每道工序仅有一台机器,整条生 产线由一名工人维护,零件数量足够多,建立该 系统的WITNESS仿真模型。
24
通过本案例的学习:
– 熟悉建模元素part、machine、 conveyor、labor的一般应用;
– 输入输出Pull、Push规则的使用 – 熟悉machine元素的setup、breakdown
title 字符串型,用来产生交互窗口的标题; dialog_text 字符串型,用来产生交互窗口的要进行编辑
的提示信息; field_default 字符串型,在交互窗口要输入的默认值; field_width 整数型,交互窗口要输入的文本的宽度; type_id 整数型;交互窗口要输入的类型,若 type_id
15
XLWriteArray( WorkbookName, WorksheetName,Range,Array ) 用来将Witness的变量或变量数组的值写入Excel 工作表中,若成功,返回1;否则,返回0。
示例: XLWriteArray
("\\XLLinks.xls","Output","$H$3" ,ProcessTim e) 其作用是将变量ProcessTime的值写入与模型系 统路径相同的工作簿XLLinks.xls的工作表Output中, 单元格由H列和第3行所确定的。
=1,则应该输入字符串型;若 type_id =2,则应该输入 整数型;若 type_id =3,则应该输入实数型;
12
示例: ♦ INPUTDLG ("Number of Machine","Please
input the number of machine!","2",5,2) 会 弹出下列可编辑的交互窗口,
三、Witness随机分布函数
WITNESS 提供了14 种整型或实数型的标准随机分布函数, 它们能返回一系列理论分布的随机样本值。WITNESS 提 供了如下14 种标准随机分布函数:
(1)BETA β分布; (2) NORMAL 正态分布;
(3)BINOMIAL 二项分布;(4)POISSON 泊松分布;
(2) 多向分支,也叫复杂分支结构 IF <条件表达式1> <命令行序列1> ELSE <命令行序列2> ENDIF
3
• (3)使用分支语句应注意的几点:
a IF… … ENDIF 必须配对使用;
b〈条件表达式〉可以是各种表达式或函数的组合,其 值必须是逻辑值;
c〈命令行序列〉可以由一个或多个命令组成,也可以 是条件控制语句组成的嵌套结构。
(5)ERLANG 爱尔朗分布 (6)RANDOM 0-1 均匀分 布;
(7)GAMMA γ分布; (8)TNORMAL 截断正态分 布
(9)IUNIFORM 整数均匀分布 (10)TRIANGLE 三角分 布;
(11)LOGNORML 对数正态分布(12)UNIFORM 均匀
分布;
1
四、witness程序三种基本结构 1、顺序结构 • 顺序结构是在程序执行时,根据程序中语句的书写顺
称重工序,服从均值为为5分钟的负指数分布;清洗工 序,服从均值为为4.5分钟的负指数分布;加工工序, 服从均值为为4分钟的负指数分布; 检测工序,服从 均值为为3分钟的负指数分布。
每道工序的每台机器上每次只能加工一个零件,工 序之间零件依靠输送链运输,零件通过每条输送链的 时间为10分钟。
Widget
16
6、常用元素函数 NQTY(element_name)
返回模型中特定元素的数量。 NPARTS( element_name )
返回模型中特定元素中部件的数量。 7、用户自定义函数
Define… 定义函数可通过在 Witness的布局窗口中单击 鼠标右键,单击“define…” ,弹出如下图所示
序依次执行的命令序列。 2、分支结构 • 分支结构是在程序执行时,根据不同的条件,选择执
行不同的程序语句,用来解决有选择、有转移的诸多 问题。 3、循环结构 • 允许有限次重复执行某一特定的程序。
2
分支结构有单向分支和多向分支语法结构,分别如下: (1) 单向分支,也叫简单分支结构 IF <条件表达式> <命令行序列> ENDIF
L
称重
L1
清洗
L2
加工
L3
检测
23
清洗工序每清洗完10件产品,就需要整理一下 工作台,整理时长服从均值为8分钟的负指数分布;
加工工序的机器每运行50分钟,进行一次预防 性检修,检修时长服从均值为10分钟的负指数分 布;
加工工序会发生随机故障,故障间隔服从均值 100分钟的;
的使用; – 仿真实验及统计数据分析; – WITNESS仿真系统的工作模式;
21
二、在单队列单服务台案例基础上完成如下情况的建模:
1.船舶到达时发现港口中已经有4艘船舶在等待, 则选择离开(case1.1.mod);
统计系统100天流失的船舶数量;
通过控制Buffer元素的Capacity实现
2.船舶等待时间超出30小时,则选择进行服务投诉 (case1.2.mod);
19
举例:一、 单队列单服务台系统建模与仿真
案例case1.0.mod: 某港口只有一个岸桥为到达的船舶提供卸货服务。当船舶
到达港口时,停入泊位等待服务。如果岸桥空闲,则立即对其 进行货物卸载作业;如果岸桥为其他船舶卸载,则船舶在泊位 等待;岸桥为船舶提供服务的规则为FIFO。
假设船舶到达时间间隔服从均值为10小时的负指数分布, 岸桥为每艘船的卸载时间服从[6,14]小时的均匀分布。 建立仿真模型,运行100天=2400小时,统计:
13
4、数据库函数
DBOpen();用来根据ODBC数据源及SQL语句对数 据库进行查询。
DBClose();用来关闭用DBOpen()打开的数据 库。
DBAdd();用来向打开的数据库添加记录,并使记 录指针指向当前记录。
5、Excel函数
XLReadArray(WorkbookName, WorksheetName,Range,Array)
6
(2)“当”型循环
语法结构:
WHILE <条件表达式>
<命令行序列>
ENDWHILE
注:ENDWHILE 可以缩写为END。
语句功能:
当<条件表达式>为真时,一直执行<命令行序列>,直 到<条件表达式>为假时,循环结束。示例:
WHILE NPARTS(STOCK) > 90
PRINT "Warning! The STOCK buffer is nearly full."
按钮;若 default_button=3,则默认第三个按钮;
10
示例: MSGDLG (“Change the path”,2,“Do you
want to change the path?”,“&Yes|&No”,1) 会弹出下列消息框:
11
Inputdlg(title,dialog_text, field_default, field_width,type_id) 用来产生用户可以进行编辑的交互窗口。
ELSE
PRINT "The level in the water tank is high"
ENDIF
4
循环结构 (1)计数型循环
基本语法如下: FOR〈循环变量〉=〈循环变量初值〉 TO〈循环变量终值〉 [STEP〈循环变 量步长〉] 〈 命令行序列〉
NEXT
相关主题