陳保家,陳學力,沈保明,陳法法,李公法,肖文榮,肖能齊
(1.三峽大學水電機械設備設計與維護湖北省重點試驗室,443002,宜昌;2.武漢科技大學冶金裝備及其控制教育部重點試驗室,430081,武漢)
滾動軸承故障響應信號往往表現(xiàn)為非平穩(wěn)性、非線性、強耦合的特點,常規(guī)軸承故障診斷技術主要采用時頻信號處理方法[1-3],如傅里葉變換,小波變換,經(jīng)驗模式分解(EMD)等,對故障信號進行故障特征提取,再利用分類模型對故障類型進行模式識別。鄭近德等提出了一種改進的EMD故障診斷方法,通過廣義經(jīng)驗模態(tài)分解定義多種均值曲線,采用改進的經(jīng)驗調(diào)幅調(diào)頻分解和直接正交解調(diào)方法對最優(yōu)本征模式分量(IMF)信號進行解調(diào),抑制端點效應的產(chǎn)生[4]。Chen等提出融合遺傳算法品質(zhì)因子參數(shù)優(yōu)化、子帶重構共振稀疏分解和小波變換的故障診斷方法,深度挖掘軸承故障信息,凸顯早期微弱故障[5]。常規(guī)的故障診斷研究多禁錮于先提取特征,后分類評估的固有模式,割裂了二者之間的聯(lián)系,而特征提取往往需要依靠人工經(jīng)驗,缺乏科學指導,其診斷的準確率還有待進一步提高[6]?,F(xiàn)代機械裝備在長期服役過程中,其狀態(tài)監(jiān)測數(shù)據(jù)呈現(xiàn)出典型的體量浩大、多源異構、生成快速、價值稀疏的大數(shù)據(jù)4V特征[7]。面對工業(yè)大數(shù)據(jù)背景下的特征信息提取,依賴人工經(jīng)驗的診斷方法則力有未逮,亟需研發(fā)能從大數(shù)據(jù)自適應提取故障特征信息的技術方法。
深度學習理論以其強大的建模與數(shù)據(jù)處理能力,在數(shù)據(jù)處理方面具有獨特的優(yōu)勢[8-9]。Chen等采用深度玻爾茲曼機(DBM)、深度置信網(wǎng)絡(DBN)和堆棧自動編碼器(SAE)3種神經(jīng)網(wǎng)絡討論使用原始信號,時域和頻域特征,時頻域特征,結(jié)合時域、頻域與時頻域特征信息的4種不同預處理方法下的滾動軸承故障研究[10]。雖然這種人工特征提取加深度學習的方法在故障診斷領域應用中取得了不錯的診斷效果,但仍需要人工提前做相關的預處理工作,沒有真正發(fā)揮深度學習的自我學習這一優(yōu)勢。隨著現(xiàn)代工業(yè)的發(fā)展,機械系統(tǒng)日趨復雜,利用深度學習方法自適應提取信號特征,減少人工參與,可以減小故障診斷過程中的不確定性對結(jié)果的影響,提高診斷精度[11]。
卷積神經(jīng)網(wǎng)絡(CNN)通過卷積運算代替一般神經(jīng)網(wǎng)絡的乘法運算,使用多個卷積核分別進行卷積處理,從而提取不同類型的特征[12]。Hoang等將滾動軸承一維振動信號轉(zhuǎn)換成二維灰度圖,作為振動圖像CNN(VI-CNN)模型的輸入應用于滾動軸承故障模式的自動識別[13]。長短時記憶網(wǎng)絡(LSTM)可以短暫存儲前一時刻的相關信息[14],Lei等利用LSTM網(wǎng)絡有記憶時序數(shù)據(jù)信號的優(yōu)勢,提出一種基于LSTM的故障診斷模型,并在風力渦輪機數(shù)據(jù)集上驗證了該模型的有效性[15]。
為了避免人工參與的影響,并實現(xiàn)各網(wǎng)絡的優(yōu)勢互補,同時完成特征提取與分類評估的自底至頂?shù)亩说蕉私】翟\斷,本文提出一種結(jié)合CNN和LSTM的滾動軸承故障診斷模型,以原始振動信號作為模型輸入,CNN層進行故障特征信息提取,LSTM網(wǎng)絡層學習故障特征,最終實現(xiàn)故障分類,并與其他3類網(wǎng)絡模型進行對比,在不同工況下驗證該方法的故障診斷準確性與魯棒性。
CNN卷積層將輸入信號局部區(qū)域與濾波器內(nèi)核進行卷積,在激活函數(shù)的作用下生成輸出特征。每個濾波器使用相同的內(nèi)核來提取輸入信號的局部特征。一個濾波器對應于下一層中的一個幀,并且?guī)臄?shù)量稱為該層的深度。為了自動提取故障特征,參考第一層寬卷積核深度卷積神經(jīng)網(wǎng)絡(WDCNN)模型參數(shù)[16],卷積層采用寬卷積核,卷積過程描述如下
yl+1,m(n)=wl,mxl(n)+bl,m
(1)
式中:wl,m和bl,m分別代表第l層中第m個濾波器內(nèi)核的權重矩陣和偏置項;xl(n)表示第l層第n個區(qū)域;yl+1,m(n)第l+1層中第n個區(qū)域的第m個濾波器的卷積后的輸出。
卷積之后,通過激活函數(shù)以獲得非線性特征,增強模型的特征表達能力。ReLU激活函數(shù)用以加速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卷積后的特征空間和網(wǎng)絡參數(shù)。最常用的池化層有平均池化和最大池化,本文采用最大池化層,對特征信息執(zhí)行最大池化操作,以減少參數(shù)同時降低數(shù)據(jù)維度。最大池化操作如下
(3)
式中:ql,m(t)表示第l層在第m幀中第t個神經(jīng)元的值,t∈[(n-1)H+1,nH],H是池化區(qū)域的寬度;pl+1,m(n)表示池化操作后第l+1層中神經(jīng)元對應的值。
LSTM是遞歸神經(jīng)網(wǎng)絡(RNN)的變體,用以緩解RNN在訓練時存在的梯度問題[17]。LSTM單元模型主要包括遺忘門、輸入門和輸出門。輸入門可以短暫存儲相關信息,是LSTM不同于RNN的最大特點。特征信息經(jīng)過CNN層后傳遞到LSTM細胞單元,遺忘門決定信息的通過量,計算如下
ft=σ(wL1[ht-1,xt]+bL1)
(4)
式中:σ是sigmoid函數(shù);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分別是輸出門的權重和偏置。
診斷模型結(jié)構如圖1所示,主要由信號輸入層,CNN卷積層、池化層、LSTM層及分類輸出層組成?;贑NN-LSTM的滾動軸承故障診斷過程如下:①將一維振動信號標準化,輸入CNN卷積層,利用寬卷積核自適應提取故障特征;②提取后的特征經(jīng)過最大池化層的池化操作,降低數(shù)據(jù)維度,并保留主要的特征信息;③再將降維后的特征數(shù)據(jù)作為LSTM層的特征輸入,用以訓練神經(jīng)網(wǎng)絡并自動學習故障特征;④利用BPTT(back-propagation through time)算法將訓練誤差反向傳播,逐層逐步更新模型參數(shù);⑤使用Softmax激活函數(shù),將故障特征進行分類,完成故障診斷。詳細過程如下:
圖1 一維CNN-LSTM網(wǎng)絡結(jié)構圖Fig.1 1D CNN-LSTM network structure
(1)獲取振動信號,整理、標準化并分割成固定段,構建數(shù)據(jù)樣本;
(2)劃分訓練集、驗證集和測試集使用獨熱編碼(one-hot encoding)技術進行標簽化處理;
(3)使用網(wǎng)格搜索算法尋找最優(yōu)初始模型參數(shù),根據(jù)結(jié)果設置批大小(B),學習率(rL),迭代次數(shù)(N)等參數(shù);
(4)訓練集對神經(jīng)網(wǎng)絡進行訓練,模型提取特征信息并學習故障特征,并利用BPTT算法更新模型參數(shù);
(5)驗證集驗證模型訓練效果,根據(jù)驗證結(jié)果微調(diào)模型參數(shù);
(6)判斷網(wǎng)絡訓練次數(shù)m是否達到預先設定的迭代次數(shù)N,如果是,進行下一步,否則重復第4步;
(7)測試集測試已訓練好的模型性能,計算評價指標,輸出計算結(jié)果,結(jié)束計算。
基于CNN-LSTM的滾動軸承故障診斷流程如圖2所示。
圖2 基于CNN-LSTM的滾動軸承故障診斷流程圖Fig.2 Flow chart of rolling bearing fault diagnosis based on CNN-LSTM
以準確率作為模型分類故障診斷的量化指標,以損失函數(shù)函數(shù)值作為目標函數(shù)評價指標,評價模型預測值與真實值的接近程度。本文選用交叉熵損失函數(shù)來刻畫模型實際輸出(概率)與期望輸出(概率)的距離,計算值越小,表明兩者越接近。
試驗計算使用Google公司的Tensorflow框架,使用Python語言編程,計算機配置為Intel(R)Core(TM)i7-7700CPU@3.60GHz,4 GB運行內(nèi)存。
為了驗證提出模型在實際滾動軸承故障診斷中的有效性,本文使用Spectra Quest公司設計的機械故障綜合模擬試驗臺,如圖3所示,主要由驅(qū)動電機、轉(zhuǎn)速表、轉(zhuǎn)子基座、載荷和試驗軸承等組成。
圖3 機械故障綜合模擬試驗臺Fig.3 Mechanical fault comprehensive simulation test bench
傳感器采用PCB352C33單軸振動加速度傳感器,分別安裝在試驗軸承的水平方向和垂直方向進行同步數(shù)據(jù)采集。試驗軸承型號為ER12KCL,包括正常,外圈故障,內(nèi)圈故障和滾動體故障共4種軸承狀態(tài)類型,其中滾動體故障在軸承內(nèi)部,故障點不可見,具體如圖4所示。試驗軸承運行轉(zhuǎn)速為1 600 r/min,采樣頻率20.48 kHz,分別采集不同故障類型軸承運行狀態(tài)下的振動加速度數(shù)據(jù)。
(a)正常
將各運行狀態(tài)下采集到的軸承數(shù)據(jù)進行歸一化處理并分段,每段樣本振動信號包含1 024個數(shù)據(jù)點,軸承每類運行狀態(tài)包含1 000個樣本,數(shù)據(jù)集總計4 000個樣本,軸承4種運行狀態(tài)的時域波形圖如圖5所示。使用獨熱編碼技術對樣本數(shù)據(jù)進行標簽化處理,同一標簽下隨機選擇樣本并劃分訓練集、驗證集和測試集,構成最終數(shù)據(jù)集,具體描述如表1所示。
(a)正常
表1 4種軸承狀態(tài)數(shù)據(jù)集描述Table 1 Description of four kinds of bearing state dataset
參考文獻[16]和[18]中的深度卷積神經(jīng)網(wǎng)絡結(jié)構參數(shù)選取方法,并經(jīng)過反復驗算測試后調(diào)整模型參數(shù),最終得到的CNN-LSTM模型結(jié)構參數(shù)如表2所示。CNN卷積層采用寬卷積核,以便獲得較大的感受野,從而提取更多的特征信息并有效抑制噪聲干擾[16];池化層采用最大池化方式,保留最主要特征信息,同時對邊界部分進行全0填充,保證輸出尺寸不發(fā)生變化;采用雙層LSTM網(wǎng)絡,學習特征序列信息;最后采用adam優(yōu)化算法優(yōu)化交叉熵損失函數(shù),提高計算效率,減少訓練時間。
表2 模型結(jié)構設置Table 2 Model structure setting
深度神經(jīng)網(wǎng)絡模型超參數(shù)眾多,參數(shù)的設計與選擇直接影響網(wǎng)絡模型最終計算結(jié)果。本文選用網(wǎng)格搜索算法為故障診斷模型選擇最佳的初始學習率和批大小,以提高模型計算準確率。網(wǎng)格搜索算法的基本原理是將自變量c和g設定在一個區(qū)間內(nèi),按照一定步長將區(qū)間劃分為網(wǎng)格,逐一計算每個網(wǎng)格點上的約束函數(shù)值并計算在此網(wǎng)格點下的目標函數(shù)值,依次計算完所有網(wǎng)格點的目標函數(shù)值,從中選擇目標函數(shù)值最優(yōu)解下的自變量c和g作為此區(qū)間下的最優(yōu)參數(shù)值[19]。對于非線性規(guī)劃問題,網(wǎng)格搜索算法可描述為
minf(x)
Xc≤X≤Xg
(10)
式中:Xc和Xg分別是網(wǎng)格區(qū)域內(nèi)未知參數(shù)的邊界;X為計算時的未知參數(shù);f(x)表示目標函數(shù)。
現(xiàn)為測試數(shù)據(jù)集配置不同的學習率和批大小,批大小B分別取32、64、128和256,學習率分別取0.000 5、0.001、0.002、0.004、0.006,劃分網(wǎng)格,計算網(wǎng)格節(jié)點上目標函數(shù)值,根據(jù)計算結(jié)果選擇最優(yōu)的參數(shù)組合,并依次作為模型初始參數(shù)。其中所有訓練集和驗證集樣本全部計算完一次算作完成一次迭代,每次計算迭代次數(shù)N取30,計算5次取平均值,降低偶然誤差影響。網(wǎng)格搜索算法的計算結(jié)果如圖6所示。從圖6可以看出,當模型的批大小為32,學習率為0.001時計算結(jié)果最優(yōu),測試集平均準確率達到99.45%。原因在于批大小控制模型的準確度和收斂性,取值越小,模型的訓練和計算時間越高,相應的準確率會提高。學習率控制模型參數(shù)更新速度,學習率過小,模型訓練速度降低,過大則可能導致參數(shù)振蕩而造成精確度下降。
圖6 學習率與批大小對模型計算準確率的影響Fig.6 The influence of learning rate and batch size (B) on the accuracy of model calculation
為了測試提出模型的性能,在相同的數(shù)據(jù)集上使用多層感知器(MLP)、LSTM模型(單層LSTM、雙層LSTM以及3層LSTM)以及經(jīng)典CNN模型(LeNet5、AlexNet、VGG)進行軸承故障診斷,計算結(jié)果如表3所示。所有模型輸入均為原始滾動軸承一維振動信號,模型初始學習率和批大小均分別設置為0.001和32,每次計算30 epochs,計算5次取均值作為計算結(jié)果。驗證集驗證模型訓練效果,同時根據(jù)驗證結(jié)果微調(diào)模型參數(shù)。不同模型的驗證集平均準確率對比計算如圖7所示,模型驗證集的平均損失函數(shù)值隨著網(wǎng)絡訓練的變化如圖8所示。測試集測試已訓練完成模型的性能。
表3 不同模型的測試集平均計算結(jié)果Table 3 Average calculation results of test sets for different models
圖7 不同模型驗證集的平均準確率對比Fig.7 Comparison of average accuracy of different model verification sets
圖8 不同模型驗證集的平均損失函數(shù)值對比Fig.8 Comparison of average loss function values of different model verification sets
可以看出,本文提出的CNN-LSTM模型測試集平均準確率達到99.45%,高于其他模型計算的平均準確率,且損失函數(shù)值最低,說明模型的實際輸出與預測值之間差異較小。與其他模型相比,本文模型的總參數(shù)較低,僅高于MLP模型參數(shù),但MLP模型診斷準確率效果很差,僅65.90%。與準確率達到98.75%的LeNet5模型相比,本文CNN-LSTM模型參數(shù)更少,表明了本文模型的結(jié)構簡單且故障診斷率更高的優(yōu)越性。
為了進一步試驗提出模型在變工況數(shù)據(jù)集中的魯棒性,改變第3.1節(jié)中的試驗載荷(載荷標記為1),減少試驗載荷模擬空載工況(載荷標記為0),更改后的試驗臺如圖9所示。試驗操作不變,分別采集不同運行狀態(tài)軸承在1 600 r/min、1 200 r/min轉(zhuǎn)速下的振動信號,組合第3.2節(jié)中樣本數(shù)據(jù)共同構成變工況下的滾動軸承故障樣本數(shù)據(jù)集,并標簽化處理,總共10種類別,共10 000個樣本。每個類別隨機選擇樣本數(shù)據(jù)劃分訓練集、驗證集和測試集,具體樣本描述如表4所示。選用表3中模型故障診斷準確率超過80%的雙層LSTM、三層LSTM以及經(jīng)典CNN模型(LeNet5、AlexNet、VGG)作為與本文CNN-LSTM模型的對比,參數(shù)設置與前述相同。表5總結(jié)了不同模型在變工況下的滾動軸承故障診斷結(jié)果。模型的驗證集平均準確率和平均損失函數(shù)值分別如圖10和圖11所示??梢钥闯?本文模型不僅平均準確率最高,達到99.10%,并且損失函數(shù)值最低,同時模型易訓練且較穩(wěn)定。具體表現(xiàn)在迭代次數(shù)N大于10時,模型計算平均準確率基本不發(fā)生變化,能較好地應對變工況下的工作環(huán)境,魯棒性優(yōu)于單獨的LSTM網(wǎng)絡和經(jīng)典的幾種CNN網(wǎng)絡。
圖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 變工況下的不同模型測試集計算結(jié)果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 變工況下不同模型驗證集的平均損失函數(shù)值對比Fig.11 Comparison of average loss values of different model verification sets under variable working conditions
K折疊交叉驗證算法(K-FCV)[20]是機器學習中用于驗證模型參數(shù)和評價模型分類器的評價算法。K折疊交叉驗證算法的基本思想是將給定數(shù)據(jù)進行切分訓練子集、驗證子集和測試子集,重復利用,反復驗證、測試,從多次折疊計算中選擇較優(yōu)模型參數(shù),有效避免過擬合現(xiàn)象的出現(xiàn),最終得到模型的性能評價指標。因此,通過交叉驗證可以更好地選擇模型參數(shù)和評價模型的性能。
選用K折疊交叉驗證算法對模型計算結(jié)果進行評價,具體計算結(jié)果如表6所示。選用10次交叉驗證平均結(jié)果作為模型最終結(jié)果,詳細交叉驗證結(jié)果如圖12所示??梢钥闯?計算準確率達到99%以上的模型包括CNN-LSTM模型和AlexNet模型,其中CNN-LSTM模型計算準確率略高,達到了99.41%,模型誤差僅0.21%左右,且相比AlexNet模型,模型總參數(shù)少90%左右,訓練時間更短。試驗結(jié)果表明,本文提出的CNN-LSTM模型具有結(jié)構簡單、計算準確率高的優(yōu)勢,且神經(jīng)網(wǎng)絡訓練充分、計算結(jié)果穩(wěn)定、誤差較小,未出現(xiàn)過擬合或欠擬合的情況。
圖12 K折疊交叉驗證計算過程Fig.12 K-folding cross-validation calculation process
表6 不同模型的評價結(jié)果Table 6 Evaluation results of different models
本文提出了基于CNN-LSTM混合神經(jīng)網(wǎng)絡的滾動軸承故障智能診斷方法,結(jié)合CNN和LSTM網(wǎng)絡的優(yōu)勢,可以直接從原始振動信號中自適應提取特征信息,減少人工特征提取過程中帶來的不確定性,實現(xiàn)了端到端的滾動軸承故障分類模式。通過試驗測試數(shù)據(jù)得出如下結(jié)論:
(1)本文提出的CNN-LSTM方法在同工況下的滾動軸承故障模式分類準確率達99%以上,且比同等準確率下的其他模型結(jié)構更簡單,訓練時間更少,優(yōu)于其他幾種網(wǎng)絡;
(2)通過網(wǎng)格搜索算法計算得到在一定步長設置下初始批大小和學習率的較優(yōu)取值分別為32和0.001,并通過不同轉(zhuǎn)速,不同載荷的變工況下的滾動軸承試驗表明,CNN-LSTM方法的平均準確率達99%以上,損失函數(shù)值比其他分類模型更低,模型能較好適應變工況下的工作環(huán)境;
(3)通過K折疊交叉驗證算法表明提出的CNN -LSTM模型平均計算準確率達到99.41%,模型誤差僅0.21%左右,且模型訓練較充分,未出現(xiàn)過擬合和欠擬合情況。