羅 毅 趙聰杰 武博翔
(華北電力大學(xué)控制與計算機(jī)工程學(xué)院 北京 102206)
隨著自動化技術(shù)水平及計算機(jī)技術(shù)不斷進(jìn)步,現(xiàn)在工業(yè)系統(tǒng)規(guī)模逐步趨向于大型化和復(fù)雜化,結(jié)構(gòu)越來越復(fù)雜。控制系統(tǒng)中的結(jié)構(gòu)相互關(guān)聯(lián)耦合,單一部件發(fā)生故障時,往往引起連鎖反應(yīng),造成重大安全事故[1]。在當(dāng)前工業(yè)系統(tǒng)中,控制系統(tǒng)主要由控制器、執(zhí)行器、被控對象和傳感器等組成。隨著智能化程度的提高,控制器和被控對象設(shè)備的穩(wěn)定性和可靠性有了顯著的提高,傳感器故障和執(zhí)行器故障成為控制系統(tǒng)中主要故障,占系統(tǒng)故障的80%左右。傳感器和執(zhí)行器故障主要為恒增益故障、恒偏差故障、慢漂移故障和卡死等。傳感器和執(zhí)行器作為控制系統(tǒng)中基本設(shè)備,其分布面廣,數(shù)量多,且其故障具有隨機(jī)性和隱蔽性[2]。目前針對控制系統(tǒng)的故障診斷手段主要還是巡檢等方法,浪費(fèi)大量的人力和物力,難以及時有效地發(fā)現(xiàn)故障并修復(fù)故障。因此,建立快速高效的故障診斷系統(tǒng)及時發(fā)現(xiàn)故障、處理故障,對保障系統(tǒng)安全可靠的運(yùn)行具有重要的意義。
目前,故障診斷方法主要為基于知識的方法、基于解析模型的方法和基于數(shù)據(jù)驅(qū)動的方法[3-4]?,F(xiàn)階段,人工智能技術(shù)在工業(yè)過程中大力發(fā)展,現(xiàn)場總線控制系統(tǒng)和分布式控制系統(tǒng)在工業(yè)控制系統(tǒng)中得到廣泛應(yīng)用。支持向量機(jī)(SVM)[5]、BP神經(jīng)網(wǎng)絡(luò)[6]等基于數(shù)據(jù)驅(qū)動的機(jī)器學(xué)習(xí)算法在故障診斷領(lǐng)域得到大量的應(yīng)用。1986年,Rumelhar等[7]首次提出自動編碼器(Auto-Encoder,AE)的概念,并將其用于處理高維復(fù)雜數(shù)據(jù)。Hinton等[8]在2006年提出了非監(jiān)督逐層貪婪訓(xùn)練的算法,使得棧式自編碼器成為可能。棧式自編碼器在無監(jiān)督學(xué)習(xí)中具有巨大優(yōu)勢,從較少的無標(biāo)簽數(shù)據(jù)中,通過自學(xué)習(xí)提取故障特征,使模型具有強(qiáng)大的表達(dá)能力和魯棒性,廣泛地應(yīng)用于回歸、分類領(lǐng)域。曲星宇等[9]提出Dropout降噪自編碼器來解決數(shù)據(jù)線性不可分和高復(fù)雜度的問題,將該方法應(yīng)用于磨礦系統(tǒng)故障診斷中,具有較高的分類準(zhǔn)確率。洪驥宇等[10]將降噪自編碼器與螢火蟲徑向網(wǎng)絡(luò)相結(jié)合對航空發(fā)動機(jī)氣路故障進(jìn)行診斷,通過實例驗證了算法的優(yōu)勢。陳仁祥等[11]建立棧式稀疏加噪自編碼器進(jìn)行滾動軸承損傷程度診斷。孫文珺等[12]提出稀疏自編碼器深度神經(jīng)網(wǎng)絡(luò)實現(xiàn)感應(yīng)的故障診斷。另外,棧式自編碼器在圖像識別[13]和情感識別[14]等領(lǐng)域也得到廣泛的應(yīng)用。
本文提出一種基于KPCA-SDAE神經(jīng)網(wǎng)絡(luò)模型的控制系統(tǒng)故障診斷方法。利用KPCA良好非線性數(shù)據(jù)處理能力和棧式降噪自編碼器強(qiáng)大的故障特征提取能力,實現(xiàn)了控制系統(tǒng)中故障數(shù)據(jù)特征的有效提取,并通過Softmax分類器實現(xiàn)故障的分類,從而構(gòu)建了完整的KPCA-SDAE神經(jīng)網(wǎng)絡(luò)故障診斷模型。KPCA-SDAE神經(jīng)網(wǎng)絡(luò)模型,通過較少的故障數(shù)據(jù)便能夠?qū)崿F(xiàn)故障數(shù)據(jù)的深度挖掘,對于控制系統(tǒng)中故障數(shù)據(jù)少和特征不明顯的情況具有明顯的優(yōu)勢,極大地提高了控制系統(tǒng)中慢漂移故障診斷的準(zhǔn)確率。并通過人為對數(shù)據(jù)加入噪聲,使網(wǎng)絡(luò)模型對輸入信號具有更強(qiáng)的魯棒性。最后通過TE控制系統(tǒng)仿真實驗驗證了該算法的有效性。
核主成分分析是對主成分分析(Principal Component Analysis,PCA)的非線性擴(kuò)展,PCA是線性的,但工業(yè)控制系統(tǒng)中的數(shù)據(jù)大多數(shù)為非線性數(shù)據(jù),其對于非線性的數(shù)據(jù)往往顯得無能為力。KPCA通過核映射的方法,運(yùn)用非線性函數(shù)將數(shù)據(jù)映射到高維特征空間,再在特征空間中對數(shù)據(jù)進(jìn)行線性操作,深度挖掘數(shù)據(jù)的非線性信息,提取更多特征[15]。
通過非線性映射函數(shù)φ(·)將原空間數(shù)據(jù)X=(x1,x2,…,xm)映射到高維空間得到特征樣本數(shù)據(jù)Φ(X)=(φ(x1),φ(x2),…,φ(xm)),通過式(1)求得特征向量W=(w1,w2,…,wd):
Φ(X)Φ(X)TW=λW
(1)
式中:λ為特征向量W的特征值。
由式(1)得到式(2):
(2)
將式(2)代入到式(1)并左乘Φ(X)T得到:
Φ(X)TΦ(X)Φ(X)TΦ(X)A=λΦ(X)TΦ(X)A
(3)
令核矩陣K=Φ(X)TΦ(X)得到式(4):
KA=λA
(4)
通過式(4)求取高維空間下的特征值,將求得的特征值進(jìn)行排序,得到:λ1≥λ2≥…≥λd,取K中最大的d個特征值對應(yīng)的特征向量,得到核主成分分析后的降維數(shù)據(jù),完成特征提取。
自編碼器是一種無監(jiān)督學(xué)習(xí)算法,多用于高維數(shù)據(jù)處理。自編碼器分為兩個部分:編碼器和解碼器[7]。單層自編碼器是一種對稱的三層網(wǎng)絡(luò)結(jié)構(gòu),如圖1所示。
圖1 自編碼器網(wǎng)絡(luò)結(jié)構(gòu)
編碼過程可表示為:
h=f(x)=Sf(Wx+b)
(5)
式中:Sf為編碼器的激活函數(shù);編碼器的參數(shù)為θ={W,b},其中W為編碼器權(quán)重矩陣,b為編碼器偏置矩陣。
解碼過程可表示為:
y=g(x)=Sg(W′x+b′)
(6)
式中:Sg為解碼器的激活函數(shù);解碼器的參數(shù)為θ′={W′,b′},其中W′為解碼器權(quán)重矩陣,b′為解碼器偏置矩陣。
自編碼器通過訓(xùn)練數(shù)據(jù),不斷修正重構(gòu)誤差,使得誤差最小化,從而得到最優(yōu)網(wǎng)絡(luò)參數(shù)θ和θ′。重構(gòu)誤差函數(shù)表達(dá)式為:
J(W,b)=minL(x,y)=minL(s,g(f(x)))
(7)
式中:L(·)表示為損失函數(shù)。根據(jù)不同數(shù)據(jù)的形式,損失函數(shù)可用平方誤差函數(shù)或者交叉熵?fù)p失函數(shù),分別如式(8)和式(9)所示,本文模型選用交叉熵?fù)p失函數(shù)。
(8)
(9)
通過訓(xùn)練得到隱藏層編碼矢量h,再經(jīng)過解碼得到重構(gòu)數(shù)據(jù)y。如果損失函數(shù)與原始輸入x誤差較小,則認(rèn)為經(jīng)過自編碼器訓(xùn)練,對數(shù)據(jù)實現(xiàn)了重構(gòu),學(xué)習(xí)到復(fù)現(xiàn)原始數(shù)據(jù)的能力,完成故障特征提取。
降噪自編碼器(Denoising Auto-Encoder,DAE)[16]通過在輸入樣本數(shù)據(jù)中添加噪聲,使樣本部分被破壞,將經(jīng)過處理的數(shù)據(jù)作為自編碼器訓(xùn)練數(shù)據(jù),使輸出數(shù)據(jù)盡可能地復(fù)現(xiàn)原始數(shù)據(jù)。DAE經(jīng)過編碼器和解碼器的學(xué)習(xí)重構(gòu),使模型獲得的數(shù)據(jù)特征更具魯棒性,降低對微小擾動的敏感。降噪自編碼器的基本原理如圖2所示。
圖2 降噪自編碼器
SDAE神經(jīng)網(wǎng)絡(luò)將前一層DAE的輸出作為下一個DAE的輸入,經(jīng)過多層DAE的數(shù)據(jù)特征提取,能夠有效地挖掘出故障數(shù)據(jù)之間的關(guān)系,使得SDAE具有更加強(qiáng)大的表達(dá)能力[11-12]。多層DAE網(wǎng)絡(luò)為無監(jiān)督學(xué)習(xí),通過層層特征提取只能輸出為原始數(shù)據(jù)的重構(gòu),為使SDAE具有分類識別的功能,在SDAE最后輸出層加入Softmax分類器。Softmax分類器通過計算給出每個類別的概率,能夠?qū)崿F(xiàn)多個故障分類,在多分類問題上具有廣泛的優(yōu)勢[17]。經(jīng)SDAE提取的特征,作為Softmax的輸入,輸出為故障的類型,其中輸出層中神經(jīng)元的個數(shù)為故障種類數(shù)。SDAE神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 SDAE網(wǎng)絡(luò)結(jié)構(gòu)
本文將KPCA與SDAE相結(jié)合,KPCA將故障數(shù)據(jù)映射到高維空間,對其進(jìn)行主導(dǎo)成分特征提取,經(jīng)處理后的數(shù)據(jù),故障特征更加明顯,輸入到SDAE神經(jīng)網(wǎng)絡(luò)模型中。SDAE神經(jīng)網(wǎng)絡(luò)模型經(jīng)過無監(jiān)督訓(xùn)練獲得隱藏層網(wǎng)絡(luò)參數(shù),實現(xiàn)故障特征的檢測,并與Softmax級聯(lián)作為整體網(wǎng)絡(luò)模型進(jìn)行有監(jiān)督訓(xùn)練,實現(xiàn)系統(tǒng)故障的分類。將KPCA與SDAE相結(jié)合,通過KPCA高維映射處理和SDAE神經(jīng)網(wǎng)絡(luò)模型的網(wǎng)絡(luò)訓(xùn)練兩次數(shù)據(jù)分析處理,能夠有效地提取控制系統(tǒng)非線性故障數(shù)據(jù)特征,極大地提高了模型對慢漂移故障數(shù)據(jù)變化的檢測識別能力和故障診斷精度。
針對控制系統(tǒng)故障特性,構(gòu)建4層神經(jīng)網(wǎng)絡(luò)。其中第1層為SDAE的輸入層;第2層和第3層為隱藏層,通過無監(jiān)督方式對數(shù)據(jù)逐層預(yù)訓(xùn)練,獲得初始權(quán)重和偏置;第4層為分類層,通過帶標(biāo)簽數(shù)據(jù)對整個神經(jīng)網(wǎng)絡(luò)進(jìn)行有監(jiān)督的微調(diào),提升SDAE的性能表現(xiàn)。其算法實現(xiàn)流程如圖4所示。
圖4 KPCA-SDAE算法流程
該算法流程主要包括:
(1) 故障數(shù)據(jù)采集并對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化和歸一化預(yù)處理,將其值歸一化到[-1,1]范圍內(nèi)。
(2) 將預(yù)處理后的數(shù)據(jù)進(jìn)行KPCA處理,將非線性數(shù)據(jù)映射到高維空間進(jìn)行主元分析,提取主導(dǎo)成分,實現(xiàn)數(shù)據(jù)的降維。將數(shù)據(jù)分為訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù),作為SDAE的輸入數(shù)據(jù)。
(3) 設(shè)置神經(jīng)元個數(shù)、加噪比例,初始化網(wǎng)絡(luò)結(jié)構(gòu),進(jìn)行無監(jiān)督訓(xùn)練,每一層的輸出作為下一層的輸入,利用批量訓(xùn)練法隨機(jī)選取批量數(shù)據(jù)進(jìn)行迭代運(yùn)算,獲取最優(yōu)權(quán)值W和偏置b。
(4) 以Softmax分類層作為輸出層,根據(jù)故障個數(shù)確定輸出神經(jīng)元個數(shù),對數(shù)據(jù)進(jìn)行one-hot編碼,通過有標(biāo)簽數(shù)據(jù)進(jìn)行有監(jiān)督訓(xùn)練,最后用BP算法對網(wǎng)絡(luò)參數(shù)進(jìn)行微調(diào)優(yōu)化。
(5) 將測試樣本輸入到訓(xùn)練好的SDAE中,輸出故障類型,實現(xiàn)對控制系統(tǒng)的故障診斷。
本文選取TE(Tennessee Eastman)控制系統(tǒng)[18]模型為實驗仿真模型,對控制系統(tǒng)進(jìn)行故障診斷研究。TE過程是美國Eastman化學(xué)公司依據(jù)一個實際化工控制系統(tǒng)開發(fā)的化工模型仿真平臺,TE過程產(chǎn)生的數(shù)據(jù)具有強(qiáng)耦合、非線性的特征,能夠有效地測試控制系統(tǒng)故障診斷模型。
TE控制系統(tǒng)中共有53個變量,操作變量為12個,過程測量變量為41個。在41個測量變量中,過程變量為22個,成分變量為19個。TE仿真控制系統(tǒng)中共預(yù)設(shè)有21種不同的故障,其中故障1-7為階躍故障,故障8-12為隨機(jī)故障,故障13為慢漂移故障,故障14-15為控制閥粘住故障,故障16-21為未知故障[19]。每一種故障包含測試數(shù)據(jù)960組和訓(xùn)練數(shù)據(jù)480組。測試數(shù)據(jù)仿真時間為25 h,每3 min采集一次數(shù)據(jù),故障發(fā)生在系統(tǒng)運(yùn)行1 h后;訓(xùn)練數(shù)據(jù)仿真時間為48 h,故障發(fā)生在8 h后。
本文選取故障1、故障4、故障6、故障10、故障13和故障14共6個故障進(jìn)行實驗研究。以上6種故障的具體描述見表1所示。
表1 TE過程故障描述
針對這6種故障,每個故障選取480個訓(xùn)練數(shù)據(jù),200個測試數(shù)據(jù)。SDAE神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)率設(shè)置為0.01,加噪比例設(shè)置為0.3,輸出神經(jīng)元為6,批量數(shù)據(jù)設(shè)置為128,每層訓(xùn)練迭代次數(shù)為500次。
激活函數(shù)選擇tanh函數(shù),其運(yùn)算簡單、收斂速度快,在神經(jīng)網(wǎng)絡(luò)中具有很好的擬合效果,其數(shù)學(xué)形式為:
(10)
損失函數(shù)選取交叉熵函數(shù),交叉熵函數(shù)刻畫的是真實概率與預(yù)測概率之間的距離,在分類問題上具有廣泛的優(yōu)勢。
優(yōu)化器選取自適應(yīng)學(xué)習(xí)率優(yōu)化器Adam算法,Adam算法依據(jù)訓(xùn)練次數(shù)而自動改變學(xué)習(xí)率,在實驗中能夠快速地實現(xiàn)梯度下降。
數(shù)據(jù)的標(biāo)簽選用one-hot編碼為數(shù)據(jù)標(biāo)簽。本文共有6個故障,所以設(shè)置向量[1 0 0 0 0 0]表示故障1,向量[0 1 0 0 0 0]表示故障2,以此類推表示系統(tǒng)的故障。
首先對6個故障數(shù)據(jù)進(jìn)行KPCA分析處理,提取故障數(shù)據(jù)的主導(dǎo)成分,故障數(shù)據(jù)維數(shù)降為37,經(jīng)過處理的后的數(shù)據(jù)添加0.3倍高斯噪聲作為SDAE網(wǎng)絡(luò)模型的輸入。SDAE神經(jīng)網(wǎng)絡(luò)模型每個隱藏層以重構(gòu)輸入數(shù)據(jù)為目標(biāo)進(jìn)行無監(jiān)督學(xué)習(xí),獲得最優(yōu)權(quán)值W和偏置b,完成故障特征提取。最后將第2層隱藏層輸出數(shù)據(jù)作為Softmax分類器的輸入數(shù)據(jù),利用標(biāo)簽數(shù)據(jù)進(jìn)行有監(jiān)督訓(xùn)練。并通過BP神經(jīng)網(wǎng)絡(luò)對整個神經(jīng)網(wǎng)絡(luò)模型進(jìn)行微調(diào)優(yōu)化,完成模型訓(xùn)練,最后利用測試數(shù)據(jù)對訓(xùn)練好的KPCA-SDAE模型進(jìn)行故障測試。
為檢驗故障診斷結(jié)果,選取BP神經(jīng)網(wǎng)絡(luò)和RBF神經(jīng)網(wǎng)絡(luò)、SDAE神經(jīng)網(wǎng)絡(luò)與KPCA-SDAE神經(jīng)網(wǎng)絡(luò)作對比。RBF神經(jīng)網(wǎng)絡(luò)分類結(jié)果如圖5所示。
(a) RBF神經(jīng)網(wǎng)絡(luò)分類輸出
BP神經(jīng)網(wǎng)絡(luò)分類結(jié)果如圖6所示。
(a) BP神經(jīng)網(wǎng)絡(luò)分類輸出
SDAE神經(jīng)網(wǎng)絡(luò)分類結(jié)果如圖7所示。
(a) SDAE神經(jīng)網(wǎng)絡(luò)分類輸出
KPCA-SDAE神經(jīng)網(wǎng)絡(luò)分類結(jié)果如圖8所示。
(a) KPCA-SDAE神經(jīng)網(wǎng)絡(luò)分類輸出
通過四種神經(jīng)網(wǎng)絡(luò)分類結(jié)果圖形對比,可以看出四種方法都能夠準(zhǔn)確分類故障1,對于故障4、故障10、故障14,RBF神經(jīng)網(wǎng)絡(luò)分類能力較弱。對于故障6,BP有較明顯的錯分情況,準(zhǔn)確率較低。錯誤故障分類多集中在故障13上。對于故障分類誤差,RBF的分類誤差較大,多分布在兩類誤差之上;BP相對較小,差距在一類誤差之間居多,SDAE的分類誤差明顯較小且多分布于一類誤差之間,KPCA-SDAE分類誤差個數(shù)較少,相對比較分散,相較于SDAE神經(jīng)網(wǎng)絡(luò)、BP神經(jīng)網(wǎng)絡(luò)和RBF神經(jīng)網(wǎng)絡(luò)具有一定的優(yōu)勢。故本文方法在控制系統(tǒng)故障分類中要優(yōu)于其他三種方法。為更進(jìn)一步地將KPCA-SDAE方法與另外三種神經(jīng)網(wǎng)絡(luò)模型進(jìn)行比較,將三種方法的各故障分類準(zhǔn)確率進(jìn)行分析,如表2所示。
表2 故障分類準(zhǔn)確率結(jié)果(%)
可以看出,對于故障1,四種算法基本都能準(zhǔn)確分類,準(zhǔn)確率都在95%以上。對于故障4、故障10、故障14三種故障,RBF神經(jīng)網(wǎng)絡(luò)故障診斷準(zhǔn)確率較低,SDAE故障診斷效果較好,準(zhǔn)確率最高,BP神經(jīng)網(wǎng)絡(luò)故障診斷準(zhǔn)確率高于RBF神經(jīng)網(wǎng)絡(luò),KPCA-SDAE模型準(zhǔn)確率雖然不是最高,但依舊維持在一個較高的水平,能夠準(zhǔn)確地識別故障類型。而對故障6的診斷中BP神經(jīng)網(wǎng)絡(luò)準(zhǔn)確率要低于RBF神經(jīng)網(wǎng)絡(luò),RBF神經(jīng)網(wǎng)絡(luò)、SDAE和KPCA-SDAE均達(dá)到了100%的準(zhǔn)確率,BP神經(jīng)網(wǎng)絡(luò)只有87.68%。針對故障13,三種算法準(zhǔn)確率都比較低。故障13為慢漂移故障,特征不明顯,SDAE神經(jīng)網(wǎng)絡(luò)模型難以完成其故障診斷,故障特征較為隱蔽。KPCA通過將故障數(shù)據(jù)映射到高維空間,在高維空間對其進(jìn)行線性變換,有效地提取出故障13種故障特征,將處理后的數(shù)據(jù)輸入到SDAE神經(jīng)網(wǎng)絡(luò)模型中,識別出其微小特征,解決了故障特征不明顯導(dǎo)致故障診斷錯誤的問題。
綜合分析,KPCA-SDAE神經(jīng)網(wǎng)絡(luò)故障診斷準(zhǔn)確率優(yōu)于BP神經(jīng)網(wǎng)絡(luò)、RBF神經(jīng)網(wǎng)絡(luò)和SDAE神經(jīng)網(wǎng)絡(luò),尤其在控制系統(tǒng)慢漂移故障診斷中,其準(zhǔn)確率要遠(yuǎn)高于其他三種故障診斷方法。因此,本文提出的KPCA-SDAE神經(jīng)網(wǎng)絡(luò)模型在控制系統(tǒng)中具有更強(qiáng)故障診斷能力和故障診斷精度。
本文提出的KPCA-SDAE模型在控制系統(tǒng)故障診斷中具有較好的性能并通過實驗驗證了該方法的有效性。KPCA具有強(qiáng)大的非線性非高斯數(shù)據(jù)處理能力,能夠深度挖掘非線性數(shù)據(jù)的信息,降低數(shù)據(jù)的維數(shù)。經(jīng)過 KPCA處理的數(shù)據(jù)故障特征更加明顯,訓(xùn)練速度更快。SDAE神經(jīng)網(wǎng)絡(luò)方法通過數(shù)據(jù)降噪能力的學(xué)習(xí),使得訓(xùn)練模型能有效地降低噪聲數(shù)據(jù)的干擾,增強(qiáng)模型魯棒性。通過實驗結(jié)果證明在控制系統(tǒng)故障診斷中KPCA-SDAE神經(jīng)網(wǎng)絡(luò)故障診斷效果最優(yōu),雖然SDAE神經(jīng)網(wǎng)絡(luò)方法具有降維的功能,但是其在故障診斷效果并不好,尤其對于慢漂移故障診斷精度相較于SDAE模型有了顯著提高,解決了控制系統(tǒng)中慢漂移故障診斷效果差的問題,驗證了該模型的可行性和優(yōu)勢。但是KPCA-SDAE神經(jīng)網(wǎng)絡(luò)模型針對的只是已經(jīng)發(fā)生過此類故障的診斷,對于新故障,難以及時有效地進(jìn)行監(jiān)測和診斷。如何使模型實現(xiàn)自我更新,提高網(wǎng)絡(luò)自適應(yīng)能力,實現(xiàn)故障的識別與分類,需要進(jìn)行更深入研究。