鄭 丹 陳 路 童楚東
(寧波大學信息科學與工程學院 浙江 寧波 315211)
隨著復雜工業系統及智能傳感技術的快速發展,故障檢測在確保過程安全中起到了重要的作用并得到廣泛研究[1-3]。多元統計過程監測(MSPM)是最為典型的一種數據驅動方法[4-6],其中主成分分析(PCA)、偏最小二乘(PLS)和獨立成分分析(ICA)是較為常用的[7-11]。上述這些方法多用于處理線性過程,當處理復雜的非線性數據過程時往往表現不佳[12-13]。
為了克服這個缺點,人們引入了核函數來解決,如KPCA[14],KPCA是一種進行非線性降維的有力工具,其主要思想是將輸入數據通過隱式非線性映射映射到高維特征空間中,然后在此空間中對數據進行分析,通過計算T2和SPE統計量來監測過程的運行狀態。與其他的線性方法相比,KPCA較好地解決了非線性數據監測問題,但是其性能很大程度上受核函數及核函數參數寬度的影響,截至目前依然沒有較好的標準來確定核函數及其參數寬度。而不同的核函數及參數可能只對某些特定的故障有較好的監測性能,對另一部分的故障則不能很好地監測。也就是說不同的故障需要不同的核函數及其參數來最大化其故障監測效果。
為了能有效地監測故障,本文提出一種基于集成學習的KPCA非線性工業過程狀態監測方法(IKPCA)。集成學習的基本思想是將多個解組合成一個整體解,而這個整體解的性能總是能明顯優于單個解的結果[15]。基于這個啟發,我們發現選擇不同核函數及參數可以很容易地獲得KPCA模型的多樣性,然后通過貝葉斯推理,將不同子模型的監測結果進行組合,產生新的集成結果。這種方法不僅對核函數及參數的選取不敏感,而且也大大提高監控性能。
KPCA能有效提取非線性特征。KPCA首先是將非線性數據映射到特征空間中,然后在特征空間中進行主成分分析,以提取主要成分。假設原始數據為X=[x1,x2,…xn]∈Rm×n,其中:m為數據量;n為變量數。首先通過映射函數φ將數據映射到特征空間。那么特征空間數據的協方差矩陣可以表示如下:
(1)
式(1)的特征值λ和特征向量V一定滿足:
λV=CV
(2)
由于C是未知的,所以式(2)中的特征值與特征值向量并不能直接求出,這時可以通過引入非線性變換來解決,在式(2)的左右兩邊同時乘以φ(xj),如下:
λφ(xj)V=φ(xj)CV
(3)
式中:V為所有λ≠0的特征向量,且都存在于特征空間中。因此一定存在系數ai(i=1,2,…,n),使得:
(4)
我們知道核矩陣可表示為:
Kij=K(xi,xj)=φ(xi)φ(xj)
(5)
式中:K(xi,xj)為核函數。將式(1)與式(4)代入式(3),然后就將求C的特征值和特征向量轉換為求取核矩陣的特征值與特征向量,如式(6)所示。
nλa=Ka
(6)
式中:a為特征向量。經過計算最后我們需要的特征空間數據映射結果如下:
(7)
式中:p為選取的特征值個數,可根據貢獻率確定p的值。在監測工業過程時根據指標的不同變化判斷過程是否有故障發生。常用的監測指標是基于距離的監測指標,T2統計量與SPE統計量,具體計算過程如下:
T2=tTΛ-1t
(8)
式中:t為特征向量;Λ為根據排序選出特征值構成的矩陣。
(9)
式中:n0為非零特征值的個數,通過判斷T2統計量與SPE統計量是否超過控制限來監測過程是否正常。傳統KPCA過程監測中使用頻率較高的核函數有如下幾種。
Gaussian Kernel:
(10)
Ploynomial Kernel:
k(x,y)=(1+
(11)
Cauchy Kernel:
(12)
式中:c、d和e為各個核函數的參數。基于傳統KPCA故障監測的一般步驟如下,過程一般分為離線建模部分和在線監測部分。
離線部分:
步驟1獲取訓練數據并將訓練數據標準化,統一量綱。
步驟2選取合適的核函數以及其參數構建KPCA模型。
步驟3將訓練數據通過非線性映射,映射到特征空間并計算主成分。
步驟4通過步驟3得到主成分后計算T2與SPE控制線。
在線部分:
步驟5收集在線數據,并進行標準化。
步驟6根據離線訓練好的模型計算T2統計量與SPE統計量。
步驟7將T2統計量與SPE統計量與控制限進行比較,如果T2統計量與SPE統計量都低于控制限為正常,否則為發生故障。
傳統的基于KPCA故障監測方法很好地解決了在實際生活中遇到非線性數據的問題,但核函數及參數的選取是否合適對最終監測效果有很大的影響,單一的KPCA模型并不能保證對每種故障都有好的監測效果。因此,為了能更有效地進行過程監測,應該根據特定的故障信息選擇特定的核函數及參數,建立模型。然而,大多數情況下故障信息是不可知的。在這種情況下僅憑經驗確定也顯得極其盲目,目前依然沒有較為理想的選取方法,如果不幸選擇了一個差的模型,監測性能會大大降低。
基于KPCA的故障檢測模型檢測效果不穩定,對核函數與核函數參數選取敏感。為了克服基于單一KPCA模型的缺點,將集成學習應用到KPCA模型中。在監測過程時不是選擇單一的核函數及參數,而是選擇一系列具有不同寬度的核函數。IKPCA通過將不同子模型的結果進行組合,構成最終決策。由集成學習的特征可知,這個最終決策的性能總是能明顯優于單個模型所得到的結果。通過這個方法可以大大提高故障的檢測效率和穩定性。現在面臨的問題是怎么把不同子模型的監測結果合理組合到最終決策中。我們知道每個子模型都有自己的核函數及核函數參數,在監測過程中可以得到不同的檢測結果。這里利用了貝葉斯的方法,將常規的檢測統計值轉化為各個子模型的故障概率,接著進行融合進而得到最終決策。

在第一次集成時,選取一個核函數,以高斯核函數為例,如式(10),并選取t個不同寬度的核函數參數。
(13)
式中:i=1,2,…,t;c表示核函數參數。利用選好的核函數及不同寬度參數構造出不同的基本KPCA模型,那么我們有:
(14)

(15)
(16)

(17)
(18)

(19)
(20)
(21)
(22)
將同一核函數不同參數的子模型監測結果通過前面的計算全部轉化為故障概率后,我們可以通過下面的加權組合方法進行組合。得到一次集成后的監測統計量:
(23)
(24)

我們只完成了對同一核函數不同參數的集成,依然面臨著選擇核函數的問題,如果選擇不當,也可能會出現對部分故障監測效果不好的情況。接下來要把第一次集成的結果繼續進行融合,獲得第二次集成結果,以屏蔽選取核函數對檢測結果的影響。具體計算可通過如下公式完成:
(25)
(26)
最終結果我們可以通過顯著性水平α判斷所監控的過程是否發生故障。當IT2<α且ISPE<α時判斷為正常,其他情況則判斷為故障。具體流程如圖1所示。

圖1 IKPCA流程
IKPCA通過對不同KPCA子模型進行集成,增強了核函數及參數選取的魯棒性,同時從圖1可以看出,IKPCA計算量較大,需要占用較多的運算資源,可以通過分布式計算方法進行計算,在多個服務器上并行運行,保證計算時間,在提高監測效果的同時保證監測效率。
基于IKPCA過程檢測的具體步驟如下,實現過程包括兩個階段,離線建模和在線檢測。
離線建模:
步驟1收集訓練數據X∈Rm×n,m為變量數n為收集的樣本數,對數據進行標準化。
步驟2選取h個核函數,并為對應的核函數分別選取t個不同寬度的核函數參數。
步驟3使用選好的核函數及參數構造KPCA。
步驟4提取子模型的非線性主成分。
步驟5計算T2與SPE控制限。
在線檢測:
步驟6將新的數據樣本進行標準化。
步驟7提取新樣本數據的非線性主成分。
步驟8計算樣本的T2統計量與SPE統計量。
步驟9利用貝葉斯方法,把得到的監測統計值通過式(15)-式(22)轉化為故障概率。
步驟10用式(23)-式(24)計算出第一次集成后的監測指數ET2與ESPE。
步驟11重復上面的過程直到計算出所有核函數的ET2與ESPE。
步驟12將所有同一核函數不同參數融合后的結果ET2與ESPE,通過式(25)與式(26)再次進行組合得到IT2與ISPE。
步驟13通過控制線α,判斷這個過程是否有故障發生,如果IT2<α且ISPE<α則為正常,否則為故障。
本節我們先通過一個簡單的模擬實驗,驗證選取不同參數與核函數對基于KPCA的故障檢測結果的影響,說明選取單一的核函數及參數不能對所有故障都有好的監測性能。并使用本文所提出的IKPCA檢測方法,對仿真案例進行監測,與傳統的KPCA模型進行比較,評估該方法的可行性。
為了描述不同寬度參數選擇對故障檢測性能的影響及IKPCA檢測方法的有效性,本文模擬一個簡單地擁有三個變量的過程,并用不同的核函數和不同寬度參數進行分析。首先通過如下方法產生模擬數據[16]。每個數據中包含三個變量[x1,x2,x3]。
x1=β+e1
x2=β2-3β+e2
x3=-β3+3β2+e3
(27)
式中:e1、e2與e3為獨立的噪聲變量,且e1,e2,e3∈N(0,0.01);β∈U(0,2)。由式(27)隨機產生300個數據作為正常數據用于訓練產生模型。與此同時通過對其中某個變量添加噪聲的方式,產生兩組包含300個數據的測試樣本,兩種微小故障我們通過如下方法進行實現:
故障A:生成故障數據時,前100個數據正常,從第101個數據開始給第二個參數加入1.5階躍變化。
故障B:生成故障B時,前100個數據正常,從第101個數據開始給第三個參數引入-3.5的階躍變化。
針對這一簡單過程,分別建立了四個不同的KPCA模型。具體如下,我們選取了兩個核函數,高斯核函數(Gaussian Kernel)如式(10)所示,與柯西核函數(Cauchy Kernel)如式(12)所示,組成的模型我們用KPCA_G與KPCA_C表示。其中高斯核函數參數選取的參數為15m和50m,柯西核函數的兩個參數為15m和50m,m為輸入數據的維數,由式(27)可知m=3。對于四個不同的KPCA模型其主元個數通過方差累計貢獻率確定為3。表1顯示了基于不同核函數與不同寬度參數的KPCA模型對故障A與故障B的檢測結果。

表1 故障A與故障B的故障檢測率(%)
可以看出KPCA_C參數為e=15m的模型相對于KPCA_C參數為e=50m的模型對故障A的檢查效果要更好,但是KPCA_C參數為50m的模型檢測故障B時SPE為58.5%,高于e=15m的模型。同樣地,KPCA_C參數為e=15m的模型與KPCA_G參數為c=15m的模型相比,前者檢測故障A時T2和SPE好于后者,但后者檢測故障B時SPE為63%,明顯好于KPCA_C參數為15m模型對故障B的SPE。由此可見進行故障檢測時參數及核函數的選取對檢測結果影響巨大,不同故障可能需要不同核函數及參數最大化其檢測性能。
我們利用本文提出的IKPCA檢測方法對上面的示例進行檢測。IKPCA對T2與SPE的檢測結果與其他模型的檢測結果相比較可以看出,IKPCA對我們模擬的故障A和故障B可以同時得到更好的檢測結果,檢測故障A時IKPCA的T2與SPE分別為55.5%和47.5%,遠遠高于其他四個模型,同樣地,對故障B的檢測率也高于其他模型,避免了選取單一核函數和單一參數導致只能較好監測部分故障的缺點。
Tennessee Eastman Process(TE Process)是由Downs和Vogel提出的一個用于過程驗證的仿真平臺。目前已被廣泛認可和使用。這個平臺包括了五個主要的操作單元:反應器、冷凝器、分離器、汽提塔和循環壓縮機,有四種反應氣體(A、B、C和E)、兩種液體產物(G和H)、一種副產品(F)和少量惰性氣體(B),真實描述了設備、能量和裝置之間的關系[17]。TE過程共有22個連續過程變量和19個非連續變量,分別由3臺成分分析儀和12個操作變量采集。本文中除了反應器攪拌器的攪拌速度外,所有22個連續變量和11個操作變量都被選作用于過程檢測。TE模擬器可產生21種不同類型的故障,其中包括15種已知故障類型和6種未知故障類型,具體在表2中給出。本節我們將用IKPCA和傳統KPCA監測TE模型,驗證IKPCA的有效性。

表2 TE過程的故障類型
訓練數據集共包含960個正常情況下采集的樣本,每個故障的測試數據集包含960個樣本,從第161個樣本開始引入故障。在故障檢測中,大家一般通過經驗確定核函數及核函數參數。這里我們選取了3個模型,分別是KPCA_P(基于Ploynomial Kernel的KPCA模型)參數為d=2[18]、KPCA_G(基于Gaussian Kernel的KPCA模型)參數為c=10m[19]和KPCA_C(基于Cauchy Kernel的KPCA模型)由于使用Cauchy Kernel進行故障監測的較少,所以經反復實驗參數選取為監測效果較好的e=8 000。用這三個模型進行對比實驗,并為不同的模型均勻選取系列參數,其中:KPCA_P參數為d=t、KPCA_G參數為c=2t-15m、KPCA_C參數為e=1 000t,t=1,2,…,8。通過這些KPCA子模型建立IKPCA。顯然用于對比的三個模型也是IKPCA的子模型。建立每個子模型時保留30個主成分,顯著性水平設為0.01。接下來用我們選取三個KPCA模型和IKPCA模型對21種故障進行檢測。在表3中列出了四種模型對21種故障的檢測率,可以看出,幾乎對于所有的故障類型IKPCA都能更加準確地檢測出來,避免了只能較好檢測部分故障的缺點。

表3 21種故障的故障檢測率
故障5是冷凝器冷卻水進口溫度的躍階變化,冷凝器出口到氣液分離器的流速增加,導致氣液溫度和分離器冷卻水出口溫度升高。通過閉環控制可以使分離器溫度回到設定值附近。從表3的結果可以看出檢測故障5時,SPE與T2統計量同時取得了較好的檢測效果,避免了選取某一模型而導致的只有SPE或T2效果好的情況。故障10是4號流(C進料)是隨機溫度變化,四個模型對該故障檢測結果如圖2和圖3所示。可以發現與其他子模型相比,IKPCA檢測所得到的SPE和T2性能要更好。特別地,在400到600之間有許多故障樣本無法被SPE統計量檢測到的IKPCA的SPE幾乎大部分都可以檢測到。16和19是兩種未知故障,從表3中可以看到IKPCA的SPE比其他模型的SPE對故障檢測效果更好,更加敏感。故障20也是一種未知故障,IKPCA對故障20的T2和SPE檢測率分別是81.4%和88.6%,遠遠高于其他模型的檢測結果。由上可知IKPCA提高了故障的檢測性能且避免了單一核函數模型只能對其中部分故障較好監測的問題。

圖2 故障10檢測1

圖3 故障10檢測2
本文針對傳統KPCA監測方法的不足之處提出一種基于集成學習和貝葉斯推理的IKPCA監測方法。IKPCA首先利用集成學習方法建立多個具有不同核函數和參數的KPCA子模型,然后利用貝葉斯推理策略分兩次將不同KPCA子模型的結果融合,得出最終的故障監測概率。實驗結果表明,與通過經驗選擇單一的核函數及參數的KPCA模型相比,IKPCA模型不僅對參數及核函數的選取有更強的魯棒性,而且可以顯著地提高監測性能,保證了對每種故障能較好的監測,具有廣闊的應用場景。例如,基于核的非線性故障診斷、故障識別、故障分類等,我們都可以采用這種思想,以達到更好的效果。