史宗輝,陳長征,2*,田 淼,安文杰,孫鮮明
(1.沈陽工業大學 機械工程學院,遼寧 沈陽 110870;2.振動噪聲控制工程技術研究中心,遼寧 沈陽 110870;3.寧波坤博測控科技有限公司,浙江 寧波 315200)
由于大多數風電機組都被安裝在沙漠、戈壁等惡劣的環境中,且機組長期受到風力沖擊[1]和交變載荷的影響,導致作為風電機組重要零部件的滾動軸承極易遭到損壞。因此,對滾動軸承進行故障診斷,以保證風電機組良好運行,具有重要的意義。
目前,針對風電機組滾動軸承故障診斷的信號來源,主要以振動信號為主[2,3]。風場采集到的振動信號存在非線性、非平穩的特性。
時頻分析是一種處理非線性、非平穩信號的有效方法。時頻分析的方法主要有短時傅里葉變換(short time Fourier transform,STFT)、連續小波變換(continuous wavelet transform,CWT)與S變換(S-transform)等。
CHEN Jun-gan等人[4]在采用時頻分析方法進行故障診斷時,考慮了STFT的窗口大小與振動信號頻率之間的關系,因而提高了時頻分析方法的通用性。TRAN M Q等人[5]在進行故障診斷時,利用連續小波變換(CWT)方法,將振動信號轉化為尺度圖特征圖像,提高了故障診斷效果。
運用上述方法對振動信號進行時頻分析時,由于STFT存在窗口大小無法隨著頻率改變的問題,而CWT存在小波基函數選取困難的問題,筆者選取STFT與CWT融合改進的S變換的時頻分析方法,利用高斯窗函數替代CWT中小波基函數,同時窗寬可變,可以有效解決上述問題。
近年來,在復雜裝備故障診斷領域中,采用深度學習方法的表現優異[6,7]。O’SHEA T J等人[8]提出了一種用于調制類型分類的卷積神經網絡(convolutional neural network,CNN),并對該網絡進行了實驗驗證,結果表明,CNN的魯棒性更強。GAO Shu-zhi等人[9]利用改進CNN,對滾動軸承進行了故障診斷,結果表明,該方法可以提高其網絡收斂性。
然而,利用CNN進行故障診斷時,對時間的依賴性不高,無法捕捉振動信號時域的依賴關系。
循環神經網絡(recurrent neural network,RNN)是一種善于捕捉信號間時間依賴關系的方法,常被用于有時間序列信號的分析。常見的RNN有長短時記憶網絡(long short-term memory,LSTM)、門控循環單元網絡(gated recurrent unit,GRU)[10,11]。
在對剩余使用壽命進行預測時,為了降低預測的誤差,HSU C Y等人[12]利用改進的LSTM分析了特征之間的時間依賴關系。GRU結構作為LSTM結構的變體之一,雖然網絡結構參數少,但在一定程度上可提高計算效率。TAO Ying等人[13]利用三層GRU結構逐層深入學習了故障特征,實現了齒輪箱故障診斷的目的。
但上述方法僅能提取信號中t時刻及其前一時刻信號特征,無法提取t時刻之后的有用特征。振動信號為時間序列數據,t時刻及其前后時刻都包含有用特征。因此,筆者提出用BiGRU方法來提取信號中t時刻及其前后時刻的特征,使特征提取更全面。
針對以上問題,筆者提出一種基于S變換、卷積神經網絡(CNN)、雙向門控循環單元(BiGRU)的故障診斷方法,即基于S-CBiGRU的方法。
首先,利用S變換對振動信號進行時頻分析,生成時頻圖;其次,將其輸入到搭建的CBiGRU網絡模型中,利用CNN卷積池化層提取時頻圖的空間特征;隨后利用BiGRU提取時間正序與逆序中的時間特征(多角度提取故障特征);最終,實現風電機組滾動軸承故障診斷的目的。
S變換[14]是一種優異的時頻分析方法。它利用可伸縮的高斯窗與連續小波變換的相位矯正,對信號進行多分辨率的分析。
振動信號x(t)的S變換為:
(1)
式中:t—時間;τ—控制窗口函數在時間軸上的位置;f—頻率;ω—高斯窗函數。
高斯窗函數ω(τ-t,f)可表示為:
(2)
由式(1,2)可得到連續振動信號S變換為:
(3)
由于要構造S變換時頻特性復矩陣,因此需將S變換離散化,振動信號x(t)可離散為x(kT),T為采樣間隔,將離散采樣信號的傅里葉變換為:
(4)
其中:n=0,1,…,N-1,N為采樣點數。
令τ→kT,f→n/NT,因此離散S變換為:
(5)

S變換利用高斯窗函數,避免了STFT時頻窗不變的缺點,同時改善了CWT局部相位不變的缺點。因此,S變換在時域、頻域都可以獲得高分辨率,時頻分析的效果更顯著。
卷積神經網絡(CNN)作為一種近年來發展迅速的前饋神經網絡,常被用于軸承的故障診斷[15]。
CNN由輸入層、卷積層、池化層、全連接層、輸出層組成,其結構如圖1所示。

圖1 CNN結構圖
卷積層的作用為特征提取,將輸入層中的數據與卷積核進行卷積運算,其表達式為:
(6)

為防止過擬合,筆者在每一個卷積層后接一個池化層。
采用最大池化的方式減小神經網絡中參數為:
(7)
式中:A—池化區域寬度。
在誤差反向傳播的過程中,循環神經網絡(RNN)[16]會出現梯度消失現象。為了解決梯度消失問題,通常采用其變體結構LSTM與GRU。
GRU網絡結構如圖2所示。

圖2 GRU網絡結構圖
與LSTM相比,GRU只有更新門zt與重置門rt(t為當前時刻)。
相關計算公式為:
rt=σ[Wr?(ht-1,xt)]
(8)
zt=σ[Wz?(ht-1,xt)]
(9)
(10)
(11)

振動信號是時間序列數據,當軸承發生故障時,t時刻及其前后都包含著故障信息。GRU網絡只能提取t時刻及其前一時刻信息,無法獲取t時刻之后的信息,因此,為了解決上述問題,筆者在此處引入BiGRU。
BiGRU由兩列GRU組成,按照時間正序與逆序對振動信號進行特征提取。
BiGRU模型結構如圖3所示。

圖3 BiGRU模型結構圖

(12)
(13)
(14)
式中:GRU(·)—GRU單元;T(·)—t時刻隱藏狀態輸出。
振動數據經S變換后得到其時頻圖,CNN卷積池化層提取時頻圖中的空間特征信息,BiGRU從時間正序、逆序中捕獲時間特征,多角度提取特征。
CBiGRU結構如圖4所示。

圖4 CBiGRU結構圖
基于S-CBiGRU的風電機組軸承故障診斷步驟如下:
(1)利用風場采集振動信號,采用S變換進行時頻分析,生成時頻圖,劃分訓練集與測試集;
(2)構建CBiGRU網絡,調整網絡參數,利用訓練集數據訓練CBiGRU模型;
(3)以測試集為輸入,利用S-CBiGRU模型進行故障診斷,最終得出故障診斷結果。
風電機組滾動軸承故障診斷流程圖如圖5所示。

圖5 風電機組滾動軸承故障診斷流程圖
為了對上述軸承故障診斷方法的有效性進行驗證,筆者進行了實驗,并將實驗數據輸入到該模型中,進行驗證。
實驗振動數據來源于內蒙古錫林浩特某風場,軸承測點位置為風電機組發電機驅動端徑向,傳感器為ICP壓電加速度傳感器,采樣時間20 s,采樣頻率16 384 Hz。
在數據集中,滾動軸承狀態由正常狀態、內圈故障、外圈故障、滾動體故障4種狀態組成。
振動信號采集如圖6所示。

圖6 振動信號采集圖
滾動軸承的數據集如表1所示。

表1 滾動軸承數據集
表1中,0,1,2,3分別代表滾動軸承正常狀態、內圈故障、外圈故障、滾動體故障4種狀態。
由風場采集的風電機組滾動軸承振動信號時域圖如圖7所示。

圖7 滾動軸承振動信號時域圖
圖7中,包含有滾動軸承4種狀態,即正常狀態、內圈故障、外圈故障和滾動體故障。由于振動信號具有非線性、非平穩的特性,筆者對振動信號進行時頻分析;又因STFT窗函數無法改變,CWT小波基選取困難的問題,所以筆者選取S變換進行時頻分析。
由S變換后的滾動軸承4種狀態的時頻圖如圖8所示。

圖8 滾動軸承振動信號時頻圖
由S變換生成的時頻圖,每種狀態生成1 000組數據,隨機選取80%組作為訓練集;將劃分后的訓練集時頻圖譜輸入到CBiGRU模型中進行訓練。
CBiGRU網絡模型參數如表2所示。

表2 CBiGRU網絡模型參數
CBiGRU模型輸入為S變換后的時頻圖,利用卷積池化層提取時頻圖中的空間特征,BiGRU層提取時間正序、逆序特征,以便從時頻圖中獲得更多故障信息,最后由SoftMax層對滾動軸承故障進行分類。
在CBiGRU模型中,模型學習率設置為0.001,batch size為32,為防止網絡發生過擬合,在全連接層中引入Dropout層并設置為0.5。
筆者選取交叉熵損失函數為網絡模型的損失函數,網絡的故障分類準確率如圖9所示。

圖9 CBiGRU網絡故障分類準確率
網絡的損失值圖10所示。

圖10 CBiGRU網絡損失值
由圖(8~10)可知:利用S-CBiGRU網絡進行滾動軸承故障診斷,訓練集的準確率達到93.81%,損失值為0.06;當迭代30次后,故障準確率曲線與損失曲線都趨于平穩,模型收斂。
筆者通過對測試集樣本的分類,繪制混淆矩陣,如圖11所示。

圖11 混淆矩陣
在圖11中,橫軸表示預測類別,縱軸表示實際類別,數字“23”代表23個外圈故障(實際故障為滾動體故障,被網絡錯誤劃分為外圈故障)。由混淆矩陣可知:S-CBiGRU網絡可以有效區分出滾動軸承的不同故障。
為驗證S-CBiGRU采用S變換的優越性,筆者將其與兩種常用的時頻分析方法STFT與CWT進行對比實驗。
同一組振動信號,采用S變換、STFT、CWT分別進行時頻分析,得出時頻圖譜后,再將其輸入到CBiGRU網絡中,對其進行故障分類。
故障分類準確率如圖12所示。

圖12 故障分類準確率
由圖12可知:在上述3種時頻分析方法中,利用S變換進行時頻分析的準確率最高,達到93.17%;
由于S變換窗口大小可變,在高頻時段,窗口較窄,時間分辨率高;在低頻時段,窗口較寬,頻率分辨率高;
在多分辨分析中,可以獲得信號中更多的信息。因此,與STFT、CWT方法相比,采用S變換得到的故障識別準確率更高。
深度學習常被用于滾動軸承的故障診斷,常用的深度學習方法有:AlexNet、VGG16、GRU等。為了證明S-CBiGRU網絡的故障分類能力的優越性,筆者將其與其他深度學習方法進行對比實驗。
筆者采用不同算法得到的故障分類準確率,如圖13所示。

圖13 不同算法故障分類準確率
由圖13可知:振動信號以S變換后的時頻圖作為輸入,采用AlexNet、VGG16、GRU及CBiGRU模型進行故障分類,S-CBiGRU模型分類準確率最高,達到93.17%;
由于S-GRU與S-CBiGRU考慮振動信號為時間序列,提取t時刻及其前一時刻的故障特征進行故障診斷,所以準確率高于AlexNet、VGG16模型的準確率;
由于S-CBiGRU不僅考慮時間正序,還考慮時間逆序,即提取t時刻及其前后時刻的故障特征,獲取的故障特征更全面。因此,利用S-CBiGRU模型進行風電機組滾動軸承故障分類效果優于其他深度學習算法。
針對風電機組滾動軸承的振動信號存在非線性、非平穩特性,且特征不易提取的問題,筆者提出了一種基于S-CBiGRU的故障診斷方法,利用風場采集的振動信號進行了故障診斷。
研究結論如下:
(1)利用了S變換解決振動信號的非線性、非平穩問題,并生成了二維時頻圖作為模型輸入,在CNN中引入了BiGRU結構,構建了CBiGRU網絡模型,由CNN卷積池化層與BiGRU層分別提取了二維時頻圖中信號的空間特征與時間正序和逆序特征,深度挖掘了信號中所包含的故障特征,最終實現了滾動軸承故障診斷的目的;采用風機實際數據診斷的準確率高達93.17%;
(2)不同深度學習方法的對比實驗結果表明,基于S-CBiGRU的故障診斷方法提取的信號特征更全面,并可解決信號的非線性、非平穩問題,診斷效果優于傳統深度學習方法,可以為風電機組滾動軸承故障診斷提供理論基礎。
在今后的相關工作中,筆者將繼續對風力發電機組故障診斷進行深入研究,并結合機組的振動參數及其它參數,對其故障進行融合診斷。