WITNESS系统离散型元素
离散型元素:离散型元素是为了表示所要研究的现实系统中可以看得见的、可以计量个数的物体,一般用来构建制造系统和服务系统等。主要包括:零部件(Part)、机器(Machine)、输送链(Conveyor)、缓冲区(Buffer)、车辆(Vehicle)、轨道(Track)、劳动者(Labor)、路径(Path)、模块(Module)。
1 零部件(Part)
零部件 (Part)是一种最基本的离散型元素,它可以模拟在其他离散型元素间移动、储存和被处理的任何事物,在WITNESS中使用图标表示。WITNESS中的零部件表述的是一个广义的概念,它既可以模拟生产系统中进行机械加工、装配、制造的零部件,微型电子元件等,也可以模拟销售过程中的产品、大公司全程处理的项目、电话交流中一个的呼叫请求、超市中川流不息的顾客、医院中的病人、机场上的行李等。WITNESS中零部件模拟的事物在系统中总是从一个地点到达另一个地点,最终被直接送出系统,或者成为最终装配品的一部分而送出系统。例如:对一个零售店进行仿真时,被销售产品(Part元素模拟)总是先存放在货架上,一旦有顾客需求,则被用于满足顾客需求而被顾客带出系统;对中国移动10086电话呼叫中心仿真时,客户咨询电话(Part元素)不断到达呼叫中心,有时需要排入队列等待客服人员服务,有时直接接受客服服务,经过一定时间的客服应答之后,客户咨询电话下线,也即退出呼叫中心系统;对手机装配线进行仿真时,手机屏幕、键盘等(Part元素模拟)不断由物料组人员送达装配线对应工位上暂存,然后逐件被装配到手机主板上,通过 输送链送入下道工序,最终成为完整的手机被送出装配线。Part元素可以模拟实际系统中那些被加工、被处理的对象,这些对象在系统中仅仅存放特定长度时间(加工、存储和运输时间之和),最终要被送出系统,这些对象也称为临时实体。
用于模拟实际系统各种临时实体的零部件进入系统的方式各具特色,但是都可以通过三种方式对其临时实体进入系统的过程进行描述。WINTESS为零部件进入模型设计有三种 主要方式:
被动式(Passive):只要有需要,零部件可以无限量进入模型。如在生产性企业中,一些零部件堆放在仓库中,当生产需要时,可以随时把它取出来供应生产。
主动式(Active):零部件可以间隔固定的一段时间(例如,每隔10分钟)进入模型;可以按照一定的随机分布进入模型,如顾客到达商店的时间间隔服从均匀分布;也可以 经验分布的时间间隔(例如,10分钟,20分钟,30分钟)到达模型中;
特殊规则 的主动式 (Active with profile):例如,一个餐馆,有50位“顾客”(零部件)在上午8点到达那里,10位顾客在上午8:01至11:59到达那里,50位在中午12点到达,50位在12点半到达等等,每星期都如此。在该方式中, 建模师可以使用Active with profile方式对零部件到达模型的时间、时间间隔、到达最大数量等选项进行设置。
WITNESS零部件类型元素的细节设计对话框中提供了这三种方式的设计,如下图所示。
零部件Part元素细节设计对话框Detail
零部件以何种方式进入模型需要根据其所模拟的实际对象进入实际系统的模式来确定。例如:在使用仿真研究银行营业柜台开放时间和数量对服务效率的影响时,到银行营业厅的顾客将使用零部件类型的元素来模拟。由于在实际系统中,顾客是主动到达银行营业厅的,可以很容易想到顾客元素进入模型的方式为主动式的,但是如何确定顾客进入模型服从的规律呢?基于排队论理论,顾客到达系统的间隔时间是服从特定随机分布的,极大可能性服从指数分布,但是对于这里研究的银行营业厅系统,顾客到达是否服从指数分布?假若顾客到达间隔时间服从指数分布,那么这个指数分布的均值为多少?这些问题都需要在建模之前通过收集实际系统数据,进行统计拟合和假设检验来解决,具体实现方法参看高级教程中《仿真输入模型的构建》部分。
对于各种类型的零部件元素在建模过程中需要进行相关细节项目的设计,以实现其模拟的实际对象的数据特征和行为特性,这些细节设计在Witness仿真建模中称之为元素细节设计(Detail Design)。零部件细节设计过程是通过该元素的细节设计对话框完成的,下面以Active方式的Part元素细节设计进行说明 (其他两种类型零部件元素细节设计对话框参看后续示例教程部分),对话框如下图所示。
主动式Active零部件元素细节设计对话框
主动式零部件细节设计对话框General页面项目说明:
Maximum:零部件进入系统的总量限制,如果没有总量限制,请保留为缺省值:Unlimited;如果有总量限制,在其下方的文本框中输入限制的数量;
First Arrival:第一批零件进入模型的时间点,缺省情况下第一批零件在0时刻进入模型;
Shift:设定零部件进入系统的班次情况;
Inter Arrival:前后两批零件的到达间隔时间,可以是常量、变量或者具有实数返回值的函数,或者是这些类型数据组成的实数表达式,注意不能为负数;
Lot Size:每批到达零件的批量;
To...:用于设计该零部件进入系统后的去向,例如:进入某个队列,或直接进入某个车床上进行加工等;
Actions on Create...:用于设计该零部件对象创建时所要执行的相关操作,可以是数据的计算,或者改变系统其它对象的属性等;
Actions on Leave...:用于设计该零部件离开系统时所要执行的相关操作;
2 机器(Machine)
机器(Machine)是用于模拟实际系统中获取、处理零部件对象并将其送往特定地点的对象或过程的离散型元素,在WITNESS使用图标表示。WITNESS中的机器也是一个广义的概念,它可以模拟实际生产制造系统中的特定机器设备,也可以模拟提供相关服务的柜台。例如:机器可以代表有装载、旋转、卸载、空闲和保养这五个状态的一台车床,也可以代表有空闲、工作、关闭三个状态的一个机场登记服务台(将旅客与他们的行李分开,并发放登机卡),还可以代表有焊接,空闲和保养三个状态的一个机器人焊接工等等。
实际系统对零部件对象进行处理的过程和方式多种多样,
Witness提供了七种类型的机器来建立不同类型处理过程的仿真对象:
(1)单处理机(Single)。单处理机 为一次只能处理一个部件,单个部件输入单个部件输出的机器或处理过程。 例如:普通车床总是装上一件零件后对该零件进行机械操作,最后的完成品还是一个零件;单个银行服务柜台总是为当前的一个顾客提供服务,服务结束后还是一个顾客离开。
(2)批处理机(Batch)。批处理机 为一次同时对多个零部件进行处理,处理结束后还是输出这些数量的零部件的机器或处理过程,n个部件输入n个部件输出。 例如:油漆车间对某些机械件的高温喷漆过程,总是先将特定数量的机械件送入喷漆箱,封闭后喷漆设备同时对这些机械件进行喷漆,喷漆过程结束将这些机械件送出喷漆箱,喷漆过程前后的零件数量不会改变。
(3)装配机(Assembly)。装配机 为将输入的多个零部件组装成一个组件输出的机器或处理过程,m个部件输入1个部件输出。 例如:汽车装配线的发动机装配工位,在输入一个车体和一个发动机部件后开始安装,安装结束后输出一个带有发动机的车体;啤酒生产线最后的打包工序输入12个零部件(12瓶啤酒)进行打包后输出一箱啤酒,即输入的零部件数量为12,输出零部件数量为1。
(4)生产机(Production)。 生产机为将一个零部件输入后能输出多个零部件的机器或处理过程,1个部件输入m个部件输出。例如:钢板切割设备输入单片钢板,加工后会输出多件钢材和一些边角料 ;啤酒销售柜台拆开啤酒包装箱的过程,输入的为一箱啤酒,输出的为12瓶啤酒。需要注意的是,生产机不仅输出原部件,而且输出带有规定生产数目的附加零部件, 例如:啤酒拆卸过程,输入的为一个啤酒箱,输出的为12瓶啤酒,拆卸后的输出零件不仅包括一个空的啤酒箱,还包括12瓶啤酒。
(5)通用机(General)。 通用机为输入零件数量和输出零件数量都可以进行自定义的一类机器或者处理过程,m个部件输入n个部件输出。例如:某台钢板切割机器输入3块钢板,每块钢板可以切割为4等份的钢材,这样需要使用通用机模拟该设备,该设备的输入零部件数量为3,输出零部件数量为3*4=12件。
(6)多周期处理机(Multiple Cycle)。多周期处理机 为一个作业工序需要进行连续的多道处理过程的机器或者处理过程,其一个作业工序可以包括多个处理周期,在每个处理周期都可以设置输入的零部件及数量以及输出零部件的类型和数量。该类机器可以模拟这样的装配过程:该装配过程在一个工位完成,该装配过程先要对1个A和2个B进行20s的组装,再提取2个C组装到A和B的组装成品上,组装时间为30S;再提取1个D进行10S的组装。还可以模拟半自动机床的作业过程,某半自动机床在上料的10S和下料的20S需要一名工人协助,而在上料后将进行1000s的自动加工过程,自动加工过程不需要工人协助。
(7)多工作站机(Multiple Station)。多工作站机为多台联结在一起的机器设备组成的工作机组,零部件在该工作机组上按照同样的顺序和作业方式接受加工处理。
设定机器元素类型可以通过对Machine类型元素细节对话框的Type项进行选择,参看下图所示。
机器类型选择界面
3 输送链(Conveyor)
输送链是可以模拟系统两点间零部件运输的传送装置的离散性元素,在WITNESS中使用图标表示。
输送链可以模拟皮带输送链和滚轴输送链,例如:发动机曲轴生产线上的滚轴输送链,机场运送行李的传送带,汽车装配系统中的地链,手机装配线上的皮带输送链等。
Witness提供了四种类型的输送链:移位固定式(Indexed Fixed)、 移位队列式(Indexed Queuing)、
连续固定式(Continuous Fixed)、 连续队列式(Continuous Queuing),可以在输送链的细节对话框中进行选择设定,如下图所示。
输送链元素的细节设计对话框
固定式Fixed:固定式输送链表示当零部件送达该类输送链后,这些零部件按照相同的速度向前移动,它们之间的距离保持固定不变,即当某个零部件移动到输送链前端,但是不能向外输出时,整个输送链就会停止移动,其他零部件也将保持在原来的位置不动。经常用于模拟皮带输送链,当输送链前端停止时,整个皮带将会停止,其他位置的零部件将不再向前移动。
队列式Queuing:队列式输送链允许零部件进行移动堆积,即当某个零部件移动到输送链前端,但是不能向外输出时,后面的零部件依然会向前端移动,直至靠近其前面额零部件不能再向前移动为止。该类输送链经常用于模拟滚轴输送链,当输送链前端停止时,后面的滚轴依然将零部件向前运输。
对于固定式和队列式输送链,可以使用下面两幅图进行比较:
从上面两幅图上可以看出:
在时间段[t1-t2]内输送链均为正常移动,两种类型输送链上的零件均向前移动,状态表现一致。
到了时间点t2时,零件P5到达输送链的前端,但是处于阻塞状态不能离开输送链,在时间段[t2-t3-t4]输送链均处于阻塞状态,这时两类输送链上的零件有不同的状态表现:(1)固定式输送链上的零件之间需要保持距离不变,由于P5不能向前移动,所以后续的所有零件都不能向前移动;(2)队列式输送链上的零件可以不断向前移动,直至靠近其前面的零件。所以在t3时刻,P4移动到P5左侧;t4时刻P3移动到P4左侧。
移位式Indexed:移位式输送链模拟的输送链是由很多零件放置位、放置沟槽组成的,每个放置位只能放置一个零件。零件从一个放置位移动到下一个放置位需要的时间称为移位时间(Index Time)。
连续式Continuous:连续式输送链模拟的输送链为平整的连续输送链,没有严格意义上的放置位划分,只要零件的长度在输送链上可以容纳下,就不会严格区分零件的放置点。当一条连续输送链长度为500cm时,运输的零件为A(长50cm)和B(长100cm),如果这些零件紧挨着送上该输送链,输送链上可能运输的零件组合为:AAAAAAAAB、 AAAABBB、 AABBBB、BBBBB,因为这些组合的总长度均为500cm;不可能在输送链上出现的零件组合为BBBBAAAA,因为该组合零件的总长度已经超过了输送链的长度了。
移位式和连续式输送链的区别可以用下图进行比较。在移位式输送链中,如图(a),不论零件的长度多么的小(当然,零件的长度必须不大于输送链的一个放置位的长度),该零件都将占据一个放置位,如图中的零件P3,这样在输送链上最多只能放置9个零件。在连续式输送链上能够放置零件的数量同输送链长度和每个零件的长度有关,因为没有严格的位置限制,零件可以一个挨着一个,如图(b)所示。
关于移位式输送线放置位的说明:
上图(a)为具有9个放置位的移位式输送线示意图,零部件总是从输送链的尾端Rear处进入输送链,即从编号9的放置位进入输送链,然后依次运行到前面的放置位,直至放置位1处离开输送线,即输送链的前端Front,即移位式输送链放置位编号是沿着输送链运行方向逐渐递减的。
4 缓冲区(Buffer)
缓冲区是用于模拟存放零部件元素的离散型元素,在Witness中使用图标表示,
缓冲区是存放部件的离散元素。缓冲区可以表示仓库、线边库存、柜台前的队列等,例如
汽车生产企业原材料仓库、成品仓库,装配线旁的零件暂存区,手机组装线边的零件储备箱,超市的货架,影剧院售票处的队列等。
缓冲区是一种被动型元素,既不能像机器元素一样主动获取部件,也不能主动将自身存放的部件运送给其他元素;它的部件存取依靠系统中其他元素主动的推或拉。我们可利用缓冲区规则,使用另一个元素把部件送进缓冲区或者从缓冲区中取出来。部件在缓冲区内还按一定的顺序整齐排列(例如,先进先出,后进先出)。
5 车辆(Vehicle)
车辆是用于模拟实际系统运载工具的一种离散型元素,在Witness中使用图标表示。使用车辆可以将一个或多个
零部件从一个地点运载到另一个地点,车辆元素可以表示卡车、客车、铲车、AGV等。
车辆必须沿着轨道(track)运动。建立了车辆模型之后,必须建立该车辆所处的运输轨道环境,然后车辆才可以实现相关的装、卸载和运输作业。
6 轨道(Track)
轨道是用于模拟实际系统中的道路或者AGV运输轨道的离散型元素,在Witness中使用图标表示。车辆所走的路径是由一系列轨道组成的。每条轨道都是单向的;假如你需要一条双向的轨道,只需定义两条沿相同线路但方向相反的轨道就可以了。车辆在“尾部”(rear)进入轨道并向“前部”(front)运动。一旦到达前部,该车辆可以进行装载,卸载或其它的操作。然后它将移动到下一条路线的尾部并开始向那条路线的前面运动。
7 劳动者(Labor)
劳动者以模拟系统中的共享资源的离散型元素,在Witness中使用图标表示。劳动者可以模拟实际系统中的工人,也可以模拟实际系统中的维修工具等,不论是工人还是工具,他们都具有为其他元素共享的属性。例如:如果模拟的是工人,该工人可能需要同时看护多台半自动机床,为机床进行上、下料操作,当有两台以上的机床同时需要上或下料时,就会出现共享冲突,一名工人不能同时对两台机床进行操作,必然会有一台机床需要等待,进而影响整个系统的绩效。如果模拟的是工具,该工具可能在多台设备或者多项操作中都需要使用它,也存在共享冲突的可能。
8 路径(Path)
路径是设定部件和劳动者(或者其它资源)从一个地点到达另一个地点的移动路程的离散型元素,在Witness中使用图标表示。
Path元素同Conveyor元素既有相同点,也有不同点。
相同之处是:两类元素都可以将零部件从一个地点运送到另一个地点,而且这个运送过程需要一定的时间。
不同之处是:
Path元素可以实现控制作业人员从一个地点走到另一个地点所需要的时间;同时还可以实现由劳动者搬运零部件从一个地点移动到另一个地点;但是Path运送零部件或者劳动者的过程比较简单,就是按照均匀速率从一个地点运送到另一个地点。
Conveyor元素只能够运送零部件元素,而不能运送劳动者元素;输送链上的零部件可以实现零部件是移位式的运送,还是队列式的运输;输送链上的零部件还可以在其任意的放置位离开。
总之,
只有在必要时我们才使用路径。假如模型中的元素有很长的作业周期时间而它们之间的行程距离很短,那就没有必要添加路径元素而增加模型的复杂性了。路径的选用应基于建模对象
的特征或者需要实现的功能,主要考察路径、轨道和车辆、输送链实现建模功能的方便性,以进行合理选用建模元素。
9 模组(Module)
模组是表示其他一些元素集合的离散型元素,在Witness中使用图标表示。
通过模组元素,可以很容易的在简单模型的基础上构建出较大的模型,例如一个工厂由3个车间组成,每个车间由3条生产线组成,而且这些生产线的结构和作业方式相同,整个工厂结构如下图所示。
在建立该工厂仿真模型时,可以先建立一条生产线的仿真模型,可以通过如下几步使用模组元素方便快捷的构建起整个工厂的仿真模型:
(1)建立一条生产线仿真模型,例如Line11,在该模型调试结束后,将Line11构建为一个模组元素;
(2)通过复制生产线模组,建立车间仿真模型。因为该工厂的生产线在结构和作业方式基本相同,只是在作业对象和作业时间上有差异,因此可以通过复制Line11模组建立Line12和Line13的生产线仿真模组,然后对Line12和Line13进行相关的修改,并建立这三条生产线之间的物料交互逻辑,最后将这三个模组组建为Shop1模组,即完成了车间仿真模型的构建。
(3)通过复制车间模组,建立工厂仿真模型。复制Shop1模组,建立Shop2和Shop3车间仿真模组,并对Shop2和Shop3进行相关修改和调整,以及三个车间之间的物料交互逻辑,最后将这三个车间模组组建为Factory模组,完成工厂仿真模型的构建。
通过模组方式建立仿真模型,有助于提高模型结构的可读性,并易于维护和扩展,提高仿真项目的开放效率和成功率。