(中國科學技術大學 信息科學技術學院,安徽 合肥 230026)
近年來,風能作為清潔能源受到了世界各國的青睞,飛速發(fā)展的風電在能源產業(yè)結構中起到了愈加重要的作用[1]。由于風電機組運行環(huán)境惡劣、工況復雜多變,機組故障發(fā)生率較高,每臺風電機組的維修成本約占其總成本的20%~25%[2]。變槳系統是風電機組故障率較高且造成停機時間較長的關鍵子系統之一。因此,研究風電機組變槳系統的故障診斷技術,對于快速而準確地定位故障源,減少停機時間及降低機組維護成本,具有重要的現實意義。
目前,專家學者對風電機組變槳系統故障診斷研究主要是基于數據驅動方法,特別是大型風電場均安裝了數據采集與監(jiān)控(Supervisory Control and Data Acquisition,SCADA)系統,基于風電機組SCADA系統運行數據進行風電機組故障診斷已成為研究熱點[3]。肖成[4]通過分析處理SCADA系統數據,采用小波BP(Back Propagation)神經網絡建立變槳系統故障診斷預測模型;童超[5]通過Relief算法進行特征選擇并結合BP神經網絡對變槳距不對稱進行故障診斷;郭慧東[6]采用最小二乘支持向量機構建非線性多輸入多輸出模型對變槳系統進行故障診斷;葉春霖[7]等基于數據挖掘算法對風電機組葉片結冰故障進行了有效診斷。上述方法依賴領域專家診斷經驗及大量的信號處理技術提取出故障特征。由于大量人工參與,提取的特征具有一定的不確定性。此外,采用傳統機器學習方法進行故障診斷,難以表征監(jiān)測數據與機組健康狀況之間復雜的映射關系,并可能存在維數災難問題。
深度置信網絡(Deep Belief Networks,DBN)[8]是由多倫多大學教授Hinton等人于2006年首次提出的一種新興機器學習算法,在很多領域如圖像識別、語音識別等取得了顯著的成果。DBN相較于傳統機器學習算法如決策樹[9]、支持向量機(Supported Vector Machine,SVM)[6]及人工神經網絡 (Artifical Neural Network,ANN)[4]等,有著強大的特征自提取能力和復雜非線性關系的表達能力。Tamilselvan等人在2013年首次將DBN應用于飛機發(fā)動機故障診斷并取得了顯著效果[10]。Tran等人融合了TKEO算法和DBN,采用人工提取特征和DBN分類,用于壓縮機閥門故障診斷,取得了更高的準確率[11]。本文利用DBN的這些優(yōu)點,研究了DBN故障特征自提取能力,對風電機組變槳系統故障數據進行特征提取,建立故障診斷模型,最終完成對風電機組變槳系統的故障診斷。
深度學習是一種新興機器學習算法,模擬人類大腦處理信號的多層次結構,通過大量數據訓練學習到潛在的數據規(guī)律。DBN則是深度學習中研究最早,也是經典算法之一,通過深層次結構自動提取抽象特征,能夠表達復雜的非線性關系。DBN是由多個受限玻爾茲曼機(Restricted Botlzmann Machine,RBM)堆疊而成的多隱藏層深度神經網絡,通過無監(jiān)督逐層貪婪學習算法對多個受限玻爾茲曼機預訓練,再采用有監(jiān)督反向傳播算法微調完成網絡權重的訓練,最后通過頂層的分類器完成對數據的分類。
RBM具有兩層網絡結構,包含可見層(visible layer)和隱藏層(hidden layer),層內無連接,層間全連接[8,12]??梢妼訝顟B(tài)向量v=(v1,v2,…,vnv)T,可見層偏置向量a=(a1,a2,…,anv)T,隱藏層狀態(tài)向量h=(h1,h2,…,hnh)T,隱藏層偏置向量b=(b1,b2,…,bnh)T,層次間連接權重W=(wi,j)∈Rnh×nv,θ=(W,a,b)表示RBM的參數集。
RBM是基于能量的模型,對給定的一組狀態(tài)(v,h),定義能量函數為
Eθ(v,h)=-aTv-bTh-hTWv
(1)
由式(1)可以給出(v,h)的聯合概率分布,其中,Zθ為歸一化因子
Pθ(v,h)=exp[-Eθ(v,h)]/Zθ
(2)
(3)
在RBM網絡中給定可見層(或隱藏層)單元狀態(tài)時,隱藏層(或可見層)上某單元被激活的概率為
(4)
(5)
其中,sigmoid函數是激活函數。給定訓練樣本,訓練RBM目標是迭代更新θ,以擬合訓練樣本,使得由RBM表示的概率分布盡可能與訓練數據一致。
假定訓練樣本集為
S={v1,v2,…,vns}
(6)
(7)
連乘式處理較為麻煩,將對數似然函數作為優(yōu)化的目標
(8)
采用梯度上升法迭代更新RBM參數,計算公式如下:
(9)
(10)
(11)
RBM參數迭代更新格式如下:
(12)
其中η>0為學習率。
DBN由多個堆疊RBM和一個分類器組合而成,對多個RBM進行堆疊,底層隱藏層作為高一層的可見層,通過無監(jiān)督貪婪學習算法逐層優(yōu)化網絡間連接權重和偏置,可以從復雜監(jiān)測數據中逐層提取更深層次的特征[12]。高層RBM的隱藏層作為特征提取層,輸入到分類器,對數據進行分類。DBN基本結構如圖1所示??梢钥闯觯揇BN模型由兩個RBM和分類器組成,第一層和第二層形成RBM1,第二層和第三層形成RBM2,共堆疊了兩個RBM,這里做了簡化,實際中會堆疊更多的RBM。將RBM2隱藏層提取到的特征輸入頂層分類器中,對數據進行分類。
DBN模型的訓練包括無監(jiān)督逐層貪婪預訓練和有監(jiān)督微調兩部分。先通過逐層預訓練將網絡模型的參數初始化為較優(yōu)的值,再通過標簽數據進行有監(jiān)督微調。逐層預訓練算法偽代碼如下。
算法1 深度置信網絡的逐層預訓練方法
輸入:訓練樣本集:S={v1,v2,…,vns};學習率:η;
圖1 DBN基本結構
網絡層數:L;第l層權重:W(l);第l層權重:a(l); 第l層權重:b(l);
1: forl=1…Ldo
2: 初始化:W(l)←0,a(l)←0,b(l)←0;
4: fori=1…l-1 do
5: 根據分布P(h(i)|v(i-1))采樣h(i);
6: end
7: 將h(l-1)作為訓練樣本,充分訓練第l個RBM
參數W(l),a(l),b(l);
8: end
輸出:連接權重W(1),…,W(L),可見層偏置a(1),…,a(L),
隱藏層偏置b(1),…,b(L)
在DBN模型頂層設置softmax分類器,接收最高層RBM隱藏層輸出作為輸入特征向量,根據標簽數據對分類器進行有監(jiān)督訓練。預訓練階段可以確保單個RBM層自身層內達到最優(yōu),并不是整個DBN模型最優(yōu)。有監(jiān)督訓練過程將錯誤信息反向傳播到每一層RBM,進行參數微調,與預訓練階段每次單獨訓練一層RBM參數相比,有監(jiān)督階段會對所有層參數進行更新。
基于DBN的風機變槳系統故障診斷框架如圖2所示,主要包括以下幾個步驟:
① 采集數據。采集風電機組變槳系統不同故障模式下SCADA系統監(jiān)測的運行數據,并與正常運行數據構建風電機組變槳系統故障數據集。
② 數據預處理。神經網絡模型訓練必須對原始數據進行歸一化處理,加速網絡訓練速度,同時避免不同數量級特征帶來的數值問題。
③ 劃分為訓練集和測試集。將上述變槳系統故障數據集以7∶3比例隨機劃分為訓練集和測試集,分別用于訓練DBN模型和測試故障分類效果。
④ 訓練DBN。DBN訓練過程包括兩部分,無監(jiān)督的逐層貪婪訓練和有監(jiān)督的微調。利用訓練數據集,先對由多個RBM堆疊而成的深層網絡進行無監(jiān)督訓練,逐層提取特征。再通過在深度置信網絡頂層增添標簽數據,對網絡進行有監(jiān)督訓練,即使用BP算法對網絡所有層參數進行更新。
⑤ 故障診斷。輸入測試數據集,利用訓練好的DBN進行故障分類。
圖2 基于DBN的風電機組變槳系統故障診斷框架
本次實驗所用數據均來自內蒙古某風場SCADA系統采集到的風電機組真實運行數據,包含了風機運行的環(huán)境參數、工況參數、狀態(tài)參數和控制參數等。選取同一規(guī)格風電機組下多組數據,其中包括3組變槳系統故障狀態(tài)數據,分別為齒形帶斷裂故障、變槳運行模式故障和變槳槳距不對稱故障。結合風電機組正常運行狀態(tài),將變槳系統狀態(tài)簡記為4類:故障1、故障2、故障3和正常。 對每類狀態(tài)數據進行隨機劃分,切分為訓練集和測試集,數據規(guī)模如表1所示。
表1 風電機組變槳系統4種運行狀態(tài)
DBN是由多個RBM堆疊而成的多隱層深度神經網絡,原始輸入數據作為可見層,經底層RBM學習后輸出隱藏層,并作為上一層RBM的可見層輸入,依次逐層傳遞。為探討DBN故障特征自提取能力,在多個堆疊RBM后未構建頂層softmax分類器,直接將高層RBM隱藏層導入解碼網絡,重構原始輸入數據。假設原始輸入數據為x,RBM隱藏層輸出(編碼函數)定義為
(13)
相應的解碼函數定義為
(14)
(15)
(16)
定量評估方法借鑒文獻[13]中對失真度的定義,采用相對均方差值定義失真度S,并結合均方根誤差(Root Mean Square Error,RMSE)從兩個指標進行評估。
(17)
(18)
DBN模型采用經典的4層網絡[12,14],輸入層節(jié)點數為130,由原始數據特征數決定,隱藏層分別100,100,輸出層為40。RBM的參數設置:學習率為0.01,最大迭代次數為50。圖3為節(jié)點數130-100-100-40的DBN模型訓練后,原始輸入數據曲線與重構曲線的定性結果。表2給出了不同輸出層節(jié)點數下,兩者的定量評估指標。
輸出層節(jié)點數RMSE失真度(×10-3)200.243540.30393400.242960.30249600.242630.30169800.242390.301091000.242200.30060
由表2可知,節(jié)點數從20變化到100,重構效果越來越好,當輸出層節(jié)點數為100時,DBN重構數據與原始輸入數據的RMSE和失真度最小。結合圖3,可以表明DBN高層特征可以低失真度地恢復原始輸入數據,即提取到的深層次特征在一定程度上可以表征原始輸入,進而可以說明DBN具有很強保持原有數據細節(jié)的能力,也在一定程度上解釋了深度學習無需人工特征提取過程卻擁有自主學習相關特征的能力。
在前面故障特征自提取研究的基礎上,將多堆疊RBM輸出節(jié)點設置為40,DBN模型其他參數設置不變,輸入到頂層softmax分類器中,進行風電機組變槳系統故障診斷。同時,為了探究DBN模型在風電機組變槳系統故障診斷時較傳統淺層機器學習算法的優(yōu)劣,本文采用了隨機森林(Random Forest)、線性支持向量機(Linear-SVM)和RBF核支持向量機(RBF-SVM)進行對比實驗,對故障數據集采用了統一的數據預處理方法,并使用主成分分析技術提取主要故障特征,均采用70%的故障數據集訓練模型,30%作為測試集,為消除算法隨機性,每個實驗重復進行10次,測試集準確率結果如圖4所示。
圖4 不同分類器多次實驗結果
各個分類器風電機組變槳系統故障診斷測試集的平均準確率如表3所示。
表3 各個分類器診斷結果對比
由表3及圖4可以看出,DBN在測試集上取得了95.59%的準確率,RBF-SVM分類器次之,準確率為91.33%,RF和Linear-SVM準確率較差些,約84.6%左右。同時,與其他分類器不同,DBN模型多堆疊RBM具有故障特征自提取能力,能夠提取深層次故障特征。而測試集上的表現,也說明了DBN模型在風電機組變槳系統故障診斷中明顯優(yōu)于其他模型,具有很好的泛化能力。
本文研究了基于DBN的風電機組變槳系統故障診斷方法,并通過變槳系統故障數據驗證了該方法的有效性。DBN通過多堆疊受限RBM能夠逐層自動提取故障特征,高層RBM輸出可以低失真度地重構原始輸入數據。實驗結果表明,與傳統淺層機器學習算法相比,該方法避免了人工提取特征的不確定性,同時能夠有效地診斷風電機組變槳系統故障,具有較高的準確率。