肖飛揚,顧幸生
(華東理工大學能源化工過程智能制造教育部重點實驗室, 上海 200237)
隨著智能化和自動化的不斷發(fā)展,化工過程的投資和生產規(guī)模越來越大,化工生產裝置也向著越來越復雜化和大型化的方向發(fā)展?;どa過程中的異常工況應被及時檢測和診斷,如不及時發(fā)現并處理,會造成財產損失和環(huán)境污染,甚至威脅人的生命安全。因此,研究故障檢測和診斷(Fault Detection and Diagnosis,FDD)方法,及時有效地檢測故障的發(fā)生,對于保障企業(yè)生產安全和人身安全具有重要意義[1]。
FDD 方法一般分為3 類:基于專家經驗的方法、基于模型的方法和基于數據驅動的方法。數據驅動的FDD 方法可以進一步分為多元統(tǒng)計學的方法、淺層學習方法和深度學習方法。多元統(tǒng)計學包括主成分分析(Principal Component Analysis, PCA)[2]、偏最小二乘(Partial Least Squares, PLS)[3]、獨立主元分析(Independent Principal Component Analysis,ICA)[4]和Fisher 判別分析(Fisher Discriminant Analysis,FDA)[5]等,這些方法被廣泛應用在線性特征判別的問題中,但對工業(yè)過程的故障檢測效果不夠理想。淺層學習方法包括:人工神經網絡(Artificial Neural Networks, ANN)[6]、支持向量機 (Support Vector Machines, SVM)[7]、高斯混合模型(Gaussian Mixture Model, GMM)[8]和K 近鄰算法(K Nearest Neighbor,KNN)[9]等,將以上方法相結合,如PCA-ICA[10]、PCASVM[11]等可以有效解決一些非線性問題。
由于化工過程數據的高維、非線性、非高斯和時變特性,工業(yè)過程中的故障檢測與診斷仍然很困難?;诙嘣y(tǒng)計學和淺層學習方法,有兩個主要問題:(1)特征提取過程需要專業(yè)知識和實踐經驗;(2)故障檢測率仍不高。深度學習方法已被用于化工過程中的過程建模,其優(yōu)異的性能引起FDD領域學者的關注[12-13]。卷積神經網絡(CNN)是一種基于前饋神經網絡的深度學習方法,它通過訓練網絡拓撲結構學習樣本的分布情況。典型的卷積神經網絡的卷積核是二維或三維的,卷積層以二維或三維數據的形式接收數據,同時也以三維數據的形式輸出至下一層,保存了原數據的空間特征。在故障診斷任務中,Wang 等[14]應用二維卷積神經網絡(Two-Dimensional Convolutional Neural Network,2D-CNN)提取化工過程數據的動態(tài)特征,其輸入矩陣由一個時間窗內的采樣點組成,矩陣的維度由采樣時間和變量組成。此窗口操作會消耗時間和計算資源。一維卷積神經網絡[15]將輸入數據沿單一維度劃分,無需進行加窗操作,更容易訓練且計算復雜度較小。
在故障檢測領域,傳感器獲取的數據是一維數據。如果選擇二維卷積,則必須先進行加窗操作,將一維數據轉換為二維數據。肖雄等[16]將原始時域信號數據轉換成二維灰度圖像,故障檢測率達到98%。曲建嶺等[17]采用一維卷積,以軸承的原始振動信號作為模型輸入,同樣也可以檢測98%的軸承故障數據。Kiranyaz 等[18]采用自適應一維卷積神經網絡對多電平轉換器進行故障檢測,計算復雜度較低,可以進行故障實時監(jiān)控,故障識別率達99%。
雖然一維卷積是當前流行的故障檢測深度學習方法,但它仍然存在一些局限性。卷積神經網絡雖然可以提取數據的局部特征,但是提取數據全局特征的能力較弱。為了獲得同時使用數據的全局和局部等有益特征,本文提出了一種基于并聯結構的LSTM-CNN 結構(PLSTM-CNN),將卷積神經網絡提取到的局部特征和LSTM 提取到的全局特征拼接起來,充分利用數據特征以提高模型的精度。
卷積神經網絡是目前廣泛研究的深度學習算法之一,具有局部連接、權值共享和下采樣等特點。1D-CNN 與經典CNN 區(qū)別在于卷積核的維度,近年來被廣泛應用于時間序列的特征提取問題中。
一維卷積操作如圖1 所示,其數學模型如式(1)所示:
圖1 維卷積操作Fig.1 One-dimensional convolution operation
其中:Hi為第i層輸入特征量;? 代表卷積運算;Wi和bi分別表示第i層卷積核的權重和對應的偏置;f代表激活函數,此處為Relu 激活函數,該函數具有良好的非線性表達能力。
池化層又稱為子采樣層。子采樣層依據規(guī)則對特征圖進行下采樣,對卷積后的特征量進行降維以減少CNN 內部的參數和計算量,同時抑制網絡過擬合。
為了緩解網絡深度引起的梯度爆炸問題,稠密卷積神經網絡[19](Dense Convolutional Neural Network,DCNN)在殘差網絡結構的基礎上進一步連接每一個子層,使得網絡每一層輸出用作后一層的輸入,以保證最大程度上的特征重用,緩解了網絡層數增加帶來的梯度消失和梯度爆炸問題,使網絡信息流動更加流暢。
假設網絡層數為N,則DCNN 共包含有N(N+1)/2個連接。第n層的輸入為前面所有層的特征映射,如式(3)所示:
其中:[x0,x1,···,xn-1] 表示第 0,1,···,n-1 層中的特征映射;H(·) 表示歸一化線性修正單元、Relu 激活函數、池化操作以及卷積等函數變換。
因為DCNN 中各個卷積之后都會輸出K個通道的特征圖,重復使用特征會使輸出通道維度非常大,所以在DCNN 內部結構中增加了一個核為1 的卷積層,以減少計算量并提高特征效率,如圖2 所示為DCNN 的結構,其中BN 為批量歸一化層。
圖2 稠密網絡結構圖Fig.2 Dense network structure diagram
循環(huán)神經網絡[20](Recurrent Neural Network,RNN)表示當前的輸出不僅依賴于當前的輸入信息,還依賴于之前的輸出信息。長短時記憶網絡[21](Long and Short-Term Memory Neural Network,LSTM)是RNN的一種變體,它通過門單元的結構實現了自循環(huán)權重變化,可以有效緩解梯度消失和梯度爆炸的問題,更有利于提取時間序列的全局數據特征。
LSTM 網絡以一種特殊的結構進行交互,網絡包含:輸入數據xt、輸出門Ot、保持存儲單元隨時間(t)狀態(tài)的遺忘門ft、影響記憶信息的輸入門it、決定記憶和遺忘信息的存儲單元Ct和調節(jié)信息流入或流出的非線性門控單元,其結構如圖3 所示。
圖3 LSTM 結構Fig.3 LSTM structure
LSTM 網絡信息主要通過3 個門結構選擇:輸入門、遺忘門和輸出門。式子(4)~(9)為LSTM 單元執(zhí)行的過程:
其中:Wf、bf分別是輸入數據和遺忘門之間的權重和偏置矩陣;Wc、bc分別是輸入數據和存儲單元之間的權重和偏置矩陣;Wo、bo分別是輸入數據和輸出門之間的權重和偏置矩陣;tanh 是雙曲正切激活函數;σ 是Sigmoid 函數;? 是特殊運算符號;ht-1是t-1時刻的隱藏狀態(tài);xt是t時刻輸入特征序列;ft可以清除來自存儲單元的信息;輸出門Ot根據當前時刻輸入xt和前一時刻隱藏狀態(tài)ht-1計算即將到來的數據信息。
本文設計了一種基于PLSTM-CNN 網絡的故障診斷方法。框架如圖4 所示。
圖4 基于PLSTM-CNN 故障診斷方法Fig.4 Fault diagnosis method based on PLSTM-CNN
本文提出的PLSTM-CNN 的故障診斷方法, 分為離線建模和在線檢測兩個步驟。
離線建模階段包括以下步驟:
(1)采集不同工況(正常工況和故障工況)下TE(Tennessee Eastman)過程的輸出數據,包括正常數據和20 種故障數據;
(2)數據預處理,首先對數據的變量按照最大互信息排序,然后歸一化、標注對應的類別,最后劃分為訓練集和測試集;
(3)設計適用于TE 過程故障診斷的PLSTMCNN 網絡結構;
(4)訓練PLSTM-CNN 模型,直到模型在訓練集上故障檢測率和故障漏報率達到最優(yōu)效果;
(5)測試PLSTM-CNN 模型,觀測該模型在測試集上的泛化能力,若滿足故障檢測率和故障漏報率的要求,將該模型部署在在線檢測階段,不滿足則調整參數重新訓練、測試模型。
在線檢測階段包括以下步驟:
(1)在線采集過程數據,包括正常數據和20 種故障數據;
(2)同樣地,對數據進行預處理;
(3)將在線數據輸入到PLSTM-CNN 模型,模型輸出每個在線樣本的檢測結果;
(4)如果診斷結果與專家經驗的判斷存在差異,則需要用新模型或新數據重新訓練模型。
TE 過程是實際工業(yè)過程的仿真模型,其數據集廣泛用于FDD 的研究。本文使用修訂版的TE 過程模型,該過程包括41 個測量變量、12 個過程操作變量[22]。我們選擇20 種故障與其他算法進行比較。
采樣周期設置為3 min,正常狀態(tài)下運行500 h,采集10 000 個正常樣本。在20 種故障的模擬中,模擬器先正常運行10 h,然后引入相應的故障,再繼續(xù)運行10 h。通過這種方式,每次模擬都收集了10 h的故障數據(200 個故障樣本)。仿真平臺在故障6 狀態(tài)下運行7 h 后停機,故障6 只有7 h 的數據。為了使故障數據多樣化,在10 種不同的初始狀態(tài)下,每種故障重復模擬10 次。仿真平臺共收集50 000 個樣本數據,其中正常樣本10 000 個,每種故障2 000 個樣本。選擇70%的數據進行訓練,20%的數據進行測試,10%數據進行驗證。
為了分析各類故障樣本與正常樣本之間的相關性,利用每類故障數據與正常數據之間的互信息(Mutual Information,MI)進行度量?;バ畔23]定義如式(10)所示:
其中:g,h分別是x,y方向上的線段數;p(x,y) 為變量x,y的聯合概率分布。因為p(x,y) 計算較為復雜,采用隨機劃分樣本集的散點圖方法進行逼近。MI 在二維空間的橫軸和縱軸方向上劃分一定數量的區(qū)間,用散點圖表示兩個變量,計算散點落在各個方格中的概率,如圖5 所示。
圖5 MI 網格計算方法Fig.5 MI grid calculation method
正常數據與20 種故障數據之間的互信息值見圖6,故障03、故障05、故障09、故障15 和故障16 這5 種故障數據與正常數據之間的互信息值顯著高于其他,說明這5 種故障在數據表現上與正常樣本相近,混淆程度較高。因此可以推測,這5 類故障比其他類型的故障檢測難度更大。
圖6 正常數據與故障數據互信息值Fig.6 Mutual information value of normal data and fault data
數據預處理包括變量過濾和排序、數據歸一化、打標簽以及訓練和測試集的劃分。在TE 過程中,XMV(5)(壓縮機循環(huán)閥)、XMV(9)(汽提塔蒸汽閥)和XMV(12)(攪拌機速度)在模擬過程中是固定值,因此這3 個變量被剔除。
3.3.1 變量排序 在深度學習任務中,一旦文本的前后順序改變或圖像語義擾亂,學習就很難有效果。在化工過程變量排序問題上,同樣存在這樣的問題。最大信息系數(Maximal Information Coefficient,MIC)是Reshef 等[24]提出的一種用于從信息論的角度測量隨機變量之間的線性和非線性的相關程度的方法。采用這種方法計算變量之間的互信息系數對變量進行排序,從而使得變量更有規(guī)律,提高樣本的局部相關性。計算兩個變量之間的互信息系數,并按照相鄰變量之間的互信息系數最大的方式對變量進行排序。最大互信息系數定義見式(11):
其中:g,h是在x,y方向上劃分格子的線段數;B取數據量的0.6 次方;a,b是在x,y方向上的劃分格子個數。
因為故障3 和9 與TE 過程中的進料D 的溫度有關,所以選擇變量XMEAS(9)(反應器溫度)為初始變量,并根據計算最大互信息系數公式對其余50 個變量重新排序,按照該順序排列成1×50 的輸入樣本,并獲得變量的排序順序如圖7 所示。
圖7 變量排序后的格式Fig.7 Sorted variable order
3.3.2 歸一化 由于化工過程數據的量級和維度并不完全相同,為了避免不規(guī)則數據帶來的數值問題,統(tǒng)一評價標準,使網絡更快收斂,采用Z-score 歸一化預處理方法,其公式如式(12)所示。
其中:x是未歸一化的樣本數據;xˉ 是樣本均值;S(x)是標準差;Z(x) 是標準化后的數據。
3.3.3 打標簽 One-Hot 編碼是多分類問題中標簽處理的標準操作。具體操作是將其轉換為數組,其中相應標簽種類的列為1,其余為0,如故障10 的One-Hot 編碼為:[0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0]
由于每個訓練樣本為1×50 的短序列,較大的卷積核不適合,較小的卷積核可以防止特征丟失。選用卷積層濾波器為32 個,卷積核為3。LSTM 有16 個單元,Dropout 為0.8。PLSTM-CNN 網絡模型如圖8 所示。
圖8 PLSTM-CNN 網絡模型Fig.8 PLSTM-CNN network model
圖8 所示的這種并行的網絡結構最大程度地避免了特征丟失,保留了數據特征的全局和局部信息;殘差結構增強CNN 穩(wěn)定性并且減少資源的占用;批量歸一化層(Batch Normalization,BN)加速網絡訓練速度,抑制網絡過擬合;左邊的全局平均池化層將降維后的特征圖與右邊的網絡特征圖拼接,最后送到分類層。
建立模型后,將訓練集輸入到模型中進行訓練。在訓練過程中,超參數的設置會影響模型的收斂效果和預測精度,主要包括:學習率、迭代次數、批次大小、激活函數、隱含層的數目和單元數、優(yōu)化器和損失函數。
將交叉熵損失函數(Categorical Crossentropy)用作損失函數。該損失函數可以避免更新權重較慢的問題,有利于模型收斂。計算公式見式(13):
其中:t是正確類別;q(xt) 是預測正確類別的概率。
選擇Nadam 作為模型的優(yōu)化器。它是一種帶Nesterov 動量項的自適應學習率優(yōu)化算法。該算法訓練前期和中期收斂速度快,計算效率高,訓練后期不容易過擬合,適合解決大數據或大參數的優(yōu)化問題。學習率設置為0.002。
用于訓練的batchsize 設置為256,epochs 設置為100。batchsize 指每次迭代的一次向前或向后遍歷中的樣本數量,epochs 指遍歷整個數據集的次數。
為了展示故障檢查結果和評估模型性能,使用故障診斷率(Fault Diagnosis Rate,FDR)和誤報率(False Positive Rate, FPR)兩個指標評估模型性能。FDR 和FPR 定義為:
其中:TP(True Positives)表示實例是正類并被預測成正類的個數;FN(False Negative)表示正類被預測成負類的個數;FP(False Positives)表示實例是負類被預測成正類的個數;TN(True Negative)表示實例是負類被預測為負類的個數。
為了驗證所提方法的性能,將PLSTM-CNN 模型、2D-CNN 模型、LSTM 模型在測試數據上的結果進行比較,結果如表1 所示,表中基于PLSTM-CNN模型平均故障檢測率達0.91。
表1 故障檢測結果比較Table 1 Comparison of fault detection results
我們發(fā)現不同故障的分類精度差異很大?;赑LSTM-CNN 的故障9 的檢測率(FDR)小于0.90,故障15 和16 檢測率低于0.50。此外,其余17 種故障檢測率均高于0.90,其中故障1、2、4、5、6、7、8、17、19、20 的檢測率為100%。因此,PLSTM-CNN 可以有效隔離大部分故障,只有少數故障表現不佳。通過對表中數據的分析,發(fā)現故障3、9、15、16 的準確度較低是由于它們之間的混淆程度較高,這與前文互信息計算的結果相符合。本文提出的PLSTMCNN 模型充分利用原數據局部和全局特征,在混淆程度較高的故障3、9、15、16 中故障檢測率和誤報率均優(yōu)于2D-CNN 和LSTM 模型。因為故障3 和故障9 都與進料D 的溫度變化有關,所以本文以反應器溫度為初始變量,按照最大互信息系數的方法重新排列變量,進一步提高了對故障3 和9 的故障檢測率。故障15 和16 混淆程度過高,目前還沒有行之有效的故障檢測方法。
在收集實驗結果和模型之后,為了對模型學習到的特征圖可視化,引入了t 隨機鄰居嵌入(tdistributed Stochastic Neighbor Embedding,t-SNE)方法,該方法由van der Maaten 和Hinton 于2008 年提出,可將高維數據投影到二維平面[25]。
從測試集中隨機選擇21 種類別4 200 個樣本,包括20 種故障樣本和1 種正常樣本,并對樣本進行可視化。在圖中每個點代表一個樣本,為了方便觀察分類效果,用數字和顏色代表其實際的類別標簽,如灰色標簽為“13”代表故障13 樣本。分別對輸入層和分類層的特征進行可視化,其結果如圖9 所示,左圖為輸入數據可視化結果圖,右圖為輸出層t-SNE 的可視化結果圖。
圖9 基于t-SNE 的故障診斷可視化Fig.9 Fault diagnosis visualization base on t-SNE
4.3.1 平均故障檢測率對比 為了進一步對比串行與并行網絡模型的故障檢測能力,在上文數據集的基礎上設計了傳統(tǒng)串行網絡結構,結構如圖10 所示。故障檢測實驗效果如圖11 所示。
圖10 串行LSTM-CNN 網絡結構Fig.10 Serial LSTM-CNN network structure
圖11 平均故障檢測率Fig.11 Average fault detection rate
PLSTM-CNN、串行長短時記憶網絡和卷積神經網絡(CLSTM-CNN)、LSTM、1D-CNN 和2D-CNN模型的平均故障檢測率分別為92.13%、89.54%、84.08%、84.80%和85.78%。這表明PLSTM-CNN 相比于CLSTM-CNN 具有更好的故障檢測效果。
4.3.2 模型推理和推理時間對比 表2 示出了多種模型訓練、推理時間的比較。PLSTM-CNN 模型訓練每個epochs 需消耗4.20 s,訓練100 個epochs 僅需消耗7 min。其訓練速度較快的原因主要是:考慮到故障監(jiān)測的實時性,本文卷積層選為一維卷積,其參數較少,在相同網絡和超參數的條件下,計算時間較短,但會喪失部分精度。
表2 訓練、推理時間比較Table 2 Comparison of training and reasoning time
同時,訓練深度二維卷積網絡通常需要特殊的硬件設備,例如云計算或GPU 加速等。但1D-CNN可以在普通的計算機的CPU 上實施,其低計算要求和緊湊型的結構非常適合實時監(jiān)測和低成本應用。
4.3.3 小樣本平均故障檢測率對比 考慮到實際化工過程故障樣本稀少,實驗將降低每類故障樣本數量。設置采樣時間為3 min,正常狀態(tài)下運行100 h,收集到正常樣本2 000 個。對20 種故障的仿真中,模擬器先正常運行10 h,再引入相應的故障,然后繼續(xù)運行10 h。這樣,每次模擬收集10 h 的故障數據(200 個故障樣本)。每種故障類型的仿真在10 種不同的初始狀態(tài)下重復10 次。仿真平臺共收集42 000個樣本數據,其中正常樣本2 000 個,每種故障2 000個樣本。選擇70%的數據進行訓練,20%的數據進行測試,10%數據進行驗證。實驗結果如表3 所示。
表3 小樣本平均故障檢測率Table 3 Average fault detection rate of small samples
2D-CNN 需要大量訓練樣本才能保證精度,而1D-CNN 在小樣本數據集上仍表現良好。PLSTMCNN 在小樣本數據集上仍能保持較高精度,其網絡結構比串行網絡更穩(wěn)定。
本文提出了一種基于PLSTM-CNN 網絡模型的化工過程故障檢測的方法,模型由LSTM、一維稠密卷積層、一維全局池化層和Dropout 層構建,可以有效提取故障數據的局部和全局特征;經過數據分析和基于最大信息系數方法的變量重排序后,數據分布更規(guī)則,易于訓練。將該方法應用于TE 化學過程的故障檢測,比較了PLSTM-CNN、CLSTM-CNN、LSTM、2D-CNN 的故障檢測結果。實驗結果表明,PLSTM-CNN 的故障檢測準確率和誤報率明顯優(yōu)于其他方法。而對于難以檢測的故障3 和9,PLSTMCNN 模型表現仍然良好。
本文提出的PLSTM-CNN 故障診斷方法具有較高的故障診斷準確率和較好的可靠性,更容易區(qū)分不同的故障類型。但是,該方法仍存在普遍深度學習網絡的局限性,網絡中任何參數的變化都會影響模型的質量,很難找到最優(yōu)模型;另外,當參數恒定時,每次訓練的結果也可能有誤差,這些問題是作者今后的研究方向。