孫 鑫,陳海松,王 清
(陸軍工程大學,野戰工程學院,江蘇 南京210001)
移動電站作為一種移動式的獨立電源,在工程作業中的主要作用是提供動力或者照明供電,通常使用在礦井、洞穴、建筑工地等場所,由于這些場所揚塵多、潮濕,工作環境較為惡劣,而發電機作為電站核心部件,長久處于該種環境下極易導致故障頻發,且不同作業環境下故障類型不同,為故障排除帶來困難。實現對移動電站發電機故障快速準確的診斷識別,不僅有利于提高作業效率,對保證作業人身安全也具有較大意義。針對移動電站及其發電機的故障診斷,很多學者提出了有效方法,如小波分析[1]、故障字典診斷法和灰色預測診斷法[2]、BP神經網絡[3]等,但這些方法較多的依賴于人工經驗,要求具有一定的先驗知識,而淺層人工神經網絡挖掘故障信息、提取故障特征和識別設備故障狀況的能力有限,還可能產生維數災難等問題,因此這些方法很難達到理想效果。深度置信網絡由 Hinton[4]自 2006 年提出后,Tamilselva[5]、Tran[6]等使用DBN(Deep Belief Network,DBN)分別對飛機發動機和壓縮機進行故障診斷,效果明顯,取得了相比機器學習算法更好的診斷精度。
本文利用DBN從底層到頂層逐步獲取移動電站發電機故障特征,在對初始數據進行簡單預處理之后,無需過多的專業知識即可完成發電機故障的診斷,減少人為因素的影響,擁有較好的普適性和實用性。
深度學習網絡能夠模擬人的大腦,建立與人思維相似的分析和學習結構[7],來解釋相關數據,如圖像、聲音、文本等。深度置信網絡是一種非監督貪婪逐層訓練的神經網絡,通過不斷的實驗與驗證,DBN展現了優異的特征提取和訓練算法,能很好的表達出初始數據與最終輸出之間的復雜映射關系。
深度置信網絡是基于限制玻爾茲曼機堆棧而成的,其基本機構如圖1所示。該圖展示的是一個含有3個限制玻爾茲曼機的DBN結構示意圖,每個RBM都有相對的輸入與輸出,即可見層與隱含層。如最初的RBM1中,原始數據按照樣本的維度輸入作為可見層v1,其輸出層h1,兩者之間的連接權重為w1;在RBM2中,RBM1的輸出h1作為其輸入v2,經過連接權重w2輸出為h2,以此類推下去。每個RBM都是采用非監督的貪婪學習,使得輸出層能最大似然的表示輸入,因此通過多層RBM,實現了最初數據的特征提取。最后在輸出層加上softmax函數完成對故障模式的分類識別。

圖1 DB N結構示意圖
深度置信網絡的訓練主要包含兩個過程,一是基于RBM由下自上的前向傳播,二是在BP算法下進行自頂向下的反向微調。
在前向傳播中,Hinton提出了對比散度算法[8],以n次(n一般取1)吉布斯采樣完成快速參數更新,使RBM訓練得以有效完成,更新公式為:

其中<*>data表示輸入數據,<*>recon表示重建后的數據,m為慣性系數,控制參數受上一次影響的程度,η為正向學習率。單個RBM的參數訓練完畢之后,將其輸出作為下一個RBM輸入循環以上步驟即可,從而完成所有RBM的參數初始化。
反向微調時使用BP算法,將分類誤差自頂向下傳播,對初始化的權重和偏置進行微調,更新公式為:

其中,α為微調學習率。通過反向微調完成整個網絡的參數優化,達到整體網絡性能最優。
基于學者對發電機故障的分析[9-11],結合實際工作,確定相應指標作為輸入。對故障種類進行編號,記為1,2,…,m,為與正常工作時的指標進行對比,添加正常工作狀態下的參數,編號為0,共m+1種輸出類別標簽。
為降低各指標之間的數量級差別,減少量綱對預測的影響,需要對數據進行預處理,作為后期DBN網絡輸入。
(1)對于部分為0的數據,將其賦值為10-8,避免運算過程中出現分母為0導致溢出;
(2)為提高數據隨機性,將所有樣本隨機打亂組成樣本集,按比例組成訓練集和測試集;
(3)將數據進行歸一化處理,調整到[0,1]之間,調整方式為:

其中,x′為調整后的數據,xmax和xmin為指標特征的最大和最小值,
DBN的結構參數主要包括數據輸入維度、輸出維度、RBM數量(隱含層數量)、各隱含層節點數。其中,數據輸入維度由輸入樣本集的指標維度確定,輸出維度一般由故障類別總數確定。這里主要需要人為確定的參數為隱含層數L和各隱含層節點數nl,由于這兩個參數的確定尚無理論依據,本文采取文獻[9]中提出的經驗公式進行確定:

ni和no分別表示三層神經網絡的輸入與輸出節點數,由于深度神經網絡中第i個RBM的輸出為第i+1個RBM的輸入,因此對于第k個隱含層ni=hk-1,代入到式12,得到:

其中第一層輸入h0=n0。
而關于層數的確定,一方面過少的層數易造成數據欠擬合,使得訓練在訓練集上表現就很差。另一方面,當層數過多時,則對分類特征具有更詳細的表達,但是容易造成過擬合,雖然在訓練集上表現很好,但泛化能力較差。因此,需要選取在合理的范圍之內,由于沒有確定的理論依據,通常2-3層可以滿足需求,若想找到具體問題的最佳層數,需要通過實驗確定。
分類問題中,一般采用交叉熵作為損失函數,而添加正則化項可防止模型過擬合,本文最終的損失函數為:

λ為懲罰系數,其值越大,對較大的權重值懲罰越大,從而控制目標權重在較為合理的區間取值。p?i、pi分別表示數據輸出的真實值與預測值。
基于以上分析,移動電站發電機故障診斷模型流程為:
(1)采集發電機指標,對數據進行預處理,記錄故障標簽,劃分訓練集與測試集;
(2)設定網絡各項參數,如網絡層數、節點數與學習率、迭代次數等超參數;
(3)以樣本輸入維度為第一個RBM的輸入,通過對比散度算法不斷調整該RBM的權重與偏置,實現局部參數最優;
(4)將第一個RBM輸出作為第二個RBM輸入,重復3,直至所有RBM訓練完畢;
(5)根據softmax層輸出與實際標簽對比,利用BP反向傳播算法,將誤差進行反傳至各個RBM,微調權重與偏置,得到全局最優參數;
(6)判定是否達到停止條件,若是,停止迭代并輸出,否則繼續訓練。
為驗證模型有效性,使用某型拖車式移動電站進行實驗驗證。確定以下14項指標作為輸入:工作線電壓、工作電流、工作頻率、發電機轉速、勵磁電壓、勵磁電流、水溫、油壓、油溫、蓄電池電壓、電機軸承溫度、發電機外殼溫度、發電機振動量、絕緣電阻。從這些指標可以看出,很多參數之間具有復雜聯系,如勵磁電壓與勵磁電流、發電機外殼溫度與發電機振動量之間可能存在某種隱形函數關系,傳統方法很難處理,并且隨著維數的拓展,淺層神經網絡也逐步喪失可行性,該種情況下宜使用提出的DBN方法進行分析。
實驗設置了發電機軸承曠動、熔絲燒斷、調壓器調整不當、電刷接觸不良、風扇損壞、潤滑脂缺少、繞組受潮共7種故障,加上正常運行狀態,共8類輸出。為保證數據能充分反映發電機工作實際情況,水溫、油壓、油溫、電機軸承溫度和外殼溫度統一設定為穩定運行30 min之后測量所得。
所有故障采樣間隔為5 s。其中,每個故障取500組數據,共5000個樣本,每個樣本14個維度,打亂后構成整個數據集。對于標簽數據,為便于計算輸出誤差,將故障編號轉換為獨熱編碼,如熔絲燒斷編號為2,轉換為[0 0 1 0 0 0 0 0 0],采樣結果按照前述數據預處理方法進行歸一化,得到表1樣本數據。

表1 預處理后部分數據
根據前文描述,隱含層數可從最少的2層開始,考慮輸入數據維度為14,并不大,本文設為2層。節點數按照經驗公式計算為11,將其作為參考值帶入,前向學習率與微調學習率取為0.001,慣性權重為0.9,迭代次數為50次。為去除隨機性影響,每次計算結果重復實驗20次,取平均值,損失函數采用交叉熵,正則化系數為0.000 2。訓練集為按比例隨機在所有樣本中抽取,剩余樣本作為測試集。
為說明與其它傳統故障診斷或淺層神經網絡的區別,將DBN與BP、SVM方法進行對比,為保證環境的一致性,其中三層BP采用的隱含層節點數為11,激活函數同樣為sigmoid,學習率、迭代次數與慣性系數均與DBN一致。SVM采用RBF作為核函數,訓練集與測試集按照從1∶9到9∶1的比例進行試驗,取20次實驗平均值,準確率表示為模型預測類別正確的樣本占測試總樣本的百分比,結果如表2。

表2 DB N、BP、S V M準確率
從圖2實驗結果可知:

圖2 不同方法結果對比圖
(1)但從DBN準確率變化曲線來看,從第三組開始網絡的預測準確率就已經高達98%以上,并且隨著訓練樣本比例的增加最終遞增到100%,說明樣本越多,對模型提高其準確性具有更大的幫助,而且DBN對樣本數據集劃分比例變動不是很敏感,具有一定的魯棒性。
(2)三種算法比較來看,在同樣迭代到40次時,BP尚未找到合適的參數擬合,效果最差。而SVM具有與DBN相當的精度,即使在樣本比例為1∶9時,仍然可以達到75.19%的準確率,此時DBN參數訓練還嚴重欠擬合,導致其準確率接近隨機結果。但當實驗進行到編號3時,DBN具有相對較高的準確率,而SVM在最后還可能出現波動。整體實驗表明,DBN用于發電機故障診斷切實可行,且相對淺層網絡和傳統方法具有更高的準確率和穩定性。
本文基于深度置信網絡較強的特征提取能力,構建了針對移動電站發電機的故障診斷模型,通過正向傳播和反向微調,優化網絡參數。驗證了更多的測試樣本有利于增加模型的預測準確率,表明DBN對劃分的訓練集和測試集比例變化具有一定的抵抗能力。通過與BP、SVM等算法的比較,進一步說明了DBN具有高精度、魯棒性的優點[12]。