張煜瑩, 陸 藝, 趙 靜
(1.中國計量大學計量測試工程學院,浙江杭州310018;2. 杭州沃鐳智能科技股份有限公司,浙江杭州310018)
作為制造業(yè)的主要設(shè)備,數(shù)控機床的加工水平直接影響機械加工、航空等眾多產(chǎn)業(yè)[1]。主軸軸承作為數(shù)控機床中的關(guān)鍵零件,若長期于磨損、膠合等失效形式下工作會導(dǎo)致軸承溫度升高,故障加劇,最終影響零件加工精度或?qū)е略O(shè)備停機[2]。刀具作為與加工件直接接觸的部件,其磨損狀態(tài)直接影響加工件的精度[3]。軸承故障診斷常采用共振解調(diào)技術(shù),此方法通過對比包絡(luò)頻譜中的頻率和軸承故障特征頻率進行故障診斷[4~6]。針對刀具故障診斷,戴穩(wěn)將刀具振動數(shù)據(jù)轉(zhuǎn)化為小波尺度圖,將其輸入依照Alexnet網(wǎng)絡(luò)架構(gòu)搭建的卷積神經(jīng)網(wǎng)絡(luò)(convolutional neunral networks,CNN)模型中訓練及診斷,此方法對刀具磨損狀態(tài)判斷具有良好效果[7];陳炳旭借助DenseNet網(wǎng)絡(luò)和BILSTM記憶單元搭建卷積循環(huán)神經(jīng)網(wǎng)絡(luò)用于刀具狀態(tài)判斷,彌補卷積網(wǎng)絡(luò)對時序特征提取的不足[8]。但這些診斷方法存在2個問題:1)未考慮2種故障同時出現(xiàn)的狀況;2)這些方法均基于同一工況,實際工業(yè)現(xiàn)場中,由于工作任務(wù)的變化,機床可能處于不同轉(zhuǎn)速下,預(yù)訓練模型無法對所有轉(zhuǎn)速下的數(shù)據(jù)進行故障診斷。且預(yù)訓練模型對故障類別的涵蓋程度有限,因此需要考慮對預(yù)訓練模型進行更新優(yōu)化,使其滿足不同時期檢測需求。
針對數(shù)控機床中主軸軸承和刀具同時出現(xiàn)故障或機床主軸轉(zhuǎn)速改變時的故障診斷問題,設(shè)計了1種基于增量學習的數(shù)控機床故障診斷系統(tǒng),該系統(tǒng)以主軸軸承和刀具作為整體研究對象。系統(tǒng)訓練過程涉及2個模型——教師模型和學生模型。教師模型為某一轉(zhuǎn)速下的故障診斷模型,學生模型為跨轉(zhuǎn)速故障診斷模型。通過增量學習使學生模型繼承教師模型的知識并學習跨轉(zhuǎn)速數(shù)據(jù)的知識,最終利用學生模型對測試數(shù)據(jù)進行測試,輸出結(jié)果。
系統(tǒng)硬件部分主要包括數(shù)控機床、振動加速度傳感器、恒流源、采集卡和邊緣端計算機。數(shù)控機床型號為vmc-850,傳感器型號為三軸加速度傳感器1A314E,用于采集x、y、z三個方向的振動信號;恒流源型號為YMC8204,用于輸出10 mA電流給傳感器供電;數(shù)據(jù)采集卡型號為PCI-1716,采樣頻率fs為20 kHz,最終采集所得的振動信號儲存在邊緣端計算機,用于后續(xù)模型訓練。硬件結(jié)構(gòu)示意圖如圖1所示。
圖1 硬件結(jié)構(gòu)示意圖Fig.1 The hardware structure diagram
系統(tǒng)軟件部分主要包括數(shù)據(jù)采集模塊、故障仿真模塊以及故障診斷模塊。軟件流程圖如圖2所示。
圖2 軟件結(jié)構(gòu)示意圖Fig.2 The software structure diagram
數(shù)據(jù)采集模塊位于邊緣端計算機,通過傳感器等硬件利用此模塊采集主軸軸承和刀具的振動信號,并初步去除工頻干擾等影響。實際工業(yè)使用中,主軸轉(zhuǎn)速通常在1 000~6 000 r/min范圍內(nèi),而最常用轉(zhuǎn)速為3 000 r/min,因此將主軸轉(zhuǎn)速3 000 r/min下采集的數(shù)據(jù)記為數(shù)據(jù)集1,主軸轉(zhuǎn)速1 000,2 000,4 000,5 000,6 000 r/min時采集的數(shù)據(jù)記為數(shù)據(jù)集2。此模塊需要采集數(shù)據(jù)集1和數(shù)據(jù)集2,其中包括了訓練數(shù)據(jù)以及測試數(shù)據(jù)。
試驗機床為工業(yè)現(xiàn)場機床,因此刀具磨損信號容易得到,但軸承無法人為破壞。為得到含有不同軸承故障和不同刀具磨損狀態(tài)的完整數(shù)據(jù)集,使用故障仿真模塊對主軸軸承故障進行仿真。故障仿真信號如式(1),式(2)所示[9]:
Y(t)=S(t)+r(t)
(1)
(2)
當y0=20,ζ=0.1,fn=1 100 Hz,fm=107.3 Hz,r(t)為信噪比為7 dB的高斯白噪聲時,生成故障特征頻率為107.3 Hz的軸承外圈故障仿真信號。機床實際振動信號、軸承外圈故障仿真信號Y(t)、添加仿真故障后機床振動信號及其包絡(luò)譜如圖3所示。
圖3 機床實際振動及仿真信號Fig.3 Actual vibration and simulation signal of machine tool
由圖3(d)可知,添加仿真故障后機床振動信號中存在頻率為107.3 Hz的信號分量及其倍頻,與預(yù)期相符,證明故障仿真模塊的有效性。后續(xù)仿真其余軸承故障只需修改對應(yīng)軸承故障特征頻率即可。
故障診斷模塊主要實現(xiàn)模型的訓練以及對測試數(shù)據(jù)的模式識別。利用Anaconda在PyCharm中配置好試驗所需環(huán)境后,使用keras以tensorflow為后端搭建一維卷積神經(jīng)網(wǎng)絡(luò)對數(shù)據(jù)集1進行學習,得到教師模型;用教師模型對數(shù)據(jù)集2進行識別,通過模型泛化能力識別正確的部分記為數(shù)據(jù)集2-1,識別為未知類別的部分記為數(shù)據(jù)集2-2;將數(shù)據(jù)集 2-2 和數(shù)據(jù)集1輸入網(wǎng)絡(luò),通過知識蒸餾和混合損失函數(shù)的方式對教師模型的知識進行遷移和更新得到學生模型,達到增量學習的目的;最終用學生模型對測試數(shù)據(jù)進行診斷分類,判斷機床所處狀態(tài)。模型中所使用軟件及版本為Anaconda3-5.3.1,PyCharm 2019.3.3、Keras2.3.1、Tensorflow 2.1,處理器為Intel Core i5-4210U。
目前深度學習領(lǐng)域的卷積神經(jīng)網(wǎng)絡(luò)常采用堆疊式3×3的卷積核,既利于加深網(wǎng)絡(luò)深度,又可用較少參數(shù)獲取較大感受野,從而抑制過擬合[10]。以此為鑒并結(jié)合一維信號的特點[11],提出應(yīng)用于診斷機床故障的模型—基于增量學習的深度卷積診斷模型(deep convolutional neural network based on incremental learning,ILDCNN),模型第1層采用大尺度卷積核,作用是提取短時特征。該卷積核大小由多次試驗優(yōu)化所得,作用是學習與故障診斷相關(guān)的特征,防止因噪聲干擾產(chǎn)生的過度學習。其余卷積層均采用3×1的卷積核。ILDCNN模型結(jié)合2種不同尺度的卷積核,既保證運算速度,同時在加深網(wǎng)絡(luò)深度前提下抑制過擬合。
此外,模型針對訓練時中間層數(shù)據(jù)分布改變的問題引入了Batch Normalization算法,在每1層卷積之后都采用批量歸一化操作,提高網(wǎng)絡(luò)的泛化能力的同時防止梯度消失或爆炸、加快訓練速度。模型還針對出現(xiàn)未知故障的問題加入未知故障診斷模塊,當識別到未知類別時,由人工初步判斷故障類型,若查明原因,則將未知樣本打標簽后重新加入模型進行增量學習,以此完善模型。增量學習[12]流程如下:首先將教師模型作為獨立網(wǎng)絡(luò)單獨訓練,保存訓練結(jié)果最優(yōu)時的網(wǎng)絡(luò)結(jié)構(gòu)和模型參數(shù),通過設(shè)置蒸餾溫度T輸出教師模型提供的標簽,記為軟標簽。其次,將數(shù)據(jù)輸入與教師模型結(jié)構(gòu)相同的ILDCNN模型(即學生模型)中,而后分成2步計算:1)使用與教師模型相同的蒸餾溫度T輸出ILDCNN模型的預(yù)測值,記為軟預(yù)測;2)直接輸出ILDCNN模型的預(yù)測值,記為硬預(yù)測。軟預(yù)測與軟標簽通過計算交叉熵得到蒸餾損失Lold,硬預(yù)測與數(shù)據(jù)真實標簽通過計算交叉熵得到蒸餾損失Lnew,Lold與Lnew相加得到總損失函數(shù)L,通過梯度下降更新ILDCNN模型的參數(shù),最終實現(xiàn)對教師模型知識的遷移和對新數(shù)據(jù)的學習。ILDCNN模型的訓練方式如圖4所示。
圖4 ILDCNN模型訓練方式Fig.4 The training method of ILDCNN model
(3)
(4)
(5)
yi=γxi+β
(6)
式中:xi為mini-batch中第i個輸入;m為mini-batch長度;ε為保證數(shù)值穩(wěn)定的常數(shù)項;γ為縮放參數(shù);β為偏移參數(shù)。
分類問題中常用Softmax函數(shù)作為模型最后一層的激活函數(shù)用于解決多分類、單標簽問題。該函數(shù)如式(7)所示,其作用是將輸入均映射到(0,1)區(qū)間內(nèi),且所有映射后的輸出和為1,選取概率最大值為預(yù)測類別。但未知故障可能不屬于任一類別或?qū)儆诙鄠€類別,此為多分類、多標簽問題,因此采用適合該問題的Sigmoid函數(shù)作為模型最后一層的激活函數(shù)[15]。該函數(shù)如式(8)所示,以(0,0.5)中心對稱,滿足事件發(fā)生與否的概率,且任一輸入經(jīng)映射后輸出范圍均為(0,1),因此映射后的輸出經(jīng)閾值劃分后滿足可能不屬于任一類別或?qū)儆诙鄠€類別的情況,即未知故障的識別。
(7)
(8)
式中:zi為輸入數(shù)據(jù)中第i個元素;n為總輸入個數(shù);x為輸入數(shù)據(jù)。
閾值選取以發(fā)揮模型最佳性能為目的,經(jīng)多次試驗所得。加入此模塊前,任何未知故障均被誤認為已知故障中的一種,此模塊為未知類別的分類提供了依據(jù)。識別到未知故障后,人工初步判斷故障類型并為其打標簽,而后將其作為新數(shù)據(jù)重新送入模型學習其特征以完善模型,此階段為增量學習,訓練方式如圖4所示。
實際工業(yè)現(xiàn)場中會出現(xiàn)機床轉(zhuǎn)速改變以及未知故障等問題。如何使ILDCNN模型對未知領(lǐng)域數(shù)據(jù)依舊有良好診斷能力,是衡量智能診斷算法好壞的重要指標,為此將引入增量學習算法。
此算法運用知識蒸餾和混合損失函數(shù)的方式對教師模型進行更新。知識蒸餾通過定義蒸餾溫度θ使ILDCNN模型的軟預(yù)測匹配教師模型的軟輸出,從而繼承更多有用信息,實現(xiàn)知識遷移[12,16]。
L=Lold+Lnew
(9)
(10)
(11)
(12)
(13)
(14)
試驗數(shù)據(jù)采集于立式加工中心vmc-850,為充分利用數(shù)據(jù)并避免過擬合,利用重疊采樣進行數(shù)據(jù)增強。以訓練樣本長度2 048為采樣窗口,偏移量為1進行采樣,采樣方式如圖5所示。
試驗涉及8類機床故障,即報廢刀具和新刀具各自對應(yīng)的軸承無故障、外圈故障、內(nèi)圈故障和滾動體故障。具體分類標簽如表1所示。每一類均包含數(shù)據(jù)集1的900個訓練樣本和100個測試樣本、數(shù)據(jù)集2的4 500個訓練樣本和500個測試樣本。
圖5 重疊采樣Fig.5 Overlap sampling
教師模型和ILDCNN模型參數(shù)均如表2所示,蒸餾溫度θ設(shè)為2。
表1數(shù)據(jù)集分類標簽Tab.1 The classification label of data set
表2模型結(jié)構(gòu)參數(shù)Tab.2 The structure parameters of model
教師模型用數(shù)據(jù)集1訓練后曲線如圖6所示。教師模型準確率穩(wěn)定在90%左右,損失值穩(wěn)定在0.25左右,且準確率上升迅速,波動較小,證明教師模型在此轉(zhuǎn)速下具有良好的訓練效果。
圖6 教師模型訓練曲線Fig.6 Teacher model training curve
教師模型若要用于測試,則需先設(shè)置合適閾值以識別未知類別。為確定最佳閾值,發(fā)揮模型最佳性能,選擇多個閾值對模型進行試驗。使用未知故障樣本對教師模型進行測試,模型將未知故障樣本正確識別為未知類別的概率為模型準確率;使用數(shù)據(jù)集1的測試數(shù)據(jù)對教師模型進行測試,模型將其錯誤識別為未知類別的概率為模型誤檢率。準確率和誤檢率隨閾值變化如圖7所示。設(shè)置0.7、0.75、0.8、0.85、0.9五個閾值對模型準確率和誤檢率進行檢測,準確率或誤檢率數(shù)值均為20次試驗測得的均值。
圖7 準確率和誤檢率隨閾值變化圖Fig.7 The accuracy and false detection rate change with threshold
由圖7可知,準確率處于67.98%~87.08%范圍內(nèi),隨閾值增大而增大;誤檢率處于2.99%~7.57%范圍內(nèi),隨閾值增大而增大,且閾值大于0.8后誤檢率迅速上升。為使模型發(fā)揮最佳性能,需使準確率盡可能高,誤檢率盡可能低,因此取最佳閾值為0.8。
為了檢測教師模型對不同轉(zhuǎn)速下數(shù)據(jù)的故障診斷能力,使用教師模型對數(shù)據(jù)集2進行故障識別,閾值為0.8,診斷準確率如圖8所示。
圖8 教師模型對數(shù)據(jù)集2的診斷準確率Fig.8 The diagnostic accuracy of the teacher model on data set 2
由圖8可知,診斷準確率均處于52.31%~65.76%,模型可檢測部分故障,但未達到工業(yè)現(xiàn)場實際需求,因此引入增量學習,將未識別出的樣本(即數(shù)據(jù)集2-2)重新打標簽后送入教師模型訓練優(yōu)化,得到ILDCNN模型。
ILDCNN模型以教師模型為基礎(chǔ),對數(shù)據(jù)集2-2進行增量學習,ILDCNN模型的訓練曲線如圖9所示。
圖9 ILDCNN模型訓練曲線Fig.9 ILDCNN model training curve
圖9(a)中曲線1~5,準確率穩(wěn)步上升,經(jīng)過約20次訓練后,準確率最終穩(wěn)定在77.40%~86.08%之間。圖9(b)中曲線1~5損失值走向幾乎一致,經(jīng)過約20次訓練后,損失值最終均穩(wěn)定在0.6左右。由此說明模型收斂情況較好,且針對不同轉(zhuǎn)速的數(shù)據(jù),增量學習均有成效。
為了驗證增量學習的效果及ILDCNN模型是否出現(xiàn)災(zāi)難性遺忘的問題,使用ILDCNN模型對數(shù)據(jù)集1和數(shù)據(jù)集2中的測試數(shù)據(jù)分別進行20次診斷試驗并記錄準確率,結(jié)合圖8中教師模型對數(shù)據(jù)集2的診斷準確率,得出增量學習前后診斷準確率對比圖如圖10所示。
圖10 增量學習前后準確率對比圖Fig.10 Comparison chart of accuracy before and after incremental learning
由圖10可知,增量學習后,ILDCNN模型對數(shù)據(jù)集2的診斷準確率均處于76.49%~86.09%之間,相比增量學習前,準確率提高約22%,模型診斷效果顯著提高,證明增量學習可提高模型跨轉(zhuǎn)速故障診斷的能力。ILDCNN模型對數(shù)據(jù)集1測試數(shù)據(jù)的診斷準確率均處于83.53%~90.54%之間,證明ILDCNN模型對教師模型知識的遷移效果良好,未出現(xiàn)災(zāi)難性遺忘。
為了進一步驗證ILDCNN模型在跨轉(zhuǎn)速故障診斷領(lǐng)域的優(yōu)化效果,將其與對比模型進行對比試驗,對比模型包括Fine Tuning(針對跨領(lǐng)域數(shù)據(jù)進行微調(diào))和Joint Training(各領(lǐng)域數(shù)據(jù)聯(lián)合訓練)這2種經(jīng)典的跨領(lǐng)域診斷算法。3種模型均以數(shù)據(jù)集1訓練原始模型,數(shù)據(jù)集2用于增量學習。試驗結(jié)果如圖11所示。
圖11 模型對比試驗圖Fig.11 Model comparison test chart
由圖11可知,Fine Tuning總體準確率均較低且在數(shù)據(jù)集1上的表現(xiàn)極差,這是由于Fine Tuning只針對新領(lǐng)域數(shù)據(jù)(即數(shù)據(jù)集2)進行優(yōu)化;Joint Training在各個轉(zhuǎn)速下的準確率均處于80%左右,且對數(shù)據(jù)集1有較好診斷能力,這是由于Joint Training將數(shù)據(jù)集1、2的所有數(shù)據(jù)均用于優(yōu)化模型,但數(shù)據(jù)量巨大,因此訓練耗時長,且該方法優(yōu)化模型時需要所有原始數(shù)據(jù),既不方便也不符合大數(shù)據(jù)時代的發(fā)展;ILDCNN模型達到與Joint Training相似的準確率,但該模型僅需數(shù)據(jù)集2和部分數(shù)據(jù)集1,將訓練用時縮短近1/6,隨著模型優(yōu)化次數(shù)增多,其優(yōu)勢將遠遠大于Joint Training。
對比ILDCNN模型與傳統(tǒng)時頻域診斷方法的優(yōu)劣,得出如下分析:時域分析法在機床振動信號有明顯特征時可識別故障,但由于隨機信號混雜,準確率往往較低。而軸承故障更是難以從時域中分析,通常使用頻域分析[17],因此時域分析法不適合機床故障診斷領(lǐng)域。頻域分析法在機床故障領(lǐng)域應(yīng)用廣泛,其診斷準確率與ILDCNN模型接近,但該方法僅適合已知故障類別的判斷,無法對復(fù)合故障等未知故障進行診斷[18]。綜上,機床故障診斷模型需滿足明確分類故障類別、可診斷未知故障等條件,而ILDCNN模型滿足上述要求,體現(xiàn)ILDCNN模型在故障診斷領(lǐng)域的優(yōu)勢。
ILDCNN模型針對跨轉(zhuǎn)速領(lǐng)域中無法識別的未知故障采用增量學習的方式,對比傳統(tǒng)方法做了以下優(yōu)化:1)利用Batch Normalization算法加速了訓練過程;2)利用增量學習實現(xiàn)對教師模型的知識遷移和對跨轉(zhuǎn)速數(shù)據(jù)的特征學習,使得ILDCNN模型在不同轉(zhuǎn)速下的準確率均處于76.49%~86.09%,相比增量學習前提高約22%。
ILDCNN模型不僅各方面優(yōu)于傳統(tǒng)時頻域診斷方法,且與Fine Tuning和Joint Training兩種跨領(lǐng)域算法相比,提高了跨轉(zhuǎn)速故障診斷的準確率,縮短了訓練用時,為大數(shù)據(jù)下的故障診斷模型提供新思路。