錢心筠,王友仁,趙亞磊
(南京航空航天大學(xué) 自動(dòng)化學(xué)院,江蘇 南京 211106)
行星齒輪箱作為一種傳動(dòng)效率高、承載能力強(qiáng)的機(jī)械裝置,被廣泛用于新能源發(fā)電、軍事、航空航天等涉及國(guó)計(jì)民生的領(lǐng)域。由于行星齒輪箱長(zhǎng)期工作在變轉(zhuǎn)速重載的惡劣環(huán)境下,太陽(yáng)輪、行星輪等關(guān)鍵部件極易發(fā)生故障,易引發(fā)傳動(dòng)系統(tǒng)的失效。由于行星齒輪箱本身受到一定維護(hù)加之部分故障發(fā)展較慢,因而無法收集到足夠的故障樣本用于故障診斷[1]。
隨著機(jī)器學(xué)習(xí)尤其是深度學(xué)習(xí)理論的發(fā)展,在訓(xùn)練樣本有限的情況下行星齒輪箱的故障診斷已成為當(dāng)前的研究熱點(diǎn)。針對(duì)這類問題,在小樣本學(xué)習(xí)領(lǐng)域一般可從數(shù)據(jù)、算法等角度進(jìn)行處理,目前,算法層面上主要是通過提取故障敏感特征,并對(duì)故障分類上選用支持向量機(jī)(support vector machine, SVM)這類有小樣本分類能力算法進(jìn)行改進(jìn)來解決此類問題,這類方法所提取特征質(zhì)量密切相關(guān),需要大量專家知識(shí)[2]。因而,最為常用的方法仍然是在數(shù)據(jù)層面對(duì)訓(xùn)練數(shù)據(jù)集進(jìn)行增強(qiáng),效果比較好的是通過生成對(duì)抗網(wǎng)絡(luò)(generative adversarial nets,GAN)實(shí)現(xiàn)樣本擴(kuò)充。文獻(xiàn)[3]將堆棧自動(dòng)編碼器作為GAN的判別器,生成了與原始分布相似的樣本,實(shí)現(xiàn)了在故障樣本量較小情況下的故障診斷。文獻(xiàn)[4]通過有限元仿真生成的軸承仿真樣本來彌補(bǔ)故障樣本缺失的不足,將仿真樣本和真實(shí)樣本送入GAN實(shí)現(xiàn)樣本擴(kuò)充。文獻(xiàn)[5]利用條件變分自動(dòng)編碼器獲取了原始故障樣本分布,通過生成器為解碼網(wǎng)絡(luò)生成大量故障樣本,實(shí)現(xiàn)了行星齒輪箱故障的有效診斷。然而這類基于GAN的樣本增強(qiáng)方法往往只學(xué)習(xí)到了對(duì)象在分布上的特點(diǎn),當(dāng)面對(duì)某些類別的樣本量極少時(shí),所訓(xùn)練出的模型并不能達(dá)到令人滿意的效果[6]。
BROMLEY J等提出的孿生網(wǎng)絡(luò)(siamese networks)[7]目前已廣泛應(yīng)用于人像識(shí)別、指紋識(shí)別、目標(biāo)追蹤等模式識(shí)別領(lǐng)域。孿生網(wǎng)絡(luò)通過兩個(gè)結(jié)構(gòu)相同的網(wǎng)絡(luò)對(duì)特征進(jìn)行提取,而后基于距離度量給出分類準(zhǔn)則。該網(wǎng)絡(luò)通過訓(xùn)練集樣本組成樣本對(duì)的方式,增加了對(duì)單個(gè)樣本的利用次數(shù),實(shí)現(xiàn)了在有限的訓(xùn)練樣本中獲取到多類別樣本間的共同特征,為在樣本量有限情況下的故障診斷提供了一種新的思路。
本文選用一種基于孿生卷積神經(jīng)網(wǎng)絡(luò)(Siamese convolution neural networks, Siamese-CNN)的行星齒輪箱故障診斷方法,以應(yīng)對(duì)故障訓(xùn)練樣本有限的問題。該方法利用CNN自動(dòng)提取行星齒輪箱振動(dòng)信號(hào)特征,將特征輸入至孿生網(wǎng)絡(luò)架構(gòu),基于樣本間的距離度量來優(yōu)化網(wǎng)絡(luò)參數(shù)。測(cè)試階段通過將測(cè)試樣本和訓(xùn)練集中部分樣本組成樣本對(duì)輸入至Siamese-CNN網(wǎng)絡(luò)中進(jìn)行故障診斷,最后以行星齒輪箱實(shí)驗(yàn)平臺(tái)的數(shù)據(jù)為例驗(yàn)證了該方法的有效性。
孿生網(wǎng)絡(luò)的基本結(jié)構(gòu)如圖1所示,網(wǎng)絡(luò)1和網(wǎng)絡(luò)2是兩個(gè)相同的神經(jīng)網(wǎng)絡(luò),用于將輸入樣本對(duì)映射到同一個(gè)高維空間,通過特征向量距離的相似度量,輸出一個(gè)在[0,1]之間的數(shù)作為該樣本對(duì)樣本間的相似度。通過這種基于距離度量學(xué)習(xí)的方式,可以極大地減少網(wǎng)絡(luò)參數(shù)的訓(xùn)練負(fù)擔(dān)。對(duì)于一個(gè)樣本量M的訓(xùn)練集而言,可以組成M(M-1)/2個(gè)不同的訓(xùn)練樣本對(duì),這樣增加了樣本的利用率,又借此減少對(duì)訓(xùn)練樣本量的依賴。在測(cè)試時(shí),一條網(wǎng)絡(luò)的輸入是訓(xùn)練集的樣本,用于提供先驗(yàn)知識(shí);另一條支路則是測(cè)試集樣本。通過訓(xùn)練好的網(wǎng)絡(luò)獲取樣本間的相似度,確定測(cè)試樣本狀態(tài)。
圖1 孿生網(wǎng)絡(luò)基本結(jié)構(gòu)
圖2(a)所示為孿生網(wǎng)絡(luò)訓(xùn)練過程,輸入網(wǎng)絡(luò)的是一對(duì)對(duì)相同或者不同類別的樣本數(shù)據(jù),輸出則是經(jīng)相似度量后這個(gè)樣本對(duì)樣本間相似的概率,通過得到的相似概率與實(shí)際的差距來調(diào)整模型參數(shù)。
測(cè)試策略上借鑒元學(xué)習(xí)理論[8],從訓(xùn)練集中選取每類N個(gè)樣本作為支持集,如圖2(c)所示,采用N-shotK-way測(cè)試準(zhǔn)則,確定測(cè)試樣本的分類。
圖2 孿生網(wǎng)絡(luò)訓(xùn)練與測(cè)試策略
S={(x1,y1),…,(xk,yk)}
(1)
(2)
對(duì)于N-shotK-way測(cè)試過程,則是進(jìn)行了N次one-shotK-way的測(cè)試過程,支持集Sn是N個(gè)形如式(1)的集合組成。將每一類別所得到的N個(gè)相似度求和,選取各個(gè)類別求和所得的最大值作為當(dāng)前測(cè)試樣本的最終類別,其表示式如(3)所示。
(3)
1) 相似度量
孿生卷積神經(jīng)網(wǎng)絡(luò)是指圖1中的網(wǎng)絡(luò)1、網(wǎng)絡(luò)2均為卷積神經(jīng)網(wǎng)絡(luò),在這里選用包含5個(gè)卷積層、5個(gè)最大值池化交替組成的卷積網(wǎng)絡(luò)結(jié)構(gòu)。該網(wǎng)絡(luò)使用L1距離度量CNN網(wǎng)絡(luò),其表達(dá)式如(4)所示。
(4)
式中f(·)是所使用的卷積神經(jīng)網(wǎng)絡(luò)。最后,如式(5)所示,通過全連接操作生成最終的相似度,
P(x1,x2)=sigm{FC[df(x1,x2)]}
(5)
式中FC為全連接層,這里采用Dropout進(jìn)行全連接降維,增強(qiáng)了模型泛化性;sigm是sigmoid激活函數(shù),用于生成兩個(gè)向量之間的最終相似度。當(dāng)值越接近則代表兩者越相似。
2) 損失函數(shù)
采用交叉熵?fù)p失函數(shù),對(duì)于一個(gè)訓(xùn)練樣本對(duì)而言,令t表示兩個(gè)樣本是否屬于同一類。當(dāng)t=1表示輸入樣本對(duì)的兩個(gè)樣本屬于同類,t=0代表兩個(gè)樣本不屬于同一類,同時(shí)引入帶自適應(yīng)系數(shù)λ的L2權(quán)重衰減系數(shù)項(xiàng)λ|W|2來防止模型過擬合,得到如式(6)所示的誤差控制函數(shù)。
L(x1,x2,t)=tlog(P(x1,x2))+
(1-t)log(1-P(x1,x2))+λ|W|2
(6)
3) 優(yōu)化
孿生網(wǎng)絡(luò)使用mini-batch與Adam相結(jié)合的優(yōu)化訓(xùn)練機(jī)制,計(jì)算每個(gè)參數(shù)單獨(dú)的自適應(yīng)學(xué)習(xí)率,網(wǎng)絡(luò)參數(shù)更新遵循以下規(guī)則:
(7)
式中:w(T)是在第T個(gè)epoch的參數(shù);L(T)是如式(6)所示的損失函數(shù);ρ1、ρ2分別是Adam優(yōu)化算法的一階矩、二階矩遺忘因子;s和v代表移動(dòng)平均線。
4) 訓(xùn)練
本文采用一種基于孿生卷積神經(jīng)網(wǎng)絡(luò)的行星齒輪箱故障診斷方法,該方法通過卷積神經(jīng)網(wǎng)絡(luò)提取行星齒輪箱多方向振動(dòng)信號(hào)特征,利用孿生網(wǎng)絡(luò)的度量學(xué)習(xí)能力,實(shí)現(xiàn)了在故障訓(xùn)練樣本有限的情況下的故障特征分類。
基于Siamese-CNN的故障診斷算法流程如圖3所示,具體實(shí)施步驟如下:
圖3 行星齒輪箱故障診斷流程圖
1)獲取行星齒輪箱多方向的振動(dòng)信號(hào),劃分訓(xùn)練集和測(cè)試集,并將訓(xùn)練集兩兩一組形成樣本對(duì),輸入Siamese-CNN網(wǎng)絡(luò)中。
2)訓(xùn)練Siamese-CNN。首先通過卷積神經(jīng)網(wǎng)絡(luò)提取樣本對(duì)的故障特征,經(jīng)歷L1距離度量、全連接生成相似度,根據(jù)全連接生成的相似度、樣本對(duì)實(shí)際情況構(gòu)建的誤差損失函數(shù)反向優(yōu)化CNN模型參數(shù)。反復(fù)訓(xùn)練直至完成所設(shè)定的迭代次數(shù)。
3)將測(cè)試樣本與支持集樣本形成的樣本對(duì),輸入訓(xùn)練好的Siamese-CNN中進(jìn)行行星齒輪箱故障診斷,分析診斷結(jié)果。
1)實(shí)驗(yàn)平臺(tái)及數(shù)據(jù)簡(jiǎn)介
采用的行星齒輪箱故障模擬實(shí)驗(yàn)平臺(tái)如圖4所示。實(shí)驗(yàn)平臺(tái)主要由變速驅(qū)動(dòng)電機(jī)、平行齒輪箱、行星齒輪箱與磁粉制動(dòng)器組成。在本實(shí)驗(yàn)中分別在行星輪和太陽(yáng)輪上設(shè)置了裂紋、磨損、斷齒這3類故障,6種故障模式。實(shí)驗(yàn)采集了共121種工況下的數(shù)據(jù):11種轉(zhuǎn)速600~1 500r/min,11種負(fù)載0~22.5N·m。振動(dòng)加速度采樣率為20 480Hz,采樣時(shí)間為51.2s。
圖4 行星齒輪箱實(shí)驗(yàn)平臺(tái)
2)樣本數(shù)據(jù)集
實(shí)驗(yàn)選取工況為900r/min、0N·m;1 050r/min、9N·m,1 200r/min、13.5N·m這3種工況下的三通道時(shí)域數(shù)據(jù),將3路信號(hào)作為整體,選取每種工況下6s數(shù)據(jù),前3s用于訓(xùn)練,剩余用于測(cè)試。其中,在訓(xùn)練樣本的構(gòu)建上使用時(shí)域信號(hào)滑窗的方式劃分樣本,步長(zhǎng)為80,滑窗長(zhǎng)度為2 048,以減少因信號(hào)截?cái)鄬?duì)診斷造成的影響。在測(cè)試樣本的構(gòu)建上,則以2 048為長(zhǎng)度截取測(cè)試樣本。最終獲取到每種模式2 100個(gè)訓(xùn)練集樣本、90個(gè)測(cè)試樣本,具體信息如表1所示。
實(shí)驗(yàn)中,分別從表1所示的樣本集中隨機(jī)抽取每種模式9、12、20、30、40、70、150個(gè)樣本組成訓(xùn)練集,用于模擬故障訓(xùn)練樣本量不足的情況,測(cè)試集則總樣本量為630。
本文所使用算法均在Python環(huán)境下使用Google研發(fā)的Tensorflow框架實(shí)現(xiàn),神經(jīng)網(wǎng)絡(luò)通過keras搭建,程序在搭載有Intel Core i5-8500處理器16G內(nèi)存的計(jì)算機(jī)上運(yùn)行,操作系統(tǒng)為Windows 10。
本實(shí)驗(yàn)將SVM、分類器為Softmax的CNN與Siamese-CNN方法進(jìn)行比較。其中,SVM方法在核函數(shù)上采取高斯核函數(shù),分別輸入與上文所述樣本集(SVM1)以及該樣本集經(jīng)人工提取特征后所得樣本(SVM2)。CNN方法的特征提取架構(gòu)與Siamese-CNN相同,兩種深度學(xué)習(xí)架構(gòu)學(xué)習(xí)率設(shè)置為0.001,優(yōu)化方法采用Adam算法。每種模型訓(xùn)練5次,取其平均值作為診斷準(zhǔn)確率(圖5)。
圖5 不同診斷模型在不同訓(xùn)練樣本量下比較
由圖5可知,任何一種方法的故障診斷準(zhǔn)確率都隨樣本量的增大而增大。然而,SVM這類傳統(tǒng)方法在樣本量較小的情況下表現(xiàn)不佳。當(dāng)訓(xùn)練集樣本總量為63時(shí),使用兩種類型數(shù)據(jù)訓(xùn)練的SVM方法僅能達(dá)到不足30%的故障診斷準(zhǔn)確率,遠(yuǎn)小于深度學(xué)習(xí)方法。直接使用所截取的原始時(shí)域數(shù)據(jù)訓(xùn)練的SVM所得模型較經(jīng)特征提取后所得模型而言,故障準(zhǔn)確率隨樣本增加上升緩慢。
相比而言,基于CNN的診斷方法有著較高的診斷準(zhǔn)確率。為了更好理解基于孿生網(wǎng)絡(luò)的故障診斷方法在樣本量有限的情況下的效果,繪制出在訓(xùn)練集總樣本量為140情況下的CNN、Siamese-CNN中one-shot測(cè)試方法提取的特征TSNE可視化散點(diǎn)圖以及網(wǎng)絡(luò)分類結(jié)果(圖6、圖7)。從圖6中可以看到,相比傳統(tǒng)CNN方法,Siamese-CNN所提取的特征更加充分,尤其在行星輪斷齒與太陽(yáng)輪磨損間的故障特征上更加明顯。從圖7分類結(jié)果上看,使用Siamese-CNN方法在行星輪斷齒、太陽(yáng)輪磨損故障相比傳統(tǒng)CNN方法更容易診斷,分類精度明顯高于CNN方法。
圖6 故障特征可視化
圖7 分類結(jié)果混淆矩陣
根據(jù)上述分析可知,孿生卷積神經(jīng)網(wǎng)絡(luò)能在一定程度上減輕對(duì)樣本的依賴,在樣本量有限的情況下取得較高的診斷準(zhǔn)確率以及分類精度。
本文采用了一種基于孿生卷積神經(jīng)網(wǎng)絡(luò)的故障診斷方法,通過實(shí)驗(yàn)得出以下結(jié)論:
1)基于孿生卷積神經(jīng)網(wǎng)絡(luò)的故障診斷方法通過CNN自動(dòng)提取敏感故障特征,而后基于度量學(xué)習(xí)方法確定樣本分類,在一定程度上減少了對(duì)樣本的依賴。
2)基于孿生卷積神經(jīng)網(wǎng)絡(luò)的故障診斷方法,故障診斷準(zhǔn)確率明顯優(yōu)于SVM這類傳統(tǒng)解決方法。
3)相比傳統(tǒng)CNN方法,基于孿生卷積神經(jīng)網(wǎng)絡(luò)區(qū)分度好,在每一種模式上的分類精度都更高。