王 珠 吳巖松 王少賢 王若暄
(中國(guó)石油大學(xué)(北京)信息科學(xué)與工程學(xué)院自動(dòng)化系)
異常一般指的是系統(tǒng)由于出現(xiàn)一個(gè)或者多個(gè)參數(shù)、特性低于正常指標(biāo),出現(xiàn)了系統(tǒng)存在安全隱患的情況[1]。 工業(yè)上的異常檢測(cè)分為單個(gè)參數(shù)的異常檢測(cè)與報(bào)警和控制回路中關(guān)聯(lián)變量的異常檢測(cè)。 關(guān)聯(lián)變量(即操作變量和被控變量)的異常檢測(cè)能夠有效地反映出工藝過(guò)程中工況的遷移,以及執(zhí)行機(jī)構(gòu)和檢測(cè)儀表所發(fā)生的異常情況。
目前,煉化裝置中異常工況的檢測(cè)方法根據(jù)原理可分為3類:基于知識(shí)的方法、基于模型的方法和基于數(shù)據(jù)驅(qū)動(dòng)的方法[2~4]。 其中,使用基于知識(shí)的方法和基于模型的方法實(shí)現(xiàn)故障檢測(cè)需要對(duì)機(jī)理進(jìn)行充分的分析并掌握豐富的現(xiàn)場(chǎng)經(jīng)驗(yàn),導(dǎo)致這兩種方法在日趨復(fù)雜的化工生產(chǎn)過(guò)程中難以獲得良好的效果。 隨著信息時(shí)代的發(fā)展,智能儀表、傳感網(wǎng)絡(luò)等實(shí)現(xiàn)了對(duì)關(guān)鍵點(diǎn)位的全方位檢測(cè),同時(shí),也儲(chǔ)存了海量的體現(xiàn)裝置運(yùn)行狀態(tài)的過(guò)程數(shù)據(jù)[5,6]。 如今,基于數(shù)據(jù)驅(qū)動(dòng)的方法無(wú)需復(fù)雜機(jī)理知識(shí),從歷史數(shù)據(jù)中挖掘有效信息的優(yōu)勢(shì)被顯現(xiàn)出來(lái),成為應(yīng)用在故障檢測(cè)中的重要技術(shù)手段[7]。
基于數(shù)據(jù)驅(qū)動(dòng)的常用診斷方法主要包括:基于統(tǒng)計(jì)原理的方法、 時(shí)域和頻域特征分析方法、包含人工智能的機(jī)器學(xué)習(xí)算法。 基于統(tǒng)計(jì)原理方法主要針對(duì)單個(gè)參數(shù),以相關(guān)過(guò)程變量的歷史數(shù)據(jù)為基礎(chǔ),借助多元投影等手段將歷史數(shù)據(jù)劃分為不同子空間, 進(jìn)而構(gòu)造異常判斷的控制限[7,8]。LI W H等提出將遞歸主元分析(Principal Component Analysis,PCA)應(yīng)用于過(guò)程監(jiān)控中[9]。CAI L和TIAN X提出一種基于魯棒獨(dú)立成分分析(Independent Component Analysis,ICA) 的故障檢測(cè)方法, 一定程度上解決了傳統(tǒng)ICA方法對(duì)異常值敏感的問(wèn)題[7,10]。 ZHAO S J等提出針對(duì)多階段的間歇過(guò)程的基于偏最小二乘(Partial Least Squares,PLS)模型[11]。 FAZAI R等提出將廣義似然比檢驗(yàn)與PLS方法相結(jié)合, 建立故障檢測(cè)模型并應(yīng)用在化工過(guò)程檢測(cè)中[12]。 與PCA、PLS等傳統(tǒng)多元統(tǒng)計(jì)方法相比,支持向量機(jī)描述(Support Vector Data Description,SVDD)訓(xùn)練數(shù)據(jù)不存在高斯限制,可擴(kuò)展到非線性情況, 逐漸應(yīng)用于異常檢測(cè)[7,13,14]。張漢元和田學(xué)民提出一種改進(jìn)的SVDD算法,將其應(yīng)用于非線性過(guò)程的故障檢測(cè)[15]。
機(jī)器學(xué)習(xí)算法的核心是分類器,基于打好標(biāo)簽的正常與異常數(shù)據(jù)進(jìn)行分類,實(shí)現(xiàn)對(duì)異常的診斷。 YéLAMOS I 等提出一種基于支持向量機(jī)(Support Vector Machine,SVM) 的化工過(guò)程故障診斷方法[16]。 程換新和王建慶引入懲罰正則項(xiàng)優(yōu)化深度置信網(wǎng)絡(luò) (Deep Belief Network,DBN)[17],提高了故障診斷準(zhǔn)確率。 李鋼和周東華提出基于SPM的多變量連續(xù)過(guò)程在線故障預(yù)測(cè)方法[18],可應(yīng)用于線性時(shí)不變系統(tǒng)。 張浩等提出基于關(guān)聯(lián)變量時(shí)滯分析卷積神經(jīng)網(wǎng)絡(luò)的生產(chǎn)過(guò)程時(shí)間序列預(yù)測(cè)方法[19],可應(yīng)用于大時(shí)滯系統(tǒng)的長(zhǎng)步長(zhǎng)時(shí)間序列預(yù)測(cè)。HAN Y等對(duì)長(zhǎng)短期記憶(Long Short-Term Memory,LSTM) 網(wǎng)絡(luò)的隱含層節(jié)點(diǎn)個(gè)數(shù)進(jìn)行優(yōu)化,建立了一種基于LSTM的化工過(guò)程故障檢測(cè)模型[20]。 竇珊等對(duì)LSTM進(jìn)行時(shí)間序列重建,實(shí)現(xiàn)對(duì)生產(chǎn)轉(zhuǎn)置的異常檢測(cè)報(bào)警[21]。
上述多元統(tǒng)計(jì)方法與機(jī)器學(xué)習(xí)方法都屬于“監(jiān)督”學(xué)習(xí),需通過(guò)大量歷史數(shù)據(jù)訓(xùn)練產(chǎn)生數(shù)據(jù)的標(biāo)簽,過(guò)程比較耗時(shí)。 “無(wú)監(jiān)督”學(xué)習(xí)在數(shù)據(jù)分析、 模式識(shí)別及機(jī)器學(xué)習(xí)等領(lǐng)域是一項(xiàng)重要的技術(shù)[22]。 其中,k-means聚類算法具有簡(jiǎn)單、高效的優(yōu)點(diǎn)。 劉麗云等將其應(yīng)用于TE過(guò)程的故障診斷[23]。
針對(duì)閉環(huán)反饋控制回路關(guān)聯(lián)變量的異常檢測(cè),可以在兩個(gè)關(guān)聯(lián)變量之間建立有效的數(shù)學(xué)模型。 采用相關(guān)分析法辨識(shí)對(duì)象的脈沖響應(yīng)函數(shù)[7,24]。
通?;跀?shù)據(jù)驅(qū)動(dòng)的故障/異常檢測(cè),只針對(duì)單一變量或具有關(guān)聯(lián)變量的檢測(cè)儀表與執(zhí)行機(jī)構(gòu)。 對(duì)于實(shí)際復(fù)雜工業(yè)控制回路,無(wú)法判斷其故障/異常是由噪聲干擾、工況遷移還是檢測(cè)儀表與執(zhí)行機(jī)構(gòu)發(fā)生異常造成的。 筆者在單變量歷史趨勢(shì)的基礎(chǔ)上進(jìn)一步對(duì)控制回路的工況遷移、檢測(cè)儀表或執(zhí)行機(jī)構(gòu)進(jìn)行異常檢測(cè),提出一種通過(guò)相關(guān)分析提取動(dòng)態(tài)特性, 建立有限脈沖響應(yīng)模型,通過(guò)有限脈沖響應(yīng)模型取值參數(shù)準(zhǔn)確表示控制回路的運(yùn)行狀態(tài),k-means聚類算法對(duì)整體動(dòng)態(tài)特性進(jìn)行聚類分析,SVDD根據(jù)聚類密度建立一個(gè)或多個(gè)超球體的方法來(lái)實(shí)現(xiàn)對(duì)單變量和多變量過(guò)程的綜合異常診斷。 利用實(shí)際煉化廠數(shù)據(jù)進(jìn)行測(cè)試,結(jié)果表明該方法具有一定的可靠性。
筆者選取實(shí)際運(yùn)行過(guò)程中某一控制回路輸入輸出數(shù)據(jù)進(jìn)行辨識(shí)。 在相關(guān)分析辨識(shí)方法中,傳統(tǒng)的開(kāi)環(huán)多次階躍的輸入信號(hào)并不滿足系統(tǒng)辨識(shí)對(duì)輸入信號(hào)豐富且持久的激勵(lì)要求[25],由于部分輸入信號(hào)的前向時(shí)刻與當(dāng)前時(shí)刻的值相等,導(dǎo)致自相關(guān)矩陣中很多列向量差別不大,這樣的矩陣為病態(tài)矩陣,條件數(shù)很大[26],若輸入的自相關(guān)矩陣奇異,則無(wú)法對(duì)矩陣進(jìn)行求逆運(yùn)算。
因此,筆者選取運(yùn)行過(guò)程中具有動(dòng)態(tài)特性的數(shù)據(jù)進(jìn)行相關(guān)分析辨識(shí),保證輸入的自相關(guān)矩陣非奇異。
筆者采用多變量相關(guān)分析辨識(shí)方法,利用輸入自相關(guān)函數(shù)和輸入輸出互相關(guān)函數(shù)辨識(shí)出單通道的有限脈沖響應(yīng)模型。
線性定常離散傳遞函數(shù)模型如下:
其中,y1×q和u1×p分別為多變量系統(tǒng)在閉環(huán)自動(dòng)控制下的p維輸出和q維輸入,e1×q為輸出噪聲,離散傳遞函數(shù)G(z)的展開(kāi)式為:
則取過(guò)渡時(shí)間為N=k,當(dāng)i>N時(shí),令gi=0,可得系統(tǒng)的有限脈沖響應(yīng)模型如式:
取多變量輸入輸出互相關(guān)函數(shù)Ryu和輸入自相關(guān)函數(shù)Ruu為:
2.1.1 k-means算法原理
k-means屬于無(wú)監(jiān)督學(xué)習(xí)算法, 其基本思想是:通過(guò)迭代尋找將數(shù)據(jù)分為若干個(gè)簇的一種劃分方案,使得簇內(nèi)的點(diǎn)盡量緊密,簇與簇之間的距離盡量大。
k-means算法以距離作為數(shù)據(jù)間相似性度量的標(biāo)準(zhǔn),一般采用歐氏距離來(lái)計(jì)算數(shù)據(jù)對(duì)象間的距離,其公式為:
其中,L表示數(shù)據(jù)對(duì)象的個(gè)數(shù)。
k-means聚類算法執(zhí)行過(guò)程中, 每次迭代,對(duì)應(yīng)簇的質(zhì)心都要進(jìn)行更新。 定義第k個(gè)類的質(zhì)心為Centerk,類簇的質(zhì)心更新方式為:
其中,Ck表示第k個(gè)類簇,|Ck|表示第k個(gè)類簇中數(shù)據(jù)對(duì)象的個(gè)數(shù)。
定義損失函數(shù)為各個(gè)樣本距離所屬簇中心點(diǎn)的誤差平方和:
其中,K表示類簇的個(gè)數(shù)。 若前后兩次迭代J的差值小于某一閾值,則終止迭代,得到聚類最終結(jié)果,即:
其中,t為迭代次數(shù),ε為設(shè)定閾值。
2.1.2 k-means最優(yōu)K值選取
當(dāng)數(shù)據(jù)維度較少且每類數(shù)據(jù)較為分散時(shí),可以人為對(duì)K值進(jìn)行設(shè)定。 但煉化裝置中數(shù)據(jù)量龐大,維度較高,通過(guò)人工設(shè)定K值并不現(xiàn)實(shí),若人工設(shè)定不合適的聚類數(shù),會(huì)導(dǎo)致最終聚類后的某一簇包含異常樣本與正常樣本數(shù)量相當(dāng),聚類效果較差。 選取最優(yōu)K值的具體步驟如下:
a.確定K的取值集合和最大迭代次數(shù)tmax。
b. 對(duì)每一個(gè)K的取值,都進(jìn)行迭代,更新類簇的質(zhì)心位置,終止迭代的損失函數(shù)記為Jmink。
c. 將所有K值下的損失函數(shù)在同一坐標(biāo)系下進(jìn)行比較。
d. 觀察圖像, 損失函數(shù)值出現(xiàn)明顯拐點(diǎn)時(shí),所對(duì)應(yīng)的K值即最優(yōu)聚類數(shù)。
2.1.3 k-means算法具體實(shí)施步驟
k-means算法具體實(shí)施步驟如下:
a.通過(guò)上述方法確定最優(yōu)聚類數(shù)K。b.選擇K個(gè)對(duì)象作為初始聚類中心。
c.計(jì)算每個(gè)聚類對(duì)象到聚類中心的距離。
d.更新聚類中心。 直至聚類中心不發(fā)生改變或達(dá)到最大迭代次數(shù),算法終止。
e.將每類中所包含的數(shù)據(jù)保存并打好標(biāo)簽。
SVDD基本思想是構(gòu)造超邊界形成一個(gè)超球體,使其盡可能多地包含訓(xùn)練樣本中的正樣本,實(shí)現(xiàn)正樣本與負(fù)樣本最大程度的分離[27,28]。 SVDD核心問(wèn)題是尋求最優(yōu)邊界以達(dá)到最優(yōu)檢測(cè)效果[7,29]。
假設(shè)有一組正常訓(xùn)練數(shù)據(jù)x∈Rn×d, 其中n是樣本個(gè)數(shù),d是特征維度。 首先通過(guò)非線性變換函數(shù)Φ:x→F將函數(shù)從原始空間映射到特征空間,在特征空間尋找一個(gè)體積最小的超球體。 具體公式如下[30,31]:
其中,R是超球體半徑;a是超球體圓心;ξi≥0為松弛變量;C為常數(shù), 其作用在于控制半徑a的最小化和松弛變量的權(quán)衡。
結(jié)合拉格朗日乘子法,式(12)可以轉(zhuǎn)化為式(13)的對(duì)偶問(wèn)題:
其中,αi是xi對(duì)應(yīng)的拉格朗日系數(shù)。
當(dāng)超球體邊界無(wú)法保證準(zhǔn)確分類時(shí),可采用核函數(shù)的方法對(duì)SVDD進(jìn)行優(yōu)化, 將訓(xùn)練數(shù)據(jù)映射至更高維的空間進(jìn)行超球體的計(jì)算。 常用的核函數(shù)包括線性核函數(shù)、多項(xiàng)式核函數(shù)、Gaussian核函數(shù)和Sigmoid核函數(shù),核函數(shù)的確定需根據(jù)具體的需求[7,32]。 筆者根據(jù)需求選取如下Gaussian核函數(shù):
在所有正常訓(xùn)練樣本中,把拉格朗日系數(shù)滿足0<αi<C的樣本稱為支持向量,訓(xùn)練數(shù)據(jù)集中屬于支持向量的集合為SV,可由下式計(jì)算超球體球心和半徑[31]:
若o≤kR(k≥1),說(shuō)明測(cè)試樣本在超球體球面上或者內(nèi)部,屬于正常樣本;反之,屬于異常樣本。
在實(shí)際訓(xùn)練過(guò)程中,應(yīng)在正類樣本訓(xùn)練集中加入少量負(fù)類樣本來(lái)防止過(guò)擬合現(xiàn)象。 假設(shè)訓(xùn)練樣本中正樣本和負(fù)樣本標(biāo)簽分別為:
測(cè)試樣本xt到超球體球心的距離為:
異常診斷主要分為兩個(gè)階段:訓(xùn)練階段和在線測(cè)試階段,具體流程如圖1所示。
圖1 異常檢測(cè)總體流程
訓(xùn)練階段的主要步驟為:在控制回路中存在大量操縱變量與被控變量歷史數(shù)據(jù)的情況下,經(jīng)相關(guān)分析法辨識(shí)得出有限脈沖響應(yīng)模型參數(shù),總體構(gòu)成一個(gè)數(shù)據(jù)矩陣, 并在最優(yōu)聚類數(shù)下進(jìn)行kmeans聚類。 此時(shí),分以下3種情況訓(xùn)練SVDD超球體: 將含有大量數(shù)據(jù)樣本的類作為正常工況,并訓(xùn)練正常工況SVDD超球體; 將含有一部分?jǐn)?shù)據(jù)樣本的類作為異常工況一、異常工況二等多種異常工況,并訓(xùn)練每類異常工況的SVDD超球體;將只含有少量數(shù)據(jù)樣本的類,或類中數(shù)據(jù)量占總數(shù)據(jù)量百分比不超過(guò)設(shè)定值的類舍棄,作為明顯故障的數(shù)據(jù)樣本。
在線測(cè)試階段主要步驟:將在線辨識(shí)得到的有限脈沖響應(yīng)模型參數(shù)與已訓(xùn)練的多個(gè)超球體所設(shè)閾值進(jìn)行比較,若其在正常工況超球體閾值范圍之內(nèi),則為正常工況;若其在訓(xùn)練的多個(gè)異常工況超球體所設(shè)閾值范圍之內(nèi),則說(shuō)明發(fā)生異常工況, 并診斷出具體產(chǎn)生哪一類異常工況;若其在所有已訓(xùn)練好的超球體閾值范圍之外,則說(shuō)明此時(shí)檢測(cè)儀表或執(zhí)行機(jī)構(gòu)發(fā)生顯著異?,F(xiàn)象,并有發(fā)展為故障的趨勢(shì)。
本課題的數(shù)據(jù)為國(guó)內(nèi)某煉化廠分餾總貌一段溫度控制回路中檢測(cè)儀表與執(zhí)行機(jī)構(gòu)的實(shí)際過(guò)程數(shù)據(jù),將其在Matlab平臺(tái)上進(jìn)行仿真測(cè)試。首先, 獲取煉化廠中一段單輸入-單輸出控制回路的過(guò)程動(dòng)態(tài)歷史數(shù)據(jù),每60 s采樣一次,根據(jù)歷史趨勢(shì)選擇數(shù)據(jù)段,使得動(dòng)態(tài)矩陣非奇異。 然后,建立訓(xùn)練樣本數(shù)據(jù)集,將歷史數(shù)據(jù)按照時(shí)間序列進(jìn)行劃分, 取每500 min的采樣數(shù)據(jù)作為一組數(shù)據(jù),通過(guò)相關(guān)分析法辨識(shí)其有限脈沖響應(yīng)模型。 通過(guò)現(xiàn)有的有限的實(shí)際過(guò)程控制回路的歷史數(shù)據(jù),共辨識(shí)出9組有限脈沖響應(yīng)模型參數(shù)。 有限脈沖響應(yīng)模型階次為10。 最后,總體構(gòu)成了一個(gè)9×10的矩陣。
將9組有限脈沖響應(yīng)模型參數(shù)進(jìn)行聚類分析。 首先,確定最優(yōu)聚類數(shù)目為2,即將此數(shù)據(jù)集聚為兩類。 經(jīng)聚類后,其中一類含有7組數(shù)據(jù),另一類含有2組數(shù)據(jù)。 由于在實(shí)際化工運(yùn)行過(guò)程中,正常數(shù)據(jù)要多于異常數(shù)據(jù)。 所以,選取密度大的一類作為正常樣本數(shù)據(jù)集訓(xùn)練SVDD超球體。
訓(xùn)練SVDD超球體,核函數(shù)采用Gaussian核函數(shù),C值和ξ值分別為0.3和0.03。
獲取此控制回路近一段時(shí)間內(nèi)的過(guò)程動(dòng)態(tài)數(shù)據(jù),共辨識(shí)出5組有限脈沖響應(yīng)模型,有限脈沖響應(yīng)模型參數(shù)構(gòu)成一個(gè)5×10的矩陣,將其作為測(cè)試樣本集。 利用經(jīng)過(guò)訓(xùn)練的SVDD模型進(jìn)行異常檢測(cè),最終的測(cè)試結(jié)果如圖2所示。
圖2 單輸入-單輸出異常檢測(cè)結(jié)果
對(duì)檢測(cè)結(jié)果進(jìn)行分析:測(cè)試樣本數(shù)目為5,經(jīng)訓(xùn)練后SVDD超球體閾值為0.404 3。 樣本1、2、4、5距超球體球心的距離都小于閾值, 即正常樣本。樣本3距離超球體球心的距離為0.421 1, 大于閾值,即異常樣本。 然后,在此控制回路沒(méi)有受到噪聲干擾以及工況發(fā)生遷移的情況下,判斷控制回路中檢測(cè)儀表或執(zhí)行機(jī)構(gòu)出現(xiàn)異常。 最后,對(duì)異常劃分等級(jí),根據(jù)實(shí)際現(xiàn)場(chǎng)工業(yè)過(guò)程對(duì)控制回路的要求而定。
在當(dāng)今工業(yè)背景下,不再只期望工業(yè)過(guò)程平穩(wěn)運(yùn)行,而對(duì)控制效果、產(chǎn)品質(zhì)量提出了更高的要求。 所以,對(duì)控制回路的異常診斷更具有實(shí)際意義。 筆者提出使用相關(guān)分析法進(jìn)行模型參數(shù)辨識(shí)、k-means與SVDD算法進(jìn)行異常檢測(cè)的方法,可實(shí)現(xiàn)對(duì)執(zhí)行機(jī)構(gòu)與檢測(cè)儀表的異常檢測(cè)。 將筆者所提方法用于實(shí)際的工業(yè)過(guò)程中,測(cè)試結(jié)果驗(yàn)證了所提方法的有效性。