二阶差商PCA算法研究及应用

2021-07-07 11:48郭金玉张安宝
沈阳化工大学学报 2021年1期
关键词:二阶模态矩阵

郭金玉,张安宝, 李 元

(沈阳化工大学 信息工程学院, 辽宁 沈阳 110142)

近年来,因为科技与自动化水平的提高,工业生产过程变得越来越繁杂,这促使过程监测控制越来越得到大家的关注[1-3].现在有关数据驱动的故障检测算法已成为国内和国外学术界的研究热点,用独立成分分析(independent component analysis,ICA)和主成分分析(principal component analysis,PCA)做引领的多元统计分析方法快速兴起,而且衍生出大量新的故障检测方法[4-6].PCA是一种对数据进行全局信息提取的方法,会造成局部信息的丢失,而且处理多模态问题效果不理想.多模态间歇过程的特征是非线性、时变性和多工况等,这使得多模态间歇过程的故障检测具有挑战性.近十几年来,大量学者提出了多种多模态故障诊断方法[7-8].为了处理多模态间歇过程的故障检测问题,He等[9]提出基于k近邻(k-nearest neighbor,KNN)的故障检测方法.KNN 算法对多模态问题是有效的,不过对于样本量大的数据集KNN计算量很大,并且对方差差别很大的多模态样本,检测效果不理想.另外,KNN每进行一次检测都会再次执行整体计算.马贺贺等[10]提出用局部离群因子(local outlier factor,LOF)的方法实现多模态过程的监视与控制.由于LOF值对基于相异密度的数据集群都适用,因此,可以通过获取目标的LOF值来更加准确地断定噪声点.不过该算法也有一定的局限性,其计算比较繁杂,准确性不高.最近几年,以实时监测多工况生产过程中的故障为目的,刘帮莉等[11]提出关于局部密度估量的多模态过程监视控制方法;Deng等[12]提出关于局部近邻相似度分析的多模态故障诊断方案,并运用到连续过程的故障诊断中;Yang等[13]提出了一个混合概率主成分分析(aligned mixture probabilistic principal component analysis,AMPPCA)的多模态故障诊断算法;Jiang等[14]提出基于联合概率密度和双加权的独立成分分析的方法对多模态过程进行故障诊断.关于非等长的多模态问题,Guo等[15]提出了局部近邻标准化矩阵(local neighbor normalized matrix,LNNM)的多模态故障诊断方案.

传统的PCA算法能准确地对工业过程中的线性数据实现故障诊断,不过对繁杂的多模态过程检测效果不理想.Guo等[16]提出了加权差分主成分分析(weighted differencial principal component analysis,WDPCA)的多模态故障诊断算法,这算法能让离散程度差异不大的多模态数据在预处理后大致服从高斯分布.在每个模态间离散程度差异很大时,WDPCA对离散程度较小的模态中微弱故障点的检测效果较差.为此本文提出一种基于二阶差商PCA(second-order difference quotient PCA,SODQPCA)的故障检测算法,用二阶差商的方法对原始数据实现预处理,剔除原始数据的多模态特性;把通过预处理后的数据使用PCA 实现故障检测.该方法能有效提升传统 PCA 在多模态数据中的检测效果.

1 基于二阶差商PCA算法的故障检测

1.1 主成分分析算法

假设X是m×n维数据矩阵,m为样本数,n为变量数,数据X可分解为n个向量外积之和,即

(1)

一般数据的变化体现在前l

(2)

式中:ti是得分(score)向量;Pi是负载(loading)向量;X的得分向量也称为X的主元.用ti组建的矩阵T叫做得分矩阵,用Pi构建的矩阵P叫做负载矩阵.

1.2 差分算法

差分算法[17]是一种线性化方法,能将多模态数据预处理为单模态数据进行检测.为了消除数据的多模态特性,将差分算法引入到数据预处理中,其计算方式为

(3)

1.3 二阶差商预处理算法

(4)

(5)

一次差分消除数据的多中心结构,同时能保持当前样本与其近邻之间的位置信息.为了描述数据的结构差异,定义样本xi的二次差分如下:

dd=ω[d-d(k)].

(6)

这里的ω=1/‖d(k)‖是一个权重参数.原始数据经过二阶差商运算后,消除数据的多模态特性,也消除了模态间的方差差异.

1.4 二阶差商PCA算法在故障检测中的应用

传统的PCA算法通常仅用在单模态线性数据的过程检测,对多模态数据的检测性能下降.为了提升PCA在模态间离散程度差异显著的多模态数据检测中的性能,本文提出一种二阶差商PCA的故障检测算法.运用二阶差商算法消除原始数据中多模态特性和每个模态的方差差异,再运用PCA进行检测,能有效提升传统PCA在离散程度差异显著的多模态数据检测中的效果.二阶差商PCA算法对多模态过程实现故障检测,具体分为两个步骤:离线建模与在线检测.

离线建模过程如下:

(1) 获取正常操作的数据集.如果有n个传感器,每一个传感器有m个采样点,则测量数据矩阵为X=[x1,x2,…,xm]T∈Rm×n,式中X的每一列为一个测量变量,X的每一行为一个测量样本.

(2) 利用二阶差商法对X进行预处理,消除原始数据中多模态特性和模态间的方差差异.

(3) 把预处理之后的数据矩阵归一化,让它的每列具有均值为0和方差为1的特性,X1是归一化后的矩阵.

(4) 计算归一化后矩阵X1的协方差矩阵S,求其特征向量与特征值.

(7)

(5) 选择主元数l,负载矩阵P由前l个特征向量组成.

(6) 计算得分矩阵T:

T=XP.

(8)

(8) 计算检测指标SPE(Q)与T2:

Q=eeT=X(I-PPT)XT,

(9)

T2=XTPΛ-1PTX.

(10)

(9) 运用核密度估计法[18-19](kernel density estimation,KDE)分别求出SPE与T2的控制限.

在线检测过程如下:

(1) 对于新来的一个样本xnew,运用二阶差商算法预处理后为xnew1,再使用建模数据的均值和方差将xnew1归一化为xnew2.

2 仿真结果与分析

现给出两个例子,分别验证基于二阶差商PCA的多模态过程故障检测方法的有效性.第一个例子是具有稀疏多模态特性的数值例子;第二个例子是半导体生产过程数据.

2.1 数值例子

假设有两个不同模态的数据,每个模态都有400个样本,每个样本有6个变量,在每个模态中是独立的.在模态1中,变量x1和x2均服从[-100,1]的正态分布,变量x3和x4均服从[18,26]的正态分布,变量x5和x6均服从[-23,7]的正态分布;在模态2中,变量x1和x2均服从[13,20]的正态分布,变量x3和x4均服从[-70,6]的正态分布,变量x5和x6均服从[10,22]的正态分布.图1是训练样本、校验样本和故障样本的数据分布散点图.

图1 数据分布散点图Fig.1 Scatter plot of data distribution

对多模态数值例子,运用PCA、差分主成分分析(differencial principal component analysis,DPCA)[17]、WDPCA和SODQPCA方法的检测结果如图2所示.

图2 四种算法对多模态数值例子的检测结果Fig.2 Detection results of four algorithms for multi-modal numerical examples

通过累计贡献率来计算四种算法的主元数.从图2可以看出:PCA算法的SPE统计量检测到3个故障样本,误报了28个样本;T2统计量检测到1个故障样本,误报了15个样本.DPCA算法的SPE统计量检测到3个故障样本,误报了22个样本;T2统计量检测到3个故障样本,误报了23个样本.WDPCA算法的SPE统计量检测到3个故障样本,误报了24个样本;T2统计量检测到3个故障样本,误报了9个样本.SODQPCA算法的SPE统计量检测到所有的故障样本,误报了17个样本;T2统计量检测到4个故障样本,误报了3个样本.与 PCA、DPCA和WDPCA方法相比,SODQPCA故障检测率较高,误报率相对较低,从而验证SODQPCA算法的有效性.

表1为PCA、DPCA、WDPCA和SODQPCA算法对多模态数据的检测结果.

表1 多模态数值例子的检测结果Table 1 Detection results of multi-modal numerical example

从表1可以看出:SODQPCA算法有误报,但与其他三种算法相比,误报率较低,而且算法的故障检测效果也最好.综上所述,SODQPCA检测效果是四种算法中最好的,验证了该方法对多模态数据故障检测的优越性.

2.2 半导体生产过程数据

半导体生产过程作为一个完善的工业过程仿真平台,广泛应用于基于数据驱动的故障检测领域.现应用半导体工业实例——A1堆腐蚀过程[20-23]的数据比较四种故障检测方法的性能.半导体工业数据中有3个模态的108个正常硅片与21个故障硅片数据.因为两个批次存在数据丢失,导致能用的仅有107个正常批次与20个故障批次的数据.其中第一模态由1~34批次构成,第二模态由35~70批次构成,第三模态由71~107批次构成.在每个模态中随机选32个批次来建立模型,其他的正常批次当作校验批次以证明模型的可靠性,所以建模批次为96个,11个正常校验批次,20个故障批次.在40个测量变量中选取17个变量[15].

每一个批次都是不等长的,持续时间在95~112 s 之间.本文采取最短长度法得到等长的批次数据.因为传感器开始时存在波动,丢弃开始的5个样本,用剩下的85个样本来迎合最短的批次.

把三维建模数据X(96×85×17)、校验数据V(11×85×17)和故障数据F(20×85×17)分别沿着批次方向展开为二维矩阵X(96×1445)、V(11×1445)和故障数据F(20×1445).对二维数据矩阵分别运用PCA、DPCA、WDPCA和SODQPCA方法进行建模,对11个校验批次与20个故障批次进行故障检测.图3为PCA、DPCA、WDPCA和SODQPCA算法对半导体数据的检测结果.从图3可以看出:PCA算法的SPE统计量检测到17个故障批次,误报了3个批次;T2统计量检测到5个故障批次,没有误报批次.DPCA算法的SPE统计量检测到18个故障批次,误报了3个批次;T2统计量检测到5个故障批次,没有误报批次.WDPCA算法的SPE统计量检测到18个故障批次,误报了1个批次;T2统计量检测到15个故障批次,没有误报批次.SODQPCA算法的SPE统计量检测到全部的故障批次,而且没有误报批次;T2统计量检测出5个故障批次,没有误报批次.

图3 四种算法对半导体过程数据的检测结果Fig.3 Detection results of four algorithms for semiconductor process data

与其他三种算法相比,SODQPCA算法在半导体数据的故障检测中效果最好,说明该算法可以有效地处理多模态数据,提高了传统PCA算法对多模态数据的检测效果.

表2为四种算法对半导体数据的检测结果.由表2能够看出:SODQPCA的故障检测效果最好,SODQPCA算法的SPE检测指标检测到所有的故障批次,而且没有出现误报,明显好于其他三种算法.综上所述,与其他三种算法对比,SODQPCA算法有较低的误报率与漏报率,说明这个方法对多模态数据的故障检测非常有效,验证了该算法的有效性和优越性.

表2 四种算法对半导体数据的检测结果Table 2 Detection results of four algorithms for semiconductor data

续表

3 结 论

提出一种基于二阶差商PCA的多模态过程故障检测方法.该算法适用于模态间稀疏程度不一致的多模态过程故障检测,可以最大化地分离多模态的正常数据和故障数据.利用二阶差商的方法对原始数据进行预处理,可以有效去除原始数据的多模态特性和模态间的方差差异,改良传统PCA算法在多模态数据检测过程中的不足.把这个方法应用于数值例子和实际的半导体工业过程中,与传统的故障检测算法比较,该算法的故障检测率最高,误报率较低,证明了这个算法的优越性.

猜你喜欢
二阶模态矩阵
联合仿真在某车型LGF/PP尾门模态仿真上的应用
多模态超声监测DBD移植肾的临床应用
二阶矩阵、二阶行列式和向量的关系分析
多项式理论在矩阵求逆中的应用
二次函数图像与二阶等差数列
矩阵
矩阵
矩阵
非线性m点边值问题的多重正解
从问题出发