錢心筠,王友仁,趙亞磊
(南京航空航天大學 自動化學院,江蘇 南京 211106)
行星齒輪箱作為一種傳動效率高、承載能力強的機械裝置,被廣泛用于新能源發電、軍事、航空航天等涉及國計民生的領域。由于行星齒輪箱長期工作在變轉速重載的惡劣環境下,太陽輪、行星輪等關鍵部件極易發生故障,易引發傳動系統的失效。由于行星齒輪箱本身受到一定維護加之部分故障發展較慢,因而無法收集到足夠的故障樣本用于故障診斷[1]。
隨著機器學習尤其是深度學習理論的發展,在訓練樣本有限的情況下行星齒輪箱的故障診斷已成為當前的研究熱點。針對這類問題,在小樣本學習領域一般可從數據、算法等角度進行處理,目前,算法層面上主要是通過提取故障敏感特征,并對故障分類上選用支持向量機(support vector machine, SVM)這類有小樣本分類能力算法進行改進來解決此類問題,這類方法所提取特征質量密切相關,需要大量專家知識[2]。因而,最為常用的方法仍然是在數據層面對訓練數據集進行增強,效果比較好的是通過生成對抗網絡(generative adversarial nets,GAN)實現樣本擴充。文獻[3]將堆棧自動編碼器作為GAN的判別器,生成了與原始分布相似的樣本,實現了在故障樣本量較小情況下的故障診斷。文獻[4]通過有限元仿真生成的軸承仿真樣本來彌補故障樣本缺失的不足,將仿真樣本和真實樣本送入GAN實現樣本擴充。文獻[5]利用條件變分自動編碼器獲取了原始故障樣本分布,通過生成器為解碼網絡生成大量故障樣本,實現了行星齒輪箱故障的有效診斷。然而這類基于GAN的樣本增強方法往往只學習到了對象在分布上的特點,當面對某些類別的樣本量極少時,所訓練出的模型并不能達到令人滿意的效果[6]。
BROMLEY J等提出的孿生網絡(siamese networks)[7]目前已廣泛應用于人像識別、指紋識別、目標追蹤等模式識別領域。孿生網絡通過兩個結構相同的網絡對特征進行提取,而后基于距離度量給出分類準則。該網絡通過訓練集樣本組成樣本對的方式,增加了對單個樣本的利用次數,實現了在有限的訓練樣本中獲取到多類別樣本間的共同特征,為在樣本量有限情況下的故障診斷提供了一種新的思路。
本文選用一種基于孿生卷積神經網絡(Siamese convolution neural networks, Siamese-CNN)的行星齒輪箱故障診斷方法,以應對故障訓練樣本有限的問題。該方法利用CNN自動提取行星齒輪箱振動信號特征,將特征輸入至孿生網絡架構,基于樣本間的距離度量來優化網絡參數。測試階段通過將測試樣本和訓練集中部分樣本組成樣本對輸入至Siamese-CNN網絡中進行故障診斷,最后以行星齒輪箱實驗平臺的數據為例驗證了該方法的有效性。
孿生網絡的基本結構如圖1所示,網絡1和網絡2是兩個相同的神經網絡,用于將輸入樣本對映射到同一個高維空間,通過特征向量距離的相似度量,輸出一個在[0,1]之間的數作為該樣本對樣本間的相似度。通過這種基于距離度量學習的方式,可以極大地減少網絡參數的訓練負擔。對于一個樣本量M的訓練集而言,可以組成M(M-1)/2個不同的訓練樣本對,這樣增加了樣本的利用率,又借此減少對訓練樣本量的依賴。在測試時,一條網絡的輸入是訓練集的樣本,用于提供先驗知識;另一條支路則是測試集樣本。通過訓練好的網絡獲取樣本間的相似度,確定測試樣本狀態。

圖1 孿生網絡基本結構
圖2(a)所示為孿生網絡訓練過程,輸入網絡的是一對對相同或者不同類別的樣本數據,輸出則是經相似度量后這個樣本對樣本間相似的概率,通過得到的相似概率與實際的差距來調整模型參數。
測試策略上借鑒元學習理論[8],從訓練集中選取每類N個樣本作為支持集,如圖2(c)所示,采用N-shotK-way測試準則,確定測試樣本的分類。

圖2 孿生網絡訓練與測試策略

S={(x1,y1),…,(xk,yk)}
(1)

(2)
對于N-shotK-way測試過程,則是進行了N次one-shotK-way的測試過程,支持集Sn是N個形如式(1)的集合組成。將每一類別所得到的N個相似度求和,選取各個類別求和所得的最大值作為當前測試樣本的最終類別,其表示式如(3)所示。
(3)
1) 相似度量
孿生卷積神經網絡是指圖1中的網絡1、網絡2均為卷積神經網絡,在這里選用包含5個卷積層、5個最大值池化交替組成的卷積網絡結構。該網絡使用L1距離度量CNN網絡,其表達式如(4)所示。
(4)
式中f(·)是所使用的卷積神經網絡。最后,如式(5)所示,通過全連接操作生成最終的相似度,
P(x1,x2)=sigm{FC[df(x1,x2)]}
(5)
式中FC為全連接層,這里采用Dropout進行全連接降維,增強了模型泛化性;sigm是sigmoid激活函數,用于生成兩個向量之間的最終相似度。當值越接近則代表兩者越相似。
2) 損失函數
采用交叉熵損失函數,對于一個訓練樣本對而言,令t表示兩個樣本是否屬于同一類。當t=1表示輸入樣本對的兩個樣本屬于同類,t=0代表兩個樣本不屬于同一類,同時引入帶自適應系數λ的L2權重衰減系數項λ|W|2來防止模型過擬合,得到如式(6)所示的誤差控制函數。
L(x1,x2,t)=tlog(P(x1,x2))+
(1-t)log(1-P(x1,x2))+λ|W|2
(6)
3) 優化
孿生網絡使用mini-batch與Adam相結合的優化訓練機制,計算每個參數單獨的自適應學習率,網絡參數更新遵循以下規則:
(7)
式中:w(T)是在第T個epoch的參數;L(T)是如式(6)所示的損失函數;ρ1、ρ2分別是Adam優化算法的一階矩、二階矩遺忘因子;s和v代表移動平均線。
4) 訓練

本文采用一種基于孿生卷積神經網絡的行星齒輪箱故障診斷方法,該方法通過卷積神經網絡提取行星齒輪箱多方向振動信號特征,利用孿生網絡的度量學習能力,實現了在故障訓練樣本有限的情況下的故障特征分類。
基于Siamese-CNN的故障診斷算法流程如圖3所示,具體實施步驟如下:

圖3 行星齒輪箱故障診斷流程圖
1)獲取行星齒輪箱多方向的振動信號,劃分訓練集和測試集,并將訓練集兩兩一組形成樣本對,輸入Siamese-CNN網絡中。
2)訓練Siamese-CNN。首先通過卷積神經網絡提取樣本對的故障特征,經歷L1距離度量、全連接生成相似度,根據全連接生成的相似度、樣本對實際情況構建的誤差損失函數反向優化CNN模型參數。反復訓練直至完成所設定的迭代次數。
3)將測試樣本與支持集樣本形成的樣本對,輸入訓練好的Siamese-CNN中進行行星齒輪箱故障診斷,分析診斷結果。
1)實驗平臺及數據簡介
采用的行星齒輪箱故障模擬實驗平臺如圖4所示。實驗平臺主要由變速驅動電機、平行齒輪箱、行星齒輪箱與磁粉制動器組成。在本實驗中分別在行星輪和太陽輪上設置了裂紋、磨損、斷齒這3類故障,6種故障模式。實驗采集了共121種工況下的數據:11種轉速600~1 500r/min,11種負載0~22.5N·m。振動加速度采樣率為20 480Hz,采樣時間為51.2s。

圖4 行星齒輪箱實驗平臺
2)樣本數據集
實驗選取工況為900r/min、0N·m;1 050r/min、9N·m,1 200r/min、13.5N·m這3種工況下的三通道時域數據,將3路信號作為整體,選取每種工況下6s數據,前3s用于訓練,剩余用于測試。其中,在訓練樣本的構建上使用時域信號滑窗的方式劃分樣本,步長為80,滑窗長度為2 048,以減少因信號截斷對診斷造成的影響。在測試樣本的構建上,則以2 048為長度截取測試樣本。最終獲取到每種模式2 100個訓練集樣本、90個測試樣本,具體信息如表1所示。
實驗中,分別從表1所示的樣本集中隨機抽取每種模式9、12、20、30、40、70、150個樣本組成訓練集,用于模擬故障訓練樣本量不足的情況,測試集則總樣本量為630。
本文所使用算法均在Python環境下使用Google研發的Tensorflow框架實現,神經網絡通過keras搭建,程序在搭載有Intel Core i5-8500處理器16G內存的計算機上運行,操作系統為Windows 10。
本實驗將SVM、分類器為Softmax的CNN與Siamese-CNN方法進行比較。其中,SVM方法在核函數上采取高斯核函數,分別輸入與上文所述樣本集(SVM1)以及該樣本集經人工提取特征后所得樣本(SVM2)。CNN方法的特征提取架構與Siamese-CNN相同,兩種深度學習架構學習率設置為0.001,優化方法采用Adam算法。每種模型訓練5次,取其平均值作為診斷準確率(圖5)。

圖5 不同診斷模型在不同訓練樣本量下比較
由圖5可知,任何一種方法的故障診斷準確率都隨樣本量的增大而增大。然而,SVM這類傳統方法在樣本量較小的情況下表現不佳。當訓練集樣本總量為63時,使用兩種類型數據訓練的SVM方法僅能達到不足30%的故障診斷準確率,遠小于深度學習方法。直接使用所截取的原始時域數據訓練的SVM所得模型較經特征提取后所得模型而言,故障準確率隨樣本增加上升緩慢。
相比而言,基于CNN的診斷方法有著較高的診斷準確率。為了更好理解基于孿生網絡的故障診斷方法在樣本量有限的情況下的效果,繪制出在訓練集總樣本量為140情況下的CNN、Siamese-CNN中one-shot測試方法提取的特征TSNE可視化散點圖以及網絡分類結果(圖6、圖7)。從圖6中可以看到,相比傳統CNN方法,Siamese-CNN所提取的特征更加充分,尤其在行星輪斷齒與太陽輪磨損間的故障特征上更加明顯。從圖7分類結果上看,使用Siamese-CNN方法在行星輪斷齒、太陽輪磨損故障相比傳統CNN方法更容易診斷,分類精度明顯高于CNN方法。

圖6 故障特征可視化

圖7 分類結果混淆矩陣
根據上述分析可知,孿生卷積神經網絡能在一定程度上減輕對樣本的依賴,在樣本量有限的情況下取得較高的診斷準確率以及分類精度。
本文采用了一種基于孿生卷積神經網絡的故障診斷方法,通過實驗得出以下結論:
1)基于孿生卷積神經網絡的故障診斷方法通過CNN自動提取敏感故障特征,而后基于度量學習方法確定樣本分類,在一定程度上減少了對樣本的依賴。
2)基于孿生卷積神經網絡的故障診斷方法,故障診斷準確率明顯優于SVM這類傳統解決方法。
3)相比傳統CNN方法,基于孿生卷積神經網絡區分度好,在每一種模式上的分類精度都更高。