郭金玉,劉玉超,李 元
(沈陽化工大學(xué)信息工程學(xué)院,遼寧沈陽 110142)
近年來,在人工智能和大數(shù)據(jù)的時代背景下,工業(yè)生產(chǎn)過程也逐漸趨于大型化、自動化和智能化,這就需要對控制系統(tǒng)具有更高的要求.為了有效提高控制系統(tǒng)故障檢測性能,基于數(shù)據(jù)驅(qū)動的多元統(tǒng)計分析方法在工業(yè)過程領(lǐng)域迅速發(fā)展[1–7].數(shù)據(jù)驅(qū)動方法僅依賴于工業(yè)生產(chǎn)中所獲得的歷史數(shù)據(jù)來建立監(jiān)控模型,不需要依賴先驗知識和數(shù)學(xué)模型,從而得到了廣泛的關(guān)注.
主成分分析(principal component analysis,PCA)算法是典型的基于數(shù)據(jù)驅(qū)動的故障檢測算法.PCA算法[8–10]是一種線性降維的方法,該算法將原始過程數(shù)據(jù)劃分為兩個正交子空間,通過分析低維主成分子空間和殘差子空間進(jìn)行故障檢測.PCA算法應(yīng)用平方預(yù)測誤差(square predicted error,SPE)和T2對樣本狀態(tài)進(jìn)行監(jiān)控,但是應(yīng)用SPE和T2統(tǒng)計指標(biāo)時需要數(shù)據(jù)服從多元高斯分布,因而PCA在非高斯過程中的故障檢測效果不理想.為了克服PCA的局限性,Mohamed等人[11]提出一種基于高斯框架的故障檢測方法,在數(shù)據(jù)服從高斯網(wǎng)絡(luò)條件下,引入PCA方法和二次檢驗統(tǒng)計量,該方法雖然一定程度上提高了系統(tǒng)的故障檢測率,但是依然不適用于非高斯過程.為了提高非高斯過程的故障檢測率,Kano等人[12]將獨(dú)立成分分析(indepen-dent component analysis,ICA)應(yīng)用于故障檢測領(lǐng)域.ICA假設(shè)原始樣本相互獨(dú)立,不要求數(shù)據(jù)服從高斯分布.為了進(jìn)一步提高非高斯過程故障檢測率,國內(nèi)外學(xué)者將PCA與ICA結(jié)合提出一些改進(jìn)算法.為了有效地提取工業(yè)過程的高斯和非高斯信息,提高故障檢測性能,Ge等人[13]提出一種基于獨(dú)立成分分析–主成分分析(independent component analysis-principal comp-onent analysis,ICA–PCA)的檢測方法,通過提取數(shù)據(jù)集的主成分和獨(dú)立成分,根據(jù)距離相似度作為統(tǒng)計量,提高故障檢測性能.為了找出工業(yè)過程中引起故障發(fā)生的主要變量,Zhong等人[14]提出一種基于獨(dú)立成分分析和主成分分析的回歸算法,該方法通過建立ICA–PCA模型,提取數(shù)據(jù)的高斯特征和非高斯特征,對結(jié)構(gòu)相關(guān)的統(tǒng)計量進(jìn)行在線故障檢測.對基于ICA–PCA模型獲取的過程狀態(tài)和故障信息,進(jìn)一步建立基于LASSO回歸算法的故障診斷模型結(jié)構(gòu),從而實(shí)現(xiàn)對引起主要異常變量的故障進(jìn)行定位和選擇.為了解決工業(yè)生產(chǎn)過程數(shù)據(jù)服從不同分布問題,Huang等人[15]提出一種基于變量分布特征的統(tǒng)計過程檢測方法,該方法首先采用d檢驗來識別過程變量的正態(tài)性,分別建立了用于高斯子空間和非高斯子空間故障檢測的PCA和ICA 模型,再用貝葉斯推理將兩個子空間的檢測結(jié)果進(jìn)行統(tǒng)一,提高故障檢測性能.以上對PCA和ICA的改進(jìn)算法可以有效地提高非高斯過程的故障檢測率,但是這些方法僅適用于單一模態(tài)的故障檢測,對于工業(yè)生產(chǎn)過程中存在的多工況、多模態(tài)等問題,其故障檢測能力下降.為了提高工業(yè)系統(tǒng)的控制過程,Zhao等[16–17]提出一種動態(tài)分布式監(jiān)控策略,將動態(tài)變化從穩(wěn)態(tài)中分離出來,同時對其進(jìn)行監(jiān)測,以區(qū)分控制系統(tǒng)運(yùn)行過程的正常狀態(tài)和實(shí)際故障的變化.為了提高多模態(tài)非高斯過程的檢測性能,Xu等人[18]提出一種動態(tài)貝葉斯獨(dú)立成分分析(dynamic Bayesian ICA,DBICA)方法,該方法利用矩陣動態(tài)增強(qiáng)技術(shù)從原始數(shù)據(jù)中提取動態(tài)信息,然后將貝葉斯推理和ICA相結(jié)合,建立了多模態(tài)非高斯數(shù)據(jù)的概率混合模型,從而進(jìn)行故障檢測.為了提高多模態(tài)非高斯過程的無監(jiān)督作用,Ge等人[19]提出一種基于貝葉斯推理和兩步獨(dú)立成分分析–主成分分析特征提取策略的多模式過程無監(jiān)督方法,該方法利用PCA進(jìn)行特征提取和降維,利用貝葉斯推理將傳統(tǒng)的檢測統(tǒng)計量轉(zhuǎn)化為各運(yùn)行模式下的故障概率,通過檢測數(shù)據(jù)樣本的后驗概率和聯(lián)合概率,確定數(shù)據(jù)是否正常.為了提高ICA在多模態(tài)過程中的檢測性能,一種基于局部熵獨(dú)立成分分析的過程監(jiān)控方法(local entropy independent component analysis,LEICA)由Zhong等人[20–21]提出,該方法通過將數(shù)據(jù)轉(zhuǎn)換到局部熵空間,建立ICA模型,實(shí)現(xiàn)故障檢測.本文為提高具有多模態(tài)和非高斯特征的工業(yè)過程故障檢測效果,提出一種局部熵雙子空間(local entropy double subspace,LEDS)的多模態(tài)過程故障檢測方法,通過局部概率密度估計計算過程數(shù)據(jù)的局部熵,消除多模態(tài)特性的影響.對提取過程數(shù)據(jù)的特征信息進(jìn)行Kolmogorov-Smirnov(KS)檢驗,分別建立高斯空間和非高斯空間的子模型,根據(jù)Bayesian融合方法將所得到的子模型的各統(tǒng)計量的值轉(zhuǎn)化成故障發(fā)生的概率,有效地提高了多模態(tài)過程監(jiān)控系統(tǒng)的性能.
熵是用來描述系統(tǒng)過程狀態(tài)是否正常的重要統(tǒng)計指標(biāo).對于隨機(jī)變量x,其樣本集表示為x={x1,x2,···,xm},其中m是樣本數(shù).熵定義如下:
其中p(x)是變量x的概率密度函數(shù)(probability density function,PDF).為了降低傳統(tǒng)核密度估計函數(shù)(kernel density estimation,KDE)[22–23]對窗寬參數(shù)選擇的敏感度,消除數(shù)據(jù)的多模態(tài)特性,Zhong等人[21]引入一種基于kNN算法的局部學(xué)習(xí)策略,提出運(yùn)用改進(jìn)的局部核密度估計函數(shù)來確定p(x),其定義如下:
其中:xi是X的樣本;kNN(xi)是xi的k近鄰集,表示為
現(xiàn)給定一個訓(xùn)練數(shù)據(jù)矩陣,表示為
其中xi(j)表示第i個變量的第j個樣本.應(yīng)用熵變換提取訓(xùn)練數(shù)據(jù)中隱藏的固有信息.首先,利用式(2)估計每個變量的局部概率密度,得到如下的密度矩陣:
其中?pi(j)表示第i個變量的第j個樣本的局部概率密度估計值.然后,將滑動窗口技術(shù)應(yīng)用于熵變換.假設(shè)Z是滑動窗口的寬度,則數(shù)據(jù)窗口Pt定義為
基于式(7),熵向量h計算為
其中ht的元素定義為
利用上述方程,將數(shù)據(jù)矩陣X從原始空間轉(zhuǎn)換到熵空間,得到熵矩陣
KS檢驗[24]方法用來計算樣本的經(jīng)驗分布與假設(shè)分布的擬合程度,其不需要預(yù)先知道數(shù)據(jù)的分布情況,是一種非參數(shù)檢驗方法.對于隨機(jī)變量xt,FN表示由樣本得到的經(jīng)驗累積分布函數(shù),F0表示為理論累積分布函數(shù),取|FN(xt)?F0(xt)|在隨機(jī)變量上的最大值作為KS檢驗的統(tǒng)計量,則
KS檢驗臨界表得P0(n,α),其中N為變量總數(shù),α為置信度水平,一般取0.05.原假設(shè)H0為兩個數(shù)據(jù)分布一致或者數(shù)據(jù)符合理論分布,也就是說H0表示測試結(jié)果,P0為是否接受高斯分布的概率值.對于變量xt,如果H0=0且P0在5%顯著性水平上,則變量xt服從高斯分布.相反,如果H0=1且P0在5%顯著性水平下,則變量xt不服從高斯分布.
在局部熵變量空間中應(yīng)用KS方法檢驗數(shù)據(jù)是否服從高斯分布,把局部熵矩陣分為高斯子空間H1和非高斯子空間H2,從而有效地提取數(shù)據(jù)變量的高斯和非高斯特征.
2.3.1 局部熵高斯子空間模型
對于服從高斯分布的局部熵數(shù)據(jù)矩陣H1建立PCA模型,首先對H1進(jìn)行標(biāo)準(zhǔn)化,使H1的各列方差為1,均值為0.然后計算H1的協(xié)方差矩陣如下:
其中m是樣本個數(shù).對協(xié)方差矩陣S進(jìn)行特征值分解,計算出特征值和特征向量.根據(jù)累計方差貢獻(xiàn)率[25]求主元個數(shù)v,如下:
式中λi為協(xié)方差矩陣的特征根,其中由前v個特征向量構(gòu)成的矩陣就是負(fù)載矩陣Pv.根據(jù)下列公式計算Q和T2統(tǒng)計量:
式中Λ=diag{λ1,λ2,···,λv}.根據(jù)核密度估計確定Q和T2統(tǒng)計量的控制限運(yùn)用PCA對服從高斯分布的局部熵數(shù)據(jù)進(jìn)行監(jiān)視,滿足PCA要求數(shù)據(jù)服從多元高斯分布的前提假設(shè),從而使檢測結(jié)果達(dá)到預(yù)期效果.
2.3.2 局部熵非高斯子空間模型
對于服從非高斯分布的局部熵數(shù)據(jù)矩陣H2建立ICA模型.在非高斯熵變量空間中,應(yīng)用FastICA提取數(shù)據(jù)的獨(dú)立元.首先對非高斯局部熵數(shù)據(jù)矩陣H2進(jìn)行白化,然后對H2的協(xié)方差矩陣RH2進(jìn)行奇異值分解得到:
其中Λ和U為協(xié)方差矩陣RH2的特征值和特征向量.白化變換由以下公式表示:
其中O=Λ?1/2UT為白化矩陣,則有
式中W=BTO.在非高斯局部熵數(shù)據(jù)矩陣中根據(jù)式(13)確定獨(dú)立元個數(shù)d.提取d個非線性獨(dú)立元,并計算d個獨(dú)立元的重構(gòu)誤差,則對于t時刻的非高斯局部熵向量ht,有
同樣根據(jù)KDE確定SPE和I2統(tǒng)計量的控制限SPElim和以局部概率密度為基礎(chǔ)的信息熵變換過程,消除數(shù)據(jù)的多模態(tài)差異,滿足ICA關(guān)于單一模態(tài)的假設(shè)前提.
2.3.3 貝葉斯混合空間模型
在局部熵變量中分別建立PCA高斯子空間和ICA非高斯子空間模型來檢測一個新來的數(shù)據(jù)集h,但是每一個子模型都會得到不同的檢測結(jié)果,因此本文通過Bayesian融合方法將所得到的子模型的各統(tǒng)計量的值轉(zhuǎn)化成故障發(fā)生的概率,以便更直接的理解故障發(fā)生的可能.具體算法如下:
其中:PQ(N),PQ(F),PT2(N)和PT2(F)分別是PCA模型殘差空間和主元空間的正常和故障過程的先驗概率;PSPE(N),PSPE(F),PI2(N)和PI2(F)分別是ICA模型殘差空間和主元空間的正常和故障過程的先驗概率.如果檢驗水平α被確定,則PQ(N),PT2(N),PSPE(N)和PI2(N)分別為1 ?α,而PQ(F),PT2(F),PSPE(F)和PI2(F)為α.各個模型統(tǒng)計量是否正常的概率計算公式如下:
按上述方法將各子模型的檢測結(jié)果全部轉(zhuǎn)化為故障發(fā)生的概率,再利用以下公式將所有的檢測結(jié)果進(jìn)行組合:
新模型的統(tǒng)計指標(biāo)ESPE和ET2控制限為1 ?α,當(dāng)統(tǒng)計量超過1 ?α則系統(tǒng)為故障狀態(tài),否則為正常.
LEDS方法用于多模態(tài)過程的故障檢測,主要包括模型建立和故障檢測兩個步驟.
模型建立:
1) 收集正常運(yùn)行的歷史數(shù)據(jù)集X=[x1x2···xm]T∈Rm×n;
2) 標(biāo)準(zhǔn)化原始數(shù)據(jù)矩陣X得到X1;
3) 根據(jù)式(2)計算X1的局部概率密度矩陣P;
4) 根據(jù)式(8)–(10)構(gòu)建對應(yīng)于P 的局部熵變換矩陣H;
5) 應(yīng)用KS檢驗對H進(jìn)行子空間劃分,對滿足高斯分布特性的局部熵變量H1建立PCA模型,根據(jù)式(14)–(15)計算Q 和T2統(tǒng)計量,由KDE 確定Q 和T2統(tǒng)計量的控制限Qlim和.對非高斯分布的局部熵變量H2建立ICA模型,根據(jù)式(22)–(23)計算SPE和I2統(tǒng)計量,同樣根據(jù)KDE確定SPE和I2統(tǒng)計量的控制限SPElim和.
故障檢測:
1) 對待檢測樣本xnew,利用建模數(shù)據(jù)的均值和方差進(jìn)行標(biāo)準(zhǔn)化得到xnew1;
2) 計算xnew1的改進(jìn)局部熵得到改進(jìn)局部熵矩陣h;
3) 利用KS檢驗將局部熵變量分為高斯子空間和非高斯子空間,然后分別向高斯子空間模型和非高斯子空間模型上投影;
4) 分別計算每個子模型的統(tǒng)計量Q,T2,SPE和I2;
5) 計算每個子模型兩個統(tǒng)計量發(fā)生故障的概率;將各個子模型的檢測結(jié)果進(jìn)行組合,計算出ESPE和ET2;
6) 將待檢測樣本的ESPE和ET2與控制限1 ?α進(jìn)行比較,根據(jù)統(tǒng)計量是否超過控制限來判斷樣本的狀態(tài).
以Ma設(shè)計的數(shù)值例子[26]來進(jìn)行仿真,該數(shù)據(jù)中包含5個變量,模型如下:
其中e1,e2,e3,e4和e5服從[0,0.01]的白噪聲.數(shù)據(jù)源s1和s2的變化可以改變操作條件,現(xiàn)通過改變數(shù)據(jù)源構(gòu)造兩種不同的操作模態(tài).
模態(tài)1:s1∈U[?7,?4],s2∈N[?5,1];
模態(tài)2:s1∈U[2,5],s2∈N[7,1]
每個模態(tài)產(chǎn)生200個樣本,組成具有400個樣本的多模態(tài)數(shù)據(jù)集.其中每個模態(tài)的前100個樣本組成訓(xùn)練數(shù)據(jù)集,其余樣本為校驗數(shù)據(jù)集.在模態(tài)1運(yùn)行時,對變量x1增加幅值為0.01×(i ?400)的故障,產(chǎn)生100個故障樣本.以x1和x2為例進(jìn)行說明,圖1是訓(xùn)練樣本x1和x2的變量序列圖.圖中橫軸表示樣本數(shù),縱軸表示變量.
圖1 原始數(shù)據(jù)變量序列圖Fig.1 Sequence plot of training data variable
從圖1可以看出,模態(tài)1的100個訓(xùn)練樣本與模態(tài)2的100個訓(xùn)練樣本服從不同分布,變量序列值不在同一水平線,說明該數(shù)值例子具有多模態(tài)特性.圖2是將原始數(shù)據(jù)轉(zhuǎn)換到局部熵空間后的變量序列圖,從圖2可以看出x1和x2的所有樣本均在同一水平線上,說明局部熵方法把多模態(tài)數(shù)據(jù)轉(zhuǎn)換為單模態(tài).
圖2 局部熵數(shù)據(jù)變量序列圖Fig.2 Sequence plot of local entropy data variable
應(yīng)用KS方法檢驗原始數(shù)據(jù)和局部熵數(shù)據(jù)變量是否服從高斯分布,結(jié)果如表1所示.對于變量xt(t=1,2,3,4,5),如果H0=0且P0在5%顯著性水平上,則xt服從高斯分布.相反,如果H0=1且P0在5%顯著性水平下,則xt服從非高斯分布.從表1可以看出,在原始數(shù)據(jù)中,變量x2和x4的H0為0且P0均在5%顯著性水平上,則變量x2和x4服從高斯分布,說明變量x1,x3和x5具有非高斯特征;在局部熵數(shù)據(jù)矩陣中,變量x2,x3和x4服從高斯分布,變量x1和x5具有非高斯特征.
表1 KS檢驗結(jié)果Table 1 Results of KS test
根據(jù)KS檢驗提取局部熵數(shù)據(jù)的高斯變量x2,x3和x4建立PCA模型,而對非高斯變量x1和x5建立ICA模型,對每個子模型得到的不同的檢測結(jié)果利用貝葉斯融合技術(shù)得到統(tǒng)一的統(tǒng)計量.使用LEDS方法對該數(shù)值例子進(jìn)行故障檢測,并與PCA、局部熵主成分分析(local entropy principal component analysis,LEPCA)和LEICA進(jìn)行比較,檢測結(jié)果如圖3所示.圖中:“?”代表訓(xùn)練數(shù)據(jù),“?”代表校驗數(shù)據(jù),“”代表故障數(shù)據(jù),虛線代表95%控制限.在PCA,LEPCA和LEICA中主成分和獨(dú)立成分個數(shù)由85%累計方差貢獻(xiàn)率確定.從圖3可以看出,PCA算法的Q統(tǒng)計量檢測出17個故障數(shù)據(jù),13個樣本出現(xiàn)誤報;T2統(tǒng)計量檢測出13 個故障樣本,22個樣本出現(xiàn)誤報.LEPCA算法的Q統(tǒng)計量檢測出29個故障數(shù)據(jù),12個樣本出現(xiàn)誤報;T2統(tǒng)計量檢測出3個故障樣本,13個樣本出現(xiàn)誤報.LEICA算法的SPE統(tǒng)計量檢測出98個故障數(shù)據(jù),5個樣本出現(xiàn)誤報;I2統(tǒng)計量檢測出31 個故障樣本,7個樣本出現(xiàn)誤報.LEDS算法的ESPE統(tǒng)計量檢測出全部故障數(shù)據(jù),5個樣本出現(xiàn)誤報;ET2統(tǒng)計量檢測出全部故障樣本,3個樣本出現(xiàn)誤報.與其他3種方法相比,LEDS方法具有更好的故障檢測性能.
圖3 4種方法對數(shù)值例子的檢測結(jié)果Fig.3 Detection results of four methods for numerical example
PCA,LEPCA,LEICA和LEDS對多模態(tài)數(shù)值例子的具體檢測結(jié)果對比如表2所示.表2表明LEDS在誤報率較低的情況下,具有最高的故障檢測率,驗證了該方法在多模態(tài)數(shù)據(jù)故障檢測中的有效性.
表2 4種算法對數(shù)值例子的檢測結(jié)果對比Table 2 Comparisons of detection results of four algorithms for numerical example
田納西–伊斯曼(Tennessee Esatman,TE)過程是一個模擬實(shí)際工業(yè)過程的仿真平臺,國內(nèi)外學(xué)者將其廣泛用于故障檢測與故障診斷領(lǐng)域,已成為一種國際上通用的標(biāo)準(zhǔn)仿真模型[27–30].TE 過程包括5個主要操作單元、4種氣體進(jìn)料、2個氣液放熱反應(yīng)生成的2種主產(chǎn)品、2個衍生放熱反應(yīng)生成的2種副產(chǎn)品等,過程機(jī)理復(fù)雜,變量較多.TE過程具體的模型流程圖如圖4所示.
圖4 TE過程工藝流程圖Fig.4 Flow chart of TE process
選取TE過程的模態(tài)1和模態(tài)3組成具有1200個訓(xùn)練數(shù)據(jù)的多模態(tài)過程,并分別在模態(tài)1和模態(tài)3中選出200個正常樣本作為校驗數(shù)據(jù),故障類型為模態(tài)1和模態(tài)3的故障1,2,8,9和10.在每個故障類型下選取800個樣本組成測試故障數(shù)據(jù)集.在PCA和LEPCA中主成分個數(shù)以及LEICA中獨(dú)立成分個數(shù)由累計方差貢獻(xiàn)率確定.對故障10分別應(yīng)用PCA,LEPCA,LEICA和LEDS的檢測結(jié)果如圖5所示.從圖5可以看出PCA的Q統(tǒng)計量檢測出大部分故障,但是存在誤報;T2統(tǒng)計量故障檢測率較低并且存在大量誤報.這是因為PCA算法在主成分空間構(gòu)造T2統(tǒng)計量,要求數(shù)據(jù)為單模態(tài)并且服從多元高斯分布,而TE過程的多模態(tài)數(shù)據(jù)與這一假設(shè)條件相悖,因而有較低的故障檢測率.與PCA類似,LEPCA的Q統(tǒng)計量檢測出大部分故障,但是存在大量誤報;T2統(tǒng)計量故障檢測率較低,但是檢測效果優(yōu)于PCA.因為LEPCA將原始數(shù)據(jù)轉(zhuǎn)換到局部熵空間,消除原始數(shù)據(jù)的多模態(tài)特性,從而故障檢測率有所提高.在LEICA中SPE統(tǒng)計量檢測出大量故障,效果明顯優(yōu)于PCA和LEPCA,但是I2統(tǒng)計量故障檢測效果卻不十分理想.這是由于局部熵方法消除了數(shù)據(jù)的多模態(tài)特性,檢測性能有所提高,但是局部熵數(shù)據(jù)中有的變量服從高斯分布,有的變量服從非高斯分布,ICA能夠提取數(shù)據(jù)的非高斯特征,無法有效地提取數(shù)據(jù)的高斯特征.在LEDS方法中ESPE和ET2均能檢測出大量故障,在誤報較低的情況下故障檢測效果優(yōu)于PCA,LEPCA和LEICA,驗證了LEDS算法的有效性.
TE過程4種算法的具體檢測結(jié)果如表3所示.本文運(yùn)用誤報率和故障檢測率來衡量算法的優(yōu)越性,從表3可以看出,在對TE多模態(tài)過程的5種故障(1,2,8,9和10)進(jìn)行檢測時,與PCA,LEPCA和LEICA算法相比,LEDS在保證誤報率較低的前提下故障檢測率最高,驗證了該算法的有效性.
圖5 故障10的檢測結(jié)果Fig.5 Detection results of fault 10
表3 TE過程故障檢測結(jié)果Table 3 Fault detection results of TE process
本文提出一種基于局部熵雙子空間的多模態(tài)過程故障檢測方法.通過對數(shù)據(jù)的局部概率密度估計,消除多模態(tài)特性的影響.運(yùn)用局部概率密度估計構(gòu)造數(shù)據(jù)的局部熵信息,在局部熵空間中利用KS檢驗提取數(shù)據(jù)的高斯和非高斯信息,分別建立高斯和非高斯子空間模型,利用貝葉斯融合技術(shù)將各個子模型的檢測結(jié)果進(jìn)行融合形成統(tǒng)一的檢測指標(biāo),進(jìn)行故障檢測.將本文的方法應(yīng)用到數(shù)值例子和實(shí)際的TE多模態(tài)過程中,仿真結(jié)果表明,與傳統(tǒng)的故障檢測算法相比,本文算法提高故障檢測率,降低誤報率,驗證了該方法的有效性.