黄田安,程良伦,黄思猛
(广东工业大学 计算机学院,广东 广州 510006)
物联网技术集成了电子信息技术和制造技术,如网络、嵌入式、(Radio Frequency Identification RFID)、传感器和执行器,并配置涵盖整个制造过程的各种类型的高性能传感节点,构建智能制造物联网络,实现制造全流程繁杂制造资源的实时感知与动态跟踪,进而实现制造全流程的数据感知、可靠传输、智能计算、精准控制和信息服务等[1-4]. 其产品质量受制造过程的复杂性和零件本身的质量的影响,如果不可能实时监控生产过程中各种过程的状态,并改善对异常状态信息的控制,则难以保证生产质量的稳定,因此研究制造物联网环境中大量进程间状态波动的分析方法,对于保障由各工序组成的工序流的稳定性,提高制造物联网的产品质量具有重要的现实意义.
通过物联网技术得到生产过程各个工序状态的实时数据流,其中,传感器数据流存在固有误差以及生产过程具有动态不确定性,如不同时刻相同的工序可能是不同的工人在处理. 正因为生产过程的复杂性和动态不确定性,很难通过建立通用数学模型对生产过程中各种因素的耦合关系进行表征,难以确定工序间的误差传递累积效应[5],从而有效地进行工序流状态波动分析,所以需要从全局角度出发构建在线分析策略.
国内外专家从不同角度对工序流波动分析进行了研究. 例如:文献[6]基于波动轨迹图对确定性工序流进行了波动分析;文献[7]关注的是生产线上产品的最终质量水平,需要提供工序之间影响关系的先验概率,同时不能直接通过最终质量水平来界定当前工序流是否处于稳定状态;文献[8]基于误差传播网络分析了过程流的波动;文献[9]提出了再制造过程中的过程质量控制体系框架. 这些研究大多是对于特定工序流进行建模分析,或者仅是提出了一种全局系统框架,难以直接利用进而有效解决制造物联网环境下的不确定性工序流波动分析问题.
为此,本文利用复杂事件处理(Complex Event Processing)检测复杂而有意义的信息,而现有的复杂事件处理系统大多都假定这些数据是确定的,或是在检测之前已经被清洗过,如SASE[10]和Cayuga[11]. 它们没有考虑不确定性,并且不能从不确定事件流中很好地检测概率复杂事件. 目前,Cascadia[12]和Lahar[13]系统能够处理不确定性的RFID数据,但是它们主要关注于概率数据模型以及相关查询,而不是复杂事件流和优化概率复杂事件检测.
本文在基于自动机(rNFA)的复杂事件检测系统的基础上,定义了不确定事件检测模型以及提出了一种概率事件检测方法,该方法采用游程检验和灰色系统模型以及bootstrap经验预测对工序流的稳定性进行检验,能够度量制造工序的整体水平是否均衡,从而给生产人员提供制造工序改进的方向.
1.1.1 事件
复杂事件检测的基础是事件,在不同的应用情况下其定义有所不同,本文所采用的定义如下.
定义1事件:一个事件是系统中发生的一个原子行为,也称原子事件. 事件表示为E= <id, eventType,timestamp, {attributes}>,其中id代表事件的唯一标识,eventType代表事件类型,timestamp代表事件的发生时间,{attributes}则代表事件的一系列属性.
定义2概率事件:概率事件是带有概率值的事件,其值表示事件发生的概率. 它拥有与确定事件相同的表达形式,但其中有一个概率属性,其属性值为[0,1],这是概率事件的一个标志. 因此,扩展事件表示为Ep=<id, eventType, timestamp, {attribute},{Probability, [0, 1]}>.
例如,实验场景下的一个概率事件e1=<“1010”,“OA”, “2016-02-1311:02:23”, {Workstation, 1},{WorkerID, 4}, {ProductID, 221}, {StdValue, 50},{ActValue, 45}, {probability, 90%}>,其表示4号工人在1号工作站进行221号产品的A加工工序,该工序的标准状态值为50,实际状态值为45,其有效加工的概率为90%.
定义3复杂事件:根据某些规则,复杂事件由一系列的原子事件构成. 事件通过一系列的操作连接,如SEQ、ANY、Negative等[14]. 复杂事件可标记为CE=<E,R,Ts>,其中E代表复杂事件的组成,R代表组合规则,Ts代表复杂事件的时间.
定义4概率复杂事件:概率复杂事件由不确定事件流中的事件组成,记为CEP=<E,R,Ts,Pr>,其中Pr为复杂事件发生的概率.
1.1.2 规则
根据事件规则检测复杂事件,为了规范事件流上的复杂事件规则,而提出的复杂事件查询语句.
定义5复杂事件查询语句:使用文献[14]提出的SASE的一种声明模式检测语句,一个复杂事件的定义使用如下语句:
[from <input stream>]
pattern <pattern structure>
[where <pattern matching condition>]
[within <sliding window>]
[having] <pattern filtering condition>
[return <output specification>]
FROM子句规定所使用的输入流,如果该语句省略了,则使用默认的输入流. 其余子句的解释如下例所示:
query 1:
pattern SEQ (OA a, OB b, OC c)
where match (a, b, c)
{[Workstation]∧[ProductID]}
within 2 hour
having Conf (*) > 0.6
return *
本文关注事件流的Service Experience Quality(SEQ)事件处理,不确定性有穷自动机(Nondeterministic Finite Automata, NFA)用于表示事件序列的结构,并且文献[15]提出了一种基于NFA和Activity Instance Status (AIS)的SEQ事件检测方法,如图1所示. 该例子创建了序列SEQ(A,B,E),事件的检测从状态0开始,在接收到3状态后检测到该SEQ事件,其中事件状态的变化记录在AIS中,所以以e10结尾的SEQ匹配的序列有(a1,b4,e10), (a1,b7,e10), (a3,b7,e10).
然而,在实际的制造生产线上,图1的方式并不适合. 此外,实际的事件约束也比图1的表示更为复杂,并且NFA+AIS的基本方法在海量数据流的情况下性能较低. 所以文献[16]提出了一种带有缓冲的NFA进行事件检测的方法,通过缓冲来存储事件检测过程中的中间结果,如图2所示,活动事件的数据如表1所示.
灰色系统理论建模的主要任务是使用特定灰色系统的行为特征数据,充分开发和使用少量数据中的显式信息和隐式信息,寻找因素间或因素本身的数学关系. 通常的做法是使用离散模型来创建逐段分析[17].
图1 SEQ事件处理的基本方法Fig.1 The basic method of SEQ event processing
图2 基于rNFA的概率事件检测Fig.2 Probability event detection based on rNFA
表1 活动事件数据Tab.1 Activity event data
为了对概率事件流进行检测,实现了基于rNFA的检测算法,对获取到复杂事件(也就是多道工序数据的组合)采用灰色系统模型和boostrap预测的组合方法(其流程图如图3所示)来对工序流的稳定性做出判断,该算法如表2所示.
下面以一个例子来介绍该算法的具体操作,假定SEQ事件为SEQ(A,B,C,D,E,F,G,H,I,J),其中A,B,C,D……为原子事件,该原子事件为概率事件,在属性字段上有质量标准水平数据. 所述的质量标准水平数据假定建立在统一量纲条件下,如它们的质量水平数据为(0.531 0, 0.638 0, 0.628 0, 0.574 0, 0.619 0,0.601 5, 0.538 0, 0.553 1, 0.504 1, 0.629 1).
假设质量水平为AL,实际质量数据为a,标准值为s,误差值为e,有效加工概率为p,则统一量纲方法为
事件检测算法描述以及流程图如图3所示. 通过运行测试来确定SEQ事件数据是否是随机的. 根据上述例子,其中位数mid为0.587 8,将事件数据中大于mid记为“1”,小于mid记为“0”,即有3个“0”游程,3个“1”游程,共有6个游程;“1”和“0”的总个数均为5,查游程检验临界值表可知,在0.05显著水平上该事件数据是随机的,说明初始事件数据对应的生产过程状态是正常的.
表2 算法实现伪代码Tab.2 Algorithm to achieve pseudo code
采用灰色系统模型,构造白化方程并求预测值,在此过程中检验模型精度. 以上述为例,后验差比值c为0.611 9,精度满足要求.
将上述SEQ事件数据进行扩充,取之后6期的预测值,得到扩充后的数据x1为0.531 0,0.638 0, 0.628 0,0.574 0,0.619 0,0.601 5,0.538 0,0.553 1,0.504 1,0.629 1,0.543 2,0.534 8,0.526 7,0.518 6,0.510 7,0.502 8. 然后分组分别计算各自的均值和极差. 若之后匹配到SEQ事件数据有限,则通过bootstrap在新的事件数据x1重复抽样,抽取一定量的事件数据,计算每组数据的均值和极差.
对事件数据或原始数据的均值和极差进行抽样按升序排列,则得到bootstrap经验分布. 采用控制图求解经验分布的均值和极差的置信区间,通过判断扩充后事件数据的序列均值和极差是否在置信区间内来判断工序流是否均衡. 将扩充后事件数据中的失衡状态的序列存储下来.
图3 事件检测算法流程图Fig.3 Flowchart of the event detection algorithm
假定 在生产过程中,若是对于生产线上的产品而言,工艺序列的每个步骤之间对产品质量的影响是存在关联,而步骤本身的生产状态值是相互独立的,这是因为步骤的状态值取决于步骤本身的硬件配置、人员配置等.
仿真实验环境:Windows10操作系统,仿真平台:MATLAB R2015b,内存6GB,CPU:Pentium®Dual-Core E6600.
(1) 当SEQ事件数据较为理想时,如事件数据为:[0.531 0, 0.638 0, 0.628 0, 0.574 0, 0.619 0, 0.601 5,0.538 0, 0.553 1, 0.504 1, 0.629 1]. 其中位数为0.587 8,由游程检验知在0.05显著水平上该SEQ事件序列是随机的. 其预测所得结果见图4. 结果分析可知其所得数据均在控制界限内,说明生产过程均衡.
(2) 当SEQ事件数据较不理想时,如事件数据:[0.132 0, 0.247 0, 0.929 0, 0.384 0, 0.409 0, 0.601 0,0.528 0, 0.763 0, 0.654 0, 0.819 0]. 其中位数(0.132 0+0.819 0)/2 = 0.564 5,由游程检验可知,在0.05显著水平上该SEQ事件序列是随机的. 其预测结果见图5.结果分析可知试验结果在均值上有点恰好落在控制界限上,判断生产过程不均衡.
(3) 当SEQ事件数据极不理想时,如事件数据:[0.531 0, 0.648 0, 0.628 0, 0.574 0, 0.619 0, 0.601 5,0.538 0, 0.553 1, 0.538 0, 0.553 1]或[0.132 0, 0.247 0,0.329 0, 0.384 0, 0.409 0, 0.601 0, 0.528 0, 0.763 0,0.654 0, 0.819 0]. 其运行过程中提前结束,因为其前者止步于后验差概率不合格,后者在游程检验上不符合随机性.
图4 样本理想时的预测结果Fig.4 Prediction result of ideal sample
图5 样本较不理想的预测结果Fig.5 Less favorable prediction results for the sample
本文着重研究在rNFA事件检测模型的基础上,指出其局限性,结合游程检验和灰色系统模型提出一种评判制造工序的全局状态的方法. 游程检验方法可以确定复杂事件所对应的工序流是否均衡,而灰色系统模型和bootstrap的预测方法可以判断当前的生产过程是否均衡. 实验结果表明本文提出的方法能够很好评判制造工序的全局状态,而且处理后得到的失衡数据有利于做进一步的挖掘.
针对具体的海量数据源,本文的研究仍需进一步优化检测方法以及原子事件概率确定方法. 本文接下来的工作是将其应用于实际的海量工序数据流.