廖玉誠,趙建華,安士杰,周 磊
(海軍工程大學 動力工程學院, 武漢 430033)
柴油機的供油提前角直接決定柴油機的噴油定時,影響可燃混合氣體的燃燒過過程,進而對柴油機的效率、排放、熱負荷、振動、噪聲等產生重要影響[1]。最佳供油提前角區間是柴油機的一個重要參數,供油提前角處于此區間內是柴油機正常工作的必備條件。由于偶件磨損、松動、裝配調整不當等原因,供油提前角可能會偏移出最佳區間,導致柴油機出現噪聲、振動異常等故障現象。利用振動信號對柴油機進行故障診斷具有信號獲取相對簡單、信息量大等優勢。傳統方法是利用時頻分析[2-3]、統計分析[4-5]等手段,尋找故障特征,而后進行人工識別,或是利用支持向量機(Support Vector Machine,SVM)[6]、反向傳播神經網絡(Back Propagation Neural Network,BPNN)[7]等傳統人工智能方法進行模式識別。傳統方法中特征提取和特征選擇兩個環節最為關鍵,直接影響最終診斷效果。然而這兩個環節主要依靠人工完成,人的專業知識和經驗起主導作用,具有一定的不確定性。此外,傳統方法的魯棒性不強,存在外部干擾時,特征提取困難,故障識別率下降[8]。
近年來,以卷積神經網絡為代表深度學習方法在人工智能領域蓬勃發展,在圖像識別、語音識別、目標識別等領域得到廣泛應用,在故障診斷領域的相關研究也在逐漸展開。特別是在以軸承為代表的旋轉機械故障診斷方面,眾多學者取得了豐碩的研究成果。相關研究表明,基于卷積神經網絡的故障診斷模型能自適應提取故障特征[9-10],并能應用寬內核卷積的方式抑制高頻噪聲,提高故障診斷的抗干擾能力[11];還可應用權值求和及最大尺度池化的方法,提升故障診斷的泛化能力[12]。然而目前將深度學習方法應用于柴油機故障診斷的研究還比較少。相較于旋轉機械,柴油機一類的往復機械振動機理更加復雜,故障診斷的難度也更大,應用深度學習方法開展相關研究具有較強的現實意義。
本研究通過故障模擬實驗,獲得了不同供油提前角狀態下的振動數據,通過數據分割、短時傅里葉變換等方法得到了一系列時頻圖數據集。在TensorFlow框架下建立了2DCNN的故障診斷模型,基于數據集驗證診斷效果,并比較不同條件的影響。
實驗通過放松噴油泵聯軸節、轉動噴油泵凸輪軸來實現不同的供油提前角。圖1所示為供油提前角異常故障模擬實驗裝置,該裝置主要由6135AZCaf型柴油機臺架、IEPE壓電式加速度傳感器、DH5925N型數據采集分析系統等組成。

圖1 供油提前角異常故障模擬實驗裝置圖
實驗設計供油提前角過小、正常、過大3種狀態狀態。依據6135AZCaf型柴油機說明書(正常的供油提前角為28°CA~31°CA),設定3種狀態的供油提前角分別為24°CA、29°CA、34°CA,并分別對3種供油提前角進行振動測試。如圖1所示,測點布置于缸體左側、缸體右側、自由端機腳、輸出端上部共4各位置。在表1所示的6種工況參數下,利用DH5925N型數據采集分析系統及IEPE壓電式加速度傳感器測取振動加速度信號。IEPE壓電式加速度傳感器的頻率響應范圍為0.001~7 kHz,采樣頻率設置為25.6 kHz,采樣時間為200 s。

表1 工況參數
依據測點及轉速的不同進行分組,實驗共獲得12組數據,供油提前角過小、正常、過大狀態下,轉速為1 500 r/min,扭矩為60 kN·m的典型時域波形如圖2所示。

圖2 3種供油提前角狀態典型時域波形
該環節主要在Python環境下調用數值計算模塊Numpy和信號處理模塊Signal進行數據處理操作。
依據200 s采樣時間和25.6 kHz的采樣率,每組數據共有5.12×106個采樣點。以0.5 s作為樣本的時間長度,將每組數據等份分割為400個樣本,即每個樣本包含12 800個采樣點。圖3為一個樣本的時域波形。
調用Signal模塊中的signal.stft()函數對每個樣本進行短時傅里葉變換(short-time Fourier transform,STFT),獲得樣本的時頻圖像。STFT滑窗類型為海明窗,滑窗大小為512,滑動步長為256,其余參數采用signal.stft()函數默認值。圖4為一個樣本的時頻圖,圖像中越亮的點表示在該時刻對應的頻率成分越大。

圖3 樣本的時域波形

圖4 樣本時頻圖
為了防止過擬合、提高識別率,應當盡可能獲得多的樣本數。由于STFT受到不確定性原理制約,樣本長度過短,頻域會趨于發散,傅里葉變換的精度會降低。此次樣本長度選取0.5 s,在最低轉速900 r/min 時至少包含3個柴油機工作循環,樣本長度的選取是較為合理的。
上述獲得時頻彩圖實際是偽彩圖,并非真正含有RGB三個通道。將12組數據的所有樣本時頻彩圖轉換為灰度圖,還原為二維數據,并將分辨率轉換為128×128,即表示一個128×128的二階張量。根據測點、轉速的不同,將所有樣本分組,分別構建數據集,這樣就完成了從原一維時序數據到二維圖像數據的轉換。表2為各數據集編號及所含樣本數。

表2 數據集編號及樣本數
卷積神經網絡(Convolutional Neural Networks,CNN)是目前深度學習領域最具代表性的網絡架構之一,它的基本框架是1998年 Yann LeCun等提出的LeNet-5網絡[13]。如圖5所示,CNN通常包含數個卷積層和池化層,卷積層用于提取圖像特征,池化層用于防止過擬合和數據降維。最后的池化結果被拉平為一條長向量,傳入到數層全連接層。全連接層用于匯總底層信息,然后輸出結果。在Python環境下基于TensorFlow框架搭建二維卷積神經網絡,共設置4層卷積、4層池化、2層全連接。在第一卷積層設置寬內核以抑制高頻噪聲,在全連接層設置Dropout機制,即隨機隱藏部分節點以抑制過擬合。

圖5 卷積神經網絡結構示意圖
構建二維卷積神經網絡使用的TensorFlow框架,是Google Brain團隊開發的第二代人工智能學習系統,是一個基于數據流圖、用于數值計算的開源軟件庫。 數據流圖用節點和線的有向圖來描述數學計算,節點用以表示施加的數學操作,線表示節點之間的關系。這種表述方式具有極大靈活性,可以非常方便地建立起專家級的深度學習模型。
樣本數據代表一個二階張量,卷積層相應采用二維卷積運算。在第一卷積層,一個樣本上的所有像素點灰度值構成輸入矩陣A,與卷積核K運用二維卷積式(1)完成卷積運算。二維卷積運算的原理如圖6所示。將生成的矩陣B輸入到激活函數,輸出的結果就是經過卷積層得到特征圖,這些特征圖構成下一層的輸入。卷積層通常有數個卷積核,每一個卷積核擁有相同的權重,并且生成的特征圖的數量與卷積核的數量對應。

(1)
圖6中,卷積核K與輸入矩陣A重疊的區域稱為局部感受野,它經過邊緣區域元素的次數要小于中間區域,這種情況可能會導致邊緣特征的丟失。填充(Padding),即在輸入矩陣A外圍補充常數元素能夠有效解決這個問題。填充通常有Same和Valid兩種類型,Same即嘗試均勻填充,保證卷積后的形狀與卷積前一致;Valid則不填充,可能會丟棄最后的行或列。本次構建的二維卷積神經網絡4個卷積層均采用Same填充方式。

圖6 二維卷積原理示意圖
卷積層采用的非全連接的方式能顯著減少參數的數量,但節點的數量并沒有明顯減少。以第一卷積層為例,若輸入為128×128的二階張量,設置6個大小為8×8的卷積核,在不考慮填充的情況下,輸出的結果為6個122×122的特征圖。特征圖的維度略有降低,但數量卻翻6倍。池化層作用是給數據快速降維,并能最大程度保持原圖特征。池化的方式有平均池化、隨機池化和最大池化3種,采用最大池化能夠有效防止過擬合,其基本原理如圖7所示。

圖7 最大池化原理示意圖
為保證網絡整體的非線性,除池化層外,其余各層均要使用激活函數。卷積層與全連接層的激活函數采用ReLU函數(2),也稱線性修正單元。與傳統神經網絡常用的Sigmoid函數(3)相比,ReLU函數的計算量更小,并能夠有效緩解過擬合及梯度消失問題。
f(x)=max(1,x)
(2)
(3)
輸出層激活函數采用Softmax函數(4),對全連接層的結果進行歸一化,給出供油提前角過大、正常、過小3種情況的概率分布
(4)
損失函數采用交叉熵函數(5),用于評價輸出的概率分布與樣本實際情況的差異

(5)
機器學習中最常用參數優化方法是梯度下降法,即通過不斷搜索損失函數梯度的反方向達到參數調優的效果。這種方法采用固定的學習速率,計算量小、簡單易操作,但常常面臨學習速率選擇困難的問題。過大的學習速率會使訓練過程變得不穩定,過小則使得擬合速度過慢,增加了訓練成本。此外,不同參數的最優學習速率可能并不一致。本次構建的二維卷積神經網絡采用的Adam自適應算法,是梯度下降法的一種改進方法,該方法通過損失函數梯度的矩估計為不同參數分配不同的動態學習速率,避免了學習速率的選擇問題,且擁有更優的學習效果和更快擬合速度。
建立的二維卷積神經網絡參數有以下幾種類型:卷積核權重矩陣、卷積核偏置、全連接層權重矩陣、全連接層偏置。這些內部參數會隨著訓練的進行而不斷更新,直到訓練結束才會完全確定。除此以外,還有一些在訓練之前必須人為設定的參數,即超參數,如卷積核大小、卷積步長、卷積核數量、網絡層數等。網絡超參數具體設定如表3所示。

表3 網絡各層超參數
將各數據集樣本進行隨機排列,按照8∶2的比例劃分為訓練集和診斷驗證集。在訓練之前,將所有內部參數隨機初始化。在此之后,每讀取一次訓練集樣本,輸出層都會給出一個概率分布結果。通過損失函數比較輸出結果與樣本標簽數據的差異,獲得損失,而后往損失減小的方向調整內部參數。實際訓練時,為加快訓練進度,采用小批量操作的方法,即每20個樣本設置為一個批次(Batch),每輸入完一個批次更新一次內部參數。設置最大訓練輪數為200,即所有訓練集循環導入200次。單個Batch平均用時約11.3 s,所有數據集訓練完成總共用時3 h 36 min。在每個訓練集訓練完后,加載相應的驗證集數據進行診斷效果驗證。表4所示為各數據集的診斷準確率。

表4 各數據集的診斷準確率
采用BPNN、SVM兩種傳統神經網絡模型與2DCNN模型作對比。特征提取方法如下:對樣本進行小波包分解(WPD)至第4層,小波基函數選擇“db2”,提取分解后16條頻帶的相對能量值。3種供油提前角狀態各頻帶的典型相對能量分布如圖8所示。

圖8 3種狀態相對能量分布的直方圖
在訓練強度與2DCNN保持一致的情況下,轉速為1 500 r/min時各測點的診斷率如表5所示。

表5 3種模型的診斷效果 %
觀察表4中不同測點對應的診斷準確率,可以發現2個缸體測點要高于自由端機腳測點和輸出端上測點,這可能與此次診斷的故障類型有關。在轉速一定時,改變供油提前角對柴油機振動的影響主要體現在改變燃燒激振和活塞敲擊激振,即故障特征在這2個激振源上最明顯。這2個激振力直接作用于缸體,通過測量缸體振動信號能夠獲得故障的強特征,從而得到較好的診斷效果。這也說明了在利用振動信號進行柴油機故障診斷時,測點的選擇要盡可能靠近故障源。
觀察表4中不同樣本數量對應的診斷準確率,可以發現樣本數量越高,診斷效果越好。比較自由端機腳測點和輸出端上測點的準確率可知,在故障特征相對較弱時,診斷的準確率更加依賴樣本數量;如表4中,在樣本數量為1 200時,缸體左側測點可以達到97.6%的準確率,而自由端機腳測點僅為89.6%,輸出端上測點為91.2%。
觀察表4中樣本數量為2 400、3 600時各測點的準確率,可知當樣本數量達到2 400后,繼續提高樣本數量,診斷效果的提升是很有限的,此時不應該一味追求提升樣本數量。在測點選取合適時,如2個缸體測點,在樣本數量較小時就能達到比較可觀的診斷準確率。該方法理論上存在最優的本數量,它的大小可能與采樣頻率、樣本長度、網絡結構、網絡深度等均有關聯,其中具體的關系有待下一步研究討論。
觀察表5中不同模型對應的診斷率,可以看出2DCNN模型診斷效果明顯優于小波包分解+傳統神經網絡的方法。在故障特征較弱的情況下,例如自由端機腳、輸出端上2個測點距離故障源較遠,這種優勢更加明顯。
12個數據集中,均有20、40、60 kN·m三種負載情況,但2個缸體測點依然能實現較高的故障診斷率,說明負載變化對故障特征影響較小。為驗證這種假設,如圖9所示,從數據集1中隨機抽取供油提前角為過大狀態、3種負載條件的樣本各3張。可以看出3種負載條件樣本的相似度較高,說明當樣本的負載條件分布在一定范圍時,可以不用考慮負載變化對最終診斷效果的影響。

圖9 3種負載條件的樣本
1) 利用Python環境+TensorFlow框架構建了供油提前角異常時頻圖數據集,建立了基于2DCNN的故障診斷模型,成功實現了供油提前角異常故障的分類。與傳統方法相比, 2DCNN能自適應完成故障特征提取,且診斷效果更好。
2) 該方法依賴一定的數據規模,樣本的數量越大、越具有代表性,診斷效果越好。在測點選取合適的情況下,可以實現較高的診斷準確率。