孫祺淳,李媛媛
(上海工程技術大學 電子電氣工程學院,上海 201620)
滾動軸承是當今工業體系中最為關鍵的機械零件之一,同時也是非常容易出現故障的零件。滾動軸承若出現故障,不僅自身的運行狀態會受到影響,與之相關聯的各種零件與設備都會出現問題,輕則造成一定的生產損失,重則造成嚴重的安全事故。因此,提高軸承故障診斷的準確性和穩定性具有重要的理論和工程意義[1]。
在近些年,隨著計算機性能的不斷提升,機器學習和深度學習算法也廣泛應用于滾動軸承的故障診斷中[2]。其中,卷積神經網絡作為深度學習中最為經典的算法之一,已在計算機視覺和自然語言處理等領域中取得了優異的成果。近年來,也有越來越多的學者將卷積神經網絡應用于機械設備的故障診斷中。
陳功勝等[3]利用CNN 來提取軸承數據的特征,再利用極限樹回歸實現故障診斷,結果表明此模型可以有效識別故障,并且具有較好的魯棒性。趙敬嬌等[4]提出一種基于殘差連接的一維CNN 網絡,基于殘差連接的CNN可以更有效提取數據特征,從而提高故障診斷的精度。李益兵等[5]提出了一種基于混合蛙跳算法改進CNN的滾動軸承故障診斷方法,該方法利用混合蛙跳算法的尋優能力,自適應調整網絡結構,提高了CNN 的特征提取能力,從而取得了良好的故障診斷效果。Wen 等[6]將用傳感器采集的一維信號轉換為二維的灰度圖像,再將其輸入至二維的基于LeNet-5的改進CNN網絡中進行故障診斷,結果表明此模型在軸承、離心泵和液壓泵3種數據集上都達到了較高的診斷精度。Viet 等[7]利用隨機對角線算法訓練CNN,使得CNN能夠從數據中提取出更有效的特征,實驗結果表明此模型對于滾動軸承的早期故障和復合故障都有很高的診斷精度。
上述學者的研究表明,基于CNN的滾動軸承故障診斷研究都利用了CNN強大的特征提取能力,將卷積層和池化層提取而來的特征經過全連接層或使用其他分類算法實現故障診斷。但是,在實際的工程應用中,確定出可靠有效的CNN模型超參數往往是非常困難的,若這些超參數設置不合理,則會極大影響CNN故障診斷的能力。
鑒于差分進化算法優異的尋優性能[8],本文提出一種基于差分進化算法優化CNN 的滾動軸承故障診斷模型,通過差分進化算法來確定CNN的模型超參數,提高其精度和網絡輸出的穩定性。同時,為了更好提取滾動軸承運行數據的特征,本文使用CEEMDAN 分解原始信號,再結合峭度對分解得到的IMF 分量進行篩選,并使用多參數診斷的方法提取其特征。最后,本文使用CNN和CNN-DE等方法通過凱斯西儲大學滾動軸承數據集進行對比,結果表明本文提出的算法模型擁有更高的精度和更穩定的性能,從而具有更可靠的工程應用價值。
卷積神經網絡是一種典型的前饋型神經網絡,主要包括卷積層、池化層和全連接層。在分類任務中,在將原始數據輸入到CNN 網絡中后,由卷積層和池化層對其進行特征提取,再將提取出的特征輸入到全連接層中,全連接層可以看作一個分類器,將輸入的特征與標簽建立起映射關系,從而實現分類。
可將卷積層視作一組卷積核在輸入的數據矩陣中進行卷積運算。得到卷積輸出之后,再通過一個激活函數對其進行非線性變化,從而得到一系列特征圖,可表示為:

式(1)中:conv( )代表卷積函數,ri為輸入卷積核的特征,ki為卷積核,bi為偏置,Xi代表每一層的特征圖,M為特征圖的總數,f( )為激活函數,本文選用ReLU作為激活函數。
池化層通常加在卷積層之后,用于降低數據的維數,在提高網絡訓練速度的同時降低過擬合的風險。常用的池化方法有最大值池化法和平均值池化法。顧名思義,這兩種方法分別是從特征圖中提取局部最大值與平均值,本文采用最大值池化方法:

式(2)中:max代表最大值池化函數,p代表降維之后的特征圖。
由卷積層和池化層對原始數據進行交替作用之后,將最終得到的特征輸入全連接層中。全連接層包含有隱藏層與輸出層,其輸出結果可視作一個概率分布,可表示為:

式(3)中:f( )代表激活函數,本文選用ReLU 作為隱含層的激活函數,wj代表第j層與第j+1 層之間的權值,pj-1代表第j-1層的輸出,本文設置的全連接層層數為2。若j=1,p0則代表池化層的輸出。bj代表第j層的偏置,Oj代表第j層的輸出。通過softmax 函數來識別全連接層的輸出概率,最終得到分類結果。
本文設置的CNN網絡結構中包含兩個卷積層、兩個最大值池化層和全連接層;層與層之間的激活函數為ReLU,最后使用softmax輸出故障診斷結果。
CNN 之類的神經網絡模型所包含的參數通常可以分為模型參數與模型超參數。其中模型參數如偏置和權重等是網絡通過不斷的訓練自動調整的,無需人工進行調節,故本文不做優化考慮;而對于模型超參數,網絡無法通過訓練自發對其進行調整,通常是在訓練之前由人工設定,如學習率和訓練的批量大小等等,但它們的取值通常依賴于經驗,而經驗值在解決具體問題時往往效果一般,從而導致基于CNN的滾動軸承故障診斷應用精度不高,網絡輸出不穩定。因此,本文針對CNN 的模型超參數(下文簡稱為超參數)進行優化,待優化的超參數及優化原因如下:
(1)訓練的批量大小即為每一次訓練時所選取的樣本個數。若樣本個數過多會導致計算機的內存占用過大;反之則容易導致CNN無法收斂。
(2)學習率即為梯度下降的大小。若學習率設置過大,容易出現梯度在最小值附近震蕩的情況,從而導致CNN 無法收斂;反之則會導致CNN 收斂的速度極為緩慢。
(3)卷積核的大小。通常來說卷積核越大容易導致CNN 訓練過程緩慢;反之則會影響CNN 提取特征的能力。
(4)卷積核的數量。通常來說卷積核的數量越多,越容易導致CNN 出現過擬合的情況;反之則容易導致CNN出現欠擬合的情況。
CNN的超參數不僅包括上文所提到的這些,根據不同的網絡構建方式,超參數可能多達幾十個甚至上百個。所以一般的做法是選擇出最為關鍵的幾個超參數進行調優。本文根據文獻[5,9]和上述的分析,選擇訓練的批量大小、學習率、第一層卷積核的大小及數量、第二層卷積核的大小及數量共6 個值作為待優化的超參數。
差分進化算法是由R.Storn 與K.Price 在1995年提出的一種基于種群的優化算法,在1996年舉行的第一屆國際進化優化方法競賽(International Contest on Evolution Optimization,ICEO)中,DE 取得第三名的好成績。相比其他的優化算法,DE的優勢主要體現在它的可操控性上,只有3 個控制參數需要調節,結構簡單,易于實現,同時擁有優秀的全局搜索能力[10]。
CNN-DE模型的流程如下:
(1)初始化種群
標準DE算法采用實數編碼,首先生成一個規模為[N,D]的初始種群,N代表種群內個體數量,本文設置N=30;D代表決策變量的個數,在本文中D為待優化的CNN超參數個數,即D=6。初始種群可表示為:

式(4)中:x代表初始種群,i∈[1,N]。種群內每一個個體向量維度都為6,每一個維度都分別代表一個CNN的超參數,即:

式中:b代表CNN的訓練的批量大小,l代表CNN的學習率,s1代表CNN的第一層卷積核的大小,n1代表CNN的第一層卷積核的數量,s2代表CNN的第二層卷積核的大小,n2代表CNN 的第二層卷積核的數量。
(2)定義適應度函數
本文使用滾動軸承數據來訓練CNN-DE 模型,并定義CNN-DE的適應度函數為:

式中,記f(xi,j,g) 為第g代種群中第i個個體向量在第j個batch size 上的適應度函數值,g∈[1,G],G代表DE算法迭代的總次數。
將xi,j,g中6 個超參數代入CNN 后,在第j個batch size上所得到的CNN精度記為Ax,i,j,g。將在前j個batch size 所得到的精度的方差記為varxi,j,g。精度越高,1-Axi,j,g的值就越??;CNN 輸出結果越穩定,在各個batch size所得到的精度值的偏離程度就越低,即方差越??;將精度與方差分別乘以0.5的權重系數再相加得到適應度函數值。最終將優化問題轉化為確定上述CNN 中6 個超參數的取值,從而使得適應度函數值最小的問題。
(3)變異
自DE算法提出以來,眾多學者對其加以改進優化,也提出了許多新的變異算子。本文所使用的變異算子為:

式(7)和式(8)中F為縮放因子,g為當前進化代數,x1,g、x2,g和x3,g為互不相同的個體向量。xbest,g為當前代中適應度函數值最小的個體向量,vi,g為變異向量。
DE/rand/1 算子可在DE 算法迭代的前期設置,用于增加種群的多樣性,而DE/best/1 算子可在DE算法迭代的后期設置,用于加速算法的收斂[11]。因此,本文提出一種混合變異策略:

式中:rand(0,1)代表隨機生成的0 至1 之間的隨機數。在迭代的早期,(G-g)/G的值較小,不等式成立的概率比較大,因此,在DE 算法迭代的前期更容易選中DE/rand/1算子;反之,在迭代的后期,選中DE/best/1算子的概率更大,符合上文的要求。
對于縮放因子F,通常將其設定為一個定值,但如此一來容易導致DE算法陷入局部最優,降低其性能。考慮到在JADE(Adaptive Differential Evolution with Optional External Archive)算法中,采用高斯分布隨機生成每一代的縮放因子效果較好,因此,本文同樣采取此方法來生成每一代的縮放因子[12],并根據文獻[13]設置縮放因子的取值范圍為F∈[0.4,0.95]。
(4)交叉
采用交叉策略可以進一步增加種群多樣性,常用的交叉方法有二項式交叉(Binommial Crossover)和指數交叉(Exponential Crossover)。本文使用的二項式交叉策略為:

式中:ui,k,g為實驗向量(Trial Vector),下標分別代表第g代中第i個個體向量的第k維的值,k∈[1,D],CR為交叉概率。
同理,采用JADE中的方法,使用柯西分布隨機生成每一代的交叉因子[12],并根據文獻[13]設置交叉概率的取值范圍為CR∈[0.8,1]。
(5)選擇
選擇策略是DE 算法的最后一步,將通過交叉、變異得到的實驗向量與原始向量進行對比,對于求解本文中的最小優化問題,選擇適應度函數更小的那一個向量進入下一代??杀硎緸椋?/p>

式中:f(xi,g) 代表第g代種群中個體向量xi,g的適應度函數值。
CNN-DE模型的設計流程圖如圖1所示。

圖1 CNN-DE算法流程圖
本文選用的故障診斷實驗數據來源于美國凱斯西儲大學(CWRU)滾動軸承數據中心。CWRU數據集是世界公認的滾動軸承故障診斷標準數據集,每年都有大量的學者使用CWRU 數據集來驗證所提算法的有效性。CWRU 數據集中包括了采樣頻率12 kHz和48 kHz下的數據,加速度傳感器放置于電機殼體的驅動端、風扇端和基座上。本文使用12 kHz 采樣頻率下風扇端軸承的運行數據,數據描述如表1所示。

表1 數據介紹
本文使用的計算機配置為i5-9300HCPU,主頻為2.4 GHz,內存為16 GB,編程軟件為Python,使用Google公司開發的TensorFlow環境。
滾動軸承振動信號通常具有非線性和非平穩的特點,頻率可變,而傅里葉變化是基于一個完整的信號周期定義的,故傳統的傅里葉變化在處理此類信號時具有相當的局限性。
Huang所提出的模態分解方法能夠根據信號本身的特點,自適應地將信號逐層分解成若干個內涵模態分量(IMF),從而克服了傅里葉變化在頻率上的局限性。同時,考慮到經驗模態分解(EMD)存在的模態混疊問題[14]和集合經驗模態分解(EEMD)存在的信號重構誤差[15],本文選用自適應噪聲完備集合經驗模態分解(CEEMDAN)對原始數據進行處理。CEEMDAN作為EMD和EEMD的改進算法,能夠有效提高模態分解的精確度、完備性和運行效率。其分解的主要步驟如下:
設原始信號為x(t),向x(t)中添加高斯白噪聲gi(t):

式中:gi(t)為第i次添加的高斯白噪聲,n代表添加高斯白噪聲的總次數,xi(t)為第i次添加的高斯白噪聲與原始信號相結合而形成的合成信號。再使用EMD 對xi(t)進行分解。記經CEEMDAN 分解所得的模態分量為IMFCEEMDAN,有:

式中:IMF1CEEMDAN(t)為經CEEMDAN 分解所得的第一個模態分量,IMF1,i為第i次添加高斯白噪聲時經EMD 分解所得的第一個模態分量。接下來計算其余量:

式中:r1CEEMDAN(t)為經CEEMDAN分解所得的第一個余量。重復上述步驟直至余量為單調函數或常數序列,從而完成CEEMDAN 分解,得到若干個IMF 分量。但并非所有的IMF分量中都包含著有效的故障信息。因此,需要對得到的IMF分量進行篩選。
峭度是用來描述波形尖峰度的一個統計學參數,也是滾動軸承故障診斷中最常用的參數之一,可用來表征旋轉機械故障信號中沖擊的大小[16]。當滾動軸承處于正常運行的狀態時,其振動信號的幅值近似滿足高斯分布,此時的峭度值約為3。當出現故障之后,大幅值振動信號出現的頻率增加,從而導致高斯分布曲線出現偏斜或分散。此時,峭度值也會相應增大。因此,在一般情況下,峭度值越大,說明滾動軸承發生的故障越嚴重,也可以認為IMF 分量中所包含的故障信息越多。本文將峭度值最大的IMF分量篩選出來,并用作后續分析的數據。
峭度的計算公式為:

式中:Xi代表樣本,Xmean代表樣本在某個時間段內的平均值,n代表總的樣本個數。
隨著故障等級的提高,峭度值會逐漸飽和,其診斷能力也會隨之下降。因此,為了進一步提高故障診斷的可靠性,需要采用多參數的故障診斷方法[17]。均方根屬于有量綱參數,并且對于滾動軸承磨損類的故障比較敏感;峰值因子屬于無量綱的參數,對于滾動軸承所發生的表面損傷類故障與磨損類故障都比較敏感?;谏鲜龇治?,本文將峭度、均方根和峰值因子一起作為特征進行提取,再使用CNN-DE 模型建立這些參數與滾動軸承各種不同運行狀態之間的對應關系,從而實現故障診斷的功能。
均方根的計算公式為:

峰值因子的計算公式如下:

采樣頻率為12 kHz,采樣時間為10 秒,以由基座加速度傳感器所采集的風扇端軸承內圈故障數據為例,電機載荷為0,故障直徑為0.177 8 inch,標簽為H1,經分解得到的IMF分量如圖2所示(僅使用前9個)。

圖2 分解后的各IMF分量
再計算出各IMF分量的峭度值,得到圖3。
觀察圖3可知,IMF2分量的峭度值最大,故選擇IMF2分量作為后續分析的樣本信號。

圖3 IMF分量的峭度值
IMF2分量為列向量,長度為120 000。本文將IMF2分量重構為100×1 024 的信號矩陣(超出102 400 的部分舍去),即樣本個數為100,每一個樣本由1 024 個連續采樣的數據構成。再計算出每一個樣本的峭度、均方根與峰值因子,從而構建出H1的輸入矩陣,記為SH1100*3。重復上述的步驟,分別計算出標簽為H2至H10的滾動軸承運行數據的輸入矩陣,最后將得到的所有輸入矩陣按行合并成S1000*3。
隨機劃分S1000*3的70 %作為訓練數據,剩下30 %作為測試數據。再使用CNN-DE、CNN 和BP 3 種算法進行故障診斷,算法的迭代次數設為200,其余參數與上文中設置相同。經過優化之后得到CNN-DE的參數和CNN設置的參數如表2所示。

表2 CNN參數
為了更直觀表現CNN-DE 算法的優越性,本文將CNN-DE 與CNN 的精確度函數和損失函數可視化,得到圖4至圖7。

圖4 CNN-DE的精確度函數

圖5 CNN-DE的損失函數

圖6 CNN的精確度函數

圖7 CNN的損失函數
從圖4至圖7的對比中可以觀察到,CNN-DE的曲線波動比CNN的曲線波動要平緩得多,說明本文提出的CNN-DE 模型很好提高了網絡的穩定性,優化效果明顯。
再將CNN-DE、CNN和BP 3種算法的診斷結果匯總,得到表3,其中不計算BP算法方差。

表3 診斷結果對比
在表3中可以觀察到,標準CNN未經優化,網絡的輸出非常不穩定;而CNN-DE 算法穩定性相比CNN算法提升了一個數量級,診斷精度也要比CNN和BP更高。
為了進一步明確CNN-DE對不同類型故障的診斷能力,本文以混淆矩陣的形式輸出診斷結果,如圖8所示。

圖8 CNN-DE故障診斷的混淆矩陣
觀察圖8可知,CNN-DE 針對H1、H2、H5、H6、H8、H10類故障的診斷精度達到了100%,對于其他類型的故障,CNN-DE的診斷精度也都在90%以上,最低為93.1%。說明本文提出的基于CNN-DE的滾動軸承故障診斷模型擁有良好的診斷能力。
最后,為了驗證在噪聲干擾的情況下CNN-DE的抗噪能力,本文在滾動軸承的原始振動數據中添加高斯白噪聲,衡量噪聲強弱的標準為信噪比SNR。本文設置3 組噪聲實驗,信噪比的取值分別為-10 dB、-5 dB 和5 dB,數據處理的方法同上文,再使用CNN-DE、CNN 和BP 3 種算法進行故障診斷,結果如圖9所示。
由圖9可知,無論是在強噪聲干擾或弱噪聲干擾的情況下,CNN-DE 的故障診斷能力都是3 種算法中最好的,說明CNN-DE有著良好的抗干擾能力,從而擁有更高的工程應用價值。

圖9 噪聲干擾下各個算法的診斷精度
針對CWRU數據集,使用時域和時頻域的方法對原始數據進行處理,提取出最有價值的信號特征。同時,為了使CNN 具有更好魯棒性和精度,本文使用差分進化算法自適應調節CNN中最為重要的6個超參數,并且將CNN的精度與穩定性同時作為優化的目標。從對比結果中可以看出,本文提出的CNNDE 算法具有較高的故障診斷精度和較穩定的網絡輸出,在噪聲環境下也能保持一定的診斷精度。下一步會針對自測數據進行故障診斷研究,從而進一步提高算法的工程應用價值。