張成,潘立志,李元
(1 沈陽化工大學理學院,遼寧 沈陽 110142; 2 沈陽化工大學技術過程故障診斷與安全性研究中心,遼寧 沈陽 110142)
隨著工業過程逐漸趨于復雜,許多工廠對生產安全和產品質量提出了更高的要求。為了確保工廠安全、提高產品質量,在線檢測與診斷技術得到快速發展。近年來,多變量統計過程監控(multivariate statistical process monitoring, MSPM)方法被提出并被廣泛用于復雜工業過程故障診斷領域[1-3]。
由于工業測量中變量個數和被記錄次數的增加,為了完成過程監控,需要直接從大量數據中提取和定義統計數據的重要特征。目前,針對多變量監控問題,主元分析(principal component analysis,PCA)和獨立元分析(independent component analysis,ICA)在線性過程監控中得到了成功的應用[4-10],但是在非線性過程中PCA 和ICA 的監控性能受到制約。為了有效監控非線性過程,基于核主元分析(kernel PCA,KPCA)和核獨立元分析(kernel ICA,KICA)的多元統計過程監控方法被廣泛應用于工業過程[11-14]。雖然上述方法在過程監控中可以識別特征顯著的故障,但是當存在幅值小或者變化慢的故障時,上述方法的監控性能較差。由于工業過程存在幅值小、變化緩慢的故障并且往往表現為早期的微小故障,因此研究微小故障檢測方法對過程監控有著重要的意義。
目前國內外有很多關于微小故障檢測方法的研究[15-22],其中基于信號處理的方法是一種常見的微小故障檢測方法[17-18],例如,基于小波變分法[19]和經驗模態分解法[20]的信號特征處理已經在許多應用中得到了成功推廣。在微小故障中非高斯隨機項的影響更為明顯[21],為了處理非高斯數據中微小故障的問題,基于ICA 與小波變換的微小故障檢測方法被應用并取得良好的效果[22]。由于傳統工業過程中的方法對非線性過程的監控性能較差,因此,為了解決非線性過程故障檢測問題,基于KICA 的監控方法被應用于過程監控。雖然KICA 在非線性過程監控中可以識別特征顯著的故障,但是當非線性動態過程發生微小故障時,KICA的監控性能較差。
針對KICA 在非線性動態過程中對微小故障檢測率低的問題,本文提出一種基于加權統計特征KICA(weighted statistical feature KICA, WSFKICA)的故障檢測與診斷方法。其基本思想如下:首先,利用KICA 捕獲到獨立元數據和殘差數據;然后,在獨立元空間和殘差空間中通過加權統計特征獲取改進統計特征數據集,并由此數據集構建統計量進行故障檢測;最后,利用基于變量貢獻圖的方法進行過程故障診斷。
假設s=[s1…sn]Τ是包含n個獨立源信號的隨機向量,Al×n為混合矩陣,x=[x1…xl]Τ為包含l個觀測信號的隨機向量(l>n),滿足關系式:
x=As(1)
ICA 能夠從觀測信號Xl×m(l是變量個數,m是樣本個數)估計出混合矩陣A和獨立成分S[9]。
由于ICA本質上是一種線性變換方法,因此,為了使ICA 能夠處理非線性問題,衍生出了KICA 方法。在KICA 中將xi?Rl×1通過非線性映射φ映射到高維空間,記高維空間數據集為P=[φ(x1) …φ(xm) ]。P的協方差矩陣如式(2)所示:


局部方法由Basseville 提出[23],是一種新的突變檢測方法,該方法監視描述系統行為的函數模型參數的變化。參數偏離可以通過高斯概率密度函數的均值變化來識別。局部方法能夠對基于狀態維護中的機載早期微小故障進行檢測,它特別適用于組件故障。局部方法的目的是將關于參數化隨機過程的復雜檢測問題轉化為高斯向量均值監控的普遍問題。將局部方法分別引入到PCA 和KPCA 提出了統計局部 PCA(statistical local principal component analysis, SLPCA) 和統計局部KPCA(statistical local kernel principal component analysis,SLKPCA),并在過程監控中得到了成功的應用[24-25]。令θ和θ0作為表示過程異常和正常行為的參數,采用局部方法,異常參數可表示為式(6):

在PCA 過程監控中應用局部方法后構造的主要殘差函數[24]如式(10)所示:

其中,ti表示得分矩陣中第i個樣本;λk表示第k個得分的方差。
KICA 的統計量的計算公式如式(5)所示,從中可以看出兩個統計量計算的分別是獨立元空間和殘差空間中樣本到原點的距離。當工業過程中存在的故障信息不顯著或者故障尺度較小時,故障信息與正常信息會出現大部分的交叉,此時根據式(5)無法檢測到明顯的故障信息。接下來通過修改文獻[26]中的非線性動態數值例子驗證KICA 捕獲的獨立元中微小故障信息與正常信息的交叉部分不能被輕易發現。例子模型如式(11)所示:

其中,wi(t)為-2 到2 上均勻分布的隨機數;oi(t)是均值為0、方差為0.1 的高斯白噪聲隨機數;非線性函數f(u(t))定義為f(u(t)) =[u1(t)2u2(t)2]Τ。
首先根據式(11)產生一組包含1000個正常樣本的數據作為訓練數據,然后生成另一組包含1000個樣本的數據作為測試數據,測試數據中前500 個樣本為正常樣本作為校驗數據,后500 個樣本則在變量w1上添加幅值為2的階躍故障作為故障數據。本模型對輸出y進行監控。經典的PCA 方法用于KICA白化過程時將高維空間降至9維。按照文獻[27]負熵規則,KICA 選取的獨立元個數為2。圖1 為獨立元變量,從中可以看出:在500樣本之后測試與訓練的數據始終交叉在一起,進一步可以推斷出故障信息無法通過統計量識別。殘差空間的分析與獨立元空間類似,當存在微小故障時無法識別出交叉部分故障。綜上所述,當非線性動態過程中潛隱變量發生微小故障時,故障信息與正常信息出現大部分交叉,此時故障不容易被完全捕獲。

圖1 KICA獨立元Fig.1 Independent component using KICA
基于上述分析,本文提出了一種基于加權統計特征KICA 的故障檢測與診斷方法,以提高非線性動態過程中對微小故障的監控能力。
通過觀察在PCA 以及KPCA 中應用局部方法的過程,可以發現構造的殘差函數是由得分平方之后的數據減去得分的方差。由于原始數據已經進行了標準化處理,因此也可以看作是對得分平方之后的數據進行了中心化處理。本文將局部方法中殘差函數的思想應用到KICA 的獨立元以及殘差中。加權統計特征的作用實際上是通過構造殘差函數作為數據的統計特征,然后在統計特征上考慮權重的思想,進一步使得微小故障可以偏離出正常數據,從而可以比較容易識別出故障信息。
假設使用KICA 計算得到獨立元數據集為Sd×m(d表示獨立元個數,m表示樣本個數),則可以在獨立元空間中構造統計特征如式(12)所示:


本文故障診斷過程包含三部分:離線建模、在線檢測和故障診斷,具體流程如圖2所示。

圖2 WSFKICA流程示意圖Fig.2 Flow diagram of WSFKICA
(1)離線建模
第一步:對采集的訓練數據集X進行標準化。
第二步:根據KICA得到訓練數據集X的獨立元數據集Sx和殘差數據集Ex。
第三步:由Sx和Ex通過式(12)~式(17)計算得到改進統計特征數據集Rˉs和Rˉe。
第四步:根據式(18)計算Rˉs的統計值R 和Rˉe的統計值H,使用核密度估計方法確定R 和H 的控制限分別為RUCL和HUCL。
(2)在線檢測
第一步:對測試數據集F應用訓練數據的均值和方差進行標準化。
第二步:根據KICA得到測試數據集F的獨立元數據集Sf和殘差數據集Ef。
第三步:由Sf和Ef通過式(12)~式(17)計算得到改進統計特征數據集Rˉst和Rˉet。
第四步:通過式(18)確定rˉ的統計值R和H。
第五步:若R>RUCL或者H>HUCL,則rˉ為故障樣本,否則,rˉ為正常樣本。
(3)故障診斷

需要說明的是:WSFKICA 方法在KICA 的基礎上利用加權統計特征,提高了非線性動態過程中微小故障的檢測率,但是WSFKICA 不是簡單的KICA和統計特征的結合。WSFKICA 還考慮了加權策略,在保證正常樣本權重是1的前提下使得較小的故障得到放大,進而可以識別出微小故障的樣本。同時,給出了基于貢獻圖的故障診斷策略,該策略解決了無法通過控制圖找出故障原因的問題。
本節通過式(11)數值例子以及2.2 節的訓練數據和測試數據對本文方法的有效性進行驗證。采用其他文獻的方法,如ICA、KICA、KPCA、SLKPCA對此非線性動態過程例子進行仿真實驗,并與WSFKICA 的結果比較分析。該例子中ICA 和KICA按照負熵規則選取兩個獨立元;KPCA和SLKPCA按照95%主元貢獻度選取3個主元。使用兩組正常數據,一組用于模型的建立,另一組用于對權重系數中參數β進行交叉驗證,將兩個統計量的校驗準確率求均值,驗證結果如表1 所示。從表中可以看出β= 4 時有最好的校驗結果,因此β選取為4。對該數值例子在不同窗口寬度下訓練的模型進行交叉驗證并確定窗寬選取為62。

表1 參數β 取不同值時的校驗準確率Table 1 Validation accuracy at different parameter β
采用ICA 對此數值例子進行故障檢測時,ICA計算得到的獨立元變量如圖3 所示。從圖3 中可以看出,500 樣本之后測試數據和訓練數據交叉在一起,導致ICA 統計量I2無法識別出故障,同理可知殘差空間也檢測不出故障數據,故ICA 的監控指標I2和SPE無法檢測出故障,檢測結果如圖4所示。

圖3 ICA獨立元Fig.3 ICA independent component

圖4 ICA故障檢測結果Fig.4 Fault detection results using ICA
采用KICA 對此數值例子進行故障檢測時,根據2.2 節分析可知當潛隱變量存在微小故障時,故障信息與正常信息混在一起無法區分。KICA 獨立元樣本點分布如圖5所示,從中可以看出KICA 控制限無法區分故障樣本,故KICA 的監控指標I2和SPE故障檢測率較低,檢測結果如圖6所示。

圖5 KICA獨立元空間中樣本Fig.5 Samples in independent component space by KICA

圖6 KICA故障檢測結果Fig.6 Fault detection results using KICA
使用KPCA 對該數值例子進行故障檢測時,雖然KPCA 可以處理非線性過程,但是其對微小故障檢測性能較差。圖7 表示KPCA 在主元空間上的樣本點分布情況,從中可以看出故障數據都在控制限內部,進一步可以得出主元空間檢測不出故障信息。所以KPCA 監控指標T2和SPE 故障檢測率較低,如圖8所示。

圖7 KPCA主元空間樣本Fig.7 Samples of principal component space in KPCA

圖8 KPCA故障檢測結果Fig.8 Fault detection results using KPCA
SLKPCA 最初是為了處理非線性過程中KPCA不滿足高斯性的問題[25]。使用SLKPCA 對該數值例子進行故障檢測時,雖然SLKPCA 對微小故障檢測表現出很大的優勢,但是其對數據同樣要求盡可能服從高斯分布,當數據不滿足高斯分布時,其檢測性能受到制約。由于本例中數據是非高斯數據,因此使用SLKPCA 進行故障檢測時有部分故障無法被有效識別。故SLKPCA的監控指標T2和SPE故障檢測率較低,如圖9所示。

圖9 SLKPCA故障檢測結果Fig.9 Fault detection results using SLKPCA
使用WSFKICA 對該例子進行故障檢測時,根據2.2 節分析可知該方法通過統計特征和權重系數的方法使得故障信息放大,從而可以在KICA 捕獲到潛隱變量的基礎上容易檢測出微小故障信息。本文方法獨立元空間的樣本點如圖10所示,從中可以看出控制限可以有效識別出故障樣本,故本文方法能夠有效地處理非線性動態過程中潛隱變量含有微小故障的情況。對該例子的故障檢測結果如圖11所示。

圖10 WSFKICA特征數據中樣本Fig.10 Samples in feature data using WSFKICA

圖11 WSFKICA故障檢測結果Fig.11 Fault detection results using WSFKICA
采用式(19)進行故障診斷時,統計量R 和H 的貢獻值如圖12所示,從中可知R和H均表現出變量2貢獻值最大,即主要是由變量2引起的故障。通過分析可以發現該數值例子中變量w1上的故障經過式(11)運算后在輸出變量y2上體現最明顯,由圖13可以看出監控變量y1、y2、y3的變化趨勢。由于測試數據中的故障是在500 樣本之后添加到w1上的,因此通過圖13 可以看出測試數據中前500 個校驗數據與正常數據的變化趨勢是相同的,而500 之后的故障數據變量有小幅度的偏離,且偏離程度的大小順序為:y2>y1>y3。故可以得出故障主要是由變量y2引起的,這與診斷的結果一致。

圖12 監控變量貢獻圖Fig.12 Contribution charts of monitored variables

圖13 監控變量Fig.13 Monitoring variable
上述5 種方法的故障檢測率的對比結果如表2所示,從中可以看出WSFKICA具有最高的檢測率。

表2 數值例子中各方法的故障檢測率Table 2 Fault detection rates of each method in simulated case
Downs和Vogel[31]設計的(Tennessee Eastman,TE)基準程序,目前已經被廣泛應用于過程監控中,此過程包括五個主要的轉換單元:反應器、冷凝器、循環壓縮機、氣液分離器和解吸塔,如圖14所示。

圖14 TE過程流程Fig.14 Layout of TE processes
本節中仿真數據均由TE 仿真器運行生成[32]。TE 仿真器共有六個模態,本節中選擇模態1 作為數據生成器,共生成28 組數據。將TE 仿真器中時間參數設置為10 h,采樣周期為0.01 h。測試數據中前3 h生成的300個樣本為正常數據作為校驗數據,后7 h 生成的700 個樣本是故障數據。TE 過程共包含53個變量,由于生成的數據中有三個控制變量在整個過程中恒定不變選擇舍去,故保留有50個變量。
使用TE 仿真過程進行驗證時,本節中ICA 選取2 個獨立元;KICA 使用PCA 白化時將高維降至77 維,從中選取2 個獨立元;KPCA 按照95%主元貢獻率選取77 個主元。表3 給出了各組測試數據使用ICA、KICA、KPCA 和WSFKICA 方法故障檢測結果,由于第六組數據樣本缺失,因此該組數據不做測試。以第27 組測試數據為例,使用四種方法的檢測結果分別如圖15~圖18 所示。對比四種方法的檢測結果,可以看出本文方法能夠快速準確判斷出故障27 的發生,并且本文方法的故障檢測率最高。采用式(19)對562 時刻進行故障診斷,由統計量R 和H 診斷結果如圖19 所示。由圖可知變量9、49 貢獻較高,所以故障27 主要是由變量9、49 引起的。圖20 中反應堆溫度和反應堆冷卻水流量分別對應變量9 和49,從中可以看出在300樣本之后出現了大幅度的震蕩,這與診斷結果一致。

圖15 ICA故障檢測結果Fig.15 Fault detection results using ICA

圖16 KICA故障檢測結果Fig.16 Fault detection results using KICA

圖17 KPCA故障檢測結果Fig.17 Fault detection results using KPCA

圖18 WSFKICA故障檢測結果Fig.18 Fault detection results using WSFKICA

圖19 故障27貢獻圖Fig.19 Contribution chart of Fault 27

圖20 反應堆溫度和反應堆冷卻水流量Fig.20 Reactor temperature and reactor cooling water flow

表3 TE過程中各方法的故障檢測率Table 3 Fault detection rates of each method in TE process
經過上述分析可知,本文提出的WSFKICA 具有更高的檢測率。同時,本節給出了故障10的故障診斷結果如圖21 所示,從中可以發現故障10 主要是由變量18和48引起的。圖22中汽提塔溫度和汽提液產品流分別對應變量18 和48,與文獻[29]中所述的故障類型一致,驗證了本文所提診斷方法可以發現引起故障的原因。

圖21 故障10貢獻圖Fig.21 Contribution chart of Fault 10

圖22 汽提塔溫度和汽提液產品流Fig.22 Stripper temperature and stripper liquid product flow
針對KICA 在非線性動態過程中對微小故障檢測率低的問題,提出了一種基于WSFKICA 的微小故障檢測與診斷方法。該方法通過KICA 與加權統計特征相結合,能夠有效處理非線性動態過程中存在微小故障的情況。另外,給出了基于變量貢獻圖的故障診斷策略,解決了無法通過統計量獲取故障發生位置的問題。本文通過數值例子和TE 過程驗證了本文方法在故障檢測與診斷中具有更好的表現,同時,對非線性動態過程發生微小故障的情況具有一定的指導意義。