郭金玉,李文濤,李元
(沈陽化工大學信息工程學院,遼寧沈陽 110142)
近年來,電子與信息技術的飛速發(fā)展,已經(jīng)運用到諸多領域。尤其在工業(yè)過程控制領域中,正是電子與信息技術同工業(yè)系統(tǒng)的完美融合,如今工業(yè)系統(tǒng)無論是在規(guī)模上還是生產(chǎn)設計上更加智能化。盡管工業(yè)系統(tǒng)與信息技術的結合已經(jīng)取得較大突破,但是多樣性的工業(yè)系統(tǒng)也使得人們對其可靠性提出更高的要求。為確保成功運行,過去幾十年來,雖然許多工業(yè)系統(tǒng)故障檢測技術取得了良好的效果,但是隨著工業(yè)系統(tǒng)的復雜程度越來越高,這些方法很難適配現(xiàn)代工業(yè)系統(tǒng)的故障檢測。因此,工業(yè)過程生產(chǎn)實踐中,故障檢測一直是工業(yè)過程控制領域中最重要的步驟之一,如化工過程、鋼鐵生產(chǎn)和石油冶煉等。
目前,在過程監(jiān)控領域中,具有重要意義的監(jiān)控方法主要分為以下三類:分析型、知識型和數(shù)據(jù)驅動型[1-3]。隨著精密工程和存儲設備的進步,準確地得到數(shù)學模型和獲取詳細的專業(yè)知識十分困難,以至于分析型和知識型兩種方法逐漸失去熱度。然而,研究如何更好地從大量的過程數(shù)據(jù)中提取有用的信息卻并沒有由此而減少關注。研究者逐漸發(fā)現(xiàn)數(shù)據(jù)驅動的方法僅僅需要分析工業(yè)過程中的歷史數(shù)據(jù)[4-6],在與統(tǒng)計學方法相結合后,在工業(yè)過程監(jiān)視中取得了理想的成績,這使得數(shù)據(jù)驅動的方法越來越受歡迎。
在大多數(shù)工業(yè)系統(tǒng)中,常常需要同時監(jiān)測和控制兩種或兩種以上相關的變量[7-8]。利用簡單的統(tǒng)計學方法獨立監(jiān)測多個過程特征會導致錯誤的判斷。于是,多元統(tǒng)計過程監(jiān)控(multivariate statistical process monitoring,MSPM)技術[9-10]就隨之快速發(fā)展,其中包括主成分分析(principal component analysis,PCA)[11-12]、典型變量分析(canonical variable analysis,CVA)[13-14]和獨立成分分析(independent component analysis,ICA)[15-16]等數(shù)據(jù)驅動的故障診斷方法開始陸續(xù)出現(xiàn)。這類方法在對數(shù)據(jù)的處理過程中,為了減少數(shù)據(jù)中的干擾成分,需要將采集到的數(shù)據(jù)進行降維處理,從而獲取包含故障信息在內(nèi)的有效信息。雖然這類數(shù)據(jù)驅動的故障診斷及其擴展方法在故障檢測領域中得到廣泛的應用,收獲了較好的成果,但是這些方法都是建立在過程數(shù)據(jù)可以線性分析的基礎上,對于一些具有特殊非線性特征的復雜化工過程,這些方法的監(jiān)視性能較差。為了處理非線性過程,專家、學者繼續(xù)不斷研究分析,發(fā)現(xiàn)可以引入核函數(shù)與這類線性方法相結合,在處理非線性過程中有著巨大的發(fā)展?jié)摿ΑS谑?,如核主成分分析(kernel principal component analysis,KPCA)、核偏最小二乘回歸(kernel partial least-squares,KPLS)等處理非線性的方法[17-20]應時而生。這類處理非線性過程的方法將非線性數(shù)據(jù)從輸入空間映射到特征空間,然后利用線性方法在高維特征空間中提取表征數(shù)據(jù)內(nèi)在關系的信息變量,并在這些變量構成的低維子空間中計算其統(tǒng)計指標。然而,這類方法統(tǒng)計量置信限的確定是基于得分變量滿足高斯分布的假設[21],這在非線性過程中不容易滿足。于是,Jenssen[22]提出一種用于非線性化工過程監(jiān)測的多元統(tǒng)計方法——核熵成分分析(kernel entropy component analysis,KECA),可以避免這種假設的約束。在KECA中,特征提取或降維是在一個稱為核特征空間的新空間中實現(xiàn)的,新的空間與輸入空間是非線性相關的。核特征空間中的數(shù)據(jù)集被投影到由最大Rényi熵確定的特征空間主軸構造的主成分子空間上。該方法更適合于處理無高斯假設的非線性過程。
本文在KECA的基礎上,提出一種在線壓縮KECA (online reduced kernel entropy component analysis,ORKECA)的自適應故障檢測算法。在大量的樣本中挑選符合整個訓練集特征的樣本作為初始壓縮集進行建模,運用類似滑動窗口的方法對在線實時采集的樣本進行監(jiān)控,判斷新的樣本是否正常;若為正常樣本繼續(xù)判斷是否加入壓縮集中,在新的樣本加入壓縮集的同時自動更新在線KECA模型。這樣能夠更好地使監(jiān)控模型適應時變的系統(tǒng),有效地提高KECA在時變系統(tǒng)過程中的檢測性能。
KECA算法是一種非線性數(shù)據(jù)轉換方法,將核特征空間中的數(shù)據(jù)集投影到KPCA主軸上,再對其進行處理實現(xiàn)數(shù)據(jù)的轉換和降維,與KPCA算法不同之處在于其主元的選取依據(jù)輸入空間熵值的貢獻多少來確定,而不是特征值的大小。假設一個由概率密度函數(shù)f(x)生成一個樣本集D:x1,x2,x3,…,xN,其Rényi熵被定義為[23]:
在式(1)中,由于對數(shù)函數(shù)本身符合單調函數(shù)的特性,于是本文只考慮G(f)=∫f2(x)dx函數(shù)的大小,并且引入Parzen窗概率密度函數(shù)估計G(f)的值,其表示為:
其中,kσ(x,xt)被稱為Parzen窗且必須滿足為Mercer空間中的一個核函數(shù);σ為寬度函數(shù),并且以xt為中心。利用樣本期望值近似估計G(f)的值,可以得到:
式中,K為核矩陣;I為一個N×1維單位矢量。因此,Rényi熵估計G?(f)的值完全可以使用內(nèi)核矩陣元素中的樣本進行評估。于是,對核矩陣進行特征分解,其特征值和特征向量就能夠進行Rényi熵估計,表示為:
其中,E表示的特征向量矩陣為(e1,e2,…,eN),D表示的特征值矩陣為(λ1,λ2,…,λN),因此,Rényi熵估計用特征值和特征向量表示如下:
由式(5)可知特征值與特征向量都會影響Rényi熵估計G?(f)大小,而且特征值大取得的信息熵貢獻度并不一定也是最大的。所以,式(6)中的ψi可以看作式(5)中每個元素的Rényi熵,根據(jù)式(6)得出的值有助于Rényi熵估計。
于是,將輸入數(shù)據(jù)集D:x1,x2,x3,…,xN通過非線性φ映射到核特征空間中定義為xi→φ(xi)(i=1,2,3,…,N),而在核特征空間中的數(shù)據(jù)集表示為Φ=[φ(x1),φ(x2),…,φ(xN)]。由于KECA可以看作是最大限度地保留Rényi熵估計的主軸在包含原始數(shù)據(jù)最多信息的情況下構造成的子空間,也就是將N維數(shù)據(jù)通過Φ映射到由k個KPCA主軸張成的子空間Uk上,對ψi大小進行降序排序,選取其熵值貢獻較大的前k個特征值和特征向量,可以得到轉換后的數(shù)據(jù)。
式 中,Tk=[t1,t2,t3,…,tk]為 得 分 矩 陣;Λk=diag(λ1,λ2,λ3…,λk)為 特 征 值 矩 陣 ;Ek=[e1,e2,e3,…,ek]為特征向量矩陣。
KECA作為一種多元投影模型的故障檢測方法,類似KPCA方法,可以使用表示過程運行狀態(tài)的檢測指標實現(xiàn)過程監(jiān)控。本文采用平方預測誤差(squared prediction error,SPE)統(tǒng)計量作為檢測指標,監(jiān)視系統(tǒng)運行是否偏離正常狀態(tài)。
基于KECA的故障檢測方法包括兩個部分:建立模型和在線檢測。運用原始數(shù)據(jù)建立KECA模型,確定統(tǒng)計量SPE并運用核密度計算控制限。在線檢測過程中,基于KECA模型進行數(shù)據(jù)投影,計算在線數(shù)據(jù)的統(tǒng)計量并與控制限進行比較,判斷是否異常。其中SPE(Q)統(tǒng)計量被定義為:
系統(tǒng)運行的狀態(tài)可以根據(jù)SPE統(tǒng)計量指標發(fā)生變化的情況進行故障檢測,具體推導過程見文獻[24]。
核熵成分分析在處理大型訓練數(shù)據(jù)集時,不僅仿真運行時間長,而且占據(jù)過大存儲空間。因此,提取和選擇相關度較高的觀測值可以很好地解決計算時間長和內(nèi)存消耗的問題。本文提出的ORKECA方法的重要目的之一就是優(yōu)化計算時間,降低運行內(nèi)存[25-26]。在KECA算法中,引入Rényi信息熵并以熵值大小選取主成分,在數(shù)據(jù)降維的過程中減少了信息的丟失,既實現(xiàn)了主成分選取個數(shù)較少,又使降維后數(shù)據(jù)仍保留了原始數(shù)據(jù)在核特征空間極大的信息熵值。于是,在這個基礎上產(chǎn)生了壓縮數(shù)據(jù)建模的方法,該方法的原理就是用一組觀測向量逼近由核熵成分析方法確定保留的主成分,這些觀測向量與選擇的主成分的方差方向一致,就可以達到極好地保留信息的目的,并且節(jié)約了運行時間。根據(jù)式(6)降序選擇k個特征值與特征向量,將挑選的k個觀測值構建一個壓縮集,建立該壓縮集的KECA模型,進行過程監(jiān)視。
在主成分分析算法中,對于協(xié)方差矩陣中的每一個特征向量都可以視為其映射數(shù)據(jù)集的線性組合[27]。因此,在KECA中通過熵值選取的特征向量表示為:
因此,對式(9)進一步化簡可以得到:
其中(aj,n)j=1,…,k可由主成分{Ej}j=1,2,…,k與其對應的非零特征值{Λj}j=1,2,…,k取得。
在ORKECA算法中,主要的步驟流程如圖1所示。
圖1 基于KECA的壓縮步驟流程Fig.1 Flowchart of reduced steps based on KECA
KECA作為一種MSPM方法,與傳統(tǒng)的KPCA、核典型相關分析(kernel canonical correlation analysis,KCCA)和KPLS等方法一樣,在運用靜態(tài)方法處理系統(tǒng)過程數(shù)據(jù)時,一旦根據(jù)歷史數(shù)據(jù)建立KECA模型后,對在線數(shù)據(jù)檢測時,無論系統(tǒng)發(fā)生什么樣的變化,基礎模型不會發(fā)生改變。當使用歷史數(shù)據(jù)建立的靜態(tài)模型處理動態(tài)系統(tǒng)時,必然會出現(xiàn)巨大誤差,導致系統(tǒng)誤報和漏報的情況發(fā)生。于是,為使KECA模型適應時變系統(tǒng),提高KECA在動態(tài)化工過程中實時故障檢測的準確率,就需要實時采集在線的樣本,并對過程狀態(tài)進行分析,判斷KECA模型是否需要更新。本文提出一種ORKECA的自適應方法,其基本思想是,當且僅當一個新的樣本提供了對于監(jiān)控系統(tǒng)而言是正常的信息樣本并且該信息不與壓縮集中的樣本信息存在冗余時,就將這個新采集的樣本加入該壓縮集中,然后利用新的壓縮集重新建立KECA模型,并且更新熵值、監(jiān)測統(tǒng)計值及其控制限。ORKECA的具體自適應故障檢測步驟如圖2所示。
圖2 基于ORKECA的故障檢測方法流程Fig.2 Flowchart of fault detection method based on ORKECA
對在線的數(shù)據(jù),使用KECA的SPE指標作為判斷標準,基于在線壓縮KECA異常監(jiān)測步驟如下。
(1)收集正常歷史數(shù)據(jù),根據(jù)式(12)選擇壓縮的信息樣本,構建初始壓縮集Xr。
(2)將構建的壓縮集進行標準化處理,計算其核矩陣,根據(jù)式(6)得到熵值貢獻最大的特征值和特征向量,建立KECA模型,確定統(tǒng)計量SPE及其控制限δ2。
(3)在線采集一個新的測試數(shù)據(jù)xk+1,并使用步驟(2)中建模時的均值和標準差對該數(shù)據(jù)進行標準化。
(4)根據(jù)壓縮集的KECA模型計算該樣本統(tǒng)計量spe,并與控制限δ2進行比較。如果spe沒有超過控制限,則認為新采集的數(shù)據(jù)正常,繼續(xù)下一步;否則認為新采集的數(shù)據(jù)xk+1為異常數(shù)據(jù),返回步驟(3)。
(5)計算φ(x(k+1))的值是否滿足φ'(x(k+1))需求準則,如果滿足,對模型進行更新,其需求準則表示為:
如果根據(jù)式(15)得到的值小于0,說明該樣本包含信息與壓縮集中包含的信息重復,該樣本不需要加入壓縮集中,KECA模型不更新,轉到步驟(3),并用原模型繼續(xù)監(jiān)測;如果得到的值不小于0,說明在壓縮集中沒有該樣本的相似信息,則將這個新采集的正常樣本加入壓縮集中,得到新的壓縮集,并且更新該壓縮集的熵值、監(jiān)測統(tǒng)計值及其控制限。然后轉到步驟(3),直到最后一個樣本結束。
在本文中k與ε的選擇極為重要,如果k的值選擇過小,表示的全局信息不全面,就不能形成有效的統(tǒng)計量,對測試結果造成極大影響。如果k的值過大,會造成信息冗余,占用更多的內(nèi)存,不僅影響仿真運行時間,對測試結果也會造成很大的偏差,影響在線監(jiān)控的時效性。因此,為了使k值盡可能包含更多的樣本個數(shù),本文中k值選擇是根據(jù)累計熵貢獻率大于99%來確定,這樣可以盡可能保留更多的信息熵。對于參數(shù)ε的選取,若參數(shù)ε過大,壓縮的樣本全部集中在前面的樣本中;若參數(shù)ε過小,選擇的樣本值不一定滿足k的需求。當然,具體參數(shù)ε的確定應該考慮被監(jiān)測系統(tǒng)運行的實際情況,通過不斷調整以達到比較理想的效果。
在本文中運用一個數(shù)值例子和典型的非線性TE過程為例進行仿真分析,對本文所提出ORKECA方法進行評估,檢測該方法的故障檢測性能,使用三個故障檢測指標:誤報率(false alarm rate,FAR)、故障檢測率(fault detection rate,FDR)和運行時間(elapsed time,ET),并 與KPCA、KECA、滑 動 窗 口KPCA(moving window KPCA,MWKPCA)[28]以及壓縮KECA(reduced KECA,RKECA)進行比較。
為了驗證本文提出方法具有一定的優(yōu)越性,本文中的數(shù)據(jù)案例由文獻[29]中的非線性過程產(chǎn)生,具體產(chǎn)生結構如下:
故障1:對于變量x2從200個采樣時刻時加入1.5的階躍干擾。
故障2:對于變量x2從160個采樣時刻時加入0.05(t-160)形式的斜坡干擾。
對于測試數(shù)據(jù),本文基于統(tǒng)計量SPE運用ORKECA進行過程監(jiān)控,故障1和故障2的監(jiān)控結果分別如圖3和圖4所示。由圖可以看出,KPCA、MWKPCA、KECA、RKECA和ORKECA五種方法對兩種故障樣本進行在線測試時,KECA的誤報樣本的數(shù)量明顯低于KPCA,而RKECA無論是在誤報樣本還是漏報樣本的數(shù)量上低于KECA。因此,RKECA方法可以較好地替換KECA方法在故障檢測中的應用。與KECA相比較,RKECA方法的核矩陣維數(shù)會很小,計算量更低,占用的內(nèi)存更小,這樣可以極大地節(jié)約運算時間。與靜態(tài)的KPCA、KECA和RKECA三種方法相比,MWKPCA在誤報和漏報樣本數(shù)量上都有明顯的優(yōu)越性。但是,對比圖3(b)和圖4(b),可以看出在相同的離線樣本建模的情況下,為了使在線測試效果更好,兩種仿真窗寬明顯不一致,可以看出窗寬對于MWKPCA結果的影響較大,而ORKECA只需要嚴格確定好初始的壓縮集,對于后期仿真測試并不需要過多依賴壓縮集樣本數(shù)量,即使存在小范圍偏差,適當修改系數(shù)ε,就可以取得不錯的效果。雖然五種方法在對故障1和2進行監(jiān)視時,都能檢測到故障發(fā)生且均有較低的誤報情況發(fā)生,但是,從圖3和圖4中可以看出,五種方法在漏報和誤報數(shù)量上存在差異。其中,ORKECA方法無論是在漏報數(shù)量上還是誤報數(shù)量上明顯優(yōu)于其他四種方法。為了進一步證明ORKECA方法的優(yōu)越性,詳細計算了KECA、RKECA和ORKECA方法的運行時間(ET),結果如表1所示,五種方法的誤報率(FAR)和故障檢測率(FDR)結果如表2所示。
圖3 數(shù)值案例故障1的檢測結果Fig.3 Detection resultsof fault 1 for numerical case
圖4 數(shù)值案例故障2的檢測結果Fig.4 Detection resultsof fault 2 for numerical case
表1 KECA、RKECA和ORKECA對數(shù)值案例檢測的運行時間Table 1 Elapsed time of KECA,RKECA and ORKECA for numerical examples
表2 數(shù)值案例的誤報率與故障檢測率Tab 2 False alarm rates and fault detection rates for numerical example
表1中的結果表明,在對兩種故障檢測時,RKECA的故障檢測運行時間遠遠小于KECA,而ORKECA的運行時間高于RKECA,低于KECA。而且從表2中可以得出,KECA與RKECA方法在檢測率與誤報率上差別并不是太大。于是,結合表1、表2可以得出:與KECA方法相比,RKECA方法可以用更小的樣本表示全局的過程信息,占用更少的運行內(nèi)存,極大節(jié)約了運算時間。在KECA方法基礎上提出的ORKECA方法,對故障1檢測的誤報率與檢測率分別為0和99.85%,對故障2檢測的誤報率與檢測率分別為0.30%和99.50%,與其他四種方法的誤報率與檢測率數(shù)值對比,ORKECA方法在對故障1和2的檢測中誤報率更低,檢測率更高,而且檢測時間比KECA方法更短。因此,本文所提出的ORKECA方法的誤報率與檢測率均優(yōu)于其他四種方法,并且檢測時間較短,在動態(tài)的工業(yè)過程監(jiān)視中有著巨大應用潛力。
3.2.1 TE過程簡介 TE過程由反應器、冷凝器、壓縮機、分離器和汽提塔5個主要單元組成,是一個真實的工業(yè)過程。訓練數(shù)據(jù)及測試數(shù)據(jù)均包括1組正常數(shù)據(jù)及21組故障數(shù)據(jù);22組數(shù)據(jù)中每組數(shù)據(jù)均包含41種測量變量與12種控制變量,其中有一組數(shù)據(jù)為500個樣本組成的訓練數(shù)據(jù),而其余21組數(shù)據(jù)為960個樣本組成的測試數(shù)據(jù),測試數(shù)據(jù)是從第160個采集時刻開始加入故障[30]。
3.2.2 TE過程故障檢測分析 本文將KPCA、MWKPCA、KECA、RKECA以及ORKECA五種檢測方法應用于TE過程,比較它們的故障檢測性能。由于在TE過程中故障3、9、15在整個測試過程中對方差和均值的影響很小[31],難以檢測,故本文只對其余18種故障進行檢測。以TE過程中較為經(jīng)典的故障2與故障17為例進行分析,圖5和圖6分別為五種方法對兩種故障的檢測效果。在圖5中可以得到,五種方法在對故障2進行檢測時都取得了不錯的效果,其中MWKPCA與ORKECA方法的檢測效果最好,在誤報率與檢測率上明顯優(yōu)于其他三種檢測方法。由圖6對于故障17的檢測效果可以得到,KECA與RKECA方法的檢測效果極為接近。由五個檢測圖中可以明顯看出,MWKPCA方法的誤報率比其他四種方法更好,而故障檢測效果相對比較差。ORKECA方法不僅故障檢測效果好于其他四種方法,而且誤報率接近MWKPCA方法。為了證明上述得出結論的正確性,計算了KECA、RKECA和ORKECA三種方法的運行時間(ET)(表3)。除此之外,對TE過程中的18種故障進行更加具體的數(shù)值分析,五種方法的誤報率(FAR)和故障檢測率(FDR)結果如表4所示。
圖5 TE過程故障2的檢測結果Fig.5 Detection results of fault 2 in TEprocess
圖6 TE過程故障17的檢測結果Fig.6 Detection results of fault 17 in TEprocess
由表3和表4可以得出:(1)對于大部分故障,KECA的誤報率低于KPCA;(2)RKECA的FDR與KECA相差不大,但是極大地減少了計算時間;(3)在RKECA方法基礎上提出的ORKECA算法的檢測結果比其他四種方法都好,運行時間較短。
表3 KECA、RKECA和ORKECA對TE過程檢測的運行時間Table 3 Elapsed time(ET)of KECA,RKECA and ORKECA in TE process
表4 TE過程18種故障的誤報率、故障檢測率Table 4 False alarm rates and fault detection rates of 18 faults in TE process
本文在KECA方法基礎之上提出一種對非線性過程進行在線壓縮KECA的自適應故障檢測方法。對穩(wěn)態(tài)工況建立KECA模型,運用該模型提取有用的信息樣本構建新的壓縮集并用該壓縮集建立新的KECA模型。最后,使用該壓縮集建立的KECA模型進行自適應故障檢測。使用數(shù)值例子和TE過程進行仿真研究,與KPCA、MWKPCA、KECA和RKECA方法進行對比,驗證了本文所提方法的檢測率和誤報率具有較大的改進,并且節(jié)約了運行時間。