APP下载

基于故障判别增强KECA算法的故障检测

2020-05-15韩宇李俊芳高强田宇禹国刚

化工学报 2020年3期
关键词:投影概率矩阵

韩宇,李俊芳,高强,田宇,禹国刚

(1 天津理工大学电气电子工程学院,天津300380; 2 天津市复杂系统控制理论及应用重点实验室,天津300384;3天津理工大学工程训练中心,天津300384)

引 言

随着工业化程度的不断提升,复杂工业过程对生产质量、系统性能和安全生产提出了新的要求。与此同时,复杂工业过程在向着一体化和复杂化逐渐发展。复杂工业过程控制系统的大规模化发展导致系统变量间相互关联、相互耦合。一旦发生故障,将造成巨大的经济损失和安全隐患。因此,复杂工业过程的故障诊断技术逐渐受到越来越多的关注。随着计算机控制系统在现代工业中的广泛使用,丰富的过程数据被收集并存储。因此,数据驱动的故障诊断方法受到越来越多专家学者的关注[1-5]。

目前常见的数据驱动方法,主要包括主成分分析(principal component analysis, PCA)、偏最小二乘(partial least squares, PLS) 和独立主元分析(independent principal component analysis,ICA)等。2010 年Jenssen[6]在KPCA 的基础上提出了KECA(kernel entropy component analysis,KECA)算法。该算法由于不需要满足高斯分布假设,因此在非线性特征提取表现出优越性。常鹏等[7]将KECA 方法引入工业过程监测取得良好的效果。齐咏生等[8]提出多尺度主成分分析(multi-scale principal component analysis, MSPCA)和KECA 相结合的算法,提高了KECA 算法的分类效果。但现有的基于KECA 的故障检测方法,仅利用正常工况下数据进行统计建模。忽略了先前故障数据,这些故障数据实际上可以提供故障判别信息用来帮助在线故障诊断。

为了提取先验故障数据中的故障判别信息,通常使用判别分析技术。Fisher 判别分析(Fisher discriminant analysis, FDA)是故障分类最广泛使用的判别分析方法。为了提高分类性能,许多改进了FDA 方法已经衍生出来,包括半监督的FDA[9]和核Fisher 判别分析(kernel Fisher discriminant analysis,KFDA)[10-11]。Feng 等[12-14]基于本地数据结构分析,已经开发出局部的FDA 方法。Yu 等[15-17]通过利用非局部结构信息,开发了局部和非局部保留判别分析(local and nonlocal preserving projection, LNPP)方法来改进基于FDA 的故障鉴别。然而本文与上述方法不同的是,通过将LNPP 映射到高维空间中,提取少量的先前故障数据中故障判别信息来辅助基于KECA算法的故障检测。

综上所述,本文提出了一种故障判别增强KECA(FDKECA)算法,该方法通过改进LNPP 对先前故障数据中故障信息进行提取,同时监测KEC 和FDC 两类数据特征。而后构建基于概率加权的总体监测统计量,实现故障在线检测。通过数值仿真和田纳西伊斯曼(Tennessee Eastman, TE)过程仿真实验,证明和传统KECA 相比,FDKECA 算法能够有效利用故障数据提高故障检测率。

1 KECA算法

KECA 算法作为一种非线性数据降维的方法,相比于核主成分分析(kernel principal component analysis, KPCA)算法,其主要特点在于在降维特征选取时考虑到信息熵的大小,并通过此确定主元投影的方向。

对于N 维样本x,p(x)为概率密度函数。则样本瑞利熵(Renyi)[18]表示为:

由于对数函数单调性已知,因此可以将式(1)化简为:

通过对V(p)估计来实现对Renyi 估计,引入Parzen窗,表示如下:

式中,Kσ(x,xi)为Parzen 窗,Kσ(x,xi)必须是满足Mercer 空间的一个核函数,将式(3)代入式(2)通过对样本均值估计得到:

式中,K 是N × N 的核矩阵,I 为元素都为1 的N × 1 维向量。式(4)得到了Renyi 熵的核矩阵表达。通过特征分解核矩阵得到Renyi 熵的估值,表示为:

式中,D 为特征值矩阵D = diag(λ1,λ2,…,λn),E为特征向量矩阵E =(e1,e2,…,en),化简后得到:

式(6)表明,特征值大并不能表明信息熵的贡献值也大,因此依据ξi=值才能保证样本降维前后信息熵损失最小。通过将ξi大小进行降序排序,选取对Renyi熵贡献值较大的前d项特征值和特征向量。

对于测试集Xt其投影表达式为:

其KECA 监控统计量T2和Q 统计,记为和Q(0)f,其对应表达式为:

式中,Λ 是训练数据集协方差矩阵,本文将KECA 通过核密度估计法(kernel density estimation,KDE)得到T2和Q 置信限记为和,KECA 算法具体流程参见文献[19]。

2 FDKECA算法

如图1 所示,FDKECA 采用无监督和监督建模方法来构建KECA 和KLNPDA 两个子模型。对于KECA 子模型采用无监督建模方法,用正常工况下数据来构建KECA 子模型以提取KEC。对于KLNPDA 子模型采用监督建模方法,用先前故障数据和正常工况下数据来构建KLNPDA 子模型以获得FDC。最后利用贝叶斯推理将KECA 和KLNPDA提供的监控统计量转换为故障概率,并通过对两个子模型的故障检测结果转化为故障概率,目的是构建基于概率加权的总体监测统计量,从而提供更有效的在线故障检测能力。

2.1 KLNPDA

LNPDA 算法源于LNPP,它结合了LNPP 的思想[20-21]。LNPDA 能够发现数据矩阵的低维投影,使得局部邻域点的距离尽可能小,而非局部邻域点的距离尽可能大。由于工业过程非线性严重,因此将LNPDA 映射到高维空间中,使用KLNPDA 能够更好地获得FDC。

为了构建KLNPDA 模型,构造Xnf=[Xn,Xf]T=[xnf(1),xnf(2),…,xnf(Nf)]T作 为 训 练 集 , 其 中Xn∈RN×M表示N×M 维正常工况下运行的数据集,已知一类先前故障数据集Xf∈Rf×M表示其中f×M维故障数据集。Nf表示训练集样本总数Nf= N + f。

首先将构建的训练集xnf(i) ∈RM映射到高维特征空间Φ(xnf(i)) ∈F,在高维特征空间寻找线性变换向量q ∈F,寻求投影y(i) =(Φ(xnf(i)))Tq,其中1 ≤i ≤Nf。其目的是保持投影前后同一类的点尽可能保持接近,而非同类的点尽可能地分开。前者是局部投影优化问题,而后者则是非局部投影优化问题。

首先,将局部优化投影加权参数wl和非局部投影加权参数wnl定义为:

设置加权参数是为了更好地分离正常工况和先前故障样本,有效地提取FDC。因此,在局部优化投影时,对于来自同一数据集样本赋予较高的加权参数,不同数据集样本赋予较低的加权参数。在非局部优化投影时,与局部优化投影加权参数相反。

图1 FDKECA算法结构Fig.1 Fault discriminant enhanced kernel entropy component analysis algorithmic structure

局部投影优化可以表示为[20]:

式(11)的约束条件为qTq = 1,其中Dl是Nf× Nf对角阵,其对角线元素wl(i,i)为wl矩阵第i列元素之和。wl是Nf× Nf矩阵其(i,j)上元素为wl(i,j)。Ll为局部投影Laplacian矩阵。

非局部投影优化可以表示为[21]:

式(12)约束条件为qTq = 1,式中Dnl是Nf× Nf对角矩阵,其对角线元素wnl(i,i)为wnl矩阵第i 列元素之和。wnl是Nf× Nf矩阵其(i,j)上元素为wnl(i,j)。Lnl为非局部投影Laplacian矩阵。

通过式(11)、式(12)组合,将局部和非局部投影优化问题重新表述为:

式(13)约束条件为qTq = 1。投影矢量q由训练集张成子空间表示,其表示如下:

式(14)中β =[ β1,β2,…,βNf]T,将式(15)代入式(14)化简为:

通 过 运 用 核 技 巧 Knf(i,j) =(Φ(xnf(i)))T(Φ(xnf(j)))避免Φ(Xnf)难以求取的问题。优化问题表述为:

其约束条件为βTKnfβ = 1,目的是为了确保有唯一的非零解。为了求解式(17),将广义特征值分解引入,表示为:

对于测试集Xt,其判别成分可以表示为:

对于故障检测,两个故障判别统计数据构建为:

其 中 [y1,y2,…,yKf]T包 含 主 要 FDC,[yKf+1,yKf+2,…,y-Nf]T包含次要FDC。Γ 是主要FDC 的协方差矩阵,Ω 是次要协方差矩阵,两者都是根据训练集进行计算。

2.2 基于贝叶斯故障检测统计量的构建

在正常工况下,所有监测统计数据应小于它们各自的置信限即T2(c)f,lim和Q(c)f,lim。但在现有研究中,都用统计分布计算数据的置信限[22-23]。然而,工业数据具有高度复杂的特征,并且它们可能不遵守这些假定的分布。因此,本文使用KDE 的数据驱动置信限计算方法[24-26]。具体地,首先将正常工况下数据投影到统计模型上,并计算监视统计量T2(c)f和Q(c)f。然后通过KDE 方法估计每个统计量的密度函数。最后,利用给定的显著性水平δ,通过找到占据估计的密度函数的1-δ区域的点来确定每个统计量的置信限。在本文中,显著性水平设置为δ=5%,因此对统计量均采用95%置信限。

由于FDKECA 模型提供了KEC 和FDC 两类数据特征,因此采用贝叶斯推理将每个监测统计量转化为故障概率。然后所有概率值组合起来构建基于概率加权的监测统计量,并采用加权策略来提高故障检测性能。根据贝叶斯推理,将统计量T2(c)f和转化为后验概率和,其公式为:

两个基于概率的监测统计数据PT和PQ通过加权所有子模型的后验故障概率来构造,表示为:

加权因子应确保FDKECA 子模型始终能够正常运行,而故障判别子模型可提供有用的故障信息以提高监控性能。对于KECA 子模型,其加权因子设计如下:

其中sat代表饱和函数[27],表示为

Zmax需要根据研究对象不同来通过仿真实验确定加权因子,加权因子作用是使得微小的故障信息有效地凸显。本文通过50 组仿真实验,最终确定Zmax=150,使得加权因子能够有效地凸显微小故障信息。

由于故障判别统计量能够在故障发生时提供更多信息,因此设置适当的加权因子,使得故障信息更容易在统计量中凸显。对于1 ≤c ≤C 加权因子和表示为:

两个基于概率的监测统计数据构造用于故障检测。与传统监控不同统计,它们表明故障发生概率。如果PT2<δ且PQ <δ,则表明该过程处于正常工况状态。反之,则表示该过程处于故障状态。

2.3 FDKECA故障检测步骤

基于FDKECA 的过程监控涉及两个阶段:离线建模和在线检测。在离线建模中,训练数据集包括正常工况下的数据和一类先前的故障数据用于构建FDKECA 模型。在线故障检测阶段,新数据被投射到FDKECA 模型上,计算基于概率的监测统计PT 和PQ 以判断过程操作状态。更具体方法如下。

离线建模阶段:

(1)收集正常工况下的数据,将它们划分为训练数据集XN和验证数据集XV,并对两个数据集进行标准化。

(2)收集现有的故障数据集{X(c)f,c = 1,2,…, }C 并使用训练集的均值和方差对其进行归一化。

(4)将验证数据Xv投影到FDKECA 模型上,并计算其监控统计量和,c = 0,1,2,…,C。

(5)将KDE 应用于步骤(4)中获得的监控统计数据估计置信限和,c = 0,1,2,…,C。

在线检测阶段:

(1)在线获取新的数据集Xt,并且用训练集的均值和方差对其进行归一化。

(2)将数据集Xt投影到FDKECA 模型上,并计算出相应的监测统计量。

(3)通过贝叶斯推理,用式(21)计算后验概率。

(4)用式(29)计算基于概率的监测统计PT和PQ。

(5)通过将监测统计与显著性水平进行比较来确定是否发生故障。

3 仿真实验

3.1 数值仿真验证

为了证明FDKECA 算法的有效性,采用文献

[22]中给出的数值仿真示例,测量变量M=3,对其故障程度进行简要修改,其具体结构表示如下:

其 中,独 立 噪 声 变 量ei,1≤i≤3ei∈N(0,0.01),t ∈[0.01,2]。基于以上数值仿真,取600 个正常工况下的样本点。其中300 个作为训练集,另外300作为测试集,计算正常工况状态下的置信限。针对该系统设置两个故障(表1),对于两种故障采集300个故障样本点作为先前故障数据集,在采集300 个作为测试集进行在线检测,在101 个样本点处引入故障。数值仿真分为如下三个情况:

情况1:故障D1 先前故障数据集用于训练FDKECA模型。

情况2:故障D2 先前故障数据集用于训练FDKECA模型。

情况3:故障D1 和故障2 两类先前故障数据集用于训练FDKECA建模型。

表1 数值仿真故障设置Table 1 Numerical simulation fault setting

在情况1 训练下,FDKECA 模型包括先前D1 故障训练的一个KLNPDA 模型。图2 和图3 分别显示了KECA 和FDKECA 两个模型故障监控的性能。从图2 中可以看出,KECA 无法有效检测到该故障,因为其监测统计T2和Q 远低于相应的阈值,在故障D1发生后没有明显变化。基于KECA 的T2和Q 统计的故障检测率分别为15%和5.5%。相比之下,FDKECA 可以快速检测到故障变化,其故障检测率高达84%。但是PQ 没有明显改变,其故障检测率为7.5%。

图2 KECA故障D1监控结果Fig.2 Fault D1 monitoring results of KECA

图3 情况1训练下,FDKECA故障D1监控结果Fig.3 FDKECA fault D1 monitoring results of case 1 training

为了进一步研究FDKECA 算法,给出了故障D1测试集在KECA 和FDKECA 的投影效果图如图4 所示(图中蓝色表示正常工况的数据黄色表示故障数据)从图中可以清楚地看出,KECA 算法不能有效分离测试集,但是FDKECA 算法可以有效分离测试集,表明FDKECA 算法对故障具有良好的特征提取效果,并能有效提取故障数据中的故障信息。这解释了在这种情况下FDKECA 能够提供更好地故障检测性能,同时还绘制出KLNPDA模型对故障D1监控性能(图5),其T2和Q 统计的故障检测率分别为80%和2%。

图4 故障D1测试集投影Fig.4 Fault D1 test projection

为了更好地研究FDKECA 算法的故障检测性能,给出KECA 子模型和KLNPDA 子模型的基于概率加权总体检测量的加权策略如图6所示。从图中可以看出,在正常工况下,故障判别子模型应当被停用。图中故障判别子模型的加权因子为0,KECA 模型加权因子为1。当检测到故障发生,故障判别子模型被激活,变为非零值且绝大多数接近最大值1,表明故障表判别子模型能够有效地对故障进行加权,而虽然变小但仍保证大部分非零值,表明KECA 模型也能对故障提供有效的信息。由此证明了加权设计策略的有效性。由于故障判别子模型中很少涉及故障信息因此对于大部分故障样本值接近于0。

当检测到与情况1下训练FDKECA 模型使用的先前故障数据无关的未知故障时,FDKECA 的故障检测性能要优于KECA 检测性能。图7 和图8 分别给出了两种算法在情况1 下对故障D2 监测性能。KECA 的T2统计量的故障检测率为41%,Q 统计的故障检测率为11%。而FDKECA 对故障检测性能实现了一些改进,其PT统计量达到51.5%的故障检测率,其PQ 统计量与KECA 的Q 统计量达到8.5%。

表3 列出了三种情况下FDKECA 算法的检测率。该结果表明,FDKECA 结合先前故障信息能够有效提高故障检测率。此外,与KECA 模型相比,证明使用一类先前故障数据训练的FDKECA 模型能够改善另一类未知故障的故障检测能。

图6 情况1下故障D1故障概率加权因子Fig.6 Weighting factor of fault D1 for fault probability in case 1

图7 KECA故障D2监控结果Fig.7 Fault D2 monitoring results of KECA

图8 情况1下FDKECA对故障D2监控结果Fig.8 FDKECA fault D1 monitoring results of case 1 training

3.2 TE仿真验证

为了进一步研究FDKECA 算法故障检测性能,通过TE 仿真平台进行仿真验证。TE 过程是根据工厂实际生产的过程为对象建立的控制仿真模型。该平台被广泛应用于故障检测及诊断算法评价过程。TE过程总共涉及12个可控变量和41个可供测量的变量除去搅拌速度,TE 过程共含有52 个过程变量。TE 过程包含了21 种预先设置的故障,尤其故障类型为3,9,15 故障对过程影响微乎其微,其故障检测相对困难[28-30]。对TE 过程的具体描述参考文献[31-32]。

表2 三种情况下的检测率Table 2 Fault detection rate in three cases/%

表3 TE过程故障检测率测试结果Table 3 Test results of TE process fault detection rate/%

图9 故障3监控结果Fig.9 Monitoring results of fault 3

仿真实验中,采集正常工况和不同故障类型数据各480 组作为训练集。采集960 组数据作为测试集,测试集从161 个样本点开始引入故障。为了验证FDKECA 故障检测性能,以故障3为例进行实验,由于故障3 对过程影响较小,因此较难检测到。如图9 所示,KECA 算法对故障3 不能做出有效的指导,T2统计量的检测率为6.4%,SPE统计量的检测率为12.6%,且SPE 统计量误报较高。相比于KECA,FDKECA对故障检测效果得到了提升。其T2统计量检测率为65.2%,其SPE 统计量检测率为61.8,且误报率较低。通过对比可以得到,FDKECA 能够有效利用先前故障数据提升故障检测能力。

表3 给出了四种算法对TE 过程检测的结果。其中KPCA 故障检测结果来自于文献[33],其余结果均由仿真实验得出。从表3 看出,大多数情况下KECA 故障检测率要优于KPCA 且KLNPDA 能够对故障数据中包含的故障信息进行有效的提取。FDKECA 能够有效结合KECA 和KLNPDA 两类检测数据,提升故障检测能力。对于KECA、KPCA 难以检测到的故障3、9 和15,FDKECA 能够有效改善故障检测能力。总的来说FDKECA 故障检测性能要优于KECA、KPCA两种方法。

4 结 论

本文针对工业监控系统的数据库中忽略的先前故障数据的缺点,结合了核熵成分分析和局部和非局部保持投影的优点,提出FDKECA 故障检测算法。该方法能够对先前故障数据中包含的故障信息进行有效的利用。通过设计适当的加权策略和构建基于概率加权的总体监测统计量进行故障检测。通过仿真实验证明,加权策略设计合理。与传统的KPCA、KECA 相比,FDKECA 算法通过有效地挖掘先前故障数据中包含的故障信息来提高故障检测性能。先前故障数据中故障信息的有效利用,提高复杂工业过程故障检测的性能,是未来进一步研究的内容。

猜你喜欢

投影概率矩阵
第6讲 “统计与概率”复习精讲
全息? 全息投影? 傻傻分不清楚
第6讲 “统计与概率”复习精讲
概率与统计(一)
概率与统计(二)
基于最大相关熵的簇稀疏仿射投影算法
找投影
找投影
初等行变换与初等列变换并用求逆矩阵
矩阵