孫 鑫,陳海松,王 清
(陸軍工程大學,野戰(zhàn)工程學院,江蘇 南京210001)
移動電站作為一種移動式的獨立電源,在工程作業(yè)中的主要作用是提供動力或者照明供電,通常使用在礦井、洞穴、建筑工地等場所,由于這些場所揚塵多、潮濕,工作環(huán)境較為惡劣,而發(fā)電機作為電站核心部件,長久處于該種環(huán)境下極易導致故障頻發(fā),且不同作業(yè)環(huán)境下故障類型不同,為故障排除帶來困難。實現(xiàn)對移動電站發(fā)電機故障快速準確的診斷識別,不僅有利于提高作業(yè)效率,對保證作業(yè)人身安全也具有較大意義。針對移動電站及其發(fā)電機的故障診斷,很多學者提出了有效方法,如小波分析[1]、故障字典診斷法和灰色預測診斷法[2]、BP神經(jīng)網(wǎng)絡[3]等,但這些方法較多的依賴于人工經(jīng)驗,要求具有一定的先驗知識,而淺層人工神經(jīng)網(wǎng)絡挖掘故障信息、提取故障特征和識別設備故障狀況的能力有限,還可能產(chǎn)生維數(shù)災難等問題,因此這些方法很難達到理想效果。深度置信網(wǎng)絡由 Hinton[4]自 2006 年提出后,Tamilselva[5]、Tran[6]等使用DBN(Deep Belief Network,DBN)分別對飛機發(fā)動機和壓縮機進行故障診斷,效果明顯,取得了相比機器學習算法更好的診斷精度。
本文利用DBN從底層到頂層逐步獲取移動電站發(fā)電機故障特征,在對初始數(shù)據(jù)進行簡單預處理之后,無需過多的專業(yè)知識即可完成發(fā)電機故障的診斷,減少人為因素的影響,擁有較好的普適性和實用性。
深度學習網(wǎng)絡能夠模擬人的大腦,建立與人思維相似的分析和學習結(jié)構(gòu)[7],來解釋相關(guān)數(shù)據(jù),如圖像、聲音、文本等。深度置信網(wǎng)絡是一種非監(jiān)督貪婪逐層訓練的神經(jīng)網(wǎng)絡,通過不斷的實驗與驗證,DBN展現(xiàn)了優(yōu)異的特征提取和訓練算法,能很好的表達出初始數(shù)據(jù)與最終輸出之間的復雜映射關(guān)系。
深度置信網(wǎng)絡是基于限制玻爾茲曼機堆棧而成的,其基本機構(gòu)如圖1所示。該圖展示的是一個含有3個限制玻爾茲曼機的DBN結(jié)構(gòu)示意圖,每個RBM都有相對的輸入與輸出,即可見層與隱含層。如最初的RBM1中,原始數(shù)據(jù)按照樣本的維度輸入作為可見層v1,其輸出層h1,兩者之間的連接權(quán)重為w1;在RBM2中,RBM1的輸出h1作為其輸入v2,經(jīng)過連接權(quán)重w2輸出為h2,以此類推下去。每個RBM都是采用非監(jiān)督的貪婪學習,使得輸出層能最大似然的表示輸入,因此通過多層RBM,實現(xiàn)了最初數(shù)據(jù)的特征提取。最后在輸出層加上softmax函數(shù)完成對故障模式的分類識別。
圖1 DB N結(jié)構(gòu)示意圖
深度置信網(wǎng)絡的訓練主要包含兩個過程,一是基于RBM由下自上的前向傳播,二是在BP算法下進行自頂向下的反向微調(diào)。
在前向傳播中,Hinton提出了對比散度算法[8],以n次(n一般取1)吉布斯采樣完成快速參數(shù)更新,使RBM訓練得以有效完成,更新公式為:
其中<*>data表示輸入數(shù)據(jù),<*>recon表示重建后的數(shù)據(jù),m為慣性系數(shù),控制參數(shù)受上一次影響的程度,η為正向?qū)W習率。單個RBM的參數(shù)訓練完畢之后,將其輸出作為下一個RBM輸入循環(huán)以上步驟即可,從而完成所有RBM的參數(shù)初始化。
反向微調(diào)時使用BP算法,將分類誤差自頂向下傳播,對初始化的權(quán)重和偏置進行微調(diào),更新公式為:
其中,α為微調(diào)學習率。通過反向微調(diào)完成整個網(wǎng)絡的參數(shù)優(yōu)化,達到整體網(wǎng)絡性能最優(yōu)。
基于學者對發(fā)電機故障的分析[9-11],結(jié)合實際工作,確定相應指標作為輸入。對故障種類進行編號,記為1,2,…,m,為與正常工作時的指標進行對比,添加正常工作狀態(tài)下的參數(shù),編號為0,共m+1種輸出類別標簽。
為降低各指標之間的數(shù)量級差別,減少量綱對預測的影響,需要對數(shù)據(jù)進行預處理,作為后期DBN網(wǎng)絡輸入。
(1)對于部分為0的數(shù)據(jù),將其賦值為10-8,避免運算過程中出現(xiàn)分母為0導致溢出;
(2)為提高數(shù)據(jù)隨機性,將所有樣本隨機打亂組成樣本集,按比例組成訓練集和測試集;
(3)將數(shù)據(jù)進行歸一化處理,調(diào)整到[0,1]之間,調(diào)整方式為:
其中,x′為調(diào)整后的數(shù)據(jù),xmax和xmin為指標特征的最大和最小值,
DBN的結(jié)構(gòu)參數(shù)主要包括數(shù)據(jù)輸入維度、輸出維度、RBM數(shù)量(隱含層數(shù)量)、各隱含層節(jié)點數(shù)。其中,數(shù)據(jù)輸入維度由輸入樣本集的指標維度確定,輸出維度一般由故障類別總數(shù)確定。這里主要需要人為確定的參數(shù)為隱含層數(shù)L和各隱含層節(jié)點數(shù)nl,由于這兩個參數(shù)的確定尚無理論依據(jù),本文采取文獻[9]中提出的經(jīng)驗公式進行確定:
ni和no分別表示三層神經(jīng)網(wǎng)絡的輸入與輸出節(jié)點數(shù),由于深度神經(jīng)網(wǎng)絡中第i個RBM的輸出為第i+1個RBM的輸入,因此對于第k個隱含層ni=hk-1,代入到式12,得到:
其中第一層輸入h0=n0。
而關(guān)于層數(shù)的確定,一方面過少的層數(shù)易造成數(shù)據(jù)欠擬合,使得訓練在訓練集上表現(xiàn)就很差。另一方面,當層數(shù)過多時,則對分類特征具有更詳細的表達,但是容易造成過擬合,雖然在訓練集上表現(xiàn)很好,但泛化能力較差。因此,需要選取在合理的范圍之內(nèi),由于沒有確定的理論依據(jù),通常2-3層可以滿足需求,若想找到具體問題的最佳層數(shù),需要通過實驗確定。
分類問題中,一般采用交叉熵作為損失函數(shù),而添加正則化項可防止模型過擬合,本文最終的損失函數(shù)為:
λ為懲罰系數(shù),其值越大,對較大的權(quán)重值懲罰越大,從而控制目標權(quán)重在較為合理的區(qū)間取值。p?i、pi分別表示數(shù)據(jù)輸出的真實值與預測值。
基于以上分析,移動電站發(fā)電機故障診斷模型流程為:
(1)采集發(fā)電機指標,對數(shù)據(jù)進行預處理,記錄故障標簽,劃分訓練集與測試集;
(2)設定網(wǎng)絡各項參數(shù),如網(wǎng)絡層數(shù)、節(jié)點數(shù)與學習率、迭代次數(shù)等超參數(shù);
(3)以樣本輸入維度為第一個RBM的輸入,通過對比散度算法不斷調(diào)整該RBM的權(quán)重與偏置,實現(xiàn)局部參數(shù)最優(yōu);
(4)將第一個RBM輸出作為第二個RBM輸入,重復3,直至所有RBM訓練完畢;
(5)根據(jù)softmax層輸出與實際標簽對比,利用BP反向傳播算法,將誤差進行反傳至各個RBM,微調(diào)權(quán)重與偏置,得到全局最優(yōu)參數(shù);
(6)判定是否達到停止條件,若是,停止迭代并輸出,否則繼續(xù)訓練。
為驗證模型有效性,使用某型拖車式移動電站進行實驗驗證。確定以下14項指標作為輸入:工作線電壓、工作電流、工作頻率、發(fā)電機轉(zhuǎn)速、勵磁電壓、勵磁電流、水溫、油壓、油溫、蓄電池電壓、電機軸承溫度、發(fā)電機外殼溫度、發(fā)電機振動量、絕緣電阻。從這些指標可以看出,很多參數(shù)之間具有復雜聯(lián)系,如勵磁電壓與勵磁電流、發(fā)電機外殼溫度與發(fā)電機振動量之間可能存在某種隱形函數(shù)關(guān)系,傳統(tǒng)方法很難處理,并且隨著維數(shù)的拓展,淺層神經(jīng)網(wǎng)絡也逐步喪失可行性,該種情況下宜使用提出的DBN方法進行分析。
實驗設置了發(fā)電機軸承曠動、熔絲燒斷、調(diào)壓器調(diào)整不當、電刷接觸不良、風扇損壞、潤滑脂缺少、繞組受潮共7種故障,加上正常運行狀態(tài),共8類輸出。為保證數(shù)據(jù)能充分反映發(fā)電機工作實際情況,水溫、油壓、油溫、電機軸承溫度和外殼溫度統(tǒng)一設定為穩(wěn)定運行30 min之后測量所得。
所有故障采樣間隔為5 s。其中,每個故障取500組數(shù)據(jù),共5000個樣本,每個樣本14個維度,打亂后構(gòu)成整個數(shù)據(jù)集。對于標簽數(shù)據(jù),為便于計算輸出誤差,將故障編號轉(zhuǎn)換為獨熱編碼,如熔絲燒斷編號為2,轉(zhuǎn)換為[0 0 1 0 0 0 0 0 0],采樣結(jié)果按照前述數(shù)據(jù)預處理方法進行歸一化,得到表1樣本數(shù)據(jù)。
表1 預處理后部分數(shù)據(jù)
根據(jù)前文描述,隱含層數(shù)可從最少的2層開始,考慮輸入數(shù)據(jù)維度為14,并不大,本文設為2層。節(jié)點數(shù)按照經(jīng)驗公式計算為11,將其作為參考值帶入,前向?qū)W習率與微調(diào)學習率取為0.001,慣性權(quán)重為0.9,迭代次數(shù)為50次。為去除隨機性影響,每次計算結(jié)果重復實驗20次,取平均值,損失函數(shù)采用交叉熵,正則化系數(shù)為0.000 2。訓練集為按比例隨機在所有樣本中抽取,剩余樣本作為測試集。
為說明與其它傳統(tǒng)故障診斷或淺層神經(jīng)網(wǎng)絡的區(qū)別,將DBN與BP、SVM方法進行對比,為保證環(huán)境的一致性,其中三層BP采用的隱含層節(jié)點數(shù)為11,激活函數(shù)同樣為sigmoid,學習率、迭代次數(shù)與慣性系數(shù)均與DBN一致。SVM采用RBF作為核函數(shù),訓練集與測試集按照從1∶9到9∶1的比例進行試驗,取20次實驗平均值,準確率表示為模型預測類別正確的樣本占測試總樣本的百分比,結(jié)果如表2。
表2 DB N、BP、S V M準確率
從圖2實驗結(jié)果可知:
圖2 不同方法結(jié)果對比圖
(1)但從DBN準確率變化曲線來看,從第三組開始網(wǎng)絡的預測準確率就已經(jīng)高達98%以上,并且隨著訓練樣本比例的增加最終遞增到100%,說明樣本越多,對模型提高其準確性具有更大的幫助,而且DBN對樣本數(shù)據(jù)集劃分比例變動不是很敏感,具有一定的魯棒性。
(2)三種算法比較來看,在同樣迭代到40次時,BP尚未找到合適的參數(shù)擬合,效果最差。而SVM具有與DBN相當?shù)木?,即使在樣本比例?∶9時,仍然可以達到75.19%的準確率,此時DBN參數(shù)訓練還嚴重欠擬合,導致其準確率接近隨機結(jié)果。但當實驗進行到編號3時,DBN具有相對較高的準確率,而SVM在最后還可能出現(xiàn)波動。整體實驗表明,DBN用于發(fā)電機故障診斷切實可行,且相對淺層網(wǎng)絡和傳統(tǒng)方法具有更高的準確率和穩(wěn)定性。
本文基于深度置信網(wǎng)絡較強的特征提取能力,構(gòu)建了針對移動電站發(fā)電機的故障診斷模型,通過正向傳播和反向微調(diào),優(yōu)化網(wǎng)絡參數(shù)。驗證了更多的測試樣本有利于增加模型的預測準確率,表明DBN對劃分的訓練集和測試集比例變化具有一定的抵抗能力。通過與BP、SVM等算法的比較,進一步說明了DBN具有高精度、魯棒性的優(yōu)點[12]。