徐 峰,姚恩濤,馮嘉瑞,曹智超
(南京航空航天大學(xué)自動(dòng)化學(xué)院,江蘇 南京211100)
拉線位移傳感器具有成本低、動(dòng)態(tài)特性好、安裝簡便等特點(diǎn)。 拉線變形產(chǎn)生的誤差、增量式旋轉(zhuǎn)編碼器的裝調(diào)誤差、制造誤差和細(xì)分誤差均會(huì)對拉線位移傳感器的精度造成影響。 為獲得高可靠性、高精度的位移信息,需要對拉線位移傳感器的誤差進(jìn)行補(bǔ)償。 文獻(xiàn)[1]提出一種動(dòng)態(tài)測量誤差補(bǔ)償方法,建立拉線加速度與受力關(guān)系、變形量與受力關(guān)系的數(shù)據(jù)庫,再通過計(jì)算得到實(shí)際位移量,實(shí)現(xiàn)了動(dòng)態(tài)補(bǔ)償。 文獻(xiàn)[2]發(fā)明了一種修正工具,采用了一種工具與軟件結(jié)合修正分辨率的方式來修正誤差。 文獻(xiàn)[3]指出拉線位移傳感器精度的提高,可通過提高其核心部件即內(nèi)部編碼器的精度來實(shí)現(xiàn),通過增加編碼器碼道數(shù)目來提高精度,減小測量誤差。 上述文獻(xiàn)未對拉線與編碼器的誤差情況進(jìn)行重點(diǎn)分析,雖然在一定程度上補(bǔ)償了誤差,提高了精度,但需要額外的設(shè)備或建立龐大的數(shù)據(jù)庫體系來協(xié)助補(bǔ)償。 本文基于拉線位移傳感器的測距原理,對拉線位移傳感器誤差來源進(jìn)行了研究,并提出一種基于PSO-BP 神經(jīng)網(wǎng)絡(luò)模型的誤差補(bǔ)償方法對拉線位移傳感器的誤差進(jìn)行補(bǔ)償。
拉線處于水平或傾斜位置時(shí),受重力和拉線盒內(nèi)部彈簧拉力的作用,將下垂彎曲,且當(dāng)測量位移發(fā)生變化時(shí),其撓度也在非線性變化。 由于拉線位移傳感器測量的是拉線長度,并非兩點(diǎn)間直線距離,產(chǎn)生了測量誤差,由于重力方向確定,該誤差方向也確定,即測量值相比于真實(shí)值偏大。
做出如下假定:假定拉線是一根處處鉸接的柔軟鏈條,那么拉線僅受到軸向張力和重力,不承受彎曲力矩。 拉線受到的重力垂直向下,并沿拉線長度均勻分布[4]。
在測量某一直線距離時(shí),將拉線一端固定,另一端拉至測量位置,為了確認(rèn)此時(shí)拉線的實(shí)際長度,將拉線近似等效為以下模型,如圖1 所示。
圖1 拉線模型
其中,B點(diǎn)固定,為拉線位移傳感器出線口位置,A點(diǎn)為測量點(diǎn),設(shè)該點(diǎn)受拉力F,方向?yàn)槔€在A點(diǎn)的切線方向。 設(shè)直線AB為待測距離,長度為L,AB與水平線夾角為β。 由于拉線受自重影響,會(huì)產(chǎn)生下垂彎曲,即弧線AB,設(shè)其長度為S,即拉線位移傳感器測量值,此時(shí)弧線在A點(diǎn)處的切線與水平線夾角為α。
根據(jù)懸鏈線長度公式:
式中:ρ是拉線單位長度質(zhì)量(kg/m)。
拉力F的大小與拉線長度有如下關(guān)系:
k為彈簧勁度系數(shù),Δx為彈簧伸長量。
當(dāng)位移為水平方向時(shí),即β=0,懸鏈線長度公式如下:
α與F的關(guān)系如下:
分析式(1)~式(4)可得出由拉線形變引起的測量誤差el,與拉線拉出長度S、拉線單位長度質(zhì)量ρ和輪轂彈簧勁度系數(shù)有關(guān),即:
且拉線彎曲引起的誤差和拉線拉出的長度及拉線單位長度質(zhì)量呈正相關(guān),與編碼器輪轂彈簧勁度系數(shù)呈負(fù)相關(guān)。
拉線位移傳感器的測距原理是將直線位移轉(zhuǎn)化為編碼器軸的旋轉(zhuǎn)運(yùn)動(dòng),其核心部件是增量式旋轉(zhuǎn)光電編碼器。 故光電編碼器引起的誤差將導(dǎo)致拉線位移傳感器的總誤差增大。 光電編碼器的精度取決于機(jī)械因素,主要體現(xiàn)在編碼器制造、裝配、元器件的選型等方面,誤差可分為碼盤的偏心誤差、制造誤差和細(xì)分誤差等[5]。
偏心誤差產(chǎn)生的原因是碼盤的中心位置和轉(zhuǎn)動(dòng)中心不重合,如圖2 所示。
圖2 安裝偏心示意圖
設(shè)碼盤的中心為O,旋轉(zhuǎn)中心為O′,兩點(diǎn)距離為f,刻線的長度為l,光柵外徑為r,則產(chǎn)生的偏移相移Δθ為:
碼盤的制造需要光刻設(shè)備進(jìn)行刻線,受光刻設(shè)備自身誤差影響,刻線的位置、方向與標(biāo)準(zhǔn)情況相比有一定偏差,將影響輸出的莫爾條紋的質(zhì)量。
莫爾條紋信號偏離理論波形較大,甚至產(chǎn)生嚴(yán)重失真,將會(huì)導(dǎo)致細(xì)分誤差的增大。 莫爾條紋信號包含多種信號成分,表達(dá)式如下:
式中:A(θ)為直流分量,Bj(θ)為交流分量,ω(θ)為光柵角柵距,C(θ)為干擾噪聲信號。 這些信號都不是恒定值,而是光柵角度位置θ隨時(shí)間變化的函數(shù)。這些變化會(huì)影響莫爾條紋信號的質(zhì)量,導(dǎo)致測量角位移時(shí)產(chǎn)生誤差。
設(shè)兩路細(xì)分信號分別為標(biāo)準(zhǔn)正弦信號,表達(dá)式如下:
式中:θ0為理論轉(zhuǎn)角,表達(dá)式為:
實(shí)際信號的振幅并不是恒定值,而是受電源的穩(wěn)定性、發(fā)光設(shè)備的發(fā)光強(qiáng)度以及環(huán)境溫度等因素影響而變化,并且實(shí)際莫爾條紋信號與標(biāo)準(zhǔn)正弦信號相比有一定偏差[6],設(shè)兩路信號的表達(dá)式如下:
則實(shí)際細(xì)分相角表達(dá)式為:
細(xì)分誤差為:
拉線位移傳感器在實(shí)際測量位移的過程中,由于測量值會(huì)受到拉繩、編碼器、安裝位置及環(huán)境因素的影響,測量誤差具有非線性和隨機(jī)性[7-8],而BP神經(jīng)網(wǎng)絡(luò)在非線性函數(shù)方面有較高的處理能力。
BP 神經(jīng)網(wǎng)絡(luò)的本質(zhì)是梯度下降算法的多層迭代前饋網(wǎng)絡(luò)[9]。 當(dāng)網(wǎng)絡(luò)正向傳播時(shí),通過提供大量輸入實(shí)例至輸入層,再傳遞至隱含層進(jìn)行計(jì)算,最終由輸出層輸出計(jì)算結(jié)果,通過定義損失函數(shù)L(^y(i),y(i))和成本函數(shù)J(w,b)分別衡量網(wǎng)絡(luò)在單個(gè)和全體訓(xùn)練樣本上的表現(xiàn)[10]。 由于拉線式位移傳感器的誤差具有非線性,本文采用sigmod 函數(shù)[11]作為激活函數(shù),采用交叉熵?fù)p失函數(shù)作為損失函數(shù),其具有收斂速度快和更容易獲得全局最優(yōu)的優(yōu)點(diǎn),成本函數(shù)為所有樣本損失函數(shù)之和的平均值:
由成本函數(shù)得到累計(jì)誤差,基于累計(jì)誤差最小化的更新原則調(diào)整各神經(jīng)元的權(quán)值和閾值。 如此反復(fù)迭代學(xué)習(xí)與調(diào)整參數(shù),累計(jì)誤差將減小到預(yù)定范圍。 權(quán)值和閾值的調(diào)整公式如下:
BP 神經(jīng)網(wǎng)絡(luò)在訓(xùn)練時(shí),與權(quán)值和閾值相關(guān)的成本函數(shù)通常未知,為保證收斂性,學(xué)習(xí)率相對較小,因此收斂速度較慢,迭代次數(shù)上升,效率極大下降。另外,梯度下降法本身存在弊端,訓(xùn)練時(shí)易陷入局部最小值,通常與網(wǎng)絡(luò)的初始閾值和權(quán)值的選取有關(guān),選取不當(dāng)將無法得到最優(yōu)解。
為解決上述問題,本文采用粒子群算法[12]對BP 神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化。 粒子群算法具有較強(qiáng)的全局搜索能力[13],能夠提高BP 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度,并且避免了權(quán)值和閾值的初值選取不當(dāng)造成的易陷入局部最小值的問題。
PSO 算法對于指定的待優(yōu)化問題,設(shè)定每個(gè)粒子定義為待搜索空間內(nèi)存在的潛在解,粒子記憶其歷史最優(yōu)位置和全體粒子最優(yōu)位置。 在每一次迭代過程中,粒子的信息被整合起來,調(diào)整每一維上的速度,進(jìn)而更新粒子位置,通過多次迭代,各個(gè)粒子位置逐漸趨近最優(yōu)解[14]。 算法公式如下:
式中:ω為慣性權(quán)重,c1、c2為學(xué)習(xí)因子,r1、r2為介于(0,1)之間的 隨機(jī)數(shù),分別為第k、k+1 次迭代過程中粒子i的速度,分別為第k、k+1 次迭代過程中粒子i的位置,pbesti為個(gè)體最優(yōu)位置,gbest 為群體最優(yōu)位置。
本文采用的PSO 算法對BP 神經(jīng)網(wǎng)絡(luò)優(yōu)化的策略是對初始權(quán)值和閾值進(jìn)行優(yōu)化,將全體樣本的BP神經(jīng)網(wǎng)絡(luò)的輸出和實(shí)際值的誤差平方和的平均值作為適應(yīng)值,通過不斷迭代,搜尋全局最優(yōu)解使適應(yīng)度值逐步減小[15]。 適應(yīng)度函數(shù)如下:
式中:fitness 為適應(yīng)度值,m為樣本個(gè)數(shù),pi為樣本輸出,yi為實(shí)際值。
PSO 算法優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)的流程如圖3 所示,流程如下:
圖3 PSO 算法優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)的流程圖
①對樣本數(shù)據(jù)預(yù)處理,并按9 ∶1 比例劃分為訓(xùn)練集和測試集。
②初步確定BP 神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),設(shè)定隱含層和輸出層的激活函數(shù)與成本函數(shù)。
③設(shè)置PSO 算法的種群粒子數(shù)和迭代終止條件,優(yōu)化初始權(quán)值和閾值。
④將優(yōu)化過的權(quán)值和閾值作為BP 神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,使用訓(xùn)練集進(jìn)行網(wǎng)絡(luò)訓(xùn)練,將訓(xùn)練后的網(wǎng)絡(luò)相關(guān)參數(shù)保存。
⑤使用測試集對BP 神經(jīng)網(wǎng)絡(luò)進(jìn)行測試,若測試精度在可接受范圍內(nèi),則保存結(jié)果。 否則,更改神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),返回步驟③。
本文被檢測的拉線位移傳感器為KS120 系列拉線位移傳感器。 在實(shí)驗(yàn)中采用LT-P2250 型高精度激光位移傳感器進(jìn)行標(biāo)定,其分辨率為1 nm,重復(fù)精度為250 μm,線性度為0.03% FS,該傳感器可進(jìn)行高精度的非接觸測量,且具有高速、高靈敏度的測量性能,故將其測量值作為約定真值。 實(shí)驗(yàn)裝置原理框圖如圖4 所示。
圖4 實(shí)驗(yàn)裝置原理框圖
傳感器檢測裝置由被檢測拉線位移傳感器、計(jì)算機(jī)、MCU、激光測距儀、電機(jī)和滑塊、導(dǎo)軌等組成。上位機(jī)計(jì)算機(jī)與MCU 通過232 總線通信,可設(shè)定傳感器的檢測次數(shù)及測量位移等。 MCU 接收上位機(jī)的采集指令,控制電機(jī)帶動(dòng)滑塊在導(dǎo)軌上運(yùn)動(dòng)并在測量點(diǎn)處停止,通過采集拉線位移傳感器的脈沖信號獲取測量位移,與激光測距儀通過485 總線進(jìn)行通信,獲取位移真值,最后將測量值和真值上傳至上位機(jī)計(jì)算機(jī)儲(chǔ)存,用于研究傳感器的誤差補(bǔ)償。
傳感器誤差可由絕對誤差e、平均絕對值誤差MAE(Mean Absolute Error)[16]和 標(biāo) 準(zhǔn) 偏 差σ來表示。
絕對誤差e反應(yīng)測量值偏離真實(shí)值的大小和方向,表達(dá)式如下:
式中:x為待測物理量的測量值,a為其真值。
平均絕對值誤差MAE 表示在一組n次測量中,各次測量的絕對誤差的絕對值的平均值,表達(dá)式如下:
式中:n為測量次數(shù),ei為第i次測量時(shí)的絕對誤差。
標(biāo)準(zhǔn)偏差σ描述一組n次測量中,各絕對誤差偏離平均絕對值誤差的平均數(shù),能夠反應(yīng)一個(gè)數(shù)據(jù)集的離散程度。 其表達(dá)式如下:
在拉線位移傳感器量程范圍內(nèi)設(shè)置多個(gè)測量點(diǎn),對每個(gè)測量點(diǎn)進(jìn)行多組實(shí)驗(yàn)測量。 各個(gè)測量點(diǎn)的標(biāo)準(zhǔn)偏差和平均絕對誤差如表1 所示,各測量點(diǎn)標(biāo)準(zhǔn)偏差和平均絕對值誤差分別如圖5、圖6 所示。
圖5 各測量點(diǎn)標(biāo)準(zhǔn)偏差
圖6 各測量點(diǎn)平均絕對值誤差
表1 各測量點(diǎn)標(biāo)準(zhǔn)偏差與平均測量誤差
從實(shí)驗(yàn)數(shù)據(jù)和誤差曲線圖可看出,在量程范圍內(nèi)對某點(diǎn)多次測量,測量值的標(biāo)準(zhǔn)偏差趨于穩(wěn)定,表明拉線位移傳感器具有良好的測量重復(fù)性;其次,隨著位移值的增大,平均絕對值誤差也在增大,且具有一定的非線性特點(diǎn)。
為了盡可能多地獲取全范圍內(nèi)的實(shí)驗(yàn)樣本用于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,在拉線位移傳感器量程范圍內(nèi)隨機(jī)測量位移,并記錄測量值和測量誤差,共計(jì)400 組數(shù)據(jù)。 測量誤差值如圖7 所示,橫坐標(biāo)是測量位移,縱坐標(biāo)是絕對誤差。
圖7 顯示出在全量程范圍內(nèi)拉線位移傳感器的誤差在一定范圍內(nèi)波動(dòng),且測量位移越大,絕對誤差越大,在一些要求高精度的場合使用時(shí)必須對其進(jìn)行誤差補(bǔ)償[17]。
圖7 拉線位移傳感器全量程絕對誤差情況
取其中360 組數(shù)據(jù)作為訓(xùn)練集輸入到PSO-BP神經(jīng)網(wǎng)絡(luò)補(bǔ)償模型中進(jìn)行學(xué)習(xí)。 在PSO 算法中,設(shè)定種群規(guī)模為100,迭代終止條件為迭代100 次,慣性權(quán)重ω為0.6,學(xué)習(xí)因子c1=c2=2,初始化粒子的每一維位置和速度均為(-1,1)范圍內(nèi)隨機(jī)數(shù),將訓(xùn)練得到的群體最優(yōu)位置作為BP 神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值進(jìn)行訓(xùn)練,最終確定神經(jīng)網(wǎng)絡(luò)的隱含層節(jié)點(diǎn)為[10,15,5],學(xué)習(xí)率α=0.002。 再將40 組測試集輸入到經(jīng)過訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)進(jìn)行誤差的預(yù)測,將其與未補(bǔ)償?shù)恼`差做比較并進(jìn)行誤差補(bǔ)償。 基于PSO 的BP 神經(jīng)網(wǎng)絡(luò)預(yù)測能力和補(bǔ)償前后的拉線位移傳感器誤差對比如表2 及圖8 所示。
表2 PSO-BP 神經(jīng)網(wǎng)絡(luò)模型補(bǔ)償前后誤差對比
圖8 和表2 顯示出PSO-BP 神經(jīng)網(wǎng)絡(luò)補(bǔ)償模型能夠有效補(bǔ)償拉線位移傳感器測量誤差,尤其針對較大偏差的補(bǔ)償更加明顯,平均絕對值誤差和標(biāo)準(zhǔn)偏差顯著降低。
圖8 PSO-BP 神經(jīng)網(wǎng)絡(luò)誤差預(yù)測及補(bǔ)償情況
將傳統(tǒng)的多項(xiàng)式擬合模型和傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)模型應(yīng)用于拉線位移傳感器誤差補(bǔ)償,補(bǔ)償結(jié)果如圖9、圖10 所示,并與本文PSO-BP 神經(jīng)網(wǎng)絡(luò)補(bǔ)償模型進(jìn)行結(jié)果對比,如表3 所示。
圖9 多項(xiàng)式擬合模型誤差預(yù)測及補(bǔ)償情況
圖10 BP 神經(jīng)網(wǎng)絡(luò)模型誤差預(yù)測及補(bǔ)償情況
表3 各補(bǔ)償系統(tǒng)誤差補(bǔ)償效果對比
從實(shí)驗(yàn)數(shù)據(jù)看出,經(jīng)過PSO-BP 神經(jīng)網(wǎng)絡(luò)補(bǔ)償模型的誤差補(bǔ)償后,測量誤差顯著降低,同未補(bǔ)償時(shí)相比,平均誤差降低到0.167 mm,標(biāo)準(zhǔn)偏差降低到0.102 mm,拉線位移傳感器的精度由0.136% FS 提高到0.007% FS。 且相比于另外兩種模型,具有更好的補(bǔ)償效果。 多項(xiàng)式擬合的方法多適用于線性誤差的補(bǔ)償,拉線位移傳感器的誤差具有非線性,該模型修正效果較低。 傳統(tǒng)的BP 神經(jīng)網(wǎng)絡(luò)由于初始權(quán)值和閾值的范圍難以確定,多設(shè)定為隨機(jī)值,在求解時(shí)容易陷入局部最小值,對于部分?jǐn)?shù)據(jù)擬合情況不理想,造成個(gè)別樣本偏差較大。 PSO-BP 神經(jīng)網(wǎng)絡(luò)補(bǔ)償模型則解決了上述問題,由于PSO 算法優(yōu)化了初始權(quán)值和閾值,在后續(xù)訓(xùn)練網(wǎng)絡(luò)時(shí)學(xué)習(xí)效率有顯著提升。
本文分析了拉線位移傳感器的誤差來源,并設(shè)計(jì)了基于用PSO 算法優(yōu)化初始閾值和權(quán)值的BP 神經(jīng)網(wǎng)絡(luò)誤差補(bǔ)償模型進(jìn)行誤差補(bǔ)償。 將實(shí)驗(yàn)結(jié)果統(tǒng)計(jì)并建立數(shù)據(jù)集,對PSO-BP 神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,通過測試集對補(bǔ)償模型進(jìn)行測試。 將補(bǔ)償前后的誤差情況對比,平均絕對值誤差由2.809 mm 降低到0.167 mm,標(biāo)準(zhǔn)偏差由2.102 mm 降低到0.102 mm,精度由0.136% FS 提高到0.007% FS,補(bǔ)償效果顯著,結(jié)果在可接受范圍內(nèi)。