楊洪濤, 顧嘉輝, 江 磊, 龐勇軍, 李 莉
(安徽理工大學(xué) 機械工程學(xué)院,安徽 淮南 232001)
數(shù)控機床在機測量系統(tǒng)的測量主要是依靠機床本體和測頭實現(xiàn)的,其中機床XY工作臺的定位誤差是影響測量精度的關(guān)鍵來源之一,其受測量坐標位置、運動速度、各部件的裝配精度、摩擦磨損等因素的影響。近年來不少學(xué)者對XY工作臺定位誤差建模補償方法開展研究,常用的誤差建模方法有最小二乘法、多體系統(tǒng)理論、齊次坐標變換法、正交多項式等[1-4]。但通過上述方法建模必須利用誤差預(yù)測軟件實現(xiàn)補償,存在誤差影響因素考慮不足、誤差預(yù)測模型復(fù)雜、補償實時性差的問題。數(shù)字信號處理器(digital signal processor,DSP)是一款能利用硬件實現(xiàn)復(fù)雜算法運算的微處理器,片上整合了多種外設(shè),具有強大的控制能力和運算能力,多應(yīng)用于處理速度和精度要求高的領(lǐng)域。國內(nèi)外學(xué)者經(jīng)常將復(fù)雜算法植入DSP中,實現(xiàn)對物理量的實時檢測和誤差補償。文獻[5]將反向傳播 (back propagation,BP)神經(jīng)網(wǎng)絡(luò)植入DSP用于旋轉(zhuǎn)機械在線故障診斷;文獻[6]將模糊PID算法植入DSP中,實現(xiàn)了伺服電機速度的實時補償。
為了提高數(shù)控機床在機測量系統(tǒng)的測量誤差補償效果,本文提出一種利用遺傳算法(genetic algorithm,GA)優(yōu)化BP神經(jīng)網(wǎng)絡(luò)并考慮坐標位置、運動速度的機床XY工作臺定位誤差建模方法,利用DSP硬件系統(tǒng)實現(xiàn)誤差的精確預(yù)測補償。
數(shù)控機床在機測量系統(tǒng)由數(shù)控機床本體和測頭組成,兩者的誤差都會影響測量系統(tǒng)的測量精度,其中XY工作臺的定位誤差是影響機床誤差的主要來源,而且受到運動坐標位置、運動速度等影響,變化規(guī)律復(fù)雜,因此本文主要開展XY工作臺的定位誤差實時補償。
數(shù)控機床XY工作臺結(jié)構(gòu)如圖1所示,由工作臺面、伺服電機、聯(lián)軸器、滾珠絲杠、光柵、導(dǎo)軌和支撐軸承構(gòu)成。
由伺服電機通過聯(lián)軸器帶動滾珠絲桿旋轉(zhuǎn),從而帶動絲杠螺母副和工作臺面做直線運動,通過光柵測量顯示其運動位置。XY工作臺運動定位誤差主要來源于導(dǎo)軌系統(tǒng)幾何誤差、滾珠絲杠的螺距誤差以及光柵測量系統(tǒng)的零位與示值誤差。這些誤差受到工作臺運動坐標和速度的影響,變化規(guī)律復(fù)雜,存在相關(guān)性,難以建立白化模型,因此本文采用GA算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)對其定位誤差建模。
圖1 數(shù)控機床XY工作臺
將不同p值代入神經(jīng)網(wǎng)絡(luò)模型,經(jīng)過多次比較建模效果,得到p取6時殘差平方和最小,即預(yù)測精度最高,因此建立GA-BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為2-6-1,如圖2所示。
利用GA算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)算法流程如圖3所示。
首先建立BP神經(jīng)網(wǎng)絡(luò)拓撲結(jié)構(gòu),輸入相關(guān)參數(shù)(定位位置、運動速度等),對數(shù)據(jù)預(yù)處理后產(chǎn)生初始種群,經(jīng)過選擇、交叉、變異等GA算法操作獲得最優(yōu)的權(quán)值和閾值,最后根據(jù)最優(yōu)權(quán)值和閾值獲得最優(yōu)的BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[7-8]。
圖2 GA-BP神經(jīng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)>
圖3 GA-BP神經(jīng)網(wǎng)絡(luò)算法流程
為了提高數(shù)控機床在機測量系統(tǒng)定位誤差預(yù)測補償?shù)膶崟r性和精度,本文選擇型號為TMS320F28335DSP芯片進行設(shè)計XY工作臺定位誤差的建模預(yù)測系統(tǒng)。
本文采用的TMS320F28335 DSP是一款支持高性能集成外設(shè)的32位微控制器,主頻達到150 MHz,片上集成了ADC、PWM、SCI、CAN、MCBSP、I2C等多種常用外設(shè),適用于實時控制應(yīng)用[9]。
本文定位誤差建模預(yù)測補償系統(tǒng)由數(shù)控系統(tǒng)進給軸反饋裝置、DSP建模預(yù)測系統(tǒng)和數(shù)控系統(tǒng)控制器組成,如圖4所示,其中電源電路、復(fù)位電路、時鐘電路、JTAG電路構(gòu)成了DSP的最小系統(tǒng)。定位誤差預(yù)測補償采用反饋中斷式補償方法,將DSP模塊預(yù)測的誤差嵌入到數(shù)控機床伺服系統(tǒng)的光柵位置反饋環(huán)節(jié)實現(xiàn)補償[10]。通過DSP與機床數(shù)控系統(tǒng)通信,獲取位置坐標、速度信號,輸入應(yīng)用DSP的定位誤差建模預(yù)測系統(tǒng),將預(yù)測得到的定位誤差轉(zhuǎn)換為補償?shù)拿}沖信號添加到伺服系統(tǒng)的反饋環(huán)中實現(xiàn)補償。
圖4 定位誤差預(yù)測補償系統(tǒng)硬件組成
首先利用Matlab建立GA-BP模型,獲得優(yōu)化后的權(quán)值和閾值,然后移植到DSP中進行建模、預(yù)測,能大大提高預(yù)測速度。
本文建立的BP神經(jīng)網(wǎng)絡(luò)采用3層網(wǎng)絡(luò)結(jié)構(gòu),隱含層和輸出層的傳遞函數(shù)分別采用tansig、purelin,訓(xùn)練函數(shù)選用trainlm,具體參數(shù)設(shè)置為訓(xùn)練次數(shù)2 000次、學(xué)習(xí)速率0.1、訓(xùn)練目標0.001;利用GA算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)定位誤差預(yù)測模型初始權(quán)值和閾值時,GA算法的的參數(shù)設(shè)置為種群規(guī)模80、遺傳代數(shù)50、交叉概率0.8、變異概率0.05。由此在Matlab中建立GA-BP模型。
將Matlab中建立的GA-BP模型進行訓(xùn)練,得到優(yōu)化的權(quán)值和閾值,并在DSP中建模,其流程如圖5所示。
首先將輸入數(shù)據(jù)初始化(歸一化);其次根據(jù)公式建立GA-BP模型,將初始化的數(shù)據(jù)代入模型預(yù)測;最后將預(yù)測數(shù)據(jù)處理(反歸一化)后輸出。整個程序所涉及的數(shù)學(xué)描述如下。
由GA-BP神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)可知,輸入層到隱含層的函數(shù)為:
(1)
隱含層到輸出層的函數(shù)為:
purelin(n)=n
(2)
因此輸出層輸出為:
y=purelin[w2tansig(w1x+b1)+b2]
(3)
其中,w1、w2分別為輸入層到隱含層以及隱含層到輸出層的權(quán)值;b1、b2分別為輸入層到隱含層以及隱含層到輸出層的閾值;x為輸入變量;y為輸出值。
神經(jīng)網(wǎng)絡(luò)運算時涉及到歸一化問題,因此需要建立歸一化函數(shù)和反歸一化函數(shù),tansig(n)函數(shù)的值域為(-1,1),建立歸一化函數(shù)如下:
(4)
其中,t為原值,為歸一化值;amax為數(shù)據(jù)最大值;amin為數(shù)據(jù)最小值。
反歸一化函數(shù)為:
(5)
圖5 DSP程序流程
本文設(shè)計的實驗裝置如圖6a所示,該裝置由XY工作臺、數(shù)控裝置、激光干涉儀組成。由數(shù)控裝置控制工作臺運動速度,利用激光干涉儀采集XY工作臺在X方向運動的定位誤差。工作臺運動速度分別設(shè)置為1.0、1.5、2.0、2.5、3.0、4.0、6.0、8.0 mm/s,其行程為0~150 mm。激光干涉儀每隔5 mm采集1次定位誤差數(shù)據(jù),在相同運動速度、位置下重復(fù)采集3組,求平均值,共得到248個數(shù)據(jù),如圖6b所示。從圖6b可以看出,工作臺在不同空間位置、運動速度下的定位誤差不同,變化規(guī)律復(fù)雜。
圖6 實驗裝置與實驗數(shù)據(jù)
本文分別利用GA-BP神經(jīng)網(wǎng)絡(luò)模型和BP神經(jīng)網(wǎng)絡(luò)模型進行定位誤差建模,比較兩者的建模預(yù)測精度。將速度6 mm/s、位置0~150 mm的定位誤差數(shù)據(jù)預(yù)留為驗證數(shù)據(jù),在其他7種運動速度下的工作臺全行程定位誤差數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)。把訓(xùn)練數(shù)據(jù)代入2種神經(jīng)網(wǎng)絡(luò)中訓(xùn)練,分別建立基于BP神經(jīng)網(wǎng)絡(luò)和GA-BP神經(jīng)網(wǎng)絡(luò)的定位誤差預(yù)測模型。將速度和位置坐標輸入到所建立的預(yù)測模型,預(yù)測得到的工作臺定位誤差、激光干涉儀測量得到的實際定位誤差、建模預(yù)測誤差如圖7所示。從圖7可以看出,GA-BP神經(jīng)網(wǎng)絡(luò)建模預(yù)測模型的預(yù)測精度更高。
為了比較利用Matlab和DSP建立的預(yù)測系統(tǒng)的實時性和預(yù)測精度,分別利用2種預(yù)測系統(tǒng)進行工作臺定位誤差的預(yù)測比較。將權(quán)值和閾值訓(xùn)練優(yōu)化后的GA-BP神經(jīng)網(wǎng)絡(luò)分別利用Matlab和DSP進行運行,比較其預(yù)測時間和數(shù)據(jù)殘差。利用Matlab軟件運行的優(yōu)化權(quán)值和閾值后的GA-BP神經(jīng)網(wǎng)絡(luò),預(yù)測31個誤差所需時間為249 μs;而利用DSP建立的預(yù)測系統(tǒng)預(yù)測每個誤差時間為29.6 μs,預(yù)測31個誤差所需時間為914.1 μs。利用DSP建立的預(yù)測系統(tǒng)預(yù)測每個定位誤差殘差分布為-0.688 190~0.512 744 μm(圖7b)。雖然Matlab的預(yù)測時間略優(yōu)于DSP,但Matlab適用于電腦端算法模擬,實現(xiàn)后期補償還需添加外圍軟硬件,且實現(xiàn)方式繁瑣;而DSP集成多種片內(nèi)外設(shè),可擴展性強,且預(yù)測時間可以滿足數(shù)控機床在機測量系統(tǒng)定位誤差補償?shù)囊蟆?/p>
圖7 GA-BP與BP神經(jīng)網(wǎng)絡(luò)預(yù)測定位誤差的比較
(1) 本文分析了數(shù)控機床在機測量系統(tǒng)XY工作臺定位誤差的影響因素及特點,通過GA-BP神經(jīng)網(wǎng)絡(luò)方法建立了XY工作臺定位誤差預(yù)測模型。
(2) 設(shè)計了基于DSP的XY工作臺定位誤差建模預(yù)測補償系統(tǒng),介紹了其硬件組成和軟件工作流程。
(3) 對設(shè)計的基于DSP的XY工作臺定位誤差建模預(yù)測補償系統(tǒng)進行實驗驗證與比較。由實驗結(jié)果可知,相比于BP神經(jīng)網(wǎng)絡(luò)建立的誤差預(yù)測模型,利用GA-BP神經(jīng)網(wǎng)絡(luò)建立的定位誤差預(yù)測模型預(yù)測精度更高、魯棒性更好。利用DSP硬件系統(tǒng)預(yù)測每個誤差運行時間為29.6 μs,殘差分布為-0.688 190~0.512 744 μm,可以用于數(shù)控機床在機測量系統(tǒng)其他組成部分和綜合測量誤差的實時補償以及誤差補償器的實現(xiàn)。