程建剛,畢鳳榮,張立鵬,李 鑫,楊 曉,湯代杰
(1.天津大學(xué) 內(nèi)燃機(jī)燃燒學(xué)國家重點實驗室,天津 300072;2.天津內(nèi)燃機(jī)研究所,天津 300072)
基于振動信號分析的機(jī)械故障診斷方法由于測量簡單、維修方便、成本低廉等特點成為了研究熱點。傳統(tǒng)基于信號處理的故障診斷方法通常包括振動信號獲取、人工特征提取和模式識別3步。其中人工特征提取過程需要借鑒豐富的專家經(jīng)驗知識,受人為因素干擾大,導(dǎo)致診斷結(jié)果不確定性高[1-3]。因此,不少學(xué)者將注意力轉(zhuǎn)到基于深度學(xué)習(xí)的端到端的故障診斷研究。端到端的故障診斷方法期望以原始時域數(shù)據(jù)作為模型輸入,通過對歷史數(shù)據(jù)進(jìn)行學(xué)習(xí)便可建立輸入-輸出映射關(guān)系,盡量降低人工干預(yù)程度。
基于振動信號處理的故障診斷技術(shù)的研究對象為一維時域信號,對于故障特征提取較為困難。近年來,卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks, CNN)在圖像識別[4-6]、自然語言處理[7-8]、醫(yī)學(xué)[9]等領(lǐng)域取得了巨大成功。CNN采用多層卷積的方式提取特征,其成功經(jīng)典模型如LeNet-5[10]、AlexNet[11]、GoogleNet[12]和ResNet[13]等,證明其在挖掘數(shù)據(jù)的深層特征表示方面具有獨特優(yōu)勢。振動信號為前后關(guān)聯(lián)的序列數(shù)據(jù),其序列順序信息是重要的數(shù)據(jù)特征,但是CNN并未考慮輸入序列的順序信息。循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks, RNN)采用循環(huán)連接的方式,可以挖掘序列數(shù)據(jù)前后位置間聯(lián)系,但是原始RNN存在梯度消失問題。門控循環(huán)單元(gated recurrent unit, GRU)是RNN的一種變體,其采用“門”結(jié)構(gòu)的形式可以在一定程度上解決RNN的梯度消失問題。但是,隨著輸入數(shù)據(jù)鏈的不斷加長,模型的應(yīng)用效果也將逐漸下降。
注意力機(jī)制在圖像識別、自然語言處理等任務(wù)中應(yīng)用廣泛。如文獻(xiàn)[14]中通過在CNN的空間維度和通道維度建立聯(lián)系,提出了應(yīng)用于CNN的卷積注意力模塊(convolutional block attention module, CBAM),并且在圖像處理任務(wù)中驗證了該方法的有效性。針對序列學(xué)習(xí)任務(wù),文獻(xiàn)[8]中在雙向LSTM的隱藏狀態(tài)輸出向量中分配注意力權(quán)值來提取關(guān)鍵信息,完成了關(guān)系分類任務(wù)。文獻(xiàn)[15]中在著名的Transformer模型中采用層層疊加的自注意力機(jī)制完成了文本表示。上述研究表明,注意力機(jī)制的引入可以加強(qiáng)模型對于重要信息的提取能力。
傳統(tǒng)故障診斷方法需要人工提取特征,導(dǎo)致識別結(jié)果不確定性高。面對機(jī)械故障診斷任務(wù),CNN無法高效利用時序振動信號數(shù)據(jù)中的序列順序信息,RNN及其變體對于過長序列數(shù)據(jù)處理極為困難。為解決上述問題,本文中設(shè)計了一套基于多重注意力-卷積神經(jīng)網(wǎng)絡(luò)-雙向門控循環(huán)單元(multiple attention-convolutional neural networks-bidirection-al gated recurrent unit, MA-CNN-BiGRU)的端到端的故障診斷系統(tǒng)。其采用CNN與雙向門控循環(huán)單元(bidirectional gated recurrent unit, BiGRU)聯(lián)合網(wǎng)絡(luò),有效地解決了BiGRU處理過長序列數(shù)據(jù)困難的問題。同時,在CNN網(wǎng)絡(luò)部分引入CBAM,在BiGRU網(wǎng)絡(luò)引入序列注意力模塊[8](sequence attention module, SAM),多重注意力機(jī)制的引入提高了模型對于關(guān)鍵信息的提取能力。整個系統(tǒng)實現(xiàn)了端到端的故障診斷,有效地解決了傳統(tǒng)故障診斷方法識別結(jié)果不確定性高的問題。
卷積神經(jīng)網(wǎng)絡(luò)是在計算機(jī)視覺領(lǐng)域應(yīng)用最廣泛的深度學(xué)習(xí)算法之一,主要由輸入層、卷積層、池化層、全連接層和輸出層組成。卷積層和池化層交替堆疊出現(xiàn),分別實現(xiàn)特征提取和特征降維功能[10]。
為充分學(xué)習(xí)輸入信息特征,卷積層中一般有多個卷積核,每個卷積核與上一層網(wǎng)絡(luò)間采用局部連接的方式遍歷整個特征圖,每個卷積核在卷積過程中共享一組權(quán)值。卷積的具體過程如式(1)所示。
(1)
本文模型采用ReLU函數(shù)[16],其表達(dá)式如式(2)所示。
f(x)=max(0,x)
(2)
式中,x為激活函數(shù)輸入。
為了降低模型處理的數(shù)據(jù)量,常在卷積層后使用池化層進(jìn)行二次特征提取,通常有平均池化和最大池化兩種方式。為充分捕捉振動信號中沖擊信息特征,濾除部分噪聲,本文中采用最大池化操作,表達(dá)式如式(3)所示。
(3)
GRU將LSTM中的輸入門和遺忘門合并成一個更新門,同時還混合了細(xì)胞狀態(tài)和隱藏狀態(tài)。GRU主要包括重置門rt和更新門zt(t表示當(dāng)前時刻)。rt和zt均接受當(dāng)前時刻輸入xt和上一時刻隱藏層狀態(tài)ht-1作為輸入,對應(yīng)的權(quán)值分別為Wr和Wz,其完整結(jié)構(gòu)如式(4)~式(7)所示。
rt=σ[Wr(ht-1,xt)]
(4)
zt=σ[Wz(ht-1,xt)]
(5)
(6)
(7)
1.3.1 CBAM原理
CBAM包括通道注意力模塊和空間注意力模塊。其中,通道注意力捕捉特征圖F(F∈RC×H×W,C、H、W分別為特征圖的通道數(shù)、特征圖的高和特征圖的寬)各通道之間的聯(lián)系,空間注意力則捕捉特征圖上各空間區(qū)域之間的聯(lián)系。如圖1所示,特征圖1為卷積輸出,特征圖2為添加通道注意力后輸出結(jié)果,各通道不同顏色表示分配不同通道注意力權(quán)值。特征圖3為添加空間注意力模塊后輸出結(jié)果,特征圖上不同顏色色塊表示分配不同空間注意力權(quán)值,具體過程如式(8)和式(9)所示。
圖1 CBAM結(jié)構(gòu)
F′=MC(F)?F
(8)
F″=MS(F′)?F′
(9)
式中,?表示矩陣點乘運(yùn)算;MC(·)為通道注意力模塊,MC(·)∈RC×1×1;MS(·)為空間注意力模塊,MS(·)∈R1×H×W;F′為通道注意力模塊輸出結(jié)果;F″為CBAM輸出結(jié)果。
(10)
(11)
式中,Conv為核尺寸為7×1的卷積操作。
1.3.2 SAM原理
GRU處理序列數(shù)據(jù)的過程與人類大腦閱讀信息過程相似。GRU通過更新門會選擇遺忘部分過去信息,該過程可以保留輸入數(shù)據(jù)的部分關(guān)鍵信息。但是,研究表明輸入序列越長,模型對于前半部分輸入信息便遺忘的越多。應(yīng)對過長序列數(shù)據(jù)學(xué)習(xí)任務(wù),GRU將難以保留全部關(guān)鍵信息[17]。因此,本文在BiGRU中加入SAM,對各個時間步的隱藏輸出分配一個權(quán)重系數(shù)S=[s1,s2,s3…sL](L為序列長度),使最終的輸出結(jié)果不再單純依賴最后隱藏狀態(tài)輸出hL,而是根據(jù)權(quán)重系數(shù),有效地利用每一個節(jié)點的輸出H=[h1,h2,h3,…,hL],作為最終的輸出結(jié)果。SAM模塊的引入,有效地解決了BiGRU無法保留全部關(guān)鍵信息的問題。SAM原理如式(12)~式(14)所示。
H′=tanh(H)
(12)
S=softmax(αTH′)
(13)
y=tanh(HST)
(14)
式中,softmax(·)為歸一化指數(shù)函數(shù);α為可學(xué)習(xí)參數(shù),采用隨機(jī)初始化方式給點初始值,通過反向梯度下降算法計算;y為最終輸出結(jié)果。
在基于原始時域振動信號的機(jī)械故障診斷問題中,由于樣本序列長度過長的原因,導(dǎo)致無法采用循環(huán)神經(jīng)網(wǎng)絡(luò)直接處理。為解決該問題,本文中采用CNN和BiGRU聯(lián)合網(wǎng)絡(luò)進(jìn)行處理。圖2為基于MA-CNN-BiGRU的故障診斷模型,原始時域振動數(shù)據(jù)經(jīng)CNN的卷積操作之后得到通道數(shù)為d的特征圖1,然后將特征圖1輸入CBAM后得到d通道特征圖2。為了盡可能保留原始序列信息,將CNN輸出結(jié)果做重組處理,將各通道特征圖中位置i處結(jié)果整合成BiGRU第i個時間節(jié)點輸入向量Yi。
圖2 基于MA-CNN-BiGRU的故障診斷模型
Yi=[yi,1,yi,2…yi,d-1,yi,d],yi,d∈R1×d
(15)
式中,d為卷積輸出特征通道數(shù)。
通過改變卷積核的數(shù)目d便可以改變輸入BiGRU模型數(shù)據(jù)的維度。同時,通過設(shè)置CNN中的卷積步長及池化步長便可以控制輸出序列的長度,實現(xiàn)在不丟失數(shù)據(jù)重要信息的前提下控制輸入BiGRU序列的長度。
進(jìn)一步地,在聯(lián)合模型中的CNN網(wǎng)絡(luò)部分中引入CBAM,通過對多通道輸入數(shù)據(jù)之間分配通道注意力權(quán)值,可以更好地考慮各通道之間的差異。對各空間區(qū)域分配注意力空間注意力權(quán)值,建立各空間區(qū)域之間的聯(lián)系,提升CNN提取關(guān)鍵信息的能力。在BiGRU中引入SAM,使BiGRU的最終結(jié)果綜合各個時間節(jié)點的輸出,更好地保留了長序列數(shù)據(jù)的全局信息。
(16)
3.1.1 數(shù)據(jù)準(zhǔn)備
美國凱斯西儲大學(xué)軸承數(shù)據(jù)集是機(jī)械故障診斷領(lǐng)域常用的數(shù)據(jù)集。該試驗在電機(jī)驅(qū)動端,風(fēng)扇端處的軸承的內(nèi)圈,滾動球及外圈(3點鐘、6點鐘、12點鐘方向)位置,采用電火花加工的方式布置單點故障,故障損傷直徑分別為0.018、0.036、0.054和0.072 cm。分別在電機(jī)驅(qū)動端、風(fēng)扇端和軸承座位置采集數(shù)據(jù),采樣頻率為12 kHz。其中驅(qū)動端處軸承故障還包含采樣頻率為48 kHz的數(shù)據(jù)。試驗工況包括1 797、1 772、1 750、1 730 r/min這4種轉(zhuǎn)速。
文獻(xiàn)[18]中研究表明:美國凱斯西儲大學(xué)軸承數(shù)據(jù)集中部分類別數(shù)據(jù)之間的特征差異過于明顯,即使采用最簡單的方法也能識別其故障類型,不適用于新算法的測試。本文中依據(jù)文獻(xiàn)[18]中的研究結(jié)論,挑選診斷難度更大的7類數(shù)據(jù)對本文提出的模型進(jìn)行測試。表1為軸承數(shù)據(jù)集的具體參數(shù),分析時,選取采樣頻率為48 kHz、負(fù)載1.47 kW的電機(jī)驅(qū)動端軸承故障數(shù)據(jù)。對于訓(xùn)練數(shù)據(jù),采用重疊采樣的方法進(jìn)行數(shù)據(jù)增強(qiáng),重疊率為50%,測試數(shù)據(jù)采用無重疊的方式截取。分析數(shù)據(jù)工況對應(yīng)轉(zhuǎn)速為1 750 r/min,采樣頻率為48 kHz,軸承每轉(zhuǎn)一圈采樣點數(shù)為1 646。將樣本長度設(shè)為1 680,保證每個樣本都包含一個完整的周期。最終,每類數(shù)據(jù)包括376個訓(xùn)練樣本和100個測試樣本。
表1 軸承數(shù)據(jù)集
3.1.2 CNN模型分析
本文模型中CNN部分主要完成樣本長度約減和初步特征提取工作。BiGRU中時間節(jié)點數(shù)量與樣本長度約減比例和卷積層數(shù)直接相關(guān),因此樣本長度約減比例和卷積層數(shù)的確定對于最終模型的診斷精度及運(yùn)算速度至關(guān)重要。
將時域信號直接輸入圖2所示模型,以交叉損失熵為目標(biāo)函數(shù),通過反向傳播訓(xùn)練每一層網(wǎng)絡(luò)參數(shù),每次訓(xùn)練輸入256個樣本。設(shè)置約減比例分別為1/2、1/4、1/8和1/16,各約減比例和卷積層數(shù)對應(yīng)的最終測試準(zhǔn)確率及測試100個樣本用時對比如表2所示。本文中模型建立在基于Python的PyTorch深度學(xué)習(xí)庫中,訓(xùn)練和測試的硬件環(huán)境為Intel i7-9750H。
表2 約減比例及卷積層數(shù)對比分析
由表2可以看出,當(dāng)樣本長度約減比例為1/16時,采用3層卷積網(wǎng)絡(luò)和4層卷積網(wǎng)絡(luò)都無法完成診斷任務(wù)。這是樣本長度約減比例過大導(dǎo)致丟失了大量重要信息,另外卷積層數(shù)過多導(dǎo)致原始時序信息被多次提取后丟失嚴(yán)重造成的。當(dāng)樣本約減比例為1/8,卷積層數(shù)為3時,模型依舊無法完成診斷任務(wù),這依然是由于卷積層數(shù)過多導(dǎo)致樣本序列信息丟失嚴(yán)重導(dǎo)致的。當(dāng)長度約減比例設(shè)置為1/8,使用兩層卷積網(wǎng)絡(luò)時(第一層卷積步長為1,池化步長為2;第二層卷積步長為2,池化步長為2),模型測試準(zhǔn)確率達(dá)到97.57%,測試100個樣本用時11.45 s。當(dāng)樣本長度約減比例為1/4和1/2時,雖然模型測試準(zhǔn)確率高于97.57%,但是對應(yīng)的測試100個樣本用時分別約為22 s和45 s(方案5、6、7中模型無法完成診斷任務(wù),故不計算測試用時)。
由表2數(shù)據(jù)也可以看出,模型運(yùn)行速度主要與輸入BiGRU數(shù)據(jù)長度有關(guān),模型的計算時間與BiGRU時間節(jié)點數(shù)呈正相關(guān)關(guān)系。這也是循環(huán)神經(jīng)網(wǎng)絡(luò)對于過長序列數(shù)據(jù)處理困難的主要原因。綜合考慮測試準(zhǔn)確率和測試用時兩個指標(biāo),本文中選用兩層卷積網(wǎng)絡(luò)結(jié)構(gòu),將樣本約減比例設(shè)置為1/8,MA-CNN-BiGRU結(jié)構(gòu)與參數(shù)如表3所示。
表3 MA-CNN-BiGRU模型參數(shù)
3.1.3 注意力機(jī)制驗證分析
為證明本文方法中注意力機(jī)制引入的優(yōu)越性,將上述軸承故障診斷任務(wù)用于由CNN與BiGRU組合的CNN-BiGRU、在CNN-BiGRU中CNN部分添加CBAM的CNN(CBAM)-BiGRU、在CNN-BiGRU中BiGRU部分添加SAM的CNN-BiGRU(SAM),對比各模型測試準(zhǔn)確率及測試100個樣本用時,如表4所示。
表4 注意力機(jī)制驗證分析
從表4可知,單獨引入卷積注意力機(jī)制和序列注意力機(jī)制以后,CNN(CBAM)-BiGRU和CNN-BiGRU(SAM)測試準(zhǔn)確率分別提高了6.43%和7.28%,而100個樣本測試用時只增加了0.13 s和0.23 s。本文中提出的模型,即在CNN-BiGRU模型上同時加上CBAM和SAM,達(dá)到了最高的測試準(zhǔn)確率(97.57%),在準(zhǔn)確率提高8.71%的情況下,100個樣本測試用時增加0.33 s是可以接受的。
本文模型測試準(zhǔn)確率的大幅提高主要得益于卷積注意力機(jī)制及序列注意力機(jī)制的引入。其中CBAM通過在CNN中各通道和各空間區(qū)域分配注意力權(quán)值,對于輸入信號中諸如脈沖信號特征等重要信息給予重點關(guān)注,同時卷積注意力權(quán)值的引入通過自學(xué)習(xí)分配更小的注意力權(quán)值也能忽略信號中低頻噪聲等無關(guān)信息帶來的影響。本文模型中,雖然原始時域信號長度經(jīng)過CNN后得到大幅縮減,但是BiGRU依舊需要很長的時間節(jié)點來接受數(shù)據(jù)輸入。在模型訓(xùn)練過程中,BiGRU對于越早輸入的信息遺忘越多,導(dǎo)致最終識別精度不高。但本文模型引入SAM以后,通過對各個時間節(jié)點輸出分配不同的權(quán)值,便可以有效地解決長數(shù)據(jù)樣本處理困難的問題,進(jìn)一步提升診斷準(zhǔn)確率。CNN-BiGRU聯(lián)合模型的采用及注意力機(jī)制的引入,使得本文模型可以很好地處理機(jī)械故障診斷任務(wù)中過長序列信號,同時實現(xiàn)端到端的故障診斷。
最終試驗結(jié)果表明,通過在CNN-BiGRU中引入了注意力機(jī)制之后,可以大幅提升模型的診斷精度,同時增加的計算成本也是可接受的。
3.2.1 柴油機(jī)故障模擬試驗及數(shù)據(jù)準(zhǔn)備
為進(jìn)一步驗證本文提出方法的有效性,采用實測柴油機(jī)振動信號進(jìn)行分析。柴油機(jī)故障模擬試驗在一臺某型直列6缸柴油機(jī)上進(jìn)行,采集柴油機(jī)的缸蓋振動加速度信號,傳感器布置在1缸~6缸的缸蓋上,試驗柴油機(jī)及其臺架現(xiàn)場如圖3所示。
圖3 試驗用柴油機(jī)
試驗主要模擬氣門間隙異常、噴油軌壓異常及供油量不足3種故障類型,并且對其中每一類故障發(fā)生的不同程度進(jìn)行了模擬,得到8分類故障數(shù)據(jù)集,對應(yīng)樣本標(biāo)簽0~7,柴油機(jī)故障數(shù)據(jù)集介紹如表5所示。
表5 模擬故障表
采樣頻率為25.6 kHz,分析數(shù)據(jù)對應(yīng)柴油機(jī)轉(zhuǎn)速為2 000 r/min,柴油機(jī)每個工作周期采樣點數(shù)為1 536,于是本文中將樣本長度設(shè)為1 600,保證每個樣本內(nèi)包含一個完整工作周期。同樣按照前文中數(shù)據(jù)截取方法進(jìn)行數(shù)據(jù)處理,獲得各狀態(tài)數(shù)據(jù)520個訓(xùn)練樣本和120個測試樣本。
3.2.2 模型訓(xùn)練驗證及可視化分析
針對3種故障類型多種故障程度的柴油機(jī)故障診斷問題,本模型訓(xùn)練過程如圖4所示,圖中交叉損失熵值越小,表明模型診斷效果越好。訓(xùn)練次數(shù)達(dá)到200次后,模型收斂,此時訓(xùn)練準(zhǔn)確率為99.96%,測試準(zhǔn)確率達(dá)到96.63%。
圖4 模型訓(xùn)練過程
為進(jìn)一步驗證模型對于原始時域信號的特征提取能力,本文中采用t-SNE算法進(jìn)行降維可視化分析。將原始數(shù)據(jù)及模型輸出數(shù)據(jù)降維到2維,分別用t-SNE1和t-SNE2表示,結(jié)果如圖5和圖6所示。
圖5 原始數(shù)據(jù)特征分布可視化
圖6 模型輸出數(shù)據(jù)特征分布可視化
從圖5可以看出,原始數(shù)據(jù)中各類數(shù)據(jù)混疊在一起,可分性非常差。從圖6中可以發(fā)現(xiàn),經(jīng)過模型自適應(yīng)學(xué)習(xí)、處理之后,模型輸出數(shù)據(jù)的聚類程度已經(jīng)非常明顯,足以用于區(qū)分故障類型??梢暬治鼋Y(jié)果表明,本文模型可以基于原始時域信號,通過自適應(yīng)學(xué)習(xí)提取出具有明顯差異的信號特征。
3.2.3 對比驗證
為進(jìn)一步證明本文模型的優(yōu)越性,將本文模型與一維CNN、變分模態(tài)分解(variational mode decomposition,VMD)[19]-核模糊C-均值聚類算法(kernel fuzzy C-means clustering, KFCM)及VMD-反向傳播神經(jīng)網(wǎng)絡(luò)(back propagation neural network, BPNN)進(jìn)行對比。經(jīng)過試驗確定CNN采用4層卷積層和4層池化層交替堆疊的結(jié)構(gòu)。
VMD算法具有較快的計算效率、良好的去噪效果及對于傳統(tǒng)算法的模態(tài)混疊問題有較大的改善等優(yōu)點,被廣泛用于信號處理領(lǐng)域。在VMD-KFCM和VMD-BPNN模型中,將采用VMD算法對原始時域信號進(jìn)行分解處理并提取特征。選取VMD分解層數(shù)K=6,計算6個分量奇異值及脈沖因子,選取最大的3個奇異值特征及3個脈沖特征、6個分量迭代收斂的中心頻率共12維特征,采用KFCM和4層BP神經(jīng)網(wǎng)絡(luò)進(jìn)行分類。分別就供油量不足、軌壓異常、氣門間隙異常多類故障的不同故障程度進(jìn)行診斷,最終各模型測試準(zhǔn)確率對比如表6所示。
表6 各模型測試準(zhǔn)確率對比
在VMD-KFCM和VMD-BPNN的故障診斷方法中,均需要人工提取特征,過程較為繁瑣,且測試準(zhǔn)確率嚴(yán)重依賴提取特征質(zhì)量,導(dǎo)致最終準(zhǔn)確率并不高。可以發(fā)現(xiàn),應(yīng)對3種類型多種程度的故障共8分類診斷任務(wù)時,傳統(tǒng)故障診斷方法分類準(zhǔn)確率會大幅下降,這是由于不同數(shù)據(jù)特征對不同類型故障的敏感程度不同,導(dǎo)致其對多類型多程度的復(fù)雜故障診斷任務(wù)識別率較低。
一維CNN雖然實現(xiàn)了端到端的故障診斷,但是由于CNN無法充分考慮振動信號的序列信息,導(dǎo)致其最終測試準(zhǔn)確率也較低。本文中提出的基于MA-CNN-BiGRU方法,應(yīng)對3種類型不同程度的復(fù)雜故障診斷任務(wù)時依舊能達(dá)到96.63%的測試準(zhǔn)確率。該方法通過模型自學(xué)習(xí)提取特征并識別,實現(xiàn)端到端的故障診斷,有效地解決傳統(tǒng)故障診斷方法依賴豐富的專家經(jīng)驗選取特征、過程繁瑣及對復(fù)雜診斷任務(wù)識別準(zhǔn)確率較低等問題。
(1)確定了MA-CNN-BiGRU的最佳卷積網(wǎng)絡(luò)層數(shù)為2,最佳樣本長度約減比例為1/8,實現(xiàn)了在不丟失序列數(shù)據(jù)關(guān)鍵信息的前提下,可自由控制輸入BiGRU序列的長度。
(2)通過引入注意力機(jī)制,面對8分類柴油機(jī)故障能夠達(dá)到96.63%的識別準(zhǔn)確率。