witness仿真系统课件_第1页
witness仿真系统课件_第2页
witness仿真系统课件_第3页
witness仿真系统课件_第4页
witness仿真系统课件_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

三、Witness随机分布函数WITNESS提供了14种整型或实数型的标准随机分布函数,它们能返回一系列理论分布的随机样本值。WITNESS提供了如下14种标准随机分布函数:(1)BETAβ分布;(2)NORMAL正态分布;(3)BINOMIAL二项分布;(4)POISSON泊松分布;(5)ERLANG爱尔朗分布(6)RANDOM0-1均匀分布;(7)GAMMAγ分布;(8)TNORMAL截断正态分布(9)IUNIFORM整数均匀分布(10)TRIANGLE三角分布;(11)LOGNORML对数正态分布(12)UNIFORM均匀分布;(13)NEGEXP负指数分布;(14)WEIBULL威伯尔分布Witness提供了四种类型的变量:整型、实型、名型、字符型。witness仿真系统四、witness程序三种基本结构1、顺序结构顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。2、分支结构分支结构是在程序执行时,根据不同的条件,选择执行不同的程序语句,用来解决有选择、有转移的诸多问题。3、循环结构允许有限次重复执行某一特定的程序。witness仿真系统分支结构有单向分支和多向分支语法结构,分别如下:(1)单向分支,也叫简单分支结构IF<条件表达式><命令行序列>ENDIF(2)多向分支,也叫复杂分支结构IF<条件表达式1><命令行序列1>ELSE<命令行序列2>ENDIFwitness仿真系统(3)使用分支语句应注意的几点:aIF…

…ENDIF必须配对使用;b〈条件表达式〉可以是各种表达式或函数的组合,其值必须是逻辑值;c〈命令行序列〉可以由一个或多个命令组成,也可以是条件控制语句组成的嵌套结构。示例IF(water_level>=0)AND(water_level<=5)PRINT"Thelevelinthewatertankislow"ELSEIF(water_level>5)AND(water_level<=10)PRINT"Thelevelinthewatertankisnormal"ELSEPRINT"Thelevelinthewatertankishigh"ENDIFwitness仿真系统循环结构(1)计数型循环基本语法如下:FOR〈循环变量〉=〈循环变量初值〉TO〈循环变量终值〉[STEP〈循环变量步长〉]〈命令行序列〉NEXTwitness仿真系统例:NUMBER_FOUND=0FORBUFFER_INDEX=1toNPARTS(STORE(1))IFSTORE(1)atBUFFER_INDEX:color=redNUMBER_FOUND=NUMBER_FOUND+1ENDIFNEXT这段程序用来统计缓冲区store(1)中颜色为红色的部件的数量。BUFFER_INDEX是循环变量;NPARTS(STORE(1))函数计算缓冲区STORE(1)中的部件数量;IF分支用来判断STORE(1)中排于第BUFFER_INDEX位置的部件的属性color是否等于“red”

witness仿真系统(2)“当”型循环语法结构:WHILE<条件表达式><命令行序列>ENDWHILE注:ENDWHILE可以缩写为END。语句功能:当<条件表达式>为真时,一直执行<命令行序列>,直到<条件表达式>为假时,循环结束。示例:WHILENPARTS(STOCK)>90PRINT"Warning!TheSTOCKbufferisnearlyfull."ENDWHILEwitness仿真系统使用循环语句时应注意的几点WHILE和ENDWHILE、FOR和NEXT必须配对使用。〈命令行序列〉可以是任何WITNESS的命令或语句,也可以是循环语句,即可以嵌套为多重循环。witness仿真系统五、Witness常用系统函数1、数字函数Abs(R)Amax(R1,R2,R3…,Rn)2、转换函数Chr(I)Float(I)Str(RorI)Strstr(Sa,Sb)Leftstr(S,N)witness仿真系统3、模型交互对话函数Msgdlg(title,icon_id,dialog_text,button_text,default_button)用来产生一个消息框。title:字符串型,用来产生消息框的标题;icon_id整数型,用来标记消息框的类型。若icon_id=0,则消息框无任何图标;若icon_id=1,则消息框的图标为“Stop”型;若icon_id=2,则消息框的图标为“Question”型;若icon_id=3,则消息框的图标为“Warning”型;若icon_id=4,则消息框的图标为“Information”型;dialog_text字符串型,在消息框中要显示的文本;button_text字符串型,消息框中按钮的显示文本。一个消息框中至多有4个按钮,每个按钮的文本用“|”分隔开;default_button整数型;default_button用来设置按钮的默认值,若default_button=1,则默认第一个按钮;若default_button=2,则默认第二个按钮;若default_button=3,则默认第三个按钮;witness仿真系统

示例:

MSGDLG(“Changethepath”,2,“Doyouwanttochangethepath?”,“&Yes|&No”,1)会弹出下列消息框:witness仿真系统Inputdlg(title,dialog_text,field_default,field_width,type_id)用来产生用户可以进行编辑的交互窗口。

title字符串型,用来产生交互窗口的标题;dialog_text字符串型,用来产生交互窗口的要进行编辑的提示信息;field_default字符串型,在交互窗口要输入的默认值;

field_width整数型,交互窗口要输入的文本的宽度;

type_id整数型;交互窗口要输入的类型,若type_id=1,则应该输入字符串型;若type_id=2,则应该输入整数型;若type_id=3,则应该输入实数型;witness仿真系统示例:♦INPUTDLG("NumberofMachine","Pleaseinputthenumberofmachine!","2",5,2)会弹出下列可编辑的交互窗口,witness仿真系统4、数据库函数DBOpen();用来根据ODBC数据源及SQL语句对数据库进行查询。DBClose();用来关闭用DBOpen()打开的数据库。DBAdd();用来向打开的数据库添加记录,并使记录指针指向当前记录。5、Excel函数XLReadArray(WorkbookName,WorksheetName,Range,Array)用来将Excel工作表中某些区域的数据读给Witness的变量或变量数组,若成功,返回1;否则,返回0。witness仿真系统示例:XLReadArray(“\\XLLinks.xls”,“InputData”,“$D$6:$D$8”,CycleTime),其作用是将与模型在同一路径下的工作簿XLLinks.xls打开,并将该工作簿的工作表InputData中的D6:D8三个单元格的数据读出来,最后赋予CycleTime(1)、CycleTime(2)、CycleTime(3)。witness仿真系统XLWriteArray(WorkbookName,WorksheetName,Range,Array)用来将Witness的变量或变量数组的值写入Excel工作表中,若成功,返回1;否则,返回0。示例:XLWriteArray("\\XLLinks.xls","Output","$H$3",ProcessTime)其作用是将变量ProcessTime的值写入与模型系统路径相同的工作簿XLLinks.xls的工作表Output中,单元格由H列和第3行所确定的。

witness仿真系统6、常用元素函数NQTY(element_name)返回模型中特定元素的数量。NPARTS(element_name)返回模型中特定元素中部件的数量。7、用户自定义函数

Define…定义函数可通过在Witness的布局窗口中单击鼠标右键,单击“define…”

,弹出如下图所示的窗口。

witness仿真系统在图中通过下拉框选中“Function”

一项,并给要定义的函数命名,然后单击“Create”

,单击“Detail”

,如下图:witness仿真系统在图中通过“type”

下的下拉框选择要定义的函数的返回数据类型;通过“Add/Remove”选项添加或删除函数的自变量;通过单击“Actions”进行函数体的编写。witness仿真系统举例:一、单队列单服务台系统建模与仿真案例case1.0.mod:

某港口只有一个岸桥为到达的船舶提供卸货服务。当船舶到达港口时,停入泊位等待服务。如果岸桥空闲,则立即对其进行货物卸载作业;如果岸桥为其他船舶卸载,则船舶在泊位等待;岸桥为船舶提供服务的规则为FIFO。假设船舶到达时间间隔服从均值为10小时的负指数分布,岸桥为每艘船的卸载时间服从[6,14]小时的均匀分布。建立仿真模型,运行100天=2400小时,统计:岸桥的利用率;船舶的平均等待时间港口船舶等待队列的最大长度服务船舶数量:witness仿真系统通过本案例的学习:熟悉WITNESS建模与仿真的基本步骤;建模元素part、machine、buffer的基本应用;可视化工具栏建立输入、输出工序流程;负指数分布NEGEXP()和均匀分布Uniform()的使用;仿真实验及统计数据分析;WITNESS仿真系统的工作模式;witness仿真系统二、在单队列单服务台案例基础上完成如下情况的建模:1.船舶到达时发现港口中已经有4艘船舶在等待,则选择离开(case1.1.mod);统计系统100天流失的船舶数量;通过控制Buffer元素的Capacity实现2.船舶等待时间超出30小时,则选择进行服务投诉(case1.2.mod);统计系统100天中接受到的投诉数量;通过控制Buffer元素的Delay项实现3.港口增加了一台岸桥对船舶进行服务(case1.3.mod)仿真比较此时系统与case1系统在绩效指标上的变化,通过设置Machine元素的Quantity项目实现witness仿真系统三、生产线物流系统建模案例

某公司有一条加工一种零件的生产线,有四道工序:称重工序,服从均值为为5分钟的负指数分布;清洗工序,服从均值为为4.5分钟的负指数分布;加工工序,服从均值为为4分钟的负指数分布;检测工序,服从均值为为3分钟的负指数分布。

每道工序的每台机器上每次只能加工一个零件,工序之间零件依靠输送链运输,零件通过每条输送链的时间为10分钟。

witness仿真系统清洗工序每清洗完10件产品,就需要整理一下工作台,整理时长服从均值为8分钟的负指数分布;加工工序的机器每运行50分钟,进行一次预防性检修,检修时长服从均值为10分钟的负指数分布;加工工序会发生随机故障,故障间隔服从均值100分钟的负指数分布,维修时长服从30分钟的负指数分布;这三项作业都需要一名工人参与;假设该生产线上每道工序仅有一台机器,整条生产线由一名工人维护,零件数量足够多,建立该系统的WITNESS仿真模型。witness仿真系统通过本案例的学习:熟悉建模元素part、machine、conveyor、labor的一般应用;输入输出Pull、Push规则的使用熟悉machine元素的setup、breakdown设计;了解负指数分布NEGEXP()的使用;witness仿真系统三种类型的零件A、B、C随机到达系统,分别暂存于仓库的特定库区,有一装配机器将1个A、2个B和1个C组装一个成品D,放入专有缓冲区中;其中:A零件到达时间间隔为5分钟,批量为1,第一个零件在0时刻到达;B零件到达时间间隔为4分钟,批量为2,第一个零件在10时刻点到到;C零件到达时间间隔为6分钟,批量为1,第一个零件在0时刻到达,该零件总量为20;装配机器对零件的提取顺序为先取A、再取B、再取C;装配机器的组装时间为6分钟使用WITNESS建立该系统模型。四、组装作业工序建模案例

witness仿真系统通过本案例的学习:熟悉active模式的part元素相关项目的设计;熟悉缓冲区buffer元素的设计;熟悉组装类型的machine的设计;了解machine专有缓冲区的设计;了解输入规则sequenceSEQUENCE/Wait仓库(1)#(1),仓库(2)#(2),仓库(3)#(1)witness仿真系统witness仿真系统五、混流生产系统建模与仿真案例有一个制造车间由5组机器加工三种产品A,B.C。每种产品分别要求完成4道、3道和5道工序,而每道工序必须在指定的机器组上,按照事先规定好的工艺顺序进行。第1,2,3,4,5组机器分别有3,2,4,3,1台相同的机器,A,B.C三种产品原料到达车间的间隔时间分别服从均值为50,30,75分钟的负指数型分布。三种产品的工艺路线如下表所示。witness仿真系统产品类型机器组别相继工序平均服务时间/分钟13,1,2,530,36,51,3024,1,366,48,4532,5,1,4,372,15,42,54,60witness仿真系统即第1种作业首先在第3组机器上加工,然后在第1组、再在第2组机器上加工,最后在第5组机器上完成最后工序。如果一项作业在特定时间到达车间

温馨提示

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

评论

0/150

提交评论