張 成,韓宏宇,李 元
(1.沈陽化工大學 理學院,遼寧 沈陽 110142;2.沈陽化工大學 計算機科學與技術學院,遼寧 沈陽 110142;3.沈陽化工大學 信息工程學院,遼寧 沈陽 110142)
隨著現代工業對產品質量和生產安全要求的逐步提高,基于數據驅動的多元統計過程監控(Multivariate Statistical Process Monitoring,MSPM)得到了廣泛的應用[1-2]。
針對多變量監控問題,傳統的主元分析(Principal Component Analysis,PCA)監控方法可以很好地用于穩態線性過程,或者用于監控非線性過程的局部操作區域(近似線性)[3-4]。但是將PCA方法應用于非線性或動態過程可能導致低效和不可靠的過程監控,主要原因是線性靜態的PCA方法不適合描述過程變量中的非線性或動態特征。為了有效地監控非線性過程,基于核主元分析(Kernel PCA,KPCA)的多元統計過程監控方法被應用于工業過程[5]。然而,KPCA并沒有考慮變量的時間相關性,即數據具有動態性時,KPCA的監控性能就受到制約。為了描述數據的動態特征,Ku等提出了一種動態主元分析(Dynamic Principal Component Analysis,DPCA)方法[6],即將PCA應用于一個時間滯后的數據矩陣[7-8],從而將樣本之間的相關性轉化為變量之間的相關性。DPCA監控方法也只適用于線性過程,如果將DPCA方法應用于動態非線性過程監控,那么該方法的監控性能就受到制約。為了解決動態非線性過程的監控問題,Choi等提出了一種基于動態核主元分析(Dynamic KPCA,DKPCA)[9]的過程監控方法。DKPCA的主要思想是在執行KPCA之前對數據矩陣進行了時滯擴展。雖然DKPCA能提取數據的非線性特征和動態特征,檢測結果也優于KPCA和DPCA的結果,但是通過大量的實驗證明,統計量T2上仍含有顯著的自相關性[10],這說明通過時滯擴展并沒有徹底解決數據含有動態性的問題。
針對上述問題,該文提出一種基于去主元相關性的DKPCA動態非線性過程故障檢測與診斷方法(Dynamic Kernel Principal Component Analysis basedon Removing Principal Component Correlation,DKPCA-RPCC),其基本思想如下:首先,將低維數據引入時滯參數構成增廣矩陣,再通過KPCA方法計算增廣矩陣的主成分,稱為真實得分;其次,假設當前時刻樣本缺失,利用前移時刻樣本估計當前值,構成新的增廣矩陣,再按照相同的方法計算新矩陣的主成分,稱為預估得分;然后,使用真實得分與預估得分之間的差異來構建統計量進行故障檢測;最后,利用基于變量貢獻圖的方法進行故障診斷。該方法在DKPCA的基礎上去除主元之間的相關性,能夠最大限度地降低樣本之間動態性的影響。
動態核主元分析[9]的核心思想是在應用KPCA之前對數據矩陣進行時滯擴展。該方法不僅可以描述變量之間的非線性特征,而且由于加入了額外的時移變量,所以也能描述變量之間的自相關性和滯后交叉相關性。此外,通過選擇適當時移數l,使得變量之間的非線性和動態關系都出現在方差較小的主元所對應的噪聲子空間中[11]。
(1)


(2)
Cp=λp
(3)
通過φ映射之后,原始數據在高維空間的維數較大,無法直接計算特征值和特征向量,因此引入徑向基核函數,通過核技巧間接計算高維空間數據集的特征值和特征向量,從而簡化計算。

(4)

(5)

(6)
在高維空間中,樣本協方差矩陣的特征向量和特征值與核矩陣的特征向量和特征值之間存在以下關系,如式(7)所示。為了簡化計算,將協方差矩陣的特征向量單位化,得到單位向量p,如式(8)所示。高維空間中數據集的得分ti可通過式(9)計算得到,其中P為協方差的特征向量矩陣,U為核矩陣的特征向量矩陣。
(7)

(8)
(9)
DKPCA的監控指標[9]如式(10)所示:
T2=tΛ-1tT
(10)
其中,Λ是由特征值λ組成的對角矩陣。
DKPCA方法通過時滯擴展并沒有完全解決數據具有動態性的問題,這導致統計量仍含有較強的自相關性[10]。為了解決這一問題,將DKPCA與缺失值處理技術[11]相結合并利用主成分的差異構建統計量。
具體方法如下:在DKPCA中,建立一個包含當前與過去測量值的矩陣Y。對于每個新的觀測向量yi可以計算得分。假設當前的觀測向量缺失,可以使用缺失值處理技術,從過去的數據中估計出當前時刻的測量值并計算得分,這本質上是對得分和觀察值進行了一步預測。因此,得分之間的差異幾乎是連續非相關的[8],這意味著可以使用得分差異更好地對樣本進行監控。所選擇的缺失值處理技術為條件均值替換法[12],該方法對缺失數據的測量矢量進行重新排列,不失一般性。
(11)
式中,Y#表示缺失的測量值,Y*表示已知的測量值。


(12)
假設增廣矩陣已知。為了計算缺失向量的觀測值,只需要EM算法的期望步驟,把P代入到S的表達式,可以得到式(13)。使用式(13)可以計算缺失觀測值的條件期望,如式(14)所示。

(13)
(14)
最終可以得到一個新的矩陣,如式(15)所示。
(15)
M=K1U
(16)

(17)


(18)
(1)離線建模。
第一步:對訓練數據集X進行標準化。
第二步:根據時移l生成增廣矩陣Yx,然后通過KPCA計算真實得分Mx。
第四步:根據式(18)計算統計量W,使用核密度估計方法[15]確定控制限WUCL。
(2)在線檢測。
第一步:對測試樣本應用訓練數據的均值和方差進行標準化。
第二步:根據時移l生成增廣向量Yfi,使用訓練數據的核矩陣進行中心化,求出測試數據的真實得分Mfi。

第四步:根據式(18)計算測試樣本的Wi,若Wi>WUCL,則判定Yfi為故障樣本,否則Yfi為正常樣本。
(3)故障診斷。


(19)
使用一個非線性動態數值例子[9]測試文中方法的有效性,具體模型如式(20)所示。

(20)
其中,u(t)、y(t)、z(t)分別是輸入變量、輸出變量以及狀態變量,o(t)是服從均勻分布U~(0,0.5)的隨機噪聲,w(t)是服從均勻分布U~(0,5)的白噪聲,系統A、B、C、D、w(t)、o(t)分別為:





其中,非線性映射函數f(u(t))如式(21)所示:
(21)
由以上模型隨機生成1 000個正常數據作為訓練樣本,然后,在變量w1加上一個幅值為-4.5的階躍變化作為故障數據。再由該模型生成100組測試數據集,每組測試數據前500個為正常樣本,后500個為故障樣本。輸出變量u(t)、y(t)被用于過程監控。采用DPCA、KPCA、DKPCA以及文中方法對此動態非線性過程例子進行仿真實驗,并對上述的四種方法的結果進行分析。
采用DPCA對該數值例子進行故障檢測時,按照95%的累計方差貢獻率選取主元,因此主元數設置為5。按照平行分析法[17],時滯參數的選取與特征值有關,特征值為0或接近于0時表示變量之間線性無關,因而時滯參數l的值等于特征值為0或者接近于0的個數[6]。DPCA提取的主元之間含有較強的相關性,特別是前兩個主元之間的相關性最大,這將導致計算的統計量T2也含有較強的自相關性,嚴重影響故障的檢測結果。
采用KPCA對此數值例子進行故障檢測時,通過經驗法[18]確定核寬參數的范圍以及選取最優核寬參數。低維空間的數據集通過非線性函數映射,使得數據在高維空間線性可分,此時故障樣本與正常樣本之間的差異最大,檢測結果達到最優。采用DKPCA對此數值例子進行故障檢測時,核寬參數σ和時滯參數l采用經典的網格搜索和交叉驗證[19]方式進行選取,該方法選取不同的參數時,訓練數據的準確率如圖1所示。

圖1 校驗數據的準確率
采用文中方法進行故障檢測時,核寬參數與時滯參數的選取均與DKPCA保持一致。圖2給出了上述四種方法對于100組測試數據的檢測結果,由圖2可以看出,文中方法的檢測結果明顯高于其他三種方法且平均檢測效率最高。圖3表示四種方法統計值自相關性的對比。由圖3可以看出,DPCA、KPCA和DKPCA方法的統計值都含有較強的一步自相關性,而文中方法的統計量的自相關性明顯降低,因此能夠提高故障檢測率。圖4給出了文中方法對第一組數據的故障檢測結果,由圖4可知,故障樣本與正常樣本幾乎完全分離,證明了文中方法的有效性。使用公式(19)對測試數據進行故障診斷,測試數據集10個變量對樣本的貢獻程度,如圖5所示,從圖5可以看出第4、9變量的貢獻度較大,所以故障發生與這兩個變量的相關性最大。

圖2 四種方法故障檢測結果

圖3 統計量的自相關性

圖4 DKPCA-RPCC故障檢測結果

圖5 樣本變量的累計貢獻
本節的仿真數據由最新的TE仿真器生成[20],其基本結構如圖6所示。數據集在TE仿真器中通過0.01小時采樣間隔并持續運行10小時獲得。正常狀態下采集1 000個樣本作為訓練集;同時,過程故障在3小時后引入并持續到過程結束。TE過程共包含41個測量變量和12個控制變量,仿真器運行過程中有三個變量恒定不變,所以選取剩余的50個變量進行過程監控。

圖6 TE過程
仿真使用的計算機環境為Intel(R)Core(TM) i7-7700HQCPU@ 2.80 GHz處理器的64位操作系統,且所有實驗結果均在MATLAB中實現。
利用文中方法對TE數據進行仿真驗證,并與KPCA、DPCA、DKPCA進行對比分析。四種方法均按照95%的累計貢獻率選取主元,此外DPCA的時滯參數選取為1,DKPCA和文中方法的核寬參數和時滯參數均通過網格搜索和交叉驗證的方式選取。表1給出了上述各種方法的檢測結果,由于第六組數據缺失,因此不做測試。以第27組測試數據為例進行故障檢測,圖7分別給出DKPCA-RPCC、KPCA、DPCA和DKPCA對于故障27的檢測結果。對比四種方法的檢測結果可以看出,文中方法的檢測率最高。為了進一步確定故障產生的原因,使用式(19)對第27組數據進行故障診斷,圖8給出了故障27的診斷結果。從圖中可以看出,第9個和第49個變量的貢獻度最大,即故障27是由變量9和49引起的。變量9和49分別代表反應堆溫度和反應堆冷卻水流量,圖9給出了反應堆溫度和反應堆冷卻水流量的變化趨勢,由圖可以看出與計算的結果恰好相互印證,與實際相符。

圖7 故障27的檢測結果

圖8 故障27的貢獻圖
圖10表示四種方法統計量的自相關性,明顯可以看出,DKPCA-RPCC方法構建的統計量具有較低水平的自相關性。根據故障檢測率以及構建統計量的自相關性檢驗所提出方法的性能。統計量的自相關性越低,說明主成分之間含有的動態性越低,故障檢測性能更好。

圖10 四種方法統計量的自相關
提出了一種基于去主元相關性的DKPCA動態非線性過程故障檢測與診斷方法。該方法相對傳統的DKPCA方法有兩點改進,一是通過缺失值處理技術預測與原始矩陣保留相同特征的矩陣,二是通過真實得分與預估得分作差消除相同特征并在差異空間構造新的統計量。該方法進一步降低了動態性的影響,使得統計量的自相關性顯著降低。另外,給出了基于變量累計貢獻率的故障診斷方法。通過數值例子和TE過程驗證該方法在故障檢測與診斷中具有更好效果,對于動態非線性監控過程具有一定的指導意義。
由于該方法在計算過程中多次使用核函數,因而出現檢測過程運行時間長,占用內存空間大的問題,接下來將考慮如何優化算法的問題,提高算法的運行效率。