熊亞軍,謝林柏,彭 力
(江南大學物聯網工程學院,江蘇無錫 214122)
隨著工業(yè)過程的日趨復雜化與大型化,為提高生產效率、降低安全隱患,對工業(yè)生產進行過程監(jiān)控變得越來越重要。由于工業(yè)檢測技術的飛速發(fā)展,包含豐富信息的過程數據變得更容易獲取,使得依賴于過程數據的多元統計過程監(jiān)控(multivariate statistical process monitoring,MSPM)技術[1]也不斷發(fā)展。其中,PCA是最常見的MSPM方法之一。
采用PCA方法進行故障監(jiān)測時,原始數據被投影到2個低維子空間并分別建立主元模型和殘差模型來進行過程監(jiān)控。盡管基于傳統PCA的過程監(jiān)控方法得到了廣泛應用[2],但是存在著單一模型容易忽略局部信息的弊端。現代工業(yè)過程往往包含大量的操作單元和過程變量,當故障發(fā)生時,可能只有部分變量發(fā)生變化,此時只建立全局模型,可能會淹沒局部信息。為了準確地挖掘過程的局部特征,降低大規(guī)模工業(yè)過程的復雜度,提出了多塊監(jiān)測方法。Z. Q. Ge[3]等提出了一種分布式主元分析(distributed PCA,DPCA)的故障監(jiān)測方法,沿PCA主成分的不同方向構造子塊,將原始特征空間劃分為多個子塊空間并分別進行監(jiān)測;K. Ghosh[4]等提出一種基于故障信息的多塊監(jiān)測方法,該方法利用優(yōu)化算法選擇與故障最相關的變量子塊,然后分別在子塊中建立PCA監(jiān)測模型,最后通過貝葉斯推斷融合所有子塊的監(jiān)測結果。
上述的多塊監(jiān)測方法雖然通過多塊建模策略克服了單一模型易忽略局部信息的缺點,但是這些方法并沒有深入挖掘數據中潛在的特征信息。傳統的多塊PCA故障監(jiān)測方法能夠很好地監(jiān)測到幅值變化較為明顯的故障,但是當故障呈現為緩慢、微小變化或者持續(xù)振蕩形式時,僅僅依靠過程數據的觀測值信息進行建模,監(jiān)測效果并不理想。因此本文考慮從過程數據的觀測值信息中提取出累計誤差和一階差分這兩種潛在特征信息以提高對不同故障類型的監(jiān)測效果。
基于上述分析,本文提出一種基于JS散度和潛在特征提取的多塊PCA故障監(jiān)測方法(JS divergence and latent feature extraction based multiblock PCA,JSLFE-MBPCA)。首先,利用JS散度值進行過程變量分塊,突出過程局部特征;其次,對劃分后的變量塊進一步提取累積誤差和一階差分等潛在特征信息,擴展出額外的信息子塊;然后,分別建立PCA監(jiān)測模型對每個信息子塊進行監(jiān)控;最后,利用貝葉斯推斷完成子塊決策融合得到全局監(jiān)測結果。通過TE過程的仿真對本文方法進行驗證。
PCA作為最常用的降維方法,通過將高維數據投影到2個低維子空間,并分別建立主元模型和殘差模型來進行故障監(jiān)測。假設經過標準化后的過程變量數據陣為X∈Rn×m(n為樣本數量,m為變量個數),將其投影到主元子空間和殘差子空間,可分解得到主元成分和殘差成分如下:
(1)
(2)
式中:Z為過程變量數據陣X對應的協方差矩陣;Λ為對角陣,其對角線元素為協方差矩陣Z對應的特征值按降序排列。
對新樣本x進行監(jiān)控時,分別在主元子空間和殘差子空間構造如下的T2和SPE統計量:
(3)
(4)
式中:Λd為對角矩陣,其對角線元素為前d個主元所對應的特征值;Tlim2和SPElim分別為T2和SPE統計量對應的控制限[5]。
JS散度[6]是一種概率統計方法,它能夠定量地度量2個概率分布之間的差異性。本質上,JS散度是KL散度(Kullback-Leibler divergence)[7]的一種變體形式。KL散度可通過如下方式計算得到
(5)
式中:U和V分別是2個已知的概率分布。
對于式(5),當且僅當U=V時取等號。由于KL散度具有非對稱性,故無法準確地衡量2個概率分布之間的真實差異,而JS散度通過構造U與V的平均概率分布解決了該問題。U與V之間JS散度的計算公式如下:
(6)
根據式(6)不難看出,DJS(U‖V)=DJS(V‖U),即JS散度滿足對稱性。此外,JS散度的值域范圍是[0,1]。JS散度在對稱性和值域范圍上都優(yōu)于KL散度,更適合用來衡量2個概率分布之間的差異性。
本文在提取過程局部信息的基礎上,進一步從每個變量塊中提取潛在特征信息從而豐富信息的多樣性,提高對不同類型故障的監(jiān)測靈敏度。所采用的多塊建模方法如圖1所示。
圖1 多塊建模方法框圖
通過計算變量之間的JS散度值將具有相同分布特征的變量置于同一子塊中,從而突出過程局部特征。對于標準化后的訓練集X=[x1,x2,…,xm]∈Rn×m(n為樣本數量,m為變量個數),計算變量xi和xj(i=1,2,…,m;j=1,2,…,m)之間的JS散度JSij值,得到JS散度值矩陣DJS∈Rm×n。矩陣DJS中的某個JS散度值越小,表示與之相關的2個變量相似度越高。
為更合理地對變量進行分塊,本文采取一種簡單的子塊劃分規(guī)則。首先,通過分析矩陣DJS中的JS散度值設定一個劃分閾值λ,λ一般根據經驗設定,本文中λ取0.7JSM,其中JSM是矩陣DJS中所有JSij值的中值。然后,將矩陣DJS的每個JS散度值與閾值λ進行比較,如果某2個變量之間的JS散度值小于λ,那么將這2個變量置于同一個子塊中;反之,如果某2個變量之間的JS散度值大于λ,那么將這2個變量劃分到不同的子塊中;特殊地,如果某一個變量xi與其他所有變量的JS散度值都大于λ,則需要找到與變量xi之間JS散度值最小的變量xj,將變量xi放入變量xj所在的子塊中。按以上規(guī)則,訓練集X被分為b個變量塊
X=[X1,X2,…,Xb]∈Rn×m
(7)
在完成過程變量分塊后,基于數據的觀測值信息從每個變量塊中繼續(xù)提取累積誤差和一階差分等潛在特征信息。
2.2.1 累計誤差信息
累計誤差信息是通過將一段時間內觀測值與標準值的差值累加得到。當故障導致過程變量呈現出微小變化或者緩慢漂移時,累積誤差信息可以放大這類變化,提升PCA模型監(jiān)測該類故障的靈敏度。
假設訓練集完成變量劃分后得到某一變量塊Xb∈Rn×b,因為經過標準化后變量均值為0,那么通過將前T個時刻的樣本觀測值信息直接相加[8],即可得到累計誤差信息子塊Xbe∈R(n-T)×b。若x(t)是變量塊Xb中t時刻的樣本觀測值信息,那么t時刻的累計誤差信息xe(t)可通過如下公式計算得到:
(8)
2.2.2 一階差分信息
當某個故障導致相關變量呈現振蕩式變化而非普通的幅值變化時,不管是觀測值信息還是累計誤差信息都不能很好地監(jiān)測到此類故障[9],而對過程數據進行一階差分后,能夠反映出原始數據觀測值的動態(tài)變化率。對于振蕩型故障,其變化率一般不在正常范圍內,故通過提取一階差分信息進行建模能夠有效地檢測到此類故障。
假設訓練集完成變量劃分后得到某一變量塊Xb∈Rn×b,通過對每個時刻樣本觀測值求取一階差分可得到一階差分信息子塊Xbd∈R(n-2)×b。若x(t)是變量塊Xb中t時刻的樣本觀測值信息,則t時刻的一階差分信息Xd(t)可通過如下公式計算得到
(9)
式中:x(t-1)為t-1時刻的樣本觀測值;x(t-2)為t-2時刻的樣本觀測值。
通過引入前2個時刻的樣本觀測值,減小了樣本中的噪聲對監(jiān)測結果的影響。
通過以上方式對原始變量塊Xb提取累計誤差和一階差分這2種潛在特征信息,可以生成2個額外的信息子塊Xbe和Xbd,加上原始變量塊Xb,每個變量塊可擴展成3個信息子塊。
經過以上的變量劃分和子塊擴展后,總共得到了3×b個信息子塊,即:
X=[X1,X2,…,X3×b]
(10)
在每一個信息子塊中,分別建立PCA模型進行故障監(jiān)測,并計算2個監(jiān)控統計量T2和SPE以及各自對應的控制限。
當得到一個新樣本xj時,首先按照式(10)將新樣本xj構造成3×b個信息子塊,然后計算得到3×b組監(jiān)測統計量T2和SPE的值。最后,為了得到全局監(jiān)測統計量,采用貝葉斯推斷[10]將所有子塊的決策進行融合。按照貝葉斯推斷理論,對于1個新樣本xj,它在某個子塊中被判別為故障的條件概率PT2(A|xj)為
(11)
PT2(xj)=PT2(xj|N)PT2(N)+PT2(xj|A)PT2(A)
(12)
式中:PT2(N)和PT2(A)為正常和故障樣本的先驗概率,一般取值為α和1-α(α為置信度);PT2(xj|N)和PT2(xj|A)為條件概率,分別如式(13)和式(14)所示:
(13)
(14)
鑒于總共有3×b個信息子塊,那么經過貝葉斯推斷融合后的T2統計量(BICT2)和SPE統計量(BICSPE)可以通過一種加權的形式計算得到:
(15)
(16)
在正常工況下,全局監(jiān)測統計量BICT2和BICSPE應當低于檢測閾值1-α,一旦BICT2或者BICSPE中有1個超過檢測閾值1-α,那么視為過程發(fā)生了故障。
本文所提算法分為離線建模和在線監(jiān)測兩部分。離線建模階段確定監(jiān)測統計量的控制限,在線監(jiān)測階段計算對新樣本的監(jiān)測統計量并將其與控制限比較判斷故障是否發(fā)生。基于JSLFE-MBPCA的故障監(jiān)測流程如圖2所示。
圖2 基于JSLFE-MBPCA的故障監(jiān)測流程圖
TE過程[11]是田納西-伊斯曼化學品公司創(chuàng)建的基于真實化工過程的仿真平臺,被廣泛用于測試復雜工業(yè)過程的控制和故障監(jiān)測模型。本文的仿真實驗選取了22個測量變量和11個操作變量(除攪拌速度外)共33個變量進行建模與監(jiān)測。整個TE數據集包括1個正常工況下的訓練集和21個不同故障的測試集,均是由960個觀測樣本組成。在測試集中,故障都是從第161個樣本點引入。
首先,根據訓練集計算2個變量之間的JS散度值JSij,得到JS散度值矩陣DJS∈R33×33。經過對JS散度值矩陣DJS的分析計算得到JSij中值為0.114,則變量塊劃分閾值λ設置為0.08。然后,根據提出的劃分規(guī)則,33個過程變量被劃分到8個子塊中,劃分結果如表1所示。
表1 變量塊劃分結果
在完成過程變量劃分后,繼續(xù)對每一個變量塊進行累計誤差信息和一階差分信息提取。以首個變量塊X1∈R960×2(含變量1、25)為例進行潛在特征提取(在本次仿真中T取5)。首先,通過累加前T個時刻的觀測值信息,得到累計誤差信息子塊X1e∈R955×2;然
后,按照一階差分計算公式,可得到一階差分信息子塊X1d∈R958×2;而變量塊X1∈R960×2同時也是觀測值信息子塊。由于計算累積誤差信息時的寬度T取值為5,故在進行故障監(jiān)測時會損失前5個樣本,為了統一3個信息子塊中樣本的數量,X1中的前5個樣本以及X1d中的前3個樣本被舍棄。因此由變量塊X1∈R960×2進行潛在特征提取得到的觀測值、累計誤差和一階差分信息子塊分別為X1∈R955×2,X1e∈R955×2和X1d∈R955×2。對其他7個變量塊,也按照同樣的方式進行子塊擴展,最終得到了24個特征信息子塊。
在完成變量分塊和子塊擴展后,分別建立PCA模型對每一個信息子塊進行監(jiān)控。對于每一個新的測試樣本,首先計算出新樣本在每個信息子塊中的故障統計量T2和SPE,然后采用貝葉斯推斷將所有子塊的監(jiān)測結果融合得到全局監(jiān)測統計量BICT2和BICSPE。
表2給出了傳統PCA、文獻[3]中的DPCA、文獻[12]中的CMBPCA、文獻[13]中的WDSMBPCA以及本文方法這5種方法對于TE過程不同故障(不包括故障3、9和15)的監(jiān)測結果。故障3、9和15不參與對比實驗,因為這3種故障的變化很微小,基本上所有數據驅動的監(jiān)測方法對這3種故障的監(jiān)測效果都不佳。
在本文的對比實驗中,5種方法都遵循CPV>90%的主元選取原則并且每種方法的置信度都設為0.99。從表2可以看出,本文所提的JSLFE-MBPCA方法對于絕大多數故障都取得了最佳的監(jiān)測結果,尤其對于故障11、16、19和20的監(jiān)測效果更加顯著。從整體來看,本文方法的平均漏報率僅為7%,優(yōu)于其他方法(PCA、DPCA、CMBPCA和WDSMBPCA的漏報率分別為27%、16%、16%和11%)。實驗結果表明,經過局部信息和潛在特征信息的雙重提取,提高了整個監(jiān)控模型對不同類型故障的監(jiān)測靈敏度。為說明本文算法的優(yōu)越性,下面詳細分析了故障16和故障19的監(jiān)測結果。圖3和圖4分別展示了對這兩種故障的監(jiān)測結果(各圖中的虛線為計算得到的故障控制限)。
表2 各方法對TE過程不同故障的漏報率
故障16是一種未知故障,圖3展示了傳統PCA和本文算法對此故障的監(jiān)測結果。
(a)PCA的T2監(jiān)測結果
從圖3(a)、圖3(b)中可以看出,傳統PCA對此故障的監(jiān)測效果并不理想。圖3(c)~圖3(f)展示了本文的JSLFE-MBPCA方法以及其中最優(yōu)監(jiān)測子塊17對故障16的監(jiān)測結果,可以看出本文的方法取得了不錯的監(jiān)測效果。子塊17是24個信息子塊中監(jiān)測故障16的最優(yōu)子塊,它是由表1中變量塊6(含變量18、19和31)擴展生成的累計誤差信息子塊。圖3(g)、圖3(h)顯示故障16導致變量19表現為微小的幅值波動,通過對其觀測值信息進行累計誤差計算,故障樣本的幅值波動更加明顯,從而提高了對這種微小故障的監(jiān)測靈敏度。
故障19也是一種未知故障,圖4展示了傳統PCA和本文方法對此故障的監(jiān)測結果。從圖4(a)~圖4(d)可以看出傳統PCA并不能很好地識別此類故障,而本文方法取得了明顯優(yōu)于傳統PCA的監(jiān)測效果,BICSPE統計量顯示本文方法對故障19的漏報率僅為13%。圖4(e)、圖4(f)展示了最優(yōu)監(jiān)測子塊21對故障19的監(jiān)測結果,子塊21是由表1中變量塊7(含變量7、13、20和27)擴展生成的一階差分信息子塊。由圖4(g)、圖4(h)可知,故障19導致變量27出現持續(xù)的振蕩,通過對變量27的觀測值進行一階差分計算,發(fā)現故障樣本的變化率遠高于正常樣本,從而更有利于檢測到這種持續(xù)振蕩型的故障。
(a)PCA的T2監(jiān)測結果
本文提出一種基于JS散度和潛在特征提取的多塊PCA故障監(jiān)測方法,利用JS散度值對過程變量進行分塊,并對每個變量塊進一步提取累積誤差和一階差分等潛在特征信息進行子塊擴展。所提方法在提取過程局部信息的基礎上,進一步挖掘過程數據中潛在的特征信息。在TE過程上的仿真證明了本文算法的有效性,相比于現有的一些多塊監(jiān)測方法取得了更好的監(jiān)測效果。本文所提方法是一種完全基于數據驅動的故障監(jiān)測方法,在進一步研究中可以考慮將其與先驗知識或者專家經驗進行結合。