黃磊,馬圣,曹永華
(1.江蘇航空職業技術學院航空工程學院,江蘇鎮江 212134;2.成都芯米科技有限公司技術研發部,四川成都 610213)
航空發動機的轉子系統中各類軸承眾多且工況環境復雜,其運行精度和安全可靠性制約著發動機總體性能[1]。軸承在復雜多變的載荷環境下長時間高速連續運轉,常因承受沖擊載荷、熱載荷、機械磨損等而發生各種故障[2]。由于軸承的任何顯著性故障均從微弱故障中演變而來,而前期微弱故障相比顯著性故障而言,它對設備的影響較小,故障特征表現微弱、識別難度更大。但若前期微弱故障處理不及時,將會快速發展為顯著性故障,對發動機轉子系統造成危害[3]。因此,微弱故障診斷引起國內外學者的廣泛關注[3~4]。
目前,智能故障診斷技術常采用信號特征提取、篩選與分類識別算法相結合的方式[5]。通過人工特征提取方法,并結合ELM、SVM等淺層網絡的診斷方法,雖然可取得不錯成果[6],但相關資料證明[1]其淺層網絡結構導致特征提取能力較差,無法實現故障微弱特征的提取。
逐漸興起的卷積神經網絡(Convolutional Neural Network, CNN)具有較強的特征提取能力,能夠從圖像中提取微弱特征信息,目前廣泛應用于圖像識別領域[7]。近年來,不少學者將CNN應用于故障診斷中。吳春志等[7]為解決人工提取特征再結合模式識別算法帶來的問題,提出利用一維卷積神經網絡直接從齒輪箱原始振動信號中學習特征的故障識別方法。昝濤等人[8]在一維卷積網絡的基礎上,將原始信號、頻譜分析信號作為輸入,構建多輸入層卷積神經網絡的軸承故障診斷模型。曹繼平等[9]針對CNN診斷方法存在的計算效率低、參數調試等問題,提出采用粒子群優化算法確定CNN網絡結構和參數的自適應深度卷積神經網絡,并用主成分分析方法將故障診斷特征學習過程可視化。宮文峰等[10]為解決傳統CNN模型參數過多問題,引入全局均值池化技術對CNN進行改進,改進的CNN在軸承故障診斷模型中取得了較好的效果。
綜上所述,大多數運用在故障診斷技術上的CNN網絡均存在結構參數較多、網絡深度受限、無法通過加深網絡層數實現深層次特征提取的問題。而Google借鑒AlexNet網絡設計的GoogLeNet在加深網絡的同時,減少了網絡結構參數,并增加輔助分類器,提高網絡計算效率、特征識別能力;并且CAO等[11]驗證了它在故障識別上的可行性。因此,文中以GoogLeNet為診斷識別模型,并將一維時間序列軸承原始信號、EMD分解信號通過格拉姆矩陣轉換為二維圖片作為輸入、故障類別作為輸出,實現軸承故障診斷識別。
卷積神經網絡(Convolutional Neural Network, CNN)是一種受哺乳動物視覺皮層細胞感野啟發而演變的典型前饋神經網絡,通過對樣本的不斷訓練更新神經元的權重和偏置[9]。由于它能夠捕捉深層的特征,而被廣泛地應用在模式、視頻識別等領域。CNN模型一般由卷積層、激活層、池化層、全連接層和分類器組成[13]。
1.1.1 卷積層
卷積運算是CNN中核心計算單元,對輸入特征圖與卷積和相重合的區域內進行點乘再求和,并通過激活函數實現局部特征的提取。卷積層中的卷積操作可表述為式(1):
xi+1=wi?xi+bi
(1)
式中:xi表示輸入特征圖;xi+1表示卷積計算后的特征圖;?表示卷積運算符;wi表示卷積核權重;bi表示偏置。
1.1.2 激活層
CNN中常采用Relu激活函數將卷積運算后的特征圖通過激活函數作非線性變換。將式(1)代入激活函數中可得:
yi=f(xi+1)=f(wi?xi+bi)
(2)
式中:yi為經過激活層輸出的特征圖。
1.1.3 池化層
由于卷積層不僅增加特征提取的能力,同時增加網絡結構的參數數量,從而導致計算復雜度增加,容易導致維度災難[13]。為避免此問題,CNN中常采用最大池化的方法,在保證特征保留的同時進行降維處理。最大池化操作可表述為式(3):
maxpooling(f[i-1],f[i],f[i+1])=
max(f[i-1],f[i],f[i+1])
(3)
式中:maxpooling表示最大池化;f[i-1]、f[i]、f[i+1]分別表示第i-1、i、i+1個像素值。
1.1.4 全連接層
全連接層屬于過渡層,用于連接CNN輸出與Softmax分類器。CNN輸出特征經過Flatten展平函數轉變為一維數組,再經過全連接層輸出為n分類的一維向量。全連接層函數表示為
o(x)=f(wx+b)
(4)
式中:x表示全連接層的輸入;w表示全連接層權重;b表示全連接層偏置;o(x)表示全連接輸出;f(·)表示激活函數。
為便于較好地利用機器視覺算法的優勢,將一維時域振動信號轉換為二維圖像。基本思想是:先對時域數據進行極坐標編碼,隨后對生成的角度進行Gram矩陣變換,如圖1所示。

圖1 基于格拉姆算法的轉換流程
假設一維振動時序序列X={xi|i=1,2,…,n},為保證內積不偏向于序列中最大值,先將序列X縮放至[-1, 1]內。由于直接計算每對點得到的Gram矩陣的分布遵循以0為中心的高斯分布,所得到的圖片存在噪聲。為此,在構造Gram矩陣時,先將時序序列X轉換到極坐標中。極坐標角度φ由arccosx計算得到,極坐標半徑為i/n。
由于每個向量的范數都根據時間依賴性進行調整,二維極坐標空間的內積受到限制。為保證充分利用極坐標信息,采用式(5)計算內積[14]:
x⊕y=cos(θ1+θ2)=cos(arccosx+arccosy)=cos(arccosx)·cos(arccosy)-sin(arccosx)·
(5)
其中:θ表示x和y之間的角度。由式(5)可知,x和y越接近,懲罰越大,當x=y時輸出-1,其結果更容易與高斯噪聲進行區分。因此,基于式(5)便可得到Gram矩陣G:
G=
(6)
深層CNN網絡具有更強的特征提取能力,但增加CNN深度容易導致過擬合、梯度彌散等問題。為此,2014年Google提出GoogLeNet網絡結構,增加網絡深度和寬度的同時減少網絡結構參數。在GoogLeNet的Inception v1結構中,通過在3×3卷積層、5×5卷積層前和最大池化層后增加1×1卷積層降低特征圖的厚度,其結構如圖2所示。

圖2 Inception v1結構
Inception v1結構中1×1卷積層主要用于降低特征圖維度,并經過激活函數ReLU增加網絡的非線性特征。GoogLeNet采用模塊化的結構(Inception結構),便于增添和修改。同時,為避免梯度消失,網絡額外增加2個輔助分類器,用于向前傳導梯度(即將中間某層的輸出作為分類,并按照較小的權重加到最終分類結果中)。基于Inception構建的22層GoogLeNet的網絡結構如圖3所示。

圖3 GoogLeNet的網絡結構
滾動軸承振動實驗平臺如圖4所示,實驗中采用307型滾動軸承,轉子轉速為988 r/min,每周期傳感器采樣1 024個點,每次實驗進行16個周期。振動信號模擬工況包括:正常、內環故障、外環故障、滾動體故障4種,4種故障類型的時域波形如圖5所示,圖中僅呈現一個周期1 024組樣本數據點。

圖4 滾動軸承實驗平臺

圖5 時域波形
由于采集到的軸承故障振動數據有限,為避免故障數據特征難以捕捉,需要增加故障樣本數量。數據增強[14]方式較多,為增加信號局部特征的表達,采用經驗模態分解法對振動信號進行分解,并選取本征模態分量累積貢獻率90%的分量。以內環故障模式為例,其經驗模態分解如圖6所示,其本征模態分量累計貢獻率如表1所示。

表1 IMF能量累積分布 單位:%

圖6 內環故障EMD分解
將選擇的分量和原始振動信號分量作為一維時序序列轉為二維圖像的輸入。同時,采用如圖7所示的重疊采樣方法,增加訓練樣本數量,文中樣本重疊采樣比例為2∶3。

圖7 重疊采樣方法
將一維時序序列作為格拉姆矩陣算法輸入,其各類故障信號由一維時序信號轉換成二維圖片,從而構成圖片數據集,數據集中部分圖片如圖8所示。

圖8 數據集示意
基于GoogLeNet的軸承故障診斷模型的診斷流程如圖9所示,其算法詳細步驟描述如下:

圖9 基于GoogLeNet的軸承故障診斷模型的診斷流程
步驟1:設置不同軸承故障類型,并通過實驗平臺采集故障振動信號;
步驟2:對振動信號進行經驗模態分解,選取本征模態分量累計貢獻率90%的分量與振動原始信號一起作為時序序列數據源;
步驟3:對數據進行重復采樣,并對采樣后的時序序列進行格拉姆矩陣變換,創建故障數據集;
步驟4:將故障樣本數據集作為GoogLeNet網絡的輸入,輸入樣本為224×224×3的RGB圖像,輸出故障標簽為4,每次batch為32,學習速率為0.001;
步驟5:將訓練好的GoogLeNet模型用于診斷測試集樣本。
為較好地描述GoogLeNet模型在實驗數據集下的診斷效果,采用雙縱坐標軸描述GoogLeNet模型訓練過程中訓練集、測試集的準確率和模型收斂趨勢,其結果分別如圖10、圖11所示。

圖10 訓練集診斷結果

圖11 測試集診斷結果
由圖10可以發現:GoogLeNet模型在訓練過程中波動性較大,即使迭代步數到達2萬步以上,誤差減小,但訓練識別率仍存在較大波動,說明利用GAF對時域信號處理后生成的不同圖片特征間差異性較大,這可能是由于振動信號的時域信號具備的時序信息導致的,而這一問題可以通過增加重疊采樣比例和多次訓練取均值得到改善。
由圖11可以發現:GoogLeNet模型在識別過程中波動性較大,即使迭代步數到達2萬步以上,誤差減小,但訓練識別率仍存在較大波動;隨著網絡訓練步數增加,其識別準確率逐漸增加,識別率雖出現明顯波動,但其準確大于70%,絕大多數情況下準確率達到了90%以上,說明經過訓練后的GoogLeNet模型具備一定的軸承故障識別能力。
為更清楚地展示GoogLeNet模型在測試集中各個類別的識別結果,引入混淆矩陣對實驗結果進行分析。GoogLeNet模型在測試集下的故障識別結果如圖12所示。每類故障樣本100個,共4種故障類型。圖中主對角線上的數字代表GoogLeNet模型對每一類故障狀態正確診斷的樣本個數及占總樣本的比例;每一列均量化為精確信息,即正確分類的個數和誤分類的個數以及某故障被誤判為哪一類故障。

圖12 測試結果的混淆矩陣
由圖12可知:GoogLeNet模型能夠較好地區別正常、內環故障、外環故障、滾動體故障4種類型,且每類故障識別準確的樣本分別占總樣本的23.25%、23.5%、23.25%、23%;每類故障被誤診的概率不超過總樣本的1%;GoogLeNet模型對滾動體故障識別效果相比正常、內環故障、外環故障效果較差,其誤診樣本達到總體樣本的2%。
針對軸承故障振動信號微弱難以識別且常用的頻譜分析流程繁瑣,采用格拉姆矩陣將時域振動信號轉換為二維圖像,并利用GoogLeNet模型強有力的特征提取能力對軸承故障振動信號進行識別。
首先,對實驗平臺采集的軸承故障振動信號進行EMD分解,提取本征模態分量累積能量分布90%的分量;其次,采用格拉姆算法將選擇的本征模態分量與原始振動信號處理為二維圖片;最后,利用GoogLeNet模型對數據訓練與識別。仿真結果表明:GoogLeNet模型在GAF構建的數據集下,隨著迭代步數增加,誤差減小,但訓練識別率仍存在較大波動;隨著網絡訓練步數增加,其識別準確率逐漸增加,識別率雖出現明顯波動,但準確率大于70%,絕大多數情況下準確率達到了90%以上,說明經過訓練后的GoogLeNet模型具備一定的軸承故障識別能力。