郭金玉, 李文涛, 李 元
(沈阳化工大学 信息工程学院,沈阳 110142)
在实际工业生产过程中,倘若某个部件发生异常,就可能给整个工业过程带来难以估量的损害,从而造成巨大的财产损失.工程监控系统和故障诊断技术的结合能够很好地提前对隐藏的风险进行排除,保证系统正常运行.于是,基于数据驱动的故障诊断方法应时而生.该方法仅需要对工业生产过程中的历史数据进行建模,可以在大量过程数据中提取有价值的信息[1-3]并用于故障检测与诊断中,因此广受关注.
主元分析(PCA)[4-8]是一种广泛应用于工业过程监控的多元统计工具.然而,在实际的工业生产过程中存在复杂的动态特性,这使其不适用于实际工业生产过程的故障检测.Ku 等[9]提出基于动态主元分析 (DPCA)的故障检测方法,该方法将变量延迟加入数据矩阵中构造时间滞后增广矩阵,从而达到检测动态过程的目的.Li等[10]提出递归主元分析(RPCA),该方法通过不断将新数据加入矩阵来更新协方差矩阵,从而适应动态过程提高诊断效率.由于该方法运行时间较长,Xiao等[11]提出滑动窗口PCA方法,该方法通过不断更新滑动窗口中的数据达到故障监控目的,从而适应动态工业过程提高实时检测的性能.上述方法可以有效地提高动态过程的检测效率,但是这些方法对非线性动态过程的检测效果并不是很理想.于是,核主元分析(KPCA)[12-13]、核局部保持投影(KLPP)[14-15]、核熵成分分析(KECA)[16-17]等处理非线性的方法相继出现.在这些引入核函数的方法中,KPCA方法是对PCA方法的非线性扩展,以其容易理解和计算而广受关注.Sang等[18]在DPCA方法的基础上,提出动态核主元分析(DKPCA)方法,解决DPCA方法对非线性动态过程进行故障监控的局限性,能够很好地提高在动态的非线性过程中对异常数据的检测能力.谢磊等[19]提出递归KPCA 的思想,通过更新KPCA模型达到提升检测效果的目的,以适应工业过程中的动态变化特性,提高检测效果.但是,每当出现一个新的样本时,核矩阵就会增加,导致该方法在对规模较大的工业系统进行故障检测时存在较大的计算难度.为了解决这种问题,Liu等[20]提出一种运用滑动窗口KPCA (MWKPCA)的故障检测方法,该方法通过给滑动窗口添加新的样本和抛弃旧的样本达到更新KPCA模型的目的,从而解决由于递归方法带来的核矩阵不断加大的问题.后来,Chouaib等[21]结合递归和滑动窗口的思想,提出基于自适应核主元分析的动态过程监控方法,进一步提高滑动窗口KPCA方法在动态系统中的检测性能.然而在滑动窗口方法中,当测试数据中包括足够多的新样本时,就会存在更新的模型难以检测出实际样本的异常,原因是该方法缺乏有效地更新核矩阵特征值和特征向量的方式.为了克服该方法的局限性,Fazai等[22]提出可变滑动窗口KPCA (VMWKPCA)方法,运用可变滑动窗口方法来更新KPCA模型.该方法的思想是根据正常过程的变化改变滑动窗口的大小,能够有效地提高KPCA在工业过程中的监控性能.上述的改进方法提高了KPCA的工业过程故障检测效果,但是,当训练样本过大时,这些方法不仅运算时间过长,而且内存占用较大.
为了提高KPCA方法在具有动态特性的工业过程中的监控性能,减少建模过程中冗余的信息量,提高在线故障检测效率,降低运行内存,优化检测时间,本文提出一种在线压缩KPCA(ORKPCA)的自适应过程监控方法.该方法在大量的样本中选定较小的训练集作为初始压缩集进行建模,该压缩集中的样本同原始KPCA建模时的主元方差方向一致,样本个数等于保留的主元个数,这样可以有效地剔除原始训练样本中的冗余信息,然后对在线实时采集的样本进行监控,判断新的样本是否正常;若为正常样本则根据一种近似准则确定该样本与压缩集样本之间的相关性,判断该样本是否加入压缩集中,在该样本加入压缩集的同时自动更新在线KPCA模型.这样能够使监控模型更好地适应动态的系统,有效提高KPCA方法在动态工业过程中的检测性能.
KPCA方法用于表示建模数据之间的非线性关系,可以有效地将线性不可分的输入数据投影到可以线性分离的高维空间中,然后在特征空间H中执行线性PCA.假设样本集为x1,x2, …,xN∈Rm,其中:N为样本个数,m为变量个数.这些样本通过一个非线性映射φ投影到特征空间H中,可表示为
φ:xi∈Rm→φ(xi)∈Rh
(1)
式中:h为特征空间的维数.
在特征空间H中向量φ(xi)与φ(xj)(i,j=1, 2, …,N)的点积为
φ(xi)Tφ(xj)=〈φ(xi),φ(xj)〉=k(xi,xj)
(2)
式中:k为内核函数.
高维特征空间H中样本的协方差矩阵为
(3)
类似线性PCA,特征空间中的KPCA等效于解决特征值问题.设特征向量为Vk, 特征值为μk, 其特征方程为
(4)
在式(4)中,对于协方差矩阵Q中的每个特征向量Vk,都可以视为φ(x1),φ(x2), …,φ(xN)的线性组合[23],即
(5)
式中:vk,i为线性相关系数.
结合式(2)和(4),可以得到:
(6)
进一步化简可得:
λkvk=Kvk
(7)
(8)
(9)
(10)
为了验证提出方法的有效性,使用统计量T2进行验证分析.根据式(10)计算测试数据x在主元空间上的投影,即主元为
(11)
k(x)=Xφ(x)=
[φ(x1)φ(x2)…φ(xN)]Tφ(x)=
[φ(x1)Tφ(x)φ(x2)Tφ(x)…φ(xN)Tφ(x)]T=
[k(x1,x)k(x2,x)…k(xN,x)]T
(12)
由此可以得到
k(x)TC′k(x)
(13)
运用F分布得到统计量T2的控制限[24]为
Fα(l,N-l)
(14)
式中:α为置信水平.
在规模较大的训练样本中,若用传统的KPCA方法进行建模,将在线数据向KPCA模型上投影,通过监控统计量T2进行过程监控会带来极大的运算量.尤其在动态的工业过程中,许多DKPCA方法都不能很好地解决在训练样本过大时带来的计算时间过长和内存消耗的问题,而用压缩数据建模的核心目的就是解决检测过程中计算时间过长和内存消耗过大的问题[25-26].
在传统的KPCA方法中,一般认为选定的主元近似包含训练数据集中的全局信息.于是,本文认为在训练集{xi}(i=1, 2, …,N)中存在代表主元信息的观测值,可以用来表示训练数据集的全局信息, 该方法的原理是用一组观测向量逼近由KPCA方法保留的主元,这些观测向量与选择的主元方差方向一致.选取的主元数根据累计方差贡献率(CPV)来确定:
(15)
l=arg(CPV≥0.99)
(16)
根据特征值降序选择前l个特征值与特征向量构造一个信息矩阵,在原始训练集寻找满足这个信息矩阵要求的数据样本{xi}(i=1, 2, …,l),此时,可以定义构建压缩数据建模模型中有代表性的观测值数等于l.根据式(9)与(10),信息矩阵可以表示为
h(xi)j=
(17)
(18)
(19)
(20)
式中:η为控制稀疏程度的参数,该判定参数为预设值;ξq为根据近似准则原理比较φ(xq)与压缩集中的l个样本在主元空间上的相关性;τj为最优系数.对式(20)进一步化简得到:
minτ(τTKlτ-2τTkl(xq)+k(xq,xq))
(21)
式中:Kl∈Rl×l为压缩集Y的核矩阵,
(22)
τ为式(21)对τ1,τ2, …,τl取偏导数的最优系数向量.令偏导数为0,得到:
(23)
kl(xq)=
(24)
式中:kl(xq)为核向量.
将式(23)代入式(21)得到:
ξq=k(xq,xq)-kl(xq)Tτ
(25)
当在线测试的样本检测为正常时,此时可以分两种情况,即根据该样本所包含的信息在训练集中是否存在进行两种不同方式的处理.当ξq<η时,表明新的样本包含的信息在压缩集中存在,即该样本与压缩集中样本相关性较大.为了保证压缩集投影在特征空间中样本的线性独立性,这个新的正常样本将不添加到压缩集中,压缩集的模型不发生改变.如果ξq≥η,则定义该样本所包含的信息在压缩集中并不存在,那么这个新的样本需要添加到正常的压缩集中.由于压缩集发生了改变,此时需要更新方法的参数,包括核矩阵、其逆矩阵、主元的数量、T2指标及其控制限.此时需要更新的压缩集定义为
(26)
在压缩集Y中第l+1个特征向量可以表示为
(27)
压缩集得到新的核矩阵Kl+1∈R(l+1)×(l+1),其更新模型如下:
(28)
这种情况下的核向量为
kl(xq)=
(29)
根据式(13),新压缩集的统计量为
(30)
(31)
(32)
(33)
式中:τl+1为更新的最优系数向量.
步骤1给定初始的较大训练集:
X=[x1x2…xN]T∈RN×m
(34)
(1) 对训练集X进行预处理,计算其核矩阵.
(2) 将核矩阵标准化后,进行特征提取,保留合适的主元.
(3) 根据式(18)在原始训练集中选择与主元的方差方向一致的样本,样本的个数与主元个数相同.
(4) 运用挑选的样本构建压缩集:
(35)
l (5) 选择合适的核函数,设定合理的参数η. (6) 计算压缩集的核矩阵,并对其进行标准化处理. (7) 对标准化后的核矩阵进行特征提取,建立KPCA模型. 步骤2对于一个新的测试样本xnew: (1) 利用压缩集建模数据的均值和方差对测试样本xnew进行预处理. (2) 计算该样本的核矩阵,并对其进行标准化处理. 步骤3自适应更新条件: (2) 如果统计指标小于当前压缩集的控制限,根据式(22)~(25),计算判定系数值ξq,若ξq<η,则返回步骤2. 使用3个指标评估ORKPCA方法的故障检测性能:误报率(FAR)、故障检测率(FDR)和运行时间(ET),并和传统KPCA、压缩KPCA、递归KPCA[19]、MWKPCA[20]、VMWKPCA[22]方法进行故障检测比较,证明所提方法的有效性. 为了评估方法的性能,本示例中的数据从如下的非线性过程产生[28]: (36) 式中:变量ζ为服从正态分布N(0, 0.01)的白噪声;数据源t为[0.01, 2]之间的随机变量.根据上述的数值例子随机产生两组500个样本数据,一组用于建模,而另一组对变量y2从150个采样时刻时加入0.05(t-150)形式的斜坡干扰作为在线测试数据. 式(2)中的核函数选择为 (37) 本文采用经验法选取δ=5m[29].对于参数η,若选择过大,会导致添加到压缩集中的样本丢失,达不到自适应更新的目的,从而丢失大量的有用信息,造成检测结果异常;若选择过小,会导致过多相似的信息样本加入到压缩集中,极大地增加检测时间和运行内存,达不到优化检测时间的效果.因此,为了达到最佳检测效果,计算压缩样本取足够多状态下的ξq值,其中η在满足小于ξq的情况下,根据被监测系统运行的实际情况,通过不断调整以达到比较理想的效果. KPCA、压缩KPCA、递归KPCA、MWKPCA、VMWKPCA 和ORKPCA采用T2统计量分别对该数值例子进行检测,检测效果图如图2所示.图中:T2为单样本统计量.在KPCA中,根据式(15)和(16)保留的主元为26个.在压缩KPCA中,根据建立KPCA模型中的26个主元结合式(17)建立信息矩阵,根据式(18)挑选满足条件的样本构成压缩集,并用该压缩集建立KPCA模型对在线数据进行检测.在递归KPCA中,根据奇异值分解更新核矩阵,从而进行在线检测.在MWKPCA与VMWKPCA中,初始窗宽为80.根据文献[20],MWKPCA的权重参数λ=0.25.在构建的压缩集的基础上,ORKPCA 根据在线样本的过程状态进行自适应更新KPCA模型,达到在线检测目的.由图2可以看出,KPCA与压缩KPCA的检测效果极为相似,说明在检测要求不高的情况下,压缩KPCA方法可以有效替代传统KPCA方法,且更具优越性;但是可以明显看出这两种方法对动态非线性过程的故障检测效果较差.递归KPCA、MWKPCA、VMWKPCA 和ORKPCA这4种动态方法均有较好的检测效果. 为了进一步比较6种方法的故障检测性能,分别计算KPCA、压缩KPCA、递归KPCA、MWKPCA、VMWKPCA 和ORKPCA方法的FAR、FDR和ET指标,检测结果如表1所示.从表1中可以得到,对于非线性动态过程的故障检测,静态KPCA与压缩KPCA方法的检测结果相似,而静态KPCA方法却占用更多的检测时间,因此压缩KPCA方法相比传统KPCA方法有着较高的优越性.但是,与动态检测方法相比,两种静态方法的检测结果较差,说明静态检测方法在对动态过程进行故障检测时存在极大的局限性.对比4种动态方法的检测结果,可以看出不仅ORKPCA方法的检测结果最好,而且误报率比较低,占用的时间也较少,说明本文提出的方法具有一定的有效性. 表1 6种方法对数值例子的检测结果对比Tab.1 Detection results of six methods of numerical examples 田纳西-伊斯曼(Tennessee-Eastman,TE)过程是由Eastman公司创建的一种复杂工业化学过程的基准仿真模型.TE过程考虑到工业原料反应的整个过程,包括在反应釜中反应物发生化学反应、在冷凝器中降温冷却、分离器分离反应物和汽提塔分离提纯并再反应等过程,其工艺流程[30]如图3所示,具体反应过程如下: A(g)+C(g)+D(g)→G(liq) (38) A(g)+C(g)+E(g)→H(liq) (39) A(g)+ E(g)→F(liq) (40) 3D(g) →2F(liq) (41) 式中:液体和气体分别由liq,g表示.TE数据来源http:∥depts.washington.edu/control/LARRY/TE/download.html. TE过程的各种具体变量如表2所示.TE过程常被用来作为仿真的例子用在过程监控和故障诊断中[31-33].TE过程总共有21种不同类型的故障数据.本文选取TE过程中较为经典的故障2与故障20为例进行分析, 详细描述如表3所示.训练数据包含500个正常样本,而测试数据为960个样本,从第161个样本开始加入故障. 表2 TE 过程的测量变量和控制变量Tab.2 Measured variables and manipulated variables in TE process 表3 TE过程故障描述Tab.3 Fault descriptions of TE process KPCA、压缩KPCA、递归KPCA、MWKPCA、VMWKPCA 和ORKPCA方法采用T2统计量进行监控,对故障2与故障20的检测结果分别如图4和图5所示.图4(a)、图5 (a) 为KPCA方法的故障检测效果图.在KPCA方法中建模样本提取的特征值为35个,因此,在所有的样本中挑选35个符合条件的样本构成压缩集,该压缩集的样本满足与原始建模KPCA的主元方差方向一致.运用该压缩集建立KPCA模型对在线数据进行检测,其检测效果如图4(b)、图5(b)所示.图4(c)、图5(c)为递归KPCA方法的故障检测效果图;图4(d)、图5(d)与图4(e)、图5(e)分别为MWKPCA和VMWKPCA方法的故障检测效果图,其中MWKPCA和VMWKPCA方法的初始窗宽均为85;图4(f)、图5(f)为在压缩集的基础上,ORKPCA方法根据在线样本的过程状态进行自适应更新KPCA模型,达到最优的在线检测效果图. 由图4和5可以看出,对故障2与故障20进行检测时,静态方法中KPCA与压缩KPCA方法的检测效果区别并不是太大.压缩KPCA方法相比KPCA用了较少的建模样本,而检测效果的差别较小,说明压缩KPCA方法比KPCA更具优越性.动态方法中递归KPCA、MWKPCA、VMWKPCA 和ORKPCA的检测效果比静态方法均有明显的优势,具有较高的检测率和较低的误报率.说明对具有动态特性的工业过程,递归KPCA、MWKPCA、VMWKPCA 和ORKPCA方法均能够适应动态系统,有着优越的检测效果. 为了进一步比较6种方法的故障检测性能,分别计算各种方法的FAR、FDR和ET指标,检测结果如表4所示.从表4中可以看出,各种方法对故障2的检测效果差别不大,但是ORKPCA方法的检测率最高,误报率最低.对比各种方法的检测时间,压缩KPCA和ORKPCA方法的检测时间较短.因为两种方法都运用较少的样本建模,减少了运行内存,优化了计算时间.在对故障20进行检测时(见图5),KPCA与压缩KPCA方法的检测效果较差,而递归KPCA、MWKPCA、VMWKPCA 和ORKPCA方法的检测效果有较大程度的提高,其中ORKPCA方法的检测率最高.每次有一个新的正常样本可用时,递归KPCA方法的核矩阵都会增大,导致检测时间最长.MWKPCA方法通过添加一个新的样本和抛弃一个最老的样本保持核矩阵大小不变,检测时间明显比递归KPCA方法少.VMWKPCA方法为了保证滑动窗口最佳大小,改变在线窗宽大小,比MWKPCA方法提高了检测效果,比递归KPCA方法降低了运行时间.与3种动态故障检测方法相比,ORKPCA方法依据在线样本的相关性,保证压缩集线性无关.由于满足这样条件的在线样本比较少,导致压缩集变化不大,使得该方法不仅能够很好地更新核矩阵的特征值和特征向量适应动态系统,而且有着较高的检测率和较低的检测时间.综上所述,ORKPCA方法在对两种故障进行检测时,不仅检测效果最好,而且误报率比较低,运行时间也较短.因此,本文提出的方法在检测大规模的非线性动态工业过程中的故障时极具优越性. 表4 6种方法对TE过程的检测结果对比Tab.4 Detection results of six methods of TE process 针对化工过程复杂非线性的特点, 提出在线压缩KPCA的自适应方法用于过程监控,通过自适应更新模型来处理系统的动态行为.使用TE过程对KPCA、压缩KPCA、递归KPCA、MWKPCA和VMWKPCA方法进行仿真对比,评估本文提出方法的性能.故障检测的仿真结果表明,ORKPCA方法不仅极大地优化了运算时间,减小了运行内存,而且整体上提高了非线性动态系统故障监测的性能.3 仿真研究
3.1 数值仿真
3.2 TE 过程仿真研究
4 结语