唐貴基, 田寅初, 田 甜
(華北電力大學(保定) 機械工程系,河北 保定 071003)
近年來,隨著深度學習在圖像和語音識別等領域的成功應用[1],相較于傳統診斷方法,在提取特征、識別準確率等方面具有明顯優勢。卷積神經網絡(convolutional neural network,CNN)目前在醫學、認知科學和人工智能領域得到了廣泛應用:文獻[2]使用一維CNN自適應提取滾動軸承故障信號的故障特征;文獻[3]直接將滾動軸承故障信號作為輸入,使用CNN進行軸承多故障診斷;文獻[4]通過CNN和振動數據的頻域特征對齒輪箱進行故障診斷;文獻[5]提出了權值求和和最大尺度最大池化策略,對故障軸承進行診斷,驗證了平移不變CNN的有效性;文獻[6]將滾動軸承振動信號的頻譜圖作為輸入通過CNN自適應提取故障特征;文獻[7]通過短時傅里葉變換得到振動信號的時頻圖并將其作為CNN的輸入,一定程度上實現了端到端的軸承故障診斷;文獻[8]使用深度卷積自編碼器對振動信號時頻圖進行去噪,然后利用CNN對去噪后的圖像進行故障分類;文獻[9]對CNN全連接層進行改進,使用改進CNN算法進行滾動軸承故障識別;文獻[10]通過基于粒子群優化的細菌覓食方法改進AlexNet,實現了滾動軸承16種故障狀態的診斷。以上方法為滾動軸承故障診斷提供了良好借鑒。
但在實際工程應用中,用于訓練的樣本數據往往受其樣本大小、維度和總體表示形式的影響。因此,神經網絡模型的訓練效果經常被有限的數據集和預測問題所限制。而故障狀態種類越多,所需要的訓練樣本數量相應就需要增加。Adaboost(自適應提升)算法可以更加充分地利用數據集,通過提高被上一個基分類器錯分樣本的權重來提高下一個基分類器對于錯分樣本的準確率,并且最終將所有的基分類器按不同的權重組合為強分類器。為了使用有限的數據集得到更好的分類效果,進一步實現多工況狀態下更多故障的分類,本文綜合Adaboost算法在集成學習領域和AlexNet在圖像分類領域各自的優勢,以軸承故障信號時頻圖為對象,提出了一種基于AlexNet-Adaboost的多工況滾動軸承故障識別方法。
傳統的傅里葉變換是一種全局變換,無法將信號的時域特征和頻域特征聯系起來。小波變換具有良好的時頻局部化特性,可以表現出振動信號的頻域特征而不丟失其時域特征[11]。小波變換通過小波母函數的平移和伸縮得到一系列小波序列,以此將信號分解為不同的頻率分量,具體過程可表示為
(1)
式中:ψ(t)為小波母函數;a為尺度因子并假定a>0;b為平移因子。
對于任意二次方可積函數f(t)∈L2(R),其連續小波變換定義為
(2)
AlexNet由2012年ImageNet競賽冠軍獲得者Hinton和他的學生Krizhevsky等[12]設計。AlexNet是第二代CNN,在第一代CNN的基礎上加深了網絡架構,能夠提取更豐富更高維的圖片特征。AlexNet主要包含8層:前5層是卷積層;后3層是全連接層,最后1層的輸出經過Softmax函數,產生1 000類標簽的概率分布。詳細結構如圖1所示,不同于第一代CNN,AlexNet使用兩個GPU進行訓練,其網絡結構的上下部分完全相同,只在特定層進行信息交互以完成對圖片的并行處理。AlexNet已廣泛應用于圖像識別、圖像檢索、語音識別等領域。

圖1 AlexNet結構圖Fig.1 AlexNet structure diagram
Adaboost算法由Freund等[13]開發,Adaboost會在訓練數據集中產生一系列權重,從而對訓練數據進行調整以生成多個假設。在每次迭代中,調用學習算法以最小化訓練數據集上的加權誤差,并將其應用于更新訓練數據集的權重。權重變化的影響是將更多的權重放在被誤分類的訓練數據上,將更少的權重放在正確分類的訓練數據上。因此,隨著迭代的進行,Adaboost會逐步構造更難的學習問題。Adaboost算法的過程如下:

步驟2迭代過程m=1~M
(a) 使用帶權重wi的訓練數據來訓練分類器Tm(x)
(b) 計算分類結果誤差
(3)
(c) 計算權重系數
(4)
(d) 更新權重
wi+1=wi·exp{αm·Ⅱ[ci≠Tm(x)]},i=1,2,…,m
(5)
(e) 歸一化wi;
步驟3輸出預測值
(6)
原始的Adaboost算法僅限于二分類問題,Zhu等[14]對Adaboost算法進行了改進,使用多分類指數損失函數的階段性加法建模,改進后的Adaboost算法與原算法非常相似,主要區別為權重系數計算公式
(7)
式中,K為總分類數。
本文取1 024個采樣點為一個樣本,通過重疊采樣來增加樣本數量[15]。假設原數據數列數據點個數為M,樣本長度為N,采樣偏移量為ΔX,則該數列可以產生樣本個數為Y,其公式為
(8)
使用‘cmor3-3’小波,尺寸序列長度為256,采樣頻率為12 kHz,分別對正常軸承、內圈故障軸承、外圈故障軸承和滾動體故障軸承的振動信號做小波變換繪制時頻圖,去除時頻圖周邊的坐標、文字、能量條部分,將所得到的時頻圖尺寸調整為227×227。
AlexNet雖然擁有更強的學習能力,但是它的網絡結構也更為復雜,且需要兩個GPU并行運算以及上百萬個訓練樣本,相應的時間成本和經濟成本會大大增加。相對于上千種類的圖片分類問題,數十種類的滾動軸承故障識別屬于少類別的任務,因此可以在避開百萬級數據樣本和多個GPU并行運算的要求下,通過精簡AlexNet的結構的同時運用它包含的部分新技術來解決滾動軸承故障識別問題[16]。本文使用的AlexNet結構如圖2所示。
隨機梯度下降(stochastic gradient descent,SGD)算法是目前使用最多的梯度下降優化算法之一,SGD算法通??梢哉业阶顑灲猓菚ㄙM遠多于自適應優化算法的時間,且SGD算法非常依賴于魯棒的初始化值以及退火策略。而自適應優化算法可以在不調參的情況下使用更短的時間得到較好的效果,常用的自適應優化算法有Adadelta、RMSprop和Adam等,上述3種算法非常相似,在相同的情況下都能得到較好的結果[17]。本文使用收斂速度最快的RMSprop算法來訓練模型。
vi=β·vi+(1-β)(?wi)2
(9)
(10)
式中:i為迭代次數;α為全局學習率;vi為累計平方梯度;β為衰減率; ?wi為梯度累計量;wi為被更新的權值。
本研究方法的流程圖如圖3所示。

圖3 AlexNet-Adaboost算法流程圖Fig.3 AlexNet-Adaboost algorithm flow chart
本研究方法的具體步驟如下:
步驟1采集滾動軸承在不同工況、不同狀態下的振動信號;
步驟2通過小波變換將一維的振動信號轉化為227×227尺寸的二維時頻圖;

步驟4使用帶權重的訓練數據來訓練第一個基分類器;
步驟5使用測試數據集計算基分類器的分類結果誤差,并計算權重系數;
步驟6根據權重系數更新訓練數據集的權重,提高誤分類樣本的權重,并將權重歸一化;
步驟7使用更新權重后的訓練數據集訓練下一個基分類器;
步驟8重復步驟5~步驟7直到所需基分類器全部訓練完成;
步驟9將所有的基分類器按權重系數組合成最終的強分類器;
步驟10使用最終的強分類器進行多工況下的滾動軸承故障識別。
分析過程的具體流程如圖4所示。

圖4 分析過程流程圖Fig.4 Analysis process flow chart
本文所用振動數據為美國凱斯西儲大學軸承數據庫的滾動軸承振動加速度數據[18]。試驗數據包括正常、內圈故障、外圈故障和滾動體故障信號,在4種工況(電動機負載分別為735.498 75 W,1 470.997 50 W,2 206.496 25 W)下各收集3種損傷直徑(0.177 8 mm,0.355 6 mm,0.533 4 mm)數據,總共為40種狀態如表1和表2所示。每種狀態收集450個樣本,共收集18 000個訓練樣本,分為15 000個訓練樣本和3 000個測試樣本。

表1 軸承故障狀態標簽Tab.1 Bearing fault status label

表2 軸承正常狀態標簽Tab.2 Bearing normal status label
由于每種狀態樣本數量較少,為了增加模型的泛化能力,防止過擬合,在訓練前進行數據增強,每張圖片的高度和寬度按10%比例隨機豎直水平偏移,并隨機對整張圖片進行水平翻轉。除數據增強外,訓練時會進行樣本重采樣處理,每個訓練階段實際使用的樣本數量為真實樣本的三倍。
滾動軸承的主要作用之一是承載負荷,因此當電動機負載發生變化時,不得不考慮滾動軸承故障識別方法是否仍然具有較高的識別準確率,所以要求識別方法有較好的泛化能力。對此,本文使用AlexNet-Adaboost、CNN-Adaboost、AlexNet、CNN和傳統機器學習方法SVM(support vector machine)分別在單工況和多工況下進行故障識別進行對比試驗。對比試驗使用同樣的數據集分別測試使用不同方法的識別準確率。同時,為排除試驗的偶然性,對每種方法分別運行5次的準確率取平均值得到最終結果。
SVM的最優參數通過在單獨劃分出的驗證數據集上進行網格搜索得到。本文方法使用的基分類器與AlexNet方法相同,結構見圖2;CNN-Adaboost方法使用的基分類器和CNN方法相同,結構如圖5所示。AlexNet模型和CNN模型都通過RMSprop算法來訓練,全局學習率設置為0.000 1,衰減率設置為0.000 001,批量尺寸設置為32,迭代次數設置為15。

圖5 CNN結構圖Fig.5 CNN structure diagram
首先,分析單工況下的滾動軸承故障識別,單工況數據集包括在電動機負載為0的情況下滾動軸承不同故障部位不同損傷直徑共10種狀態。故障識別結果如圖6所示,使用AlexNet或者CNN作為基分類器通過Adaboost集成得到的強分類器準確率都為100%;AlexNet方法和CNN方法準確率分別為99.73%和98.13%;SVM準確率為99.33%??梢钥闯?,在單工況下進行故障識別較為簡單,幾種方法都可以得到較好的識別效果。

圖6 單工況下不同方法的故障識別準確率Fig.6 Fault recognition accuracy of different methods under single working condition
其次,分析多工況下的滾動軸承故障識別,多工況數據集包括滾動軸承在4種工況下滾動軸承不同故障部位不同損傷直徑共40種狀態。結果如圖7所示,使用AlexNet作為基分類器時,5個基分類器集成得到的強分類器準確率為98.43%,3個基分類器進行集成得到的準確率為98.2%;使用CNN作為基分類器時,5個基分類器集成得到的強分類器準確率為95.1%,3個基分類器進行集成得到的準確率為93.87%;AlexNet和CNN準確率分別為90.87%和81.33%;SVM方法準確率為93.57%??梢钥闯?,在多工況下進行故障識別,本文方法仍有高的準確率,而其他幾種方法的準確率都顯著降低。綜述,本文方法準確率最高,且具有較好的泛化性能。

圖7 多工況下不同方法的故障識別準確率Fig.7 Fault recognition accuracy of different methods under multiple working conditions
本文提出了一種基于AlexNet-Adaboost相結合的滾動軸承故障識別方法。構造不同數量的AlexNet模型作為基分類器,形成最終的AlexNet-Adaboost強分類器,實現了多工況條件下滾動軸承的40種類別的狀態識別。該方法可以通過提高被前一個基分類器錯誤分類樣本的權重并用來訓練下一個基分類器,最終提高整體樣本的識別準確率,充分利用有限的數據集得到更高的準確率。與CNN-Adaboost、AlexNet、CNN和SVM方法相比,所提方法應用于凱斯西儲大學軸承數據集進行滾動軸承故障識別,在多工況條件下對滾動軸承不同位置、不同損傷程度的40種類故障識別準確率最高,且相對于其他方法有更好的泛化能力,證明了該方法的有效性。