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