周 楊
(浙江海洋大學 海洋工程裝備學院,舟山316022)
軸承作為工業設備當中的重要部件之一,其性能的好壞直接影響到設備是否能正常運行。根據有關數據統計,旋轉機械的故障約有三分之一是由軸承故障引起的[1]。所以,研究軸承故障并確定故障類型成為了國內外的熱門研究領域之一。
軸承故障診斷的研究核心是信號的特征提取和故障分類。文獻[2]提出了經驗模式分解(empirical mode decomposition,EMD),這是一種新型自適應信號的時頻處理方法,特別適用于非線性非平穩信號的分析處理。但是,這些時頻處理方法,需要人工手動提取且要有豐富的專業知識。最近幾年,隨著科技的不斷進步,以機器學習為基礎的數據驅動的故障診斷方法在故障診斷領域逐漸成為主流[3]。文獻[4]把隨機森林(random forest,RF)運用到了軸承的故障處理上面,實驗結果表明,與傳統的分類器相比,隨機森林的診斷正確率更高。
針對滾動軸承在發生故障時,由于故障振動信號具有非穩定性、非線性的特點,傳統的診斷方法無法對故障特征進行自動提取,導致故障的分類正確率偏低。為了實現故障特征的自動提取從而提高故障識別率,本文提出了基于卷積神經網絡(convolutional neural networks,CNN)與RF 相結合的算法模型解決了軸承故障分類問題。首先將軸承在不同工況下的振動信號轉化為二維灰度圖;然后再將灰度圖輸入到卷積神經網絡中進行特征提取和學習;最后利用隨機森林算法來進行分類。將識別結果與改進的殘差網絡,EEMD-CNN 不同的故障分類模型所得的結果進行對比,結果表明,本文所用的方法在軸承故障的準確率上更高。
由于卷積神經網絡在圖像的特征提取方面表現出了強大的能力,所以,在將一維的原始數據輸入到卷積神經網絡之前,需要將其轉化為圖片的形式。比較常見的方法有傅里葉變換和小波分析,其本質就是將信號從時域轉化為頻域,然后再畫頻域圖。但是,這些方法會增加數據處理的復雜度[5]。本文采用一種比較簡單的方法,過程如下[6]:
首先從連續的原始時間序列信號中隨機選取長度為n×n 點,組成矩陣M(n,n)。在對矩陣M 利用公式(1)進行歸一化處理,得到一個像素為P(n,n)的灰度圖。

式中:round 是取整函數。
使用該方法對軸承外圈的時域波形圖進行轉化的過程如圖1 所示。

圖1 振動信號轉化為圖片的過程Fig.1 Process of vibration signal transformation into picture
故障的特征提取在軸承的故障分類中是尤為重要的一部分,特征提取的好壞直接影響到分類效果。卷積神經網絡作為一種前饋神經網絡,通過卷積層的卷積操作可以對輸入二維的特征信號自動進行特征提取。卷積神經網絡的結構由輸入層、卷積層、池化層、全連接層、輸出層等組成。下面主要對卷積層、池化層、全連接層以及輸出層作介紹[7]。
1.2.1 卷積層
卷積層利用卷積核對輸入的數據進行特征提取,不同的卷積核通過卷積操作可以得到不同的特征圖。卷積核是一個權值矩陣,大小通常為2×2,3×3,5×5 的矩陣。采用權值共享的機制,卷積核以一個固定的步長移動,同圖像的像素值加權求和,再加上一個偏置,就會得到一個值。依次操作就會得到不同的值,將這些不同值按照順序擺放,從而形成了特征圖的矩陣。特征圖的大小與上一層的輸入矩陣、卷積核的個數和大小、移動的步長,填充方式padding 都有關。填充的方式可分為same 和valid。same 是在輸入矩陣的周圍填充零,使得原矩陣的邊緣信息可以被有效地利用起來;valid 只進行有效的卷積,即對邊界數據不進行處理。卷積運算的公式如式(2)所示[8]:

1.2.2 池化層
輸入的數據經過卷積操作得到特征圖之后,特征圖將會輸入到池化層,池化層又稱為降采樣層。添加池化層的主要目的是對輸入的數據進行降維,減少網絡的訓練參數,而且還能對輸入數據的特征進行進一步提取。池化操作主要分為最大池化和平均池化,一般采用最大池化。池化運算的公式如式(3)所示。

式中:down()為采樣函數。
1.2.3 全連接層和輸出層
輸入數據經過一系列卷積和池化操作之后,將提取到的特征扁平化為一維特征向量,然后再將其輸入到全連接層中進行分類。輸出層一般采用Softmax 層,將全連接層的分類結果歸一化為一個概率分布,Soft max 層的輸出值可以看成是對應樣本的概率值。全連接層和Softmax 層的一般表達式為

式中:k 代表k 層網絡;yk為全連接層的輸出;wk為權重系數;xk-1為全連接層的輸入;bk為偏置。
隨機森林是一種由許多決策樹組合而成的分類模型。各個決策樹之間是彼此獨立的,在進行分類的時候,各決策樹都會獨立的對所輸入的樣本進行分類,最后會以投票的方式決定分類的結果。該算法的基本步驟如下[9]:
(1)利用Bootstrap 從原始樣本中隨機的采取k個樣本,樣本的數目要和原始樣本的容量一樣。
(2)利用這k 個樣本分別建立k 個決策樹模型。
(3)每個決策樹模型輸出一個結果,最后通過投票的方式對這k 個結果進行表決,從而確定最后的分類結果。
滾動軸承在發生故障時,由于故障振動信號具有非穩定性、非線性的特點,傳統的診斷方法無法對故障特征進行自動提取,導致故障的分類正確率偏低。為了實現故障特征的自動提取從而提高故障識別率,本文提出了一種基于CNN 與RF 相結合的滾動軸承故障識別的方法。該模型由數據的預處理、特征提取、RF 分類3 部分組成。卷積神經網絡具有很好的特征提取能力,振動灰度圖經過卷積神經網絡的卷積和池化操作之后,可以很好的提取到灰度圖的特征參數,RF 模型簡單且不容易產生過擬合。因此,本文構建了CNN-RF 故障診斷模型,故障診斷的流程如圖2 所示,此方法的步驟如下:

圖2 故障識別流程Fig.2 Flow chart of fault identification
(1)獲取軸承的振動信號;
(2)利用python 程序將軸承的振動信號轉化為二維振動灰度圖,并將其分為訓練集和測試集;
(3)建立卷積神經結構并初始化參數,根據仿真結果來調整相應參數(例如卷積層數、激活函數、學習率等);
(4)將圖片輸入到卷積神經網絡,經過卷積和池化操作之后,得到了含有故障特征的數據集,在將數據集輸入到flatten 層和全連接層扁平化為一維特征向量;
(5)將全連接層輸出的一維特征向量輸入到RF分類模型;
(6)為了使RF 模型的分類效果達到最優,需要用網格搜索對RF 中的不同參數進行調優;
(7)訓練完成后,將測試集輸入到最終的模型當中去進行分類。
本實驗基于Windows10 64 位操作系統,采用的是由Google 公司基于python 語言開發的Tensorflowgpu 框架,軟件環境為Pycharm,處理器為Intel(R)Core(TM)i7-7700HQ@2.80 GHz×8,運行內存為8 GB,圖像處理單元為NVIDIA GeForce GTX1050Ti。
為了驗證本文所提出的CNN-RF 有效性,利用來自于美國凱斯西儲大學(case western reserve university,CWRU)的軸承數據進行仿真分析,采集來的數據來源于驅動端的振動信號,通過電火花技術人為引入故障,被測軸承為6205-2RS JEM SKF深溝球軸承,電機載荷為1 hp,采樣頻率為12 kHz,主軸轉速為1772 r/min。考慮到實際工作中,軸承會出現不同情況的故障,即使在同一情況下,也會有不同程度的磨損。因此,實驗數據要盡可能的全面描述軸承的不同故障。
數據包括了軸承在不同工況下的狀態,分別為內圈故障、外圈故障、滾動體故障、正常狀態,其中外圈故障采用的是以負荷區6 點鐘方向為中心的6點鐘方向的數據。故障直徑表示軸承不同程度的磨損,包含0.18 mm,0.36 mm,0.54 mm。共計10 種工況,每種工況選取120000 個數據點,以1024 個數據點為一個樣本,使用重疊采樣對每種工況取1000個樣本,一共有10000 個樣本,訓練集和測試集按照7∶3 進行劃分。采用One-hot 編碼對10 種工況樣本數據進行標簽化處理,實驗數據集的詳細情況如表1 所示。

表1 實驗數據集Tab.1 Experimental data set
本文設計的網絡模型由特征提取層和分類層組成,具體設計如圖3 所示的“卷積-卷積-池化-卷積-卷積-池化-卷積-卷積-池化-全連接-RF 分類器”的結構模型。其中,池化層采用最大池化方式。模型進行編譯時,采用Adam 優化算法優化交叉熵損失函數,學習率為0.0001,迭代次數epochs 為50 次。模型結構的具體參數設置如表2 所示。

圖3 CNN-RF 模型結構圖Fig.3 Structure diagram of CNN-RF model

表2 模型參數Tab.2 Model parameter
實驗數據的預處理主要是把一維的振動信號用python 語言根據公式(1)將其轉化為二維的振動灰度圖,灰度圖的格式為32×32×1,像素為32×32。由于文章篇幅有限,這里只取軸承在載荷為1 hp 下,故障直徑為0 mm 的正常狀態,故障直徑為0.18 mm下的內圈故障、外圈故障、滾動體故障3 種情況做演示,其余情況均按照相同方法進行處理。軸承在這4種工況下的時域波形圖和相對應的振動灰度圖如圖4 所示。

圖4 振動信號時域波形圖和灰度圖Fig.4 Time domain waveform and grayscale image of vibration signal
將軸承在不同狀態下的振動灰度圖輸入CNN中進行自適應特征提取,在將提取到的特征輸入到RF 中進行分類。在RF 進行分類時,運用網格搜索對RF 的超參數進行優化選擇,在優化的同時也進行交叉驗證,交叉驗證的次數選為5。優化的參數和范圍如下所示:
決策樹個數n_estimators∈[80,100,120];最大特征數max_feature∈[3,5,7,9,11];決策樹最大深度max_depth∈[1,3,5,7,9,11,13];節點可分的最小樣本數min_samples_split ∈[100,120,150,180,200,300];葉子節點含有的最少樣本min_samples_leaf∈[10,20,30,40,50,100]。
為了評估CNN-RF 模型分類效果,采用精準率Precision、召回率Recall、F1-Score 值對模型進行綜合評價[10]。

式中:TP 為預測和實際分類正確的數量;FP 為預測分類中錯誤的數量;FN 為實際分類錯誤的數量。
表3 展示了對軸承不同故障分類的精準率Precision、召回率Recall、F1-Score 值。其中,精準率平均值為0.999;召回率平均值為0.998;F1-Score 的平均值為0.998。

表3 CNN-RF 性能指標Tab.3 CNN-RF performance indicators
為了展示該模型對各類故障的分類效果,引入混淆矩陣對分類結果進行可視化,如圖5 所示,本文所采用方法的診斷正確率可達99.79%。這表明該方法可以有效地對軸承的故障特征進行自適應提取,對故障類型進行精準分類。該模型的訓練集和驗證集準確率和損失率的變化曲線如圖6 所示,從變化曲線可知,該模型的分類正確率高,并且沒有出現擬合情況。

圖5 CNN-RF 分類混淆矩陣Fig.5 CNN-RF classification confusion matrix

圖6 CNN-RF 訓練集和驗證集準確率和損失率的變化曲線Fig.6 Change curve of accuracy and loss rate of CNN-RF training set and verification set
為了驗證CNN-RF 的有效性,在相同的數據下與文獻[11]、文獻[12]進行比較。文獻[11]采用的是改進的殘差網絡對軸承故障進行特征提取和分類,最后分類的正確率為95%。本文在對軸承的故障特征提取和故障分類方面采用的是不同的模型,進而提高了分類的正確率;文獻[12]使用集合經驗模態分解對軸承振動的信號進行分解,得到了若干個本征模態分量,根據相關指標選擇適當的分量進行重構,將重構的特征向量輸入到CNN 中進行故障診斷,分類的準確率可達96.7%。本文采用的是CNN 自適應的對軸承的故障特征進行提取和選擇,無需人工干預,因此,準確率更高。
針對滾動軸承在發生故障時,由于故障振動信號具有非穩定性、非線性的特點,傳統的診斷方法無法對故障特征進行自動提取,導致故障的分類正確率偏低。本文提出了一種基于CNN-RF 相結合的滾動軸承故障識別的方法,利用CNN 可以直接從軸承的原始振動信號中進行特征提取,無需人工干預。然后,利用RF 進行分類。最后將識別結果與不同的故障診斷模型所得的結果進行對比,對比結果表明,本文所提出的方法在進行軸承的故障診斷上更具有優勢,從而驗證了該方法的有效性。