田科位,董紹江,姜保軍,裴雪武,湯寶平,胡小林,趙興新
(1.重慶交通大學 機電與車輛工程學院 重慶 400074;2.重慶大學 機械傳動國家重點實驗室 重慶 400030;3.重慶工業(yè)大數(shù)據(jù)創(chuàng)新中心有限公司 重慶 400056;4.重慶長江軸承股份有限公司 重慶 401336)
滾動軸承作為旋轉(zhuǎn)機械的關(guān)鍵零部件之一,其健康狀態(tài)對整個機械設(shè)備的性能、穩(wěn)定性和使用壽命有巨大的影響[1]。在實際工作過程中,由于工作環(huán)境的變化和不可避免的噪聲干擾,很難提取和概括特征。因此,建立一種準確、魯棒的滾動軸承故障診斷模型具有重要意義。
基于數(shù)據(jù)驅(qū)動的智能故障診斷方法逐漸成為故障診斷領(lǐng)域的主流應用[2]。Qu等[3]利用雙樹復小波包變換與多分類器相結(jié)合的方法對滾動軸承進行了診斷;Ali等[4]使用經(jīng)驗模態(tài)分解和人工神經(jīng)網(wǎng)絡(luò),對軸承的故障診斷進行了研究;史慶軍等[5]提出了基于經(jīng)驗模態(tài)分解和局部均值分解方法相結(jié)合,將特征量矩陣輸入到支持向量機實現(xiàn)軸承故障檢測。這些方法雖然擁有不錯的性能,但是都極度的依賴于故障診斷專家的經(jīng)驗和知識,而且針對不同類型的故障所使用的特征提取方法也不盡相同。
近年來,深度學習技術(shù)在計算機視覺,語音識別和自然語言處理等多個領(lǐng)域都取得了巨大的成功。深度學習方法可以從振動信號中自動提取故障特征[6],因此也被廣泛應用在滾動軸承故障診斷領(lǐng)域。Abdeljaber等[7]提出了一種自適應一維深度神經(jīng)網(wǎng)絡(luò)模型,用來對旋轉(zhuǎn)機械進行檢測和定位結(jié)構(gòu)損傷;Liu等[8]利用遞歸神經(jīng)網(wǎng)絡(luò)對滾動軸承的故障進行分類,并采用基于門控遞歸單元的降噪自動編碼器來提高故障分類的準確性;Hao等[9]提出了一種基于一維卷積長短時記憶網(wǎng)絡(luò)的多傳感器方法,實現(xiàn)了軸承變負載的故障診斷。
以上這些模型在軸承故障診斷方面取得了不錯的效果,但是沒有同時考慮到在實際的工業(yè)應用中不可避免的噪聲干擾以及機械系統(tǒng)在載荷發(fā)生變化的問題?;谝陨显颍疚奶岢隽艘环N基于改進深度殘差網(wǎng)絡(luò)的軸承故障診斷方法。該模型在殘差神經(jīng)網(wǎng)絡(luò)殘差塊中引入了SENet結(jié)構(gòu)增強各個特征提取通道之間的聯(lián)系,提高在噪聲和變負載時故障特征的提取能力;同時使用激活函數(shù)LReLU和Dropout技巧提高模型抗干擾能力。此外,為了抑制模型的過度擬合,對原始訓練樣本添加了噪聲。最后通過對比實驗證明,該模型在噪聲環(huán)境和負載變化時仍有較高的故障識別精度。
He等[10]提出了殘差神經(jīng)網(wǎng)絡(luò)(residual neural network,Resnet),Resnet的核心思想是引入殘差模塊(residual building block,RBB)來學習殘差,殘差學習有效解決了由于神經(jīng)網(wǎng)絡(luò)深度增加性能反而下降的問題。
卷積層是使卷積神經(jīng)網(wǎng)絡(luò)(convolution neural network,CNN)與傳統(tǒng)的完全連接的神經(jīng)網(wǎng)絡(luò)不同的關(guān)鍵組件。卷積層中的卷積核運算比完全連接層中的轉(zhuǎn)換矩陣具有更少的參數(shù)。輸入特征圖和卷積核之間的卷積(通過添加偏差項)運算可以表示為:
(1)
式中:xi是輸特征圖的第i個通道;yj是輸出特征圖的第j個通道;k是卷積核;b是偏置項;Mj是用于計算輸出特征圖第j個通道的集合。
批量歸一化(batch normalization,BN)是針對內(nèi)部協(xié)方差偏移問題而提出的一種歸一化方法。與一般的標準化方法不同,批量標準化是嵌入在深度神經(jīng)網(wǎng)絡(luò)內(nèi)部層與層之間的一種運算。BN的計算過程表示為:
(2)
(3)
(4)
yi=γzi+β
(5)
式中:xi和yi分別表示批處理中第i個觀測值的輸入和輸出特征;Nbatch是分類任務(wù)中每個批次樣本的個數(shù);γ和β是兩個可訓練的參數(shù),可以自適應學習到更合適的特征分布;ε是接近零的常量。
ReLU作為最常見的激活函數(shù),解決了S型局部梯度爆炸和梯度消失的問題,加速了神經(jīng)網(wǎng)絡(luò)的收斂。ReLU的算法如下:
y=max(0,x)
(6)
式中:x和y分別是ReLU激活函數(shù)的輸入和輸出。
殘差模塊(residual building block,RBB)是Resnet的核心,RBB通過使用快捷連接跳過卷積層塊來實現(xiàn),避免了梯度爆炸和消失,有助于構(gòu)造更深的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),改善故障診斷的最終性能。
卷積層塊F(x)的執(zhí)行路徑為“輸入x→BN層→激活函數(shù)ReLU→卷積層→BN層→激活函數(shù)ReLU→卷積層→輸出F(x)”[10]。當卷積層塊的輸入與輸出維度相同時快捷連接的輸出值就為輸入值x,殘差模塊的最終輸出結(jié)果如式(7)所示;當輸入與輸出的維度不同時,快捷連接需要使用一個卷積核大小為1×1的卷積層來匹配輸出結(jié)果的維度,從而得到快捷連接的輸出H(x),最終輸出結(jié)果如式(8)所示。
y=F(x)+x
(7)
y=F(x)+H(x)
(8)
ReLU作為最常見的的激活函數(shù),當輸入的一維滾動軸承振動信號為負時,它會舍去這類振動信號,削弱了模型對軸承故障的識別能力。對此,本文方法采用LReLU作為激活函數(shù)來解決當輸入為負時ReLU產(chǎn)生的問題[11]。具體算法如式(9):
(9)
式中:x和y分別是LReLU激活函數(shù)的輸入和輸出;α是根據(jù)實際經(jīng)驗來取值,文獻[11]通過大量的實驗證明了α取值范圍在0~0.5時效果達到最佳。
Hu等[12]提出了擠壓和激勵(SENet)網(wǎng)絡(luò)結(jié)構(gòu),它可以通過自動獲得每個通道的重要性,增強各個通道之間的聯(lián)系,從而達到提升模型性能的目的。該結(jié)構(gòu)的核心是擠壓(Squeeze)和激勵(Exctation)兩大操作。
Squeeze操作是對輸入的特征圖進行全局池化,將每個特征圖壓縮為一個具有全局感受野的實數(shù)。具體算法如式(10)所示:
(10)
式中:xi代表輸入為尺寸為H×W的第i個特征圖。
Exctation操作主要是由兩個全連接層和2個激活函數(shù)組成,可以幫助捕獲通道相關(guān)性,生成對應通道的權(quán)重。算法如式(11)所示:
yi=Fex(Fsq(xi),ω)=σ(ω2δ(ω1Fsq(xi)))
(11)
式中:ω1表示第一個全連接層計算;ω2表示第二個全連接層計算;Fsq(xi)表示Squeeze操作過后的輸出值;δ表示激活函數(shù)ReLU;σ為Sigmoid函數(shù)具體算法如式(12):
(12)
式中:x表示經(jīng)過2次全連接計算的輸出值。
交叉熵損失函數(shù)Softmax一般作為最后輸出層的激活函數(shù),它將神經(jīng)網(wǎng)絡(luò)的輸出值固定在(0,1)之間以表示不同事件發(fā)生的概率,文獻[13]詳細介紹了交叉熵的執(zhí)行過程。算法如式(13)所示:
(13)
式中:Nclass表示分類任務(wù)所涉及的的類別,xj表示上一層的第j個輸出;yj表示神經(jīng)網(wǎng)絡(luò)的第j個預測值。
全局平均池化(global average pooling,GAP)是一種對特征圖求平均值的操作,可以大大減少神經(jīng)網(wǎng)絡(luò)訓練時的參數(shù),加快神經(jīng)網(wǎng)絡(luò)的計算速度,詳細計算過程見參考文獻[14]。
如圖1(a),(b)分別為兩種改進的殘差模塊RBB-1和RBB-2。改進的核心部分是在殘差模塊的第二個卷積層之后添加了分支SENet結(jié)構(gòu),生成了對應通道的權(quán)重,最后通過與第二個卷積層的輸出結(jié)果相乘;與此同時將LReLU作為激活函數(shù)。
圖1 改進的殘差模塊Fig.1 Improved Residual building block
本文所提改進深度殘差神經(jīng)網(wǎng)絡(luò)軸承故障診斷模型結(jié)構(gòu)如圖2所示。首先在原始信號樣本中添加了噪聲信號作為輸入,增大樣本的同時還可以避免網(wǎng)絡(luò)參數(shù)過多引起的過擬合問題,提高模型的魯棒性[15];然后信號依次經(jīng)過卷積層、最大池化層、改進的殘差塊、Dropout、全局平均池化,最終通過Softmax輸出故障類別,進而得出診斷結(jié)果。
圖2 改進深度殘差網(wǎng)絡(luò)網(wǎng)絡(luò)模型Fig.2 Improve the network model of deep residual network
圖2中改進的殘差堆疊塊由4個改進殘差模塊堆疊而成,加深了神經(jīng)網(wǎng)絡(luò)模型的深度,能夠更好的提取故障信號深層次的特征。Dropout增加了模型的抗干擾能力。最后使用全局平均池化來代替全連接層,減少模型訓練時的參數(shù),加快了模型的計算速度。
針對在實際應用中機械系統(tǒng)負載變化和噪聲的干擾,本節(jié)設(shè)置不同的實驗對本文方進行驗證,并與不同的方法進行對比,證明了本文方法的優(yōu)越性。
實驗采用的軸承數(shù)據(jù)來自美國凱斯西儲大學(Case Western Reserve University,CWRU)[16],實驗軸承的型號為SKF6205電機軸承,信號的采樣頻率為12 kHz。實驗軸承具有球體故障,內(nèi)圈故障和外圈故障三種故障類型,每種故障類型的故障直徑分別為0.177 8 mm,0.355 6 mm和0.533 4 mm,最終形成包含正常狀態(tài)在內(nèi)的十類故障。在本文實驗中,通過重疊采樣的方式增大樣本集,每種故障的樣本數(shù)量為500,每個數(shù)據(jù)樣本包含2 048個數(shù)據(jù)點,按1、2和3 hp負載制作成分別包含5 000個數(shù)據(jù)樣本的數(shù)據(jù)集A、B、C。數(shù)據(jù)集D為A、B、C的并集。按照比例4∶1無交集的將每個數(shù)據(jù)集劃分為訓練集和測試集,其中訓練集用于模型的訓練,測試集用于模型的測試。
仿真實驗使用的深度學習框架為Tensorflow,編程語言為Python,在windows7中運行。實驗過程采用Adam優(yōu)化算法更新網(wǎng)絡(luò)訓練參數(shù),迭代次數(shù)為3 000,每個批次的樣本數(shù)量為50,學習率設(shè)置為0.001,衰減率為0.9,Dropout為0.5,激活函數(shù)為LReLU。本文的模型參數(shù)設(shè)置如表1。
表1 模型參數(shù)設(shè)置Tab.1 Model parameter setting
本小節(jié)分別使用構(gòu)建好的數(shù)據(jù)集A、B、C、D進行實驗。由于在訓練神經(jīng)網(wǎng)絡(luò)模型的過程中權(quán)值的初始化是隨機的。為了避免實驗結(jié)果受其影響,每個模型在每個數(shù)據(jù)集上重復做五次實驗,然后取其平均值。
3.3.1 全局平均池化與全連接層運行時間對比
本文模型采用全局平均池化代替了全連接層。實驗選取選取數(shù)據(jù)集D進行作為訓練,訓練輪數(shù)設(shè)置為3 000 輪,訓練時間如表2所示。
表2 訓練時間對比Tab.2 Training time comparison
從表2看出,訓練輪數(shù)同時為3 000輪時,由于全局平均池化減少了模型計算的參數(shù)量,訓練時間較全連接層減少了14.3 s。
3.3.2 噪聲環(huán)境下故障診斷性能分析
在實際的工作環(huán)境中,傳感器所測得的振動信號不可避免的會受到噪聲的污染,造成振動信號中的故障信息被掩蓋。如圖3所示,可以看出在原始信號中加入了信噪比為-4 db的高斯白噪聲后幅值發(fā)生了改變,原始信號中的故障特征被嚴重淹沒,很難從復合信號中識別出原始信號的故障類型。對此,本小節(jié)選取數(shù)據(jù)集D進行實驗,通過在測試樣本中添加不同信噪比的高斯白噪聲進行測試。
圖3 原始信號、噪聲信號及信噪比為-4 db的復合信號Fig.3 The composite signal with the original signal,noise signal and SNR of -4 dB
為了檢驗本文網(wǎng)絡(luò)模型改進部分的效果,設(shè)置了三個變量。變量一設(shè)置為使用的激活函數(shù)為ReLU;變量二設(shè)置為沒有使用Dropout技巧;變量三設(shè)置為不添加SENet網(wǎng)絡(luò)模塊,實驗結(jié)果如圖4所示??梢姡總€改進部分都提升了本文模型在噪聲環(huán)境中軸承故障識別的準確率。其中SENet網(wǎng)絡(luò)模塊的添加起到了最關(guān)鍵的作用,在信噪比為-4 db的強噪聲環(huán)境中軸承故障識別率提升了7.19%。
圖4 改進部分在噪聲環(huán)境的故障識別準確率Fig.4 Improve the fault identification accuracy in noisy environment
為了驗證本文模型具有較好的抗干擾能力,分別與傳統(tǒng)Resnet(參數(shù)設(shè)置與本文模型相同)、TICNN[17]、WDCNN[18]三種模型進行對比。實驗結(jié)果如圖5所示,本文模型的故障識別準確率均為最高。在SNR=-4 db環(huán)境中Resnet、TICNN及WDCNN的識別準確率分別為80.43%、82.05%和92.65%,而本文模型為93.4%,對比其他三種模型分別提高了12.97%,10.9%和0.75%。
圖5 不同模型在噪聲環(huán)境中的故障識別準確率Fig.5 Fault identification accuracy of different models in noisy environment
為進一步分析本文模型在噪聲環(huán)境中,不同位置的故障識別準確率對診斷結(jié)果的影響,表3展示了在SNR=0 db環(huán)境中,不同位置的故障識別準確率。可見,本文模型對正常狀態(tài)下的軸承識別率達到了100%;軸承內(nèi)圈故障和外圈故障的識別率都達到了99%以上;而滾珠故障的識別準確率稍遜,是由于0.355 6 mm滾珠損傷的故障識別率僅為96.88%,降低了對滾珠故障的識別準確率,影響了最終的診斷結(jié)果。
表3 不同位置的故障識別準確率Tab.3 Fault identification accuracy of different locations
3.3.3 負載變化時故障診斷性能分析
在實際的工作環(huán)境中,滾動軸承的工作負載發(fā)生改變是不可避免的。圖6顯示了不同負載下的時域圖,從中可以看出不同負載振動信號的幅值和相位都有所差異。深度學習是一種通過訓練大量數(shù)據(jù),達到自適應提取特征的方法,當負載發(fā)生變化時相同類型的故障特征減少,導致深度學習診斷模型的診斷性能降低。
圖6 不同負載的振動信號Fig.6 Vibration signals of different loads
為了體現(xiàn)本文方法在負載變化時具有較好的軸承故障識別準確率,分別與Resnet(參數(shù)設(shè)置與本文模型相同)、TICNN、WDCNN的實驗結(jié)果進行對比分析。負載變化是指在1、2和3 hp對應數(shù)據(jù)集A、B、C中,用一種數(shù)據(jù)集做訓練樣本,另外兩種數(shù)據(jù)集作為測試樣本,例如A→B,A→C表示用數(shù)據(jù)集A作為訓練樣本,數(shù)據(jù)集B、C進行測試。實驗結(jié)果如圖7所示。
由圖7可知本文模型在負載變化的故障識別率均達到了94.38%以上,而Resnet,TICNN和WDCNN的最低識別率分別為93.6%、89.2%、88.3%。TICNN和WDCNN在不同跨負載下的故障識別率波動范圍很大,例如C→B中WDCNN模型的故障識別率達到了99.99%,而在C→A中的識別率僅僅只有88.3%,說明WDCNN網(wǎng)絡(luò)模型的泛化能力稍遜。本文模型在跨負載測試時的整體平均識別率達到了98.11%,相對Resnet,TICNN和WDCNN三種模型分別提高了1.83%、2.61%、2.21%。這說明本文模型具有更好的泛化能力。
圖7 負載變化時故障識別準確率Fig.7 Fault identification accuracy when load changes
3.3.4 負載變化時的抗噪性分析
針對滾動軸承工作時,同時伴隨著負載的變化和噪聲干擾的問題。本小節(jié)設(shè)置了兩個實驗對本文模型進行驗證。實驗一設(shè)置為用兩種負載的數(shù)據(jù)樣本同時輸入模型進行訓練,另一負載下的數(shù)據(jù)樣本進行測試,例如AB→C表示用數(shù)據(jù)集A和B同時輸入模型進行訓練,再用數(shù)據(jù)集C進行測試。實驗二設(shè)置為用一種負載的數(shù)據(jù)樣本進行訓練,另外兩種負載的數(shù)據(jù)樣本分別進行測試,例如A→B,A→C表示用數(shù)據(jù)集A進行訓練,數(shù)據(jù)集B,C進行測試。
在實驗一中,分別使用本文模型、Resnet和卷積膠囊[19]模型的實驗結(jié)果進行對比分析,實驗結(jié)果如表4所示。
從表4可知,在信噪比相同的噪聲環(huán)境中,本文模型在負載變化時的軸承故障平均識別準確率均大于Resnet和卷積膠囊模型。特別是在SNR=-4 db的強噪聲環(huán)境中,本文模型的軸承故障平均識別準確率達到了92.18%相較于Resnet和卷積膠囊網(wǎng)絡(luò)分別提高了9.4%、6.63%。在SNR為-4~4 db,負載發(fā)生變化時,本文模型對軸承故障的平均識別率達到了97.36%,相較于Resnet和卷積膠囊模型提高了4.04%、2.36%。表明本文模型能提取更細微的特征,在信號受到噪聲干擾和負載變化時擁有較好的故障識別準確率。
表4 負載變化時不同模型在不同信噪比測試信號的準確率Tab.4 Accuracy rate of different MODELS testing signals with different SNR when load changes %
在實驗二中,使用Resnet模型的實驗結(jié)果與本文模型進行對比分析,實驗結(jié)果如圖8中(a),(b)所示。
圖8中-4、-2、0、2、4表示測試時加入高斯白噪聲的信噪比。在負載變化相同情況下,本文模型在信噪比-4~4 db的噪聲環(huán)境中,軸承故障平均識別率均高于Resnet模型。以負載變化A→B為例進行分析,本文模型的平均識別率達到了97.78%,相較于Resnet模型提高了2.03%。在信噪比為-4 db的強噪聲環(huán)境中,本文模型的軸承故障識別準確率達到了92.27%,而Resnet模型的識別準確率僅有87.51%,相比之下提高了4.76%。同時本文模型同時在負載變化和-4 db到4 db噪聲環(huán)境下的整體平均識別準確率達到了95.02%,相較于Resnet網(wǎng)絡(luò)模型相比提高了3.5%。
圖8 噪聲環(huán)境下負載變化時不同模型的軸承故障識別準確率Fig.8 Diagnosis results of different models under variable load noise environment
通過實驗一和實驗二在噪聲環(huán)境中進行不同的跨負載實驗可得:本文模型在噪聲環(huán)境和負載變化時仍具有較高的故障識別準確率,說明本文模型具有較好的抗干擾能力和泛化能力。
3.3.4 本文模型實驗結(jié)果可視化
本小節(jié)選用t-SNE(t-distributed stochastic neighbor embedding)算法,分別將卷積層、殘差堆疊快和GAP中的高維數(shù)據(jù)降低到二維進行可視化,展示本文模型訓練過程中特征提取過程。由于篇幅有限,僅展示在SNR=0 db時通過1 hp負載下的數(shù)據(jù)進行訓練好的模型,使用2 hp負載下的1 000個數(shù)據(jù)樣本進行測試的特征分布可視化圖。
由圖9可以看出,隨著網(wǎng)絡(luò)層數(shù)的深入,特征變得越來越可分割,特別是在通過改進殘差堆疊塊Block1之后,各類特征點的分布有了顯著的變化,使得各個類別的特征點的分布有了明顯的區(qū)分,說明改進的殘差堆疊塊具有較強的故障識別能力。從最后的GAP層可以看出,本文模型通過1 hp負載下的數(shù)據(jù)樣本訓練得到的模型,在SNR=0 db的噪聲環(huán)境中使用2 hp負載下的數(shù)據(jù)樣本進行測試,仍具有較好的軸承故障識別能力,驗證了本文模型在噪聲環(huán)境中和負載變化時具有較好的故障分類能力。
圖9 測試樣本的特征分布圖Fig.9 Feature distribution of test samples
針對滾動軸承在負載變化、噪聲環(huán)境中故障診斷準確率低、抗噪性能及泛化能力弱的問題,提出了一種改進的殘差神經(jīng)網(wǎng)絡(luò)方法。本文得出的結(jié)論如下:
(1)本文構(gòu)建了一種基于殘差神經(jīng)網(wǎng)絡(luò)與SENet相結(jié)合的改進深度殘差神經(jīng)網(wǎng)絡(luò)軸承故障診斷模型。通過在殘差塊中添加SENet網(wǎng)絡(luò)結(jié)構(gòu),使模型關(guān)注與目標相關(guān)的特征通道并弱化其他無關(guān)的特征通道,從而達到提升模型性能的目的。使用全局平均池化代替了全連接層,加快了模型的訓練速度。在訓練過程中,為了抑制過擬合,對訓練樣本進行了加噪處理,同時使用了LReLU函數(shù)和Dropout技巧來提升了模型的抗干擾能力。
(2)采用了軸承數(shù)據(jù)集進行了實驗驗證。在信噪比為-4~4 db的噪聲環(huán)境中,本文模型的故障識別準確率均高于其他方法,在SNR=-4 db的高噪聲環(huán)境中,本文模型的識別率也達到了93.4%;在負載變化實驗中,本文模型的整體平均識別率達到了98.11%;在軸承負載變化時的抗噪性分析實驗中,通過兩個實驗證明本文模型的故障識別準確率均達到了最高,表明了本文模型具有較好的抗干擾能力和泛化能力。