韓宇,李俊芳,高強,田宇,禹國剛
(1 天津理工大學電氣電子工程學院,天津300380; 2 天津市復雜系統(tǒng)控制理論及應用重點實驗室,天津300384;3天津理工大學工程訓練中心,天津300384)
隨著工業(yè)化程度的不斷提升,復雜工業(yè)過程對生產(chǎn)質(zhì)量、系統(tǒng)性能和安全生產(chǎn)提出了新的要求。與此同時,復雜工業(yè)過程在向著一體化和復雜化逐漸發(fā)展。復雜工業(yè)過程控制系統(tǒng)的大規(guī)?;l(fā)展導致系統(tǒng)變量間相互關聯(lián)、相互耦合。一旦發(fā)生故障,將造成巨大的經(jīng)濟損失和安全隱患。因此,復雜工業(yè)過程的故障診斷技術逐漸受到越來越多的關注。隨著計算機控制系統(tǒng)在現(xiàn)代工業(yè)中的廣泛使用,豐富的過程數(shù)據(jù)被收集并存儲。因此,數(shù)據(jù)驅動的故障診斷方法受到越來越多專家學者的關注[1-5]。
目前常見的數(shù)據(jù)驅動方法,主要包括主成分分析(principal component analysis, PCA)、偏最小二乘(partial least squares, PLS) 和獨立主元分析(independent principal component analysis,ICA)等。2010 年Jenssen[6]在KPCA 的基礎上提出了KECA(kernel entropy component analysis,KECA)算法。該算法由于不需要滿足高斯分布假設,因此在非線性特征提取表現(xiàn)出優(yōu)越性。常鵬等[7]將KECA 方法引入工業(yè)過程監(jiān)測取得良好的效果。齊詠生等[8]提出多尺度主成分分析(multi-scale principal component analysis, MSPCA)和KECA 相結合的算法,提高了KECA 算法的分類效果。但現(xiàn)有的基于KECA 的故障檢測方法,僅利用正常工況下數(shù)據(jù)進行統(tǒng)計建模。忽略了先前故障數(shù)據(jù),這些故障數(shù)據(jù)實際上可以提供故障判別信息用來幫助在線故障診斷。
為了提取先驗故障數(shù)據(jù)中的故障判別信息,通常使用判別分析技術。Fisher 判別分析(Fisher discriminant analysis, FDA)是故障分類最廣泛使用的判別分析方法。為了提高分類性能,許多改進了FDA 方法已經(jīng)衍生出來,包括半監(jiān)督的FDA[9]和核Fisher 判別分析(kernel Fisher discriminant analysis,KFDA)[10-11]。Feng 等[12-14]基于本地數(shù)據(jù)結構分析,已經(jīng)開發(fā)出局部的FDA 方法。Yu 等[15-17]通過利用非局部結構信息,開發(fā)了局部和非局部保留判別分析(local and nonlocal preserving projection, LNPP)方法來改進基于FDA 的故障鑒別。然而本文與上述方法不同的是,通過將LNPP 映射到高維空間中,提取少量的先前故障數(shù)據(jù)中故障判別信息來輔助基于KECA算法的故障檢測。
綜上所述,本文提出了一種故障判別增強KECA(FDKECA)算法,該方法通過改進LNPP 對先前故障數(shù)據(jù)中故障信息進行提取,同時監(jiān)測KEC 和FDC 兩類數(shù)據(jù)特征。而后構建基于概率加權的總體監(jiān)測統(tǒng)計量,實現(xiàn)故障在線檢測。通過數(shù)值仿真和田納西伊斯曼(Tennessee Eastman, TE)過程仿真實驗,證明和傳統(tǒng)KECA 相比,F(xiàn)DKECA 算法能夠有效利用故障數(shù)據(jù)提高故障檢測率。
KECA 算法作為一種非線性數(shù)據(jù)降維的方法,相比于核主成分分析(kernel principal component analysis, KPCA)算法,其主要特點在于在降維特征選取時考慮到信息熵的大小,并通過此確定主元投影的方向。
對于N 維樣本x,p(x)為概率密度函數(shù)。則樣本瑞利熵(Renyi)[18]表示為:
由于對數(shù)函數(shù)單調(diào)性已知,因此可以將式(1)化簡為:
通過對V(p)估計來實現(xiàn)對Renyi 估計,引入Parzen窗,表示如下:
式中,Kσ(x,xi)為Parzen 窗,Kσ(x,xi)必須是滿足Mercer 空間的一個核函數(shù),將式(3)代入式(2)通過對樣本均值估計得到:
式中,K 是N × N 的核矩陣,I 為元素都為1 的N × 1 維向量。式(4)得到了Renyi 熵的核矩陣表達。通過特征分解核矩陣得到Renyi 熵的估值,表示為:
式中,D 為特征值矩陣D = diag(λ1,λ2,…,λn),E為特征向量矩陣E =(e1,e2,…,en),化簡后得到:
式(6)表明,特征值大并不能表明信息熵的貢獻值也大,因此依據(jù)ξi=值才能保證樣本降維前后信息熵損失最小。通過將ξi大小進行降序排序,選取對Renyi熵貢獻值較大的前d項特征值和特征向量。
對于測試集Xt其投影表達式為:
其KECA 監(jiān)控統(tǒng)計量T2和Q 統(tǒng)計,記為和Q(0)f,其對應表達式為:
式中,Λ 是訓練數(shù)據(jù)集協(xié)方差矩陣,本文將KECA 通過核密度估計法(kernel density estimation,KDE)得到T2和Q 置信限記為和,KECA 算法具體流程參見文獻[19]。
如圖1 所示,F(xiàn)DKECA 采用無監(jiān)督和監(jiān)督建模方法來構建KECA 和KLNPDA 兩個子模型。對于KECA 子模型采用無監(jiān)督建模方法,用正常工況下數(shù)據(jù)來構建KECA 子模型以提取KEC。對于KLNPDA 子模型采用監(jiān)督建模方法,用先前故障數(shù)據(jù)和正常工況下數(shù)據(jù)來構建KLNPDA 子模型以獲得FDC。最后利用貝葉斯推理將KECA 和KLNPDA提供的監(jiān)控統(tǒng)計量轉換為故障概率,并通過對兩個子模型的故障檢測結果轉化為故障概率,目的是構建基于概率加權的總體監(jiān)測統(tǒng)計量,從而提供更有效的在線故障檢測能力。
LNPDA 算法源于LNPP,它結合了LNPP 的思想[20-21]。LNPDA 能夠發(fā)現(xiàn)數(shù)據(jù)矩陣的低維投影,使得局部鄰域點的距離盡可能小,而非局部鄰域點的距離盡可能大。由于工業(yè)過程非線性嚴重,因此將LNPDA 映射到高維空間中,使用KLNPDA 能夠更好地獲得FDC。
為了構建KLNPDA 模型,構造Xnf=[Xn,Xf]T=[xnf(1),xnf(2),…,xnf(Nf)]T作 為 訓 練 集 , 其 中Xn∈RN×M表示N×M 維正常工況下運行的數(shù)據(jù)集,已知一類先前故障數(shù)據(jù)集Xf∈Rf×M表示其中f×M維故障數(shù)據(jù)集。Nf表示訓練集樣本總數(shù)Nf= N + f。
首先將構建的訓練集xnf(i) ∈RM映射到高維特征空間Φ(xnf(i)) ∈F,在高維特征空間尋找線性變換向量q ∈F,尋求投影y(i) =(Φ(xnf(i)))Tq,其中1 ≤i ≤Nf。其目的是保持投影前后同一類的點盡可能保持接近,而非同類的點盡可能地分開。前者是局部投影優(yōu)化問題,而后者則是非局部投影優(yōu)化問題。
首先,將局部優(yōu)化投影加權參數(shù)wl和非局部投影加權參數(shù)wnl定義為:
設置加權參數(shù)是為了更好地分離正常工況和先前故障樣本,有效地提取FDC。因此,在局部優(yōu)化投影時,對于來自同一數(shù)據(jù)集樣本賦予較高的加權參數(shù),不同數(shù)據(jù)集樣本賦予較低的加權參數(shù)。在非局部優(yōu)化投影時,與局部優(yōu)化投影加權參數(shù)相反。
圖1 FDKECA算法結構Fig.1 Fault discriminant enhanced kernel entropy component analysis algorithmic structure
局部投影優(yōu)化可以表示為[20]:
式(11)的約束條件為qTq = 1,其中Dl是Nf× Nf對角陣,其對角線元素wl(i,i)為wl矩陣第i列元素之和。wl是Nf× Nf矩陣其(i,j)上元素為wl(i,j)。Ll為局部投影Laplacian矩陣。
非局部投影優(yōu)化可以表示為[21]:
式(12)約束條件為qTq = 1,式中Dnl是Nf× Nf對角矩陣,其對角線元素wnl(i,i)為wnl矩陣第i 列元素之和。wnl是Nf× Nf矩陣其(i,j)上元素為wnl(i,j)。Lnl為非局部投影Laplacian矩陣。
通過式(11)、式(12)組合,將局部和非局部投影優(yōu)化問題重新表述為:
式(13)約束條件為qTq = 1。投影矢量q由訓練集張成子空間表示,其表示如下:
式(14)中β =[ β1,β2,…,βNf]T,將式(15)代入式(14)化簡為:
通 過 運 用 核 技 巧 Knf(i,j) =(Φ(xnf(i)))T(Φ(xnf(j)))避免Φ(Xnf)難以求取的問題。優(yōu)化問題表述為:
其約束條件為βTKnfβ = 1,目的是為了確保有唯一的非零解。為了求解式(17),將廣義特征值分解引入,表示為:
對于測試集Xt,其判別成分可以表示為:
對于故障檢測,兩個故障判別統(tǒng)計數(shù)據(jù)構建為:
其 中 [y1,y2,…,yKf]T包 含 主 要 FDC,[yKf+1,yKf+2,…,y-Nf]T包含次要FDC。Γ 是主要FDC 的協(xié)方差矩陣,Ω 是次要協(xié)方差矩陣,兩者都是根據(jù)訓練集進行計算。
在正常工況下,所有監(jiān)測統(tǒng)計數(shù)據(jù)應小于它們各自的置信限即T2(c)f,lim和Q(c)f,lim。但在現(xiàn)有研究中,都用統(tǒng)計分布計算數(shù)據(jù)的置信限[22-23]。然而,工業(yè)數(shù)據(jù)具有高度復雜的特征,并且它們可能不遵守這些假定的分布。因此,本文使用KDE 的數(shù)據(jù)驅動置信限計算方法[24-26]。具體地,首先將正常工況下數(shù)據(jù)投影到統(tǒng)計模型上,并計算監(jiān)視統(tǒng)計量T2(c)f和Q(c)f。然后通過KDE 方法估計每個統(tǒng)計量的密度函數(shù)。最后,利用給定的顯著性水平δ,通過找到占據(jù)估計的密度函數(shù)的1-δ區(qū)域的點來確定每個統(tǒng)計量的置信限。在本文中,顯著性水平設置為δ=5%,因此對統(tǒng)計量均采用95%置信限。
由于FDKECA 模型提供了KEC 和FDC 兩類數(shù)據(jù)特征,因此采用貝葉斯推理將每個監(jiān)測統(tǒng)計量轉化為故障概率。然后所有概率值組合起來構建基于概率加權的監(jiān)測統(tǒng)計量,并采用加權策略來提高故障檢測性能。根據(jù)貝葉斯推理,將統(tǒng)計量T2(c)f和轉化為后驗概率和,其公式為:
兩個基于概率的監(jiān)測統(tǒng)計數(shù)據(jù)PT和PQ通過加權所有子模型的后驗故障概率來構造,表示為:
加權因子應確保FDKECA 子模型始終能夠正常運行,而故障判別子模型可提供有用的故障信息以提高監(jiān)控性能。對于KECA 子模型,其加權因子設計如下:
其中sat代表飽和函數(shù)[27],表示為
Zmax需要根據(jù)研究對象不同來通過仿真實驗確定加權因子,加權因子作用是使得微小的故障信息有效地凸顯。本文通過50 組仿真實驗,最終確定Zmax=150,使得加權因子能夠有效地凸顯微小故障信息。
由于故障判別統(tǒng)計量能夠在故障發(fā)生時提供更多信息,因此設置適當?shù)募訖嘁蜃樱沟霉收闲畔⒏菀自诮y(tǒng)計量中凸顯。對于1 ≤c ≤C 加權因子和表示為:
兩個基于概率的監(jiān)測統(tǒng)計數(shù)據(jù)構造用于故障檢測。與傳統(tǒng)監(jiān)控不同統(tǒng)計,它們表明故障發(fā)生概率。如果PT2<δ且PQ <δ,則表明該過程處于正常工況狀態(tài)。反之,則表示該過程處于故障狀態(tài)。
基于FDKECA 的過程監(jiān)控涉及兩個階段:離線建模和在線檢測。在離線建模中,訓練數(shù)據(jù)集包括正常工況下的數(shù)據(jù)和一類先前的故障數(shù)據(jù)用于構建FDKECA 模型。在線故障檢測階段,新數(shù)據(jù)被投射到FDKECA 模型上,計算基于概率的監(jiān)測統(tǒng)計PT 和PQ 以判斷過程操作狀態(tài)。更具體方法如下。
離線建模階段:
(1)收集正常工況下的數(shù)據(jù),將它們劃分為訓練數(shù)據(jù)集XN和驗證數(shù)據(jù)集XV,并對兩個數(shù)據(jù)集進行標準化。
(2)收集現(xiàn)有的故障數(shù)據(jù)集{X(c)f,c = 1,2,…, }C 并使用訓練集的均值和方差對其進行歸一化。
(4)將驗證數(shù)據(jù)Xv投影到FDKECA 模型上,并計算其監(jiān)控統(tǒng)計量和,c = 0,1,2,…,C。
(5)將KDE 應用于步驟(4)中獲得的監(jiān)控統(tǒng)計數(shù)據(jù)估計置信限和,c = 0,1,2,…,C。
在線檢測階段:
(1)在線獲取新的數(shù)據(jù)集Xt,并且用訓練集的均值和方差對其進行歸一化。
(2)將數(shù)據(jù)集Xt投影到FDKECA 模型上,并計算出相應的監(jiān)測統(tǒng)計量。
(3)通過貝葉斯推理,用式(21)計算后驗概率。
(4)用式(29)計算基于概率的監(jiān)測統(tǒng)計PT和PQ。
(5)通過將監(jiān)測統(tǒng)計與顯著性水平進行比較來確定是否發(fā)生故障。
為了證明FDKECA 算法的有效性,采用文獻
[22]中給出的數(shù)值仿真示例,測量變量M=3,對其故障程度進行簡要修改,其具體結構表示如下:
其 中,獨 立 噪 聲 變 量ei,1≤i≤3ei∈N(0,0.01),t ∈[0.01,2]。基于以上數(shù)值仿真,取600 個正常工況下的樣本點。其中300 個作為訓練集,另外300作為測試集,計算正常工況狀態(tài)下的置信限。針對該系統(tǒng)設置兩個故障(表1),對于兩種故障采集300個故障樣本點作為先前故障數(shù)據(jù)集,在采集300 個作為測試集進行在線檢測,在101 個樣本點處引入故障。數(shù)值仿真分為如下三個情況:
情況1:故障D1 先前故障數(shù)據(jù)集用于訓練FDKECA模型。
情況2:故障D2 先前故障數(shù)據(jù)集用于訓練FDKECA模型。
情況3:故障D1 和故障2 兩類先前故障數(shù)據(jù)集用于訓練FDKECA建模型。
表1 數(shù)值仿真故障設置Table 1 Numerical simulation fault setting
在情況1 訓練下,F(xiàn)DKECA 模型包括先前D1 故障訓練的一個KLNPDA 模型。圖2 和圖3 分別顯示了KECA 和FDKECA 兩個模型故障監(jiān)控的性能。從圖2 中可以看出,KECA 無法有效檢測到該故障,因為其監(jiān)測統(tǒng)計T2和Q 遠低于相應的閾值,在故障D1發(fā)生后沒有明顯變化。基于KECA 的T2和Q 統(tǒng)計的故障檢測率分別為15%和5.5%。相比之下,F(xiàn)DKECA 可以快速檢測到故障變化,其故障檢測率高達84%。但是PQ 沒有明顯改變,其故障檢測率為7.5%。
圖2 KECA故障D1監(jiān)控結果Fig.2 Fault D1 monitoring results of KECA
圖3 情況1訓練下,F(xiàn)DKECA故障D1監(jiān)控結果Fig.3 FDKECA fault D1 monitoring results of case 1 training
為了進一步研究FDKECA 算法,給出了故障D1測試集在KECA 和FDKECA 的投影效果圖如圖4 所示(圖中藍色表示正常工況的數(shù)據(jù)黃色表示故障數(shù)據(jù))從圖中可以清楚地看出,KECA 算法不能有效分離測試集,但是FDKECA 算法可以有效分離測試集,表明FDKECA 算法對故障具有良好的特征提取效果,并能有效提取故障數(shù)據(jù)中的故障信息。這解釋了在這種情況下FDKECA 能夠提供更好地故障檢測性能,同時還繪制出KLNPDA模型對故障D1監(jiān)控性能(圖5),其T2和Q 統(tǒng)計的故障檢測率分別為80%和2%。
圖4 故障D1測試集投影Fig.4 Fault D1 test projection
為了更好地研究FDKECA 算法的故障檢測性能,給出KECA 子模型和KLNPDA 子模型的基于概率加權總體檢測量的加權策略如圖6所示。從圖中可以看出,在正常工況下,故障判別子模型應當被停用。圖中故障判別子模型的加權因子為0,KECA 模型加權因子為1。當檢測到故障發(fā)生,故障判別子模型被激活,變?yōu)榉橇阒登医^大多數(shù)接近最大值1,表明故障表判別子模型能夠有效地對故障進行加權,而雖然變小但仍保證大部分非零值,表明KECA 模型也能對故障提供有效的信息。由此證明了加權設計策略的有效性。由于故障判別子模型中很少涉及故障信息因此對于大部分故障樣本值接近于0。
當檢測到與情況1下訓練FDKECA 模型使用的先前故障數(shù)據(jù)無關的未知故障時,F(xiàn)DKECA 的故障檢測性能要優(yōu)于KECA 檢測性能。圖7 和圖8 分別給出了兩種算法在情況1 下對故障D2 監(jiān)測性能。KECA 的T2統(tǒng)計量的故障檢測率為41%,Q 統(tǒng)計的故障檢測率為11%。而FDKECA 對故障檢測性能實現(xiàn)了一些改進,其PT統(tǒng)計量達到51.5%的故障檢測率,其PQ 統(tǒng)計量與KECA 的Q 統(tǒng)計量達到8.5%。
表3 列出了三種情況下FDKECA 算法的檢測率。該結果表明,F(xiàn)DKECA 結合先前故障信息能夠有效提高故障檢測率。此外,與KECA 模型相比,證明使用一類先前故障數(shù)據(jù)訓練的FDKECA 模型能夠改善另一類未知故障的故障檢測能。
圖6 情況1下故障D1故障概率加權因子Fig.6 Weighting factor of fault D1 for fault probability in case 1
圖7 KECA故障D2監(jiān)控結果Fig.7 Fault D2 monitoring results of KECA
圖8 情況1下FDKECA對故障D2監(jiān)控結果Fig.8 FDKECA fault D1 monitoring results of case 1 training
為了進一步研究FDKECA 算法故障檢測性能,通過TE 仿真平臺進行仿真驗證。TE 過程是根據(jù)工廠實際生產(chǎn)的過程為對象建立的控制仿真模型。該平臺被廣泛應用于故障檢測及診斷算法評價過程。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監(jiān)控結果Fig.9 Monitoring results of fault 3
仿真實驗中,采集正常工況和不同故障類型數(shù)據(jù)各480 組作為訓練集。采集960 組數(shù)據(jù)作為測試集,測試集從161 個樣本點開始引入故障。為了驗證FDKECA 故障檢測性能,以故障3為例進行實驗,由于故障3 對過程影響較小,因此較難檢測到。如圖9 所示,KECA 算法對故障3 不能做出有效的指導,T2統(tǒng)計量的檢測率為6.4%,SPE統(tǒng)計量的檢測率為12.6%,且SPE 統(tǒng)計量誤報較高。相比于KECA,F(xiàn)DKECA對故障檢測效果得到了提升。其T2統(tǒng)計量檢測率為65.2%,其SPE 統(tǒng)計量檢測率為61.8,且誤報率較低。通過對比可以得到,F(xiàn)DKECA 能夠有效利用先前故障數(shù)據(jù)提升故障檢測能力。
表3 給出了四種算法對TE 過程檢測的結果。其中KPCA 故障檢測結果來自于文獻[33],其余結果均由仿真實驗得出。從表3 看出,大多數(shù)情況下KECA 故障檢測率要優(yōu)于KPCA 且KLNPDA 能夠對故障數(shù)據(jù)中包含的故障信息進行有效的提取。FDKECA 能夠有效結合KECA 和KLNPDA 兩類檢測數(shù)據(jù),提升故障檢測能力。對于KECA、KPCA 難以檢測到的故障3、9 和15,F(xiàn)DKECA 能夠有效改善故障檢測能力??偟膩碚fFDKECA 故障檢測性能要優(yōu)于KECA、KPCA兩種方法。
本文針對工業(yè)監(jiān)控系統(tǒng)的數(shù)據(jù)庫中忽略的先前故障數(shù)據(jù)的缺點,結合了核熵成分分析和局部和非局部保持投影的優(yōu)點,提出FDKECA 故障檢測算法。該方法能夠對先前故障數(shù)據(jù)中包含的故障信息進行有效的利用。通過設計適當?shù)募訖嗖呗院蜆嫿ɑ诟怕始訖嗟目傮w監(jiān)測統(tǒng)計量進行故障檢測。通過仿真實驗證明,加權策略設計合理。與傳統(tǒng)的KPCA、KECA 相比,F(xiàn)DKECA 算法通過有效地挖掘先前故障數(shù)據(jù)中包含的故障信息來提高故障檢測性能。先前故障數(shù)據(jù)中故障信息的有效利用,提高復雜工業(yè)過程故障檢測的性能,是未來進一步研究的內(nèi)容。