郭小萍 俞巷天 李 元
(沈陽化工大學信息工程學院)
伴隨著工業(yè)技術(shù)的飛速發(fā)展,越來越多的過程變量數(shù)據(jù)儲存在儀器設(shè)備當中,如何提取數(shù)據(jù)中的有效信息實現(xiàn)工業(yè)過程的實時監(jiān)視、故障檢測成為研究的熱點。 眾多學者致力于面向復雜工業(yè)過程的更有效的故障檢測算法的研究, 其中,數(shù)據(jù)驅(qū)動的多元統(tǒng)計方法受到廣泛的關(guān)注[1,2]。
經(jīng)典的基于主元分析 (Principal Component Analysis,PCA) 的故障檢測方法是應(yīng)用較廣泛的一種數(shù)據(jù)驅(qū)動方法,其假設(shè)過程數(shù)據(jù)服從線性和高斯分布,但工業(yè)過程大多具有明顯的非線性特征。Scholkopf B等為解決非線性問題,首次將“核”函數(shù)和PCA 結(jié)合形成最初的核主元分析(KPCA)[3]。 Lee J M等在20世紀初提出了基于改進平方預測誤差的KPCA, 成功應(yīng)用在連續(xù)過程故障檢測中并取得有效的成果[4];同年又提出了一種基于多向KPCA的批量監(jiān)控方法, 以青霉素多工況生產(chǎn)過程為實驗驗證了該方法的有效性[5]。He Q P和Wang J提出的基于k近鄰故障檢測方法適用于非線性特征的工業(yè)過程[6]。 郭小萍等提出了特征空間自適應(yīng)k近鄰方法, 有效地解決了故障檢測模型不能及時更新的問題[7]。 He Q P和Wang J提出了基于主元k近鄰方法, 成功地解決了計算過程復雜等問題[8]。
上述方法都是假設(shè)數(shù)據(jù)服從單一分布情況下的故障檢測, 實際數(shù)據(jù)往往同時包含正態(tài)、非正態(tài)等特征,因此,國內(nèi)外學者提出一些方法來對數(shù)據(jù)分布特征進行劃分。 Jarque C M和Bera A K利用拉格朗日乘數(shù)法推導出有效的聯(lián)合檢驗,形成最初的Jarque-Bera檢驗(J-B test),用于劃分數(shù)據(jù)的正態(tài)性[9,10]。 Lee S等關(guān)于數(shù)據(jù)正態(tài)性劃分給出理論推導, 證明J-B test相對于Kolmogorov-Smirnov檢驗和Bickel-Rosenblatt檢驗具有較高的適用性[11]。 Koizumi K等提出了一種基于威爾遜-希爾弗蒂變換的改進的Jarque-Bera檢驗(MJB),對高維數(shù)據(jù)的正態(tài)性劃分具有很好的效果[12]。Bedok E和Yüksel M E提出一種基于J-B test的中值濾波器,極大地削弱了噪聲數(shù)據(jù)的干擾[13]。Liu Y H等提出了一種基于J-B test的最優(yōu)小波分解層數(shù)自適應(yīng)確定算法,有效地減少了微小噪聲的影響,提高了算法的精確度[14]。 Abdellatif D等提出將J-B test與k近鄰(kNN)等相結(jié)合應(yīng)用于人臉識別領(lǐng)域[15],用正態(tài)分布近似表示人臉區(qū)域具有良好的性能表現(xiàn)。 劉舒銳等將改進的J-B test與PCA和獨立成分分析 (Independent component analysis,ICA)結(jié)合進行故障檢測[16],但其忽略了在工業(yè)過程中不可避免的非線性問題。
為解決具有非線性和多分布特征的工業(yè)過程故障檢測問題,筆者提出一種基于J-B test的故障檢測方法。 基于J-B test和正態(tài)置信概率加權(quán)值將原始建??臻g劃分為正態(tài)子空間和非正態(tài)子空間, 然后在兩個子空間中分別構(gòu)建KPCA模型和kNN模型進行故障檢測。 最后通過數(shù)值案例和TE過程仿真實驗驗證該方法的有效性。
KPCA是一種非線性形式的主元分析法,其基本思想是利用非線性映射函數(shù)Φ將數(shù)據(jù)投影到高維特征空間F, 通過核函數(shù)有效地計算高維特征空間中的主成分, 再運用線性PCA技術(shù)完成故障檢測[3]。
已知過程數(shù)據(jù)x=[x1,x2,…,xn]T∈Rn×m,通過非線性映射函數(shù)Φ:x→φ(x)投影后,數(shù)據(jù)在特征空間F的協(xié)方差為:
CF可以通過特征值分解對角化為:
其中,λ為CF的特征值,v為CF的特征向量。 所有λ≠0對應(yīng)的特征向量vk,可以表示為特征空間F內(nèi)相應(yīng)映射點的線性組合:
其中,γ為特征向量vk的線性表示形式。
在式(2)兩邊同時點乘φ(xk)可得:
將式(3)代入式(4)中可得:
定義Kij=φ(xi)φ(xj)為核矩陣,將K代入式(5)化簡得:
考慮到映射函數(shù)Φ是未知的, 為了方便運算引入核函數(shù),筆者采用適用范圍最廣的高斯徑向基核函數(shù):
其中,σ為寬度參數(shù),控制函數(shù)的徑向作用范圍。
原始樣本x的映射數(shù)據(jù)φ(x)在特征向量vi上的投影為:
對于一個新樣本,KPCA計算如下:
其中,k=1,2,…,q,q為主元個數(shù)。 KPCA使用的兩個統(tǒng)計量分別由下式計算得到:
kNN是一種有監(jiān)督學習的分類方法, 適用于處理非正態(tài)分布的過程數(shù)據(jù)[17],其本質(zhì)是觀察樣本間的差異性,故障樣本具有的特征與正常樣本的特征表現(xiàn)出很小的相似性[7]。 用樣本x到其前k個近鄰樣本間累積距離的平方和作為統(tǒng)計量來表示特征,公式如下:
其中,dij為第i樣本xi到其第j近鄰樣本xij的距離。
已知n個獨立樣本的隨機變量x=[x1,x2,…,xn]T∈Rn×1,變量的偏度S和峰度K可由下式求出:
在J-B test中,定義了一個服從卡方分布的統(tǒng)計量:
該統(tǒng)計量在默認置信水平α=0.05的基礎(chǔ)上計算得到閾值, 假設(shè)被檢測變量服從正態(tài)分布,若JB 統(tǒng)計量小于閾值,接受原假設(shè),反之,則拒絕[18,19]。
由于標準正態(tài)分布的偏度S=0、 峰度K=3,所以若求出的樣本偏度和峰度分別在0和3附近,則表示該樣本正態(tài)性很強,也就是JB統(tǒng)計量應(yīng)該趨于0,因而0值附近變量的正態(tài)性表現(xiàn)地并不是特別明顯, 所以筆者對JB統(tǒng)計量取以e為底的對數(shù)再取負號,簡稱為-ln處理,使劃分更加明確。 在Matlab環(huán)境中每個JB統(tǒng)計量都會伴隨一個檢驗值p,筆者將其稱為正態(tài)置信概率加權(quán)值,經(jīng)過-ln處理后原始數(shù)據(jù)被劃分為3部分:正態(tài)部分xn,正態(tài)性和非正態(tài)性性質(zhì)均不明顯的半正態(tài)部分xhn,非正態(tài)部分xnn。 利用正態(tài)置信概率值加權(quán)的形式,將半正態(tài)部分分別與正態(tài)部分和非正態(tài)部分結(jié)合成正態(tài)子空間和非正態(tài)子空間,即有:
離線建模步驟如下:
a. 采集正常訓練數(shù)據(jù)集X;
b. 對標準化后的數(shù)據(jù)集進行J-B test,劃分為兩個部分;
c. 對JB統(tǒng)計量進行-ln處理, 數(shù)據(jù)被分為xn、xhn、xnn3部分,將每個部分的變量標記備用;
d. 通過正態(tài)置信概率加權(quán)值p, 獲得正態(tài)子空間Xn和非正態(tài)子空間Xnn;
在線檢測步驟如下:
a. 在線獲取測試數(shù)據(jù)集Z;
b. 利用訓練模型的均值、標準差對測試數(shù)據(jù)集Z標準化;
c. 通過訓練模型變量的標記將數(shù)據(jù)分為3個部分——正態(tài)部分zn、 半正態(tài)部分zhn和非正態(tài)部分znn;
d. 利用訓練模型的正態(tài)置信概率加權(quán)值p,獲得正態(tài)子空間Zn=[zn,pzhn]和非正態(tài)子空間Znn=[znn,(1-p)zhn];
e. 在正態(tài)子空間中利用KPCA模型獲得T2、SPE統(tǒng)計量, 在非正態(tài)子空間中通過kNN模型獲得D2統(tǒng)計量;
f. 分別驗證統(tǒng)計量是否超過其對應(yīng)的閾值,低于閾值,表示該樣本為正常,反之則為故障。
詳細流程如圖1所示。
圖1 故障檢測流程
筆者采用的數(shù)值案例由7個變量、2個潛隱變量(s1、s2)和7個噪聲組成[17]:
其中,x1,x2,…,x7是變量,s1~U(-10,-7),s2~N(-15,1),e1,e2,…,e7是服從N(0,0.01)的白噪聲。
該案例的變量劃分如圖2所示。
基于式(20)生成800個正常的訓練數(shù)據(jù)并計算閾值;同時生成800個測試數(shù)據(jù),在401~800數(shù)據(jù)處分別引入階躍故障和斜坡故障。 為了驗證筆者所提方法的有效性,分別對這兩個故障用原始算法KPCA、kNN和改進后的算法JB-KPCA-kNN進行對比分析。
在401~800數(shù)據(jù)處對變量x5加入幅值為0.1的階躍故障。圖3a、b是T2統(tǒng)計量的檢測圖,后者相比前者的檢測率從84.25%提升到100%; 圖3c、d是SPE統(tǒng)計量的檢測圖, 后者較前者的誤報率從2.00%降低為1.00%;圖3e、f是D2統(tǒng)計量的檢測圖,因為所加入的幅值較大,所以兩者的檢測率都能達到100%, 前者的誤報率為7.25%, 后者為3.00%。
圖3 階躍故障的檢測對比
在401~800數(shù)據(jù)處對變量x2加入幅值為0.002的斜坡故障。圖4a、b是T2統(tǒng)計量的檢測圖,因為加入的是斜坡故障且幅值較低,所以二者都出現(xiàn)延時報警的情況, 但是后者的檢測率有明顯提高,由前者的56.00%提升到82.75%; 圖4c、d是SPE統(tǒng)計量的檢測圖,兩者檢測率都接近100%,但同樣出現(xiàn)了延時報警的現(xiàn)象,并且發(fā)現(xiàn)后者的誤報率從前者的1.75%降低為0.50%; 圖4e、f是D2統(tǒng)計量的檢測圖,兩者呈現(xiàn)較高檢測率的同時都存在一定的誤報率, 后者的誤報率從前者的4.50%降低到3.00%,檢測率從前者的95.75%提高到96.25%。兩種故障的誤報率和準確率見表1、2。
表1 兩類故障的誤報率 %
圖4 斜坡故障的檢測對比
表2 兩類故障的檢測率 %
從表1、2可以看出, 雖然KPCA和kNN對兩種不同類型故障的檢測效果較好, 但是JB-KPCAkNN的檢測效果更加優(yōu)秀, 該算法在保留很高檢測率的同時也降低了誤報率,雖然存在一些故障延遲報警的現(xiàn)象,但也是符合實際情況。
Tennessee Eastman(TE)過程(圖5)是美國伊斯曼化學公司基于實際工業(yè)生產(chǎn)過程而研發(fā)的仿真平臺。 該過程包含5個主要單元:冷凝器、反應(yīng)器、分離器、壓縮機和汽提塔,共有12個操作變量、22個連續(xù)測量變量和19個成分測量變量,該過程可預先設(shè)定21個故障[20]。
圖5 TE過程流程
筆者采用52維變量的500個樣本作為訓練數(shù)據(jù),通過J-B test和-ln處理后所有變量劃分的結(jié)果如圖6和表3所示, 圖6中的紅色虛線為JB統(tǒng)計量的閾值, 檢測統(tǒng)計量的閾值都是基于置信度為95%而設(shè)定的。表4為半正態(tài)變量對應(yīng)的正態(tài)置信概率加權(quán)值,在線檢測時,選取960個數(shù)據(jù)作為測試數(shù)據(jù),在161數(shù)據(jù)處加入故障。 以故障8為例,分別對比KPCA、kNN和JB-KPCA-kNN的檢測結(jié)果并給出分析。
圖6 TE過程的變量劃分
表3 JB統(tǒng)計量劃分結(jié)果
(續(xù)表3)
表4 半正態(tài)變量部分對應(yīng)的正態(tài)置信概率權(quán)值
故障8是物料A、B、C的組成成分發(fā)生變化引起的故障。圖7a、b是T2統(tǒng)計量的檢測圖,兩者的檢測率都很高, 但后者比前者的誤報率從3.75%降低到0.63%;圖7c、d是SPE統(tǒng)計量的檢測圖,后者較前者的誤報率從19.38%降低為4.38%, 檢測率從98.38%提高為98.63%; 圖7e、f是D2統(tǒng)計量的檢測圖,兩者的檢測率都高達99.25%,但后者比前者的誤報率從26.88%降低為18.13%。誤報率和準確率數(shù)據(jù)見表5、6。
表5 TE過程故障的誤報率 %
圖7 故障8的檢測對比
(續(xù)表5)
表6 TE過程故障的檢測率 %
筆者提出了一種基于Jarque-Bera檢驗的非線性多分布故障檢測方法,該方法能夠全面提取系統(tǒng)過程數(shù)據(jù)的特征信息,使JB統(tǒng)計量對數(shù)據(jù)正態(tài)性的劃分更加細致、完整,并針對性地用KPCA方法和kNN方法分別監(jiān)測正態(tài)、 非正態(tài)分布的子空間,充分發(fā)揮了兩種原始方法的優(yōu)勢。 仿真實驗結(jié)果表明:所提方法有較高的檢測率和較低的誤報率,為非線性多分布工業(yè)過程提供了一種有效手段, 但也發(fā)現(xiàn)存在一些故障延時報警的現(xiàn)象,未來將針對此問題開展研究工作。