王昊天
(重慶交通大學機電與車輛工程學院,重慶 400074)
滾動軸承被認為是旋轉機械中的關鍵部件之一,許多機械設備停工都是因其故障引起的,其健康狀況直接關系到整個機械系統(tǒng)的運行。為使機械設備穩(wěn)定工作,減少非生產時間,避免發(fā)生災難性故障對機器和人的生命造成損害,應對滾動軸承故障進行準確診斷和分析。
振動信號被廣泛應用于滾動軸承故障診斷中,對信號進行優(yōu)化處理提取特征,是進行故障診斷的主要手段。滾動軸承的振動信號是非平穩(wěn)、非線性的,如何從中提取有效故障信息,準確診斷并識別軸承狀態(tài)是當前研究的熱點。針對振動信號的特點,將時頻分析技術引入旋轉機械故障診斷中。Huang et al.[1]于1998年提出的經驗模態(tài)分解(EMD)可將信號自適應分解為多個固有模態(tài)函數(shù)(IMF),非常適合非平穩(wěn)、非線性的振動信號,目前已成功應用于滾動軸承故障診斷中[2-4]。但EMD存在模態(tài)混淆的缺陷,為解決此問題,Wu et al.[5]研究白噪聲信號的統(tǒng)計特性后提出了集合經驗模態(tài)分解(EEMD)。為了提高分解效率,Yeh et al.[6]提出了一種互補集合經驗模態(tài)分解(CEEMD),向原始信號中添加2個相反的白噪聲信號,并對每個噪聲情況分別執(zhí)行EMD,該算法有效減少了白噪聲對原始信號的影響。
極端梯度提升(XGBoost)樹模型是近年來被廣泛使用的一種模式識別分類方法。Chen et al.[7]提出的XGBoost算法是目前最快、集成度最高的決策樹算法。該算法融合了梯度提升、隨機森林等算法的優(yōu)勢,創(chuàng)造性地提出了模型的離散意識和離核計算方法,不僅提升了算法模型對分布式數(shù)據(jù)庫的預測效果,也大大提高了模型訓練的速度。
受以上研究的啟發(fā),本文提出一種基于CEEMD能量算子和XGBoost樹模型的滾動故障診斷方法。使用CEEMD算法對原始振動信號進行分解,然后提取各IMF分量中能量算子這一特征,并將特征值輸入到XGBoost模型進行訓練,最后使用需要訓練完畢的模型對滾動軸承的4種故障進行分類識別。通過對滾動軸承故障試驗數(shù)據(jù)進行實驗分析,驗證該模型的有效性。
EEMD算法可以在一定程度上抑制EMD算法中的模態(tài)混淆現(xiàn)象,但添加的白噪聲并不能完全中和。針對此缺陷提出CEEMD算法,在分析信號中成對加入符號相反的白噪聲,降低重構誤差。CEEMD算法的詳細步驟如下。
步驟1:成對添加符號與原始信號相反的白噪聲信號,如式(1)所示。
(1)
式中:X為原始信號序列;Ni為第i次添加的白噪聲序列。
步驟3:取各分量的均值得:
(2)
(3)
步驟4:將n次疊加白噪聲迭代產生的分量相加并求均值,最后得到CEEMD結果:
(4)
式中:cj是CEEMD分解后的第j個模態(tài)分量。
能量算子的求解過程如下。
步驟1:對滾動軸承的振動信號進行CEEMD分解,獲得各IMF分量和殘差。
步驟2:求各個IMF分量的能量算子E,如公式(5)所示。
(5)
式中:N為樣本中采樣點數(shù);Δcj=cj2-cj(t-1)cj(t+1)。
XGBoost使用的是CART回歸樹模型,該算法的思想為:不斷添加樹,即不斷分割特征生成樹。它本質上是學習一個新的函數(shù)來擬合先前預測的殘差,然后重新裝配,直到滿足要求。假設XGBoost模型本身由K個CART組成,則模型可以表示為:
(6)
XGBoost與大多數(shù)機器學習模型類似,其目標函數(shù)可以是損失函數(shù)和正則項之和,分別控制模型的準確度和復雜度,具體公式如下。
(7)
(8)
(9)
式中的優(yōu)化過程與泰勒展開式(10)近似,以t步優(yōu)化為例,優(yōu)化目標函數(shù)如下。
f(x+Δx)=f(x)+f′(x)x+f″(x)Δx
(10)
(11)
(12)
(13)
式中:gi和hi分別為損失函數(shù)第一和第二步統(tǒng)計。
在去除式(11)中的常數(shù)項后,獲得以下簡化目標。
(14)
為驗證本文方法,采用美國凱斯西儲大學軸承數(shù)據(jù)集。該實驗使用軸承為6205-2RSJ型軸承,數(shù)據(jù)集分為48K基線、12K驅動端故障、48K驅動端故障、12K風扇端故障共4類,每個子故障數(shù)據(jù)集均有滾子、內圈、外圈故障數(shù)據(jù)。本文使用48K基線和12K驅動端故障數(shù)據(jù),其中主軸轉速1 772 r/min,故障直徑0.021 mm,加速度傳感器位于電機的驅動端,采樣頻率12 kHz。
使用重疊采樣的方式對數(shù)據(jù)進行隨機分割,每類狀態(tài)(健康、滾子故障、內圈故障、外圈故障)400個樣本,共1 600個樣本,按照8:2的比例劃分為訓練集和測試集。本文所選用數(shù)據(jù)中軸承轉速為1 772 r/min,根據(jù)N=fs×60/ns可得每個周期內采樣點數(shù)為406個,為保證每個數(shù)據(jù)樣本故障信息的完整性,設置每個樣本長度為2 048個采樣點。
本文以滾子故障中某一樣本為例進行分析,原始振動信號如圖1所示。對該樣本使用CEEMD算法進行分解,本文設置分解為6個IMF分量。因IMF分量很多,若不進行篩選而使用所有IMF分量,計算過程會過于冗余。因此,僅選取IMF分量中包含原始信號信息較多的幾個分量,本文使用4個分量。選取原則為:計算比較各IMF分量與未分解前原始信號的相關系數(shù)。
圖1 滾子故障原始信號及CEEMD分解圖
該樣本經過CEEMD分解后的各IMF分量與原始信號的相關系數(shù)如表1所示。IMF分量1~4相關系數(shù)較大,相關系數(shù)排名前4的IMF分量已經包含有原始信號中存在的主要信息,故使用前4名IMF分量。
表1 各IMF分量與原始信號的相關系數(shù)
對排名前4的IMF 1~4分別提取能量算子作為特征值,如表2所示。
表2 各IMF分量的特征值
重復上述過程對全部1 600個樣本進行CEEMD分解,對相關系數(shù)排名前4的IMF分量分別提取能量算子作為特征值。
將獲得的特征矩陣按照類別分別劃為0類、1類、2類和3類,其中0類代表滾子故障,1類代表健康,2類代表內圈故障,3類代表外圈故障。將數(shù)據(jù)按照8:2的比例劃分為訓練集與測試集(訓練集有1 280個樣本,測試集有320個樣本),將訓練集輸入模型。模型參數(shù)中的最大深度設置為50,學習率設置為0.05,其他參數(shù)均為默認值。模型訓練完畢后,用測試集進行測試,測試準確率為97%。準確率的公式為:
(15)
式中:TP為正確識別的陽性樣本數(shù)量;TN為正確識別的陰性樣本數(shù)量;FN為錯誤識別的陽性樣本數(shù)量;FP為識別錯誤的陰性樣本數(shù)量。
其混淆矩陣如圖2所示。滾子故障樣本中有1個樣本誤判為健康;健康樣本中有1個樣本誤判為滾子故障,有3個樣本誤判為內圈故障;內圈故障樣本中有2個樣本誤判為健康;外圈故障樣本中全都預測正確。總體預測效果較優(yōu)。
圖2 XGBoost模型測試混淆矩陣
本文提出了一種利用CEEMD和XGBoost模型分析振動信號來識別滾動軸承故障的方法。實驗結果表明:CEEMD算法分解振動信號后提取的能量算子作為特征,通過XGBoost數(shù)模型可以較好地實現(xiàn)識別故障類型,證明了本文方法的有效性。