(河北工業(yè)大學 機械工程學院,天津 300130)
當前,數(shù)控機床以高速度、高精度為發(fā)展趨勢,而作為數(shù)控機床關(guān)鍵傳動部件的滾珠絲杠的精度保持是個重要的問題。這是因為滾珠絲杠在長期工作中,會出現(xiàn)磨損而導致數(shù)控機床的精度下降,給高精度加工帶來難題,因而對絲杠的磨損檢測具有重要意義。滾珠絲杠的磨損失效形式分為六種:斷裂、粘合、微裂紋、疲勞剝落、滾道面振紋。而在實際觀測中,滾珠絲杠的磨損失效形式往往是多種磨損混合在一起,相互干涉、相互影響[1]。因而,對絲杠磨損的檢測是有一定難度的。
在過去的二十年中,磨損檢測多針對齒輪、軸承等單一旋轉(zhuǎn)零件,對往復式零件的磨損檢測較少[2~4]。而對往復機械的研究多集中在復壓縮機、內(nèi)燃機(柴油機及汽油機)、往復泵等,而對如絲杠這類旋轉(zhuǎn)往復式零件的磨損檢測還是較少[5]。滾珠絲杠是將旋轉(zhuǎn)運動轉(zhuǎn)換為直線運動,其磨損形式和滾子軸承的磨損有很大的區(qū)別,所以直接運用滾子軸承磨損檢測方法是存在問題的。經(jīng)過多年的研究,雖然滾珠絲杠力學模型已經(jīng)完備[6],但滾珠絲杠磨損理論還有待進一步發(fā)展[7]。
當前,滾珠絲杠副磨損診斷方法可分為:經(jīng)驗法、振動測量法[8]、聲發(fā)射檢測法[9]、溫度檢測法[10,11]、潤滑檢測法[12]。針對滾珠絲杠的磨損,王禹林等人[13]提出了一種基于全周期分段步加策略的極小子樣滾動功能部件加速實驗模型,該模型能高效地獲得滾動功能部件在不同時間歷程下的在線監(jiān)測和離線狀態(tài)數(shù)據(jù)??椎马樀热薣14]利用滾珠絲杠副磨損特征建立了加速退化模型,能夠有效地獲取滾珠絲杠副精度壽命特征。徐向紅等人[15]根據(jù)Archard模型的增量形式建立的滾珠絲杠副的磨損模型,能夠很好的反映黏著磨損階段時的實際磨損變化規(guī)律。
對于絲杠副螺母和絲杠滾道之間磨損模式的研究,徐建生等人[16]在研究滾珠絲杠螺母副的磨損時,發(fā)現(xiàn)常用的精密滾珠絲杠的滾道磨損比螺母嚴重。由于本文主要研究精密滾珠絲杠,所以就以滾珠絲杠的滾道磨損為具體研究對象。另外,當前磨損診斷對顯著磨損研究的多,而對微弱磨損的研究少[4]。而在本文中,以滾珠絲杠滾道的連續(xù)磨損為研究對象,用于提高診斷的應用價值。
基于經(jīng)驗方法的滾珠絲杠磨損檢測,是建立在人長時間積累的知識經(jīng)驗上。而視覺信息和聽覺信息是人類兩大信息來源,對人類學習知識及積累經(jīng)驗累至關(guān)重要。本文擬用視聽信息來檢測滾珠絲杠滾道的磨損狀況,實現(xiàn)非接觸檢測、智能診斷的目的。聽覺可以判斷滾珠絲杠的健康狀態(tài),而視覺可以判斷絲杠不同位置對應的健康狀態(tài)。利用視聽信息檢測絲杠磨損,需要提前進行視聽信息的預處理,使之規(guī)范化。將處理后的聽覺信息采用棧式自編碼器(Stacked Autoencoder)神經(jīng)網(wǎng)絡進行訓練,并得到訓練模型。利用訓練得到的模型,就能測試當前絲杠滾道的磨損狀況。
由于滾珠絲杠螺桿一般只有旋轉(zhuǎn)運動,直接用視覺測量絲杠的運動是不方便的,因此在這里主要測量絲杠拖動的滑塊的運動。用視覺測量滑塊的運動,需要從相機拍攝的每一幀圖像中,提取滑塊角點的位移即可。常用的角點檢測方法有SIFT算法[16]、SUSAN算法[17]、Harris算法[18]等,其中Harris算法是最成熟的,所以在這里使用Harris算法進行角點檢測。
Harris角點檢測依據(jù):當圖像中某一窗口向任何方向移動時,都會引起灰度大幅度的改變,則可認為該窗口處在一個角點上。在一幅圖像I(x,y)中,從像素點(x,y)平移(u,v)個單位后,得到移動窗口的灰度插值。
其中,E(u,v)是圖像窗口內(nèi)的圖像灰度;w(x,y)為窗函數(shù),在這里選用高斯函數(shù),這樣有利于提升中間像素的權(quán)重,降低邊緣噪聲的影響。將I(x+u,y+v)按照泰勒級數(shù)進行展開,并只取前兩階:
其中,Ix和Iy分別為圖像x方向和y方向的梯度。將上式進行如下變換:
將式(3)代入式(1),得:
為了方便表示,現(xiàn)令:
由上可知,矩陣M為一個2×2的實對稱陣。令M的特征值分別為和,以特征值作為角點響應值:
其中,k是常量,通常取0.04~0.06[19];當R大于設(shè)定的閾值時,則可以認為像素點(x,y)為角點。
假設(shè)相機連續(xù)拍攝了兩張絲杠運行的圖片,I1和I2。由Harris角點檢測得到這兩張圖片中的特征點的集合分別為A1和A2。為了提取絲杠拖動滑塊的位移,只需將這兩張圖像中的特征點匹配上,就可以求得。在本文中相機拍攝的視角是固定的,因而得到的背景也是固定。而由Harris角點檢測得到的特征點中,有很多屬于背景的角點。為了減少匹配誤差,以及提升匹配速度,而將A1和A2中相同的點去除掉(這里的相同的點是指兩個特征點間的距離小于一個像素),分別得到新的集合A1'和A2'。令點(x1,y1)∈A1',該點在A2'中對應的點為(x2,y2),從(x1,y1)到(x2,y2)的映射為:
其中,H∈R3×3為變換矩陣。單憑一對特征點是無法解出H,這至少還需要3對特征點。在這里,角點匹配算法采用隨機抽樣一致(Random Sample Consensus,RANSAC[20])算法。RANSAC算法是從A1'和A2'中隨機選取4對特征點來計算變換矩陣H,其過程如下:
步驟1:選取最大匹配次數(shù)q和距離閾值 ,特征點對數(shù)設(shè)為m;
步驟2:分別從集合A1'和A2'中隨機選取4個點,構(gòu)成4對特征點,并計算出變換矩陣H;
步驟3:利用上面所得H,計算A2'剩余點對應的配對點,記做(xb,yb)(b=1,2,…,m-4)。
步驟4:令A1'中剩余的點為(xa,ya),則計算(xb,yb)到(xa,ya)的距離di(i=1,2,…,m-4)。當di< 時,可認為該點為內(nèi)點。與此同時,計算所有內(nèi)點的個數(shù)ni(i=1,2,…,q);
步驟5:重復第2步到第4步的方法,直到迭代上限q。從ni中找出最大的數(shù)所對應的變換矩陣H,即為所求匹配關(guān)系。
以上求得的特征點中,雖然不包括背景特征點,但是還包括了很多絲杠螺紋運動的特征點。所以,求取所有特征點對的平均距離是不能當作滑塊的位移大小。為了將絲杠螺紋的特征點對去除掉,這里采用概率密度來區(qū)分。這是因為滑塊只有平移運動,所以隸屬于滑塊上的特征點對的距離基本保持一致。而絲杠上的特征點對的距離隨機性很大,所以比較容易辨別。對特征點對的距離的這種分析,屬于聚類分析。常用的聚類分析有K-means算法、RCOSD算法、DBSCAN算法等[22]。由于經(jīng)過上一節(jié)求取到的特征點對已經(jīng)很少了,所以在這里采用一個簡單的方法進行分類。將{di}從小到大排列成{di'},在區(qū)間[d1', dm']之間平分成10份。之后,檢索每個區(qū)間中di'的個數(shù),并取個數(shù)最多的區(qū)間中的di'的平均值作為滑塊的位移大小。
如果將得到的聽覺信號全部進行速傅里葉變換(Fast Fourier Transformation, FFT),就可以得到其頻譜圖,但是這種方法只能針對時不變信號。如果用這種方法處理非穩(wěn)定的信號,則得到的效果是很差的。而短時傅里葉變換(Short-Time Fourier Transform, STFT)可在一定程度上應對這種時變信號,能夠揭示信號頻率隨時間的變換過程。
首先從離散信號x讀取M個采樣點:
其中,xm代表輸入信號的第m幀,R為每幀數(shù)據(jù)的間隔長度,M=2Ml+1。為了減少頻譜泄露,現(xiàn)令xm(n)與漢明窗口W(n)相乘,得到新的截取數(shù)據(jù):
其中N是FFT的尺寸大小。則得到在m時刻的STFT為:
其中,wk=2 πkfs/N,fs是采樣頻率。
絲杠信號的周期性分為兩種形式,一種是絲杠轉(zhuǎn)動一圈產(chǎn)生的信號,另一種是滑塊往返絲杠一次產(chǎn)生的信號。絲杠的滾道磨損信號的產(chǎn)生只存在磨損處,其不同于軸承每轉(zhuǎn)都會經(jīng)過磨損處。所以,經(jīng)由STFT得到的絲杠信號與滑塊所在絲杠的位置有很強的關(guān)聯(lián)性。當絲杠以不同的速度運行時,得到的STFT數(shù)據(jù)量也是不同的。這樣就導致以不同速度得到的樣本,無法直接進行對比處理?,F(xiàn)將STFT得到的信號進行進一步處理:令絲杠旋轉(zhuǎn)一圈為一個單位,目標是在一個單位內(nèi)產(chǎn)生固定個數(shù)(ns)的STFT。假設(shè)絲杠在轉(zhuǎn)速r0(單位:r/s)的情況下,經(jīng)由一個單位產(chǎn)生的STFT個數(shù)為n0(n0>ns)。令源STFT為S={X1,X2,…,Xn0},目標STFT為S'={X1',X2',…,X'ns},Xi'∈S'。則:
其中,a=[in0/ns],b=[n0/(2ns)],符號[●]為取整運算。采用這種變化,可以將絲杠的磨損位置與頻率直接關(guān)聯(lián)上,并能將不同速度下頻率特征的數(shù)據(jù)量保持一致。
在一般情況下,麥克風的采樣頻率都很高,為了保持頻率的分辨率,而導致每個FFT的數(shù)據(jù)量都很大。單個FFT中含有相當大的冗余數(shù)據(jù),這會嚴重影響后期的計算速度。為了方便后期的處理,這里采用降采樣的方式,只截取絲杠頻譜的5000Hz以內(nèi)的頻譜,并將FFT分辨率設(shè)置成10Hz,即每個FFT只含有500個數(shù)據(jù)。為了進一步優(yōu)化數(shù)據(jù),還需在每個樣本中進行歸一化,這樣方便后續(xù)處理。
經(jīng)過STFT得到的聽覺信息包含了大量的信息,需要進一步降維處理才能得到最能表征絲杠健康狀態(tài)的信息。在這里采用棧式自編碼器神經(jīng)網(wǎng)絡,它是由多個稀疏自編碼器(Sparse Autoencoder)組成的。
稀疏自編碼器是無監(jiān)督學習的一種方式,其分為兩個過程:編碼和解碼,如圖1所示。令輸入樣本集合為{x(1),x(2),x(3),…},x(i)∈Rm,1<i<m;輸出為中間隱藏層為hh(1)},h(1)∈Rn。在編碼過程中,將輸入x(i)映射到隱藏層h(1),其計算形式如下:
其中,W(1)∈Rn×m是編碼權(quán)值矩陣,b(1)∈Rn是編碼偏置向量;(x)是一個向量值函數(shù),在非線性情況下通常取為逐元sigmoid函數(shù)或者逐元tanh函數(shù)。
圖1 稀疏自編碼器結(jié)構(gòu)
在解碼過程中,將隱藏層h(1)映射到輸出層,以對輸入x(i)進行重建的過程,其計算形式如下:
其中,W(2)∈Rn×m是解碼權(quán)值矩陣,b(2)∈Rn為解碼偏置向量;(x)是一個與(x)類似的逐元函數(shù)。
為了最大程度的保存網(wǎng)絡輸入信息,現(xiàn)求取與參數(shù)W和b相關(guān)的代價函數(shù)J(W,b):
其中,J(W,b)定義中的第一項是均方差項,m為神經(jīng)元個數(shù);第二項是權(quán)重衰減項,nl為網(wǎng)絡中層數(shù),sl為第l層的單元數(shù)目(不包含偏置單元), 為權(quán)重衰減系數(shù),其目的是減小權(quán)重的幅度,防止過度擬合。
用aj(x)來表示在給定輸入為x情況下,自編碼神經(jīng)網(wǎng)絡隱藏神經(jīng)元j的激活度。令隱藏神經(jīng)元的平均活躍度為:
之后,選取稀疏性參數(shù) ,它代表所用網(wǎng)絡要達到最終的稀疏程度,其通常是一個接近于0的較小的值(比如0.06)。在這里用KL散度(Kullback-Leibler divergence)來求取網(wǎng)絡的稀疏程度與目標的差距程度。則 與之間的KL散度為:
為了讓隱藏神經(jīng)元的平均活躍度接近 ,而將KL散度引入代價函數(shù),得到稀疏自編碼器的代價函數(shù):
其中,β為稀疏性懲罰因子的權(quán)重。當Jsparse(W,b)取得最小值時,此時得到的W和b的值便是最終所求值。這里首先需要將參數(shù)初始化為一個接近零的隨機值,之后采用重復梯度下降的迭代方法來減小Jsparse(W,b)的值,進而得到稀疏自編碼器的參數(shù)。
多層稀疏自編碼器可以構(gòu)成棧式自編碼器,其前一層稀疏自編碼器的編碼輸出作為其后一層稀疏自編碼器的輸入,如圖2所示。棧式自編碼神經(jīng)網(wǎng)絡參數(shù)的方法是采用逐層貪婪訓練(Greedy Layer-wise Training)進行訓練,即先利用原始輸入x(i)來訓練網(wǎng)絡的第一層,得到原始輸入的一階特征h(1),以及其參數(shù)W(1)和b(1);然后再用這些一階特征作為另一個稀疏自編碼器的輸入,使用它們來學習二階特征h(2),以及得到第二層的參數(shù)W(2)和b(2);最后,對后面的各層同樣采用的策略,即將前層的輸出作為下一層輸入依次進行訓練。
圖2 棧式自編碼神經(jīng)網(wǎng)絡結(jié)構(gòu)
以上為無監(jiān)督訓練方式,因為在訓練每一層參數(shù)的時候,其他各層的參數(shù)保持不變。而棧式自編碼神經(jīng)網(wǎng)絡一般會結(jié)合監(jiān)督式訓練方法,即在上述預訓練過程完成之后,可以通過反向傳播算法同時微調(diào)(finetuning)所有層的參數(shù)以改善結(jié)果。如在圖2中,在最后一層自編碼器訓練完成后,把其輸出作為特征輸入到Softmax分類器進行分類,利用分類錯誤的梯度值直接反向傳播給前面的編碼層?,F(xiàn)令訓練集由m個已標記的樣本構(gòu)成:
其中,輸入特征為x(i)=[x0,x1,…,xn],而x0=1;輸出特征為y(i)∈{1,2,…,k}。Softmax回歸中將輸入數(shù)據(jù)分類為類別j(j∈{1,2,…,k})的概率為:
Softmax回歸算法的代價函數(shù)為:
其中,1{.}是示性函數(shù),其取值規(guī)則為:1{True}=1,1{False}=1;為衰減系數(shù),用于懲罰過大的參數(shù)值。此時,為凸函數(shù),用梯度下降法就可以保證收斂到全局最優(yōu)解,并最終得到Softmax回歸模型。
為了驗證以上方法的有效性,而進行了絲杠滾道磨損實驗。在實驗過程中,保證視聽信息的采集不受外部環(huán)境的聲光影響,以提高實驗的準確性。
絲杠滾道磨損實驗設(shè)置如圖3所示。其中絲杠直徑為12mm,步長為4mm。絲杠螺母有3列內(nèi)循環(huán)滾珠,且螺母固定在滑塊內(nèi)。在絲杠的滾道上進行人為磨損,磨損方式為從左向右磨損量逐漸增大,之后再逐漸減小,如圖3(b)所示。絲杠有30圈參與磨損實驗,其中最左邊的3圈與最右邊的3圈沒有磨損,是作為正常樣本。絲杠由步進電機驅(qū)動,電機型號為57BYGH250B。步進電機驅(qū)動器為DM542,設(shè)置其每轉(zhuǎn)脈沖為800,輸出峰值電流為1.91A。相機與麥克風都置于絲杠的正前方,且麥克風位于相機之下。所用相機為Basler相機,其型號為acA3800-14uc。在本次實驗中,相機選用的分辨率為3840 2748,相機的成像畸變需提前矯正。相機采用外觸發(fā)方式進行拍攝,觸發(fā)頻率為15Hz。麥克風采用的是舒伯樂生產(chǎn)的電容型麥克風,其型號為ECM888B。該電容的頻率響應范圍為20~20000Hz,符合實驗要求。麥克風的數(shù)據(jù)采集用惠普筆記本(g6-2146tx)自帶聲卡,聲卡的采樣頻率設(shè)置為44100Hz。實驗的底層控制系統(tǒng)主要由Stm32F103處理器構(gòu)成(未在圖3中顯示),其主要功能為接受來自計算機的控制指令,控制步進電機的旋轉(zhuǎn)和相機的外觸發(fā),并將底層系統(tǒng)狀態(tài)返回到計算機。
圖3 實驗設(shè)置
在絲杠磨損實驗中,聽覺作為故障信息的來源,而視覺作為滑塊位置的檢測。首先將絲杠磨損區(qū)域分為2組,每組含有5種磨損狀態(tài),總計10份,每份含有3整圈絲杠,其標簽如圖3(b)所示。其中,L1為無磨損區(qū)域;L5為嚴重磨損區(qū)域。在采集絲杠的視聽信息時,以絲杠從左到右運行一個循環(huán)為一組樣本。則一組樣本中含有4個同一標簽區(qū)域的磨損數(shù)據(jù)。實驗的具體流程圖如圖4所示。其中,相機記錄滑塊的運行位置,以及滑塊的運行速度;麥克風記錄的音頻信息通過STFT處理。STFT的窗口寬度為4410個采樣點;重疊點數(shù)為4000;每次FFT變換的點數(shù)為4409;采樣頻率為44100Hz。根據(jù)2.2節(jié)中的方法,STFT結(jié)合絲杠的位移,便可將STFT映射到絲杠長度上。每組樣本中含有500個FFT,則每個標簽下有100個FFT?,F(xiàn)只取前5000Hz的數(shù)據(jù),即FFT的前500個數(shù)據(jù)點(因為每個FFT的分辨率為10Hz)。則每個樣本為100/4×500=12500個數(shù)據(jù)點。
由于絲杠磨損區(qū)域比較微小,且絲杠鏡面效應嚴重,所以用相機直接觀察磨損區(qū)域是困難的。在第一次采集中,需要人工標注相機采集滑塊的位置與磨損處的相對位置,即標注絲杠的標簽位置。在本次實驗中,絲杠的速度有四種:5mm/s、7.5mm/s、10mm/s、12.5mm/s。相機拍攝的連續(xù)兩幀圖像如圖5(a)所示(相機采集的是彩色圖片,為了方便顯示特征點對而轉(zhuǎn)成灰度圖),圖中絲杠的設(shè)置速度為7.5mm/s。根據(jù)第1節(jié)中的方法,進行Harris角點檢測并匹配,得到的分類結(jié)果如圖5(b)所示,其中有總共有20個特征點對??芍瑝K上的特征點對與絲杠上的特征點對有明顯的分離,取第一組中的平均值為6.61像素/幀。在每種速度下的STFT如圖6所示,其對應的規(guī)范化數(shù)據(jù)如圖7所示(為了方便顯示,圖7中的數(shù)據(jù)都是歸一化后并映射到彩色空間中)。從圖6和圖7中可知,絲杠的對比磨損信號很微弱,只在L1和L5區(qū)域的數(shù)據(jù)對比有細微差別。
圖4 實驗流程
在每一種速度下,分別采集1000組樣本,這其中750組作為訓練樣本,250組作為測試樣本。之后,將訓練樣本分別標號并打亂次序后,輸入到棧式自編碼器神經(jīng)網(wǎng)絡進行訓練。訓練模型分為5種:其中4種為只對單一速度進行訓練和測試;第5種為將這4種速度放到一塊,混合訓練和測試。棧式自編碼器神經(jīng)網(wǎng)絡總共有4層,其中,第一層是輸入層,有12500個神經(jīng)元;第二層為隱藏層,有200個神經(jīng)元;第三層也為隱藏層,有100個神經(jīng)元;第四層為Softmax分類層,有5個神經(jīng)元,這5個神經(jīng)元對應不同的標簽。棧式自編碼器神經(jīng)網(wǎng)絡按照第3節(jié)中的方法,先將第一次和第二層當做第一個稀疏自編碼器并訓練;之后,將其輸出作為第二個稀疏自編碼器的輸入,并將第三層作為第二個稀疏自編碼器的輸出,進行訓練第二個稀疏自編碼器;最后進行Softmax微調(diào)訓練。其中,稀疏性懲罰因子的權(quán)重;衰減系數(shù) 。
等完成模型訓練后,將測試數(shù)據(jù)及其標簽輸入到模型后,得到測試結(jié)果,如表1所示。其中,模型A~D分別對應速度5mm/s、7.5mm/s、10mm/s、12.5mm/s;模型E為混合模型。從測試結(jié)果可知,模型B的整體識別正確率最高;模型E整體識別率最低。這說明所用模型對于不同速度下的數(shù)據(jù)進行統(tǒng)一訓練,其效果不如只針對單一速度下的模型。另外,對于模型對于磨損量的識別率沒有明顯的差距:在模型A、C中,對L1的識別正確率要高于L5;在模型B、D、E中,對L1的識別正確率要低于L5。另外,在本次實驗中也加入了其他算法——SVM和廣義回歸神經(jīng)網(wǎng)絡(General Regression Neural Network,GRNN)。SVM采用LIBSVM軟件包中的函數(shù),其類型選用C-SVC;核函數(shù)為RBF。采用SVM對同樣的樣本進行訓練和測試,其結(jié)果如表2所示。GRNN在光滑因子值為0.01時,得到測試結(jié)果如表3所示。由表1~表3可知,棧式自編碼器神經(jīng)網(wǎng)絡的正確率要高于SVM和GRNN。
圖5 相機采集的數(shù)據(jù)
圖6 不同速度下的STFT
圖7 規(guī)范化之后的圖6
表1 棧式自編碼器神經(jīng)網(wǎng)絡測試正確率(%)
表2 SVM測試正確率(%)
表3 GRNN測試正確率(%)
針對當前絲杠磨損檢測,無法有效的確定磨損量的空間分布,本文采用視聽信息來檢測絲杠的磨損情況:用視覺確定磨損區(qū)域;用聽覺判斷磨損量。視覺采用Harris角點檢測來確定絲杠滑塊的位移;聽覺采用STFT來提取絲杠健康信息。由于絲杠磨損具有空間上的相關(guān)性,所以依據(jù)視覺信息將STFT進行規(guī)范化,使得磨損信號與空間相關(guān)聯(lián)。為了從規(guī)范化的STFT中提取絲杠健康信息,本文采用棧式自編碼神經(jīng)網(wǎng)絡進行數(shù)據(jù)的訓練與測試。該神經(jīng)網(wǎng)絡含有兩個稀疏自編碼器和一個Softmax分類器,能有效地進行數(shù)據(jù)分類,且微調(diào)后的準確率能夠達到90%以上。文中采用的方法還有些不足之處:棧式自編碼神經(jīng)網(wǎng)絡訓練時長過長;檢測精度還有有待提高;聲音信號易受環(huán)境噪音影響等。未來還需進一步提升視聽檢測的性能,使其能真正用在實際工程中。