陳保家,陳學力,沈保明,陳法法,李公法,肖文榮,肖能齊
(1.三峽大學水電機械設備設計與維護湖北省重點試驗室,443002,宜昌;2.武漢科技大學冶金裝備及其控制教育部重點試驗室,430081,武漢)
滾動軸承故障響應信號往往表現為非平穩性、非線性、強耦合的特點,常規軸承故障診斷技術主要采用時頻信號處理方法[1-3],如傅里葉變換,小波變換,經驗模式分解(EMD)等,對故障信號進行故障特征提取,再利用分類模型對故障類型進行模式識別。鄭近德等提出了一種改進的EMD故障診斷方法,通過廣義經驗模態分解定義多種均值曲線,采用改進的經驗調幅調頻分解和直接正交解調方法對最優本征模式分量(IMF)信號進行解調,抑制端點效應的產生[4]。Chen等提出融合遺傳算法品質因子參數優化、子帶重構共振稀疏分解和小波變換的故障診斷方法,深度挖掘軸承故障信息,凸顯早期微弱故障[5]。常規的故障診斷研究多禁錮于先提取特征,后分類評估的固有模式,割裂了二者之間的聯系,而特征提取往往需要依靠人工經驗,缺乏科學指導,其診斷的準確率還有待進一步提高[6]。現代機械裝備在長期服役過程中,其狀態監測數據呈現出典型的體量浩大、多源異構、生成快速、價值稀疏的大數據4V特征[7]。面對工業大數據背景下的特征信息提取,依賴人工經驗的診斷方法則力有未逮,亟需研發能從大數據自適應提取故障特征信息的技術方法。
深度學習理論以其強大的建模與數據處理能力,在數據處理方面具有獨特的優勢[8-9]。Chen等采用深度玻爾茲曼機(DBM)、深度置信網絡(DBN)和堆棧自動編碼器(SAE)3種神經網絡討論使用原始信號,時域和頻域特征,時頻域特征,結合時域、頻域與時頻域特征信息的4種不同預處理方法下的滾動軸承故障研究[10]。雖然這種人工特征提取加深度學習的方法在故障診斷領域應用中取得了不錯的診斷效果,但仍需要人工提前做相關的預處理工作,沒有真正發揮深度學習的自我學習這一優勢。隨著現代工業的發展,機械系統日趨復雜,利用深度學習方法自適應提取信號特征,減少人工參與,可以減小故障診斷過程中的不確定性對結果的影響,提高診斷精度[11]。
卷積神經網絡(CNN)通過卷積運算代替一般神經網絡的乘法運算,使用多個卷積核分別進行卷積處理,從而提取不同類型的特征[12]。Hoang等將滾動軸承一維振動信號轉換成二維灰度圖,作為振動圖像CNN(VI-CNN)模型的輸入應用于滾動軸承故障模式的自動識別[13]。長短時記憶網絡(LSTM)可以短暫存儲前一時刻的相關信息[14],Lei等利用LSTM網絡有記憶時序數據信號的優勢,提出一種基于LSTM的故障診斷模型,并在風力渦輪機數據集上驗證了該模型的有效性[15]。
為了避免人工參與的影響,并實現各網絡的優勢互補,同時完成特征提取與分類評估的自底至頂的端到端健康診斷,本文提出一種結合CNN和LSTM的滾動軸承故障診斷模型,以原始振動信號作為模型輸入,CNN層進行故障特征信息提取,LSTM網絡層學習故障特征,最終實現故障分類,并與其他3類網絡模型進行對比,在不同工況下驗證該方法的故障診斷準確性與魯棒性。
CNN卷積層將輸入信號局部區域與濾波器內核進行卷積,在激活函數的作用下生成輸出特征。每個濾波器使用相同的內核來提取輸入信號的局部特征。一個濾波器對應于下一層中的一個幀,并且幀的數量稱為該層的深度。為了自動提取故障特征,參考第一層寬卷積核深度卷積神經網絡(WDCNN)模型參數[16],卷積層采用寬卷積核,卷積過程描述如下
yl+1,m(n)=wl,mxl(n)+bl,m
(1)
式中:wl,m和bl,m分別代表第l層中第m個濾波器內核的權重矩陣和偏置項;xl(n)表示第l層第n個區域;yl+1,m(n)第l+1層中第n個區域的第m個濾波器的卷積后的輸出。
卷積之后,通過激活函數以獲得非線性特征,增強模型的特征表達能力。ReLU激活函數用以加速CNN的收斂過程,表達式如下
al+1,m(n)=f(yl+1,m(n))=max{0,yl+1,m(n)}
(2)
式中:al+1,m(n)是yl+1,m(n)激活后的輸出值。
池化可以有效地減少CNN卷積后的特征空間和網絡參數。最常用的池化層有平均池化和最大池化,本文采用最大池化層,對特征信息執行最大池化操作,以減少參數同時降低數據維度。最大池化操作如下
(3)
式中:ql,m(t)表示第l層在第m幀中第t個神經元的值,t∈[(n-1)H+1,nH],H是池化區域的寬度;pl+1,m(n)表示池化操作后第l+1層中神經元對應的值。
LSTM是遞歸神經網絡(RNN)的變體,用以緩解RNN在訓練時存在的梯度問題[17]。LSTM單元模型主要包括遺忘門、輸入門和輸出門。輸入門可以短暫存儲相關信息,是LSTM不同于RNN的最大特點。特征信息經過CNN層后傳遞到LSTM細胞單元,遺忘門決定信息的通過量,計算如下
ft=σ(wL1[ht-1,xt]+bL1)
(4)
式中:σ是sigmoid函數;wL1和bL1分別是權重和偏置;ht-1是前一個單元的輸出;xt是當前輸入。
輸入門決定了新信息能否被細胞單元記憶,其計算如下
it=σ(wL2[ht-1,xt]+bL2)
(5)
(6)
(7)

LSTM單元的最終輸出ht由輸出門的輸出ot與記憶單元輸出Ct決定,具體計算如下
ot=σ(wL4[ht-1,xt]+bL4)
(8)
ht=ottanh(Ct)
(9)
式中:wL4、bL4分別是輸出門的權重和偏置。
診斷模型結構如圖1所示,主要由信號輸入層,CNN卷積層、池化層、LSTM層及分類輸出層組成。基于CNN-LSTM的滾動軸承故障診斷過程如下:①將一維振動信號標準化,輸入CNN卷積層,利用寬卷積核自適應提取故障特征;②提取后的特征經過最大池化層的池化操作,降低數據維度,并保留主要的特征信息;③再將降維后的特征數據作為LSTM層的特征輸入,用以訓練神經網絡并自動學習故障特征;④利用BPTT(back-propagation through time)算法將訓練誤差反向傳播,逐層逐步更新模型參數;⑤使用Softmax激活函數,將故障特征進行分類,完成故障診斷。詳細過程如下:

圖1 一維CNN-LSTM網絡結構圖Fig.1 1D CNN-LSTM network structure
(1)獲取振動信號,整理、標準化并分割成固定段,構建數據樣本;
(2)劃分訓練集、驗證集和測試集使用獨熱編碼(one-hot encoding)技術進行標簽化處理;
(3)使用網格搜索算法尋找最優初始模型參數,根據結果設置批大小(B),學習率(rL),迭代次數(N)等參數;
(4)訓練集對神經網絡進行訓練,模型提取特征信息并學習故障特征,并利用BPTT算法更新模型參數;
(5)驗證集驗證模型訓練效果,根據驗證結果微調模型參數;
(6)判斷網絡訓練次數m是否達到預先設定的迭代次數N,如果是,進行下一步,否則重復第4步;
(7)測試集測試已訓練好的模型性能,計算評價指標,輸出計算結果,結束計算。
基于CNN-LSTM的滾動軸承故障診斷流程如圖2所示。

圖2 基于CNN-LSTM的滾動軸承故障診斷流程圖Fig.2 Flow chart of rolling bearing fault diagnosis based on CNN-LSTM
以準確率作為模型分類故障診斷的量化指標,以損失函數函數值作為目標函數評價指標,評價模型預測值與真實值的接近程度。本文選用交叉熵損失函數來刻畫模型實際輸出(概率)與期望輸出(概率)的距離,計算值越小,表明兩者越接近。
試驗計算使用Google公司的Tensorflow框架,使用Python語言編程,計算機配置為Intel(R)Core(TM)i7-7700CPU@3.60GHz,4 GB運行內存。
為了驗證提出模型在實際滾動軸承故障診斷中的有效性,本文使用Spectra Quest公司設計的機械故障綜合模擬試驗臺,如圖3所示,主要由驅動電機、轉速表、轉子基座、載荷和試驗軸承等組成。

圖3 機械故障綜合模擬試驗臺Fig.3 Mechanical fault comprehensive simulation test bench
傳感器采用PCB352C33單軸振動加速度傳感器,分別安裝在試驗軸承的水平方向和垂直方向進行同步數據采集。試驗軸承型號為ER12KCL,包括正常,外圈故障,內圈故障和滾動體故障共4種軸承狀態類型,其中滾動體故障在軸承內部,故障點不可見,具體如圖4所示。試驗軸承運行轉速為1 600 r/min,采樣頻率20.48 kHz,分別采集不同故障類型軸承運行狀態下的振動加速度數據。

(a)正常
將各運行狀態下采集到的軸承數據進行歸一化處理并分段,每段樣本振動信號包含1 024個數據點,軸承每類運行狀態包含1 000個樣本,數據集總計4 000個樣本,軸承4種運行狀態的時域波形圖如圖5所示。使用獨熱編碼技術對樣本數據進行標簽化處理,同一標簽下隨機選擇樣本并劃分訓練集、驗證集和測試集,構成最終數據集,具體描述如表1所示。

(a)正常

表1 4種軸承狀態數據集描述Table 1 Description of four kinds of bearing state dataset
參考文獻[16]和[18]中的深度卷積神經網絡結構參數選取方法,并經過反復驗算測試后調整模型參數,最終得到的CNN-LSTM模型結構參數如表2所示。CNN卷積層采用寬卷積核,以便獲得較大的感受野,從而提取更多的特征信息并有效抑制噪聲干擾[16];池化層采用最大池化方式,保留最主要特征信息,同時對邊界部分進行全0填充,保證輸出尺寸不發生變化;采用雙層LSTM網絡,學習特征序列信息;最后采用adam優化算法優化交叉熵損失函數,提高計算效率,減少訓練時間。

表2 模型結構設置Table 2 Model structure setting
深度神經網絡模型超參數眾多,參數的設計與選擇直接影響網絡模型最終計算結果。本文選用網格搜索算法為故障診斷模型選擇最佳的初始學習率和批大小,以提高模型計算準確率。網格搜索算法的基本原理是將自變量c和g設定在一個區間內,按照一定步長將區間劃分為網格,逐一計算每個網格點上的約束函數值并計算在此網格點下的目標函數值,依次計算完所有網格點的目標函數值,從中選擇目標函數值最優解下的自變量c和g作為此區間下的最優參數值[19]。對于非線性規劃問題,網格搜索算法可描述為
minf(x)
Xc≤X≤Xg
(10)
式中:Xc和Xg分別是網格區域內未知參數的邊界;X為計算時的未知參數;f(x)表示目標函數。
現為測試數據集配置不同的學習率和批大小,批大小B分別取32、64、128和256,學習率分別取0.000 5、0.001、0.002、0.004、0.006,劃分網格,計算網格節點上目標函數值,根據計算結果選擇最優的參數組合,并依次作為模型初始參數。其中所有訓練集和驗證集樣本全部計算完一次算作完成一次迭代,每次計算迭代次數N取30,計算5次取平均值,降低偶然誤差影響。網格搜索算法的計算結果如圖6所示。從圖6可以看出,當模型的批大小為32,學習率為0.001時計算結果最優,測試集平均準確率達到99.45%。原因在于批大小控制模型的準確度和收斂性,取值越小,模型的訓練和計算時間越高,相應的準確率會提高。學習率控制模型參數更新速度,學習率過小,模型訓練速度降低,過大則可能導致參數振蕩而造成精確度下降。

圖6 學習率與批大小對模型計算準確率的影響Fig.6 The influence of learning rate and batch size (B) on the accuracy of model calculation
為了測試提出模型的性能,在相同的數據集上使用多層感知器(MLP)、LSTM模型(單層LSTM、雙層LSTM以及3層LSTM)以及經典CNN模型(LeNet5、AlexNet、VGG)進行軸承故障診斷,計算結果如表3所示。所有模型輸入均為原始滾動軸承一維振動信號,模型初始學習率和批大小均分別設置為0.001和32,每次計算30 epochs,計算5次取均值作為計算結果。驗證集驗證模型訓練效果,同時根據驗證結果微調模型參數。不同模型的驗證集平均準確率對比計算如圖7所示,模型驗證集的平均損失函數值隨著網絡訓練的變化如圖8所示。測試集測試已訓練完成模型的性能。

表3 不同模型的測試集平均計算結果Table 3 Average calculation results of test sets for different models

圖7 不同模型驗證集的平均準確率對比Fig.7 Comparison of average accuracy of different model verification sets

圖8 不同模型驗證集的平均損失函數值對比Fig.8 Comparison of average loss function values of different model verification sets
可以看出,本文提出的CNN-LSTM模型測試集平均準確率達到99.45%,高于其他模型計算的平均準確率,且損失函數值最低,說明模型的實際輸出與預測值之間差異較小。與其他模型相比,本文模型的總參數較低,僅高于MLP模型參數,但MLP模型診斷準確率效果很差,僅65.90%。與準確率達到98.75%的LeNet5模型相比,本文CNN-LSTM模型參數更少,表明了本文模型的結構簡單且故障診斷率更高的優越性。
為了進一步試驗提出模型在變工況數據集中的魯棒性,改變第3.1節中的試驗載荷(載荷標記為1),減少試驗載荷模擬空載工況(載荷標記為0),更改后的試驗臺如圖9所示。試驗操作不變,分別采集不同運行狀態軸承在1 600 r/min、1 200 r/min轉速下的振動信號,組合第3.2節中樣本數據共同構成變工況下的滾動軸承故障樣本數據集,并標簽化處理,總共10種類別,共10 000個樣本。每個類別隨機選擇樣本數據劃分訓練集、驗證集和測試集,具體樣本描述如表4所示。選用表3中模型故障診斷準確率超過80%的雙層LSTM、三層LSTM以及經典CNN模型(LeNet5、AlexNet、VGG)作為與本文CNN-LSTM模型的對比,參數設置與前述相同。表5總結了不同模型在變工況下的滾動軸承故障診斷結果。模型的驗證集平均準確率和平均損失函數值分別如圖10和圖11所示。可以看出,本文模型不僅平均準確率最高,達到99.10%,并且損失函數值最低,同時模型易訓練且較穩定。具體表現在迭代次數N大于10時,模型計算平均準確率基本不發生變化,能較好地應對變工況下的工作環境,魯棒性優于單獨的LSTM網絡和經典的幾種CNN網絡。

圖9 機械故障綜合模擬試驗臺(空載)Fig.9 Mechanical fault comprehensive simulation test bench (no load)

表4 變工況下的滾動軸承故障樣本組合Table 4 Fault sample combination of rolling bearing under variable working condition

表5 變工況下的不同模型測試集計算結果Table 5 Calculation results of different model test sets under variable working conditions

圖10 變工況下不同模型驗證集的平均準確率對比Fig.10 Comparison of average accuracy of different model verification sets under variable working conditions

圖11 變工況下不同模型驗證集的平均損失函數值對比Fig.11 Comparison of average loss values of different model verification sets under variable working conditions
K折疊交叉驗證算法(K-FCV)[20]是機器學習中用于驗證模型參數和評價模型分類器的評價算法。K折疊交叉驗證算法的基本思想是將給定數據進行切分訓練子集、驗證子集和測試子集,重復利用,反復驗證、測試,從多次折疊計算中選擇較優模型參數,有效避免過擬合現象的出現,最終得到模型的性能評價指標。因此,通過交叉驗證可以更好地選擇模型參數和評價模型的性能。
選用K折疊交叉驗證算法對模型計算結果進行評價,具體計算結果如表6所示。選用10次交叉驗證平均結果作為模型最終結果,詳細交叉驗證結果如圖12所示。可以看出,計算準確率達到99%以上的模型包括CNN-LSTM模型和AlexNet模型,其中CNN-LSTM模型計算準確率略高,達到了99.41%,模型誤差僅0.21%左右,且相比AlexNet模型,模型總參數少90%左右,訓練時間更短。試驗結果表明,本文提出的CNN-LSTM模型具有結構簡單、計算準確率高的優勢,且神經網絡訓練充分、計算結果穩定、誤差較小,未出現過擬合或欠擬合的情況。

圖12 K折疊交叉驗證計算過程Fig.12 K-folding cross-validation calculation process

表6 不同模型的評價結果Table 6 Evaluation results of different models
本文提出了基于CNN-LSTM混合神經網絡的滾動軸承故障智能診斷方法,結合CNN和LSTM網絡的優勢,可以直接從原始振動信號中自適應提取特征信息,減少人工特征提取過程中帶來的不確定性,實現了端到端的滾動軸承故障分類模式。通過試驗測試數據得出如下結論:
(1)本文提出的CNN-LSTM方法在同工況下的滾動軸承故障模式分類準確率達99%以上,且比同等準確率下的其他模型結構更簡單,訓練時間更少,優于其他幾種網絡;
(2)通過網格搜索算法計算得到在一定步長設置下初始批大小和學習率的較優取值分別為32和0.001,并通過不同轉速,不同載荷的變工況下的滾動軸承試驗表明,CNN-LSTM方法的平均準確率達99%以上,損失函數值比其他分類模型更低,模型能較好適應變工況下的工作環境;
(3)通過K折疊交叉驗證算法表明提出的CNN -LSTM模型平均計算準確率達到99.41%,模型誤差僅0.21%左右,且模型訓練較充分,未出現過擬合和欠擬合情況。