郝祥印,蘇志剛,張亞娟
(中國民航大學(xué)中歐航空工程師學(xué)院,天津 300300)
正余弦編碼器因可攜帶豐富的位置信息而被廣泛應(yīng)用于高精度位移/角度測量。目前常用的正余弦編碼器主要有2種:光柵編碼器和磁柵編碼器。光柵編碼器價(jià)格昂貴、對環(huán)境要求嚴(yán)苛;依靠霍爾效應(yīng)的磁柵編碼器的抗環(huán)境干擾能力強(qiáng),可提供無接觸式位移測量,且價(jià)格相對低廉,因此得到了廣泛的應(yīng)用。物聯(lián)網(wǎng)集成度的提高對磁編碼器的整體性能提出了進(jìn)一步的要求,即在保持精度或提高精度的前提下降低功耗,以最大化設(shè)備運(yùn)行時(shí)間,因此需要降低MCU的功耗并使用一種高效、高精度的細(xì)分算法以保證磁編碼器性能。
文獻(xiàn)[1-3]提出使用最小二乘估計(jì)來進(jìn)行誤差校正,但這種方法計(jì)算量大,不適合應(yīng)用在實(shí)時(shí)位移測量中,文獻(xiàn)[4]中使用兩級級聯(lián)卡爾曼濾波器進(jìn)行誤差校正,文獻(xiàn)[5-6]中分別使用神經(jīng)網(wǎng)絡(luò)和粒子群來進(jìn)行誤差模型中各項(xiàng)參數(shù)的估計(jì),計(jì)算復(fù)雜,參數(shù)收斂時(shí)間長;文獻(xiàn)[7]使用正交全數(shù)字鎖相環(huán)來消除誤差,但不能處理諧波,文獻(xiàn)[8-10]通過增加濾波器來提供諧波抑制能力,但使用的都是二階鎖相環(huán),在頻率斜坡輸入下存在穩(wěn)態(tài)誤差。
以上算法由于計(jì)算量大、參數(shù)收斂時(shí)間長、不能有效處理諧波誤差等原因,不適合在低功耗場合下使用。本文首先分析了磁編碼器的工作原理及各種誤差源,建立了包含磁柵尺磁場畸變的誤差模型;其次,以誤差模型為理論基礎(chǔ),根據(jù)誤差模型中各參數(shù)的特點(diǎn),提出了一種適用于低功耗場景下的低計(jì)算量的細(xì)分方法:使用離線數(shù)據(jù)構(gòu)建的查找表進(jìn)行幅值不等、相移以及諧波的抑制,使用頻域處理的方法消除信號中的畸變誤差;最后通過實(shí)驗(yàn)驗(yàn)證了算法的有效性。
磁柵編碼器的結(jié)構(gòu)如圖1所示,包含一個(gè)與移動(dòng)部件相連的讀數(shù)頭以及一個(gè)固定不動(dòng)的磁柵尺,其中磁柵尺上錄制有磁極距(λ)相等的正弦形式的磁場,當(dāng)讀數(shù)頭相對于磁柵尺運(yùn)動(dòng)時(shí),讀數(shù)頭以90°相差的形式輸出±sin和±cos 2組差分信號[5],差分后變?yōu)?/p>
(1)
式中:A為輸出信號的幅值;θ為當(dāng)前的角位置,θ=x/λ×2π;x為位移;下角標(biāo)s表示sin,下角標(biāo)c表示cos,此標(biāo)注方式全文通用。
誤差建模是本文所提出算法的理論基礎(chǔ),這一部分將對各種誤差進(jìn)行分析和建模,得到一個(gè)包含各種誤差的信號模型。式(1)為理想情況下讀數(shù)頭的輸出信號,然而實(shí)際輸出信號會(huì)受到各種因素的影響。誤差源可歸結(jié)為以下幾種:讀數(shù)頭誤差、磁柵尺磁極距λ不等、磁場強(qiáng)度不等、磁柵尺磁場畸變、電路誤差以及噪聲等[4-5,8,11-12]。
讀數(shù)頭內(nèi)部的4個(gè)霍爾元件之間的間距為(m+1/2)λ/2,m∈N,然而實(shí)際制造過程中,霍爾元件存在中心偏移并且霍爾元件在PCB板上焊接時(shí)也存在位置誤差,導(dǎo)致4個(gè)霍爾元件之間的距離出現(xiàn)誤差,形式如圖1所示,以sin+霍爾為參考,其余3個(gè)霍爾元件存在單側(cè)移動(dòng)、同側(cè)移動(dòng)、對側(cè)移動(dòng)誤差以及這幾種誤差的組合,不失一般性的可以用如下表達(dá)式描述:
(2)
式中:Us+為sin+霍爾的輸出信號,其余同理;φi為相應(yīng)霍爾元件的位置誤差,i∈[1,4]。
磁柵尺在錄磁時(shí),由于熱致伸縮以及錄磁機(jī)本身的定位精度問題會(huì)導(dǎo)致磁柵尺的磁極距并非處處相等,如圖2所示。
圖2 磁極距不等
每個(gè)磁極距都有微小的誤差,假設(shè)每個(gè)磁極距內(nèi)都是標(biāo)準(zhǔn)的正弦波,讀數(shù)頭以速度v0勻速運(yùn)動(dòng),此時(shí)霍爾sin+的輸出信號為
=sin[2π(f+δfi)t-δφi]
(3)
由式(3)可知霍爾sin+的輸出信號中除了包含目標(biāo)信號外,還包含一個(gè)頻差項(xiàng)以及一個(gè)相差項(xiàng),頻差項(xiàng)是由當(dāng)前位置的磁極距誤差產(chǎn)生的,而相差項(xiàng)是由磁極距不等的誤差累積產(chǎn)生的,在某一磁極距內(nèi)不變。
如圖3所示,不管是磁柵尺錄制原因還是安裝原因?qū)е碌拇艝懦咂矫娌黄?都會(huì)使讀數(shù)頭讀出的信號的幅值并非處處相等,導(dǎo)致輸出信號變?yōu)槭?4)形式。相當(dāng)于使用A(x)函數(shù)對目標(biāo)信號進(jìn)行幅值調(diào)制,并且調(diào)制信號的頻率未知。
Us+=A(x)sinx
(4)
式中A(x)為磁場強(qiáng)度關(guān)于位移的函數(shù)。
前述的誤差分析中都假設(shè)磁柵尺上的磁場為標(biāo)準(zhǔn)的正弦形式,然而實(shí)際磁柵尺上的磁場并非是標(biāo)準(zhǔn)的正弦形式,會(huì)存在一定的畸變,Us的畸變可用ds(θ)表示,Uc的畸變可用dc(θ)表示。
將式(2)、式(3)、式(4)組合在一起并增加畸變和隨機(jī)噪聲,輸出信號變?yōu)?/p>
Us=A(x)sin[2π(f+δfi)t-δφi+φ1]+ds(x)+
A(x′)sin[2π(f+δfk)t-δφk+φ2]+ns
=Ts(x)sin(θ+φs)+ds(x)+ns+
式中:Ts(x)為信號的幅值波動(dòng),Ts(x)=[A(x)cosφ1+A(x′)cosφ2]/cosφs;hk為k/L階諧波的幅值;φsk為k/L階諧波的相位;L為整數(shù)。
這其中諧波又以三階諧波為主,因此信號變?yōu)?/p>
(5)
為了使校正算法的計(jì)算量最小化,需要盡可能地降低需要實(shí)時(shí)估計(jì)的參數(shù)的數(shù)量。通過實(shí)驗(yàn)可知φs、φc、h3、φs3、φc3參數(shù)在全量程范圍內(nèi)基本不變,可以在設(shè)備安裝后先進(jìn)行一次離線校正,利用離線校正過程采集的數(shù)據(jù)估計(jì)出以上參數(shù);幅值不等Ts(x)、Tc(x)在整個(gè)量程范圍內(nèi)緩慢變化,因此可將離線校正數(shù)據(jù)的每個(gè)最值都保存進(jìn)查找表中,在實(shí)時(shí)校正時(shí)通過插值獲取幅值數(shù)據(jù);畸變誤差在單周期內(nèi)隨機(jī)變化,如果為畸變構(gòu)建查找表,離線保存的數(shù)據(jù)量會(huì)隨精度的提高變得很大,因此畸變誤差使用基于頻域處理的在線校正方法消除。
幅值不等Ts(x)、Tc(x)的查找表MAXs[]、MINs[]、MAXc[]、MINc[], 分別表示每個(gè)通道離線采樣數(shù)據(jù)的最值,如圖4所示。
圖4 幅值不等查找表采樣點(diǎn)
φs、φc、h3、φs3、φc3參數(shù)需要通過參數(shù)估計(jì)獲得,選擇離線采樣數(shù)據(jù)的最大值處構(gòu)建方程,并假設(shè)畸變誤差不存在,在Us取最大值時(shí)可得到式(6):
(6)
類似地,得到Uc取最大值時(shí)的方程:
(7)
通過式(6)、式(7)中的第3個(gè)方程,利用二分法可以求解出θ1、θ2的值,以式(8)為評價(jià)函數(shù)利用梯度下降的方法可得出φs、φc、φs3、φc3以及h3的值,這樣所有離線參數(shù)都已確定。
(8)
誤差校正的流程如圖5所示,偽代碼如圖6所示,進(jìn)行誤差校正的首要步驟是利用CORDIC(coordinate rotation digital computer)算法[13]計(jì)算當(dāng)前采樣值所表示的角度,因?yàn)镃ORDIC算法的反正切計(jì)算速度比C語言庫的計(jì)算速度更快,此時(shí)可以先不考慮角度誤差,因?yàn)楹罄m(xù)會(huì)對角度進(jìn)行重新計(jì)算。
圖5 誤差校正流程
圖6 偽代碼
之后進(jìn)行幅值校正的線性插補(bǔ)[14],因?yàn)?個(gè)通道的幅值變化不同步,因此插值時(shí)只使用本通道的最值數(shù)據(jù),Tc的插值計(jì)算如下,Ts的計(jì)算同理:
在完成幅值不等的校正后需要去除信號中的相移以及三階諧波,章節(jié)3.1已經(jīng)得到式(5)中的各參數(shù),只需要在采樣值中直接減去當(dāng)前角度值處的三階諧波值以及相移值即可,如圖6中第7、8行所示。
在完成幅值、諧波以及相差校正后,信號變?yōu)閁s=sinθ+ds(θ),如果此時(shí)利用Us-sinθ來獲得ds(θ)的值,并在下次循環(huán)中減去相應(yīng)的誤差值以期消除畸變,會(huì)發(fā)現(xiàn)校正后輸出信號中的三階諧波并沒有被完全抑制,而且還出現(xiàn)了五階諧波,這是因?yàn)樾盘栔写嬖诘幕冋`差影響了開始的角度解算,導(dǎo)致最終的角度沒辦法收斂到真實(shí)值,此時(shí)如果在諧波校正后的信號中減去五階諧波并增加三階諧波,即可完全消除三階諧波,如圖6中第12,13行所示。
實(shí)驗(yàn)平臺結(jié)構(gòu)如圖7所示,磁柵尺為SIKO的MB500-1.0-AM-TM-O,磁極距λ=0.01 m,讀數(shù)頭為MS500H,磁柵尺固定在實(shí)驗(yàn)平臺上,讀數(shù)頭和反射鏡跟隨絲桿滑塊一同運(yùn)動(dòng)。使用安捷倫HP5529A激光干涉儀作為位移參考,其線性位移測量分辨率為±1 nm。所提出的算法完全在低功耗MCU ARM-STM32L412KBU6上實(shí)現(xiàn),12 MHz主頻下算法的單次運(yùn)行時(shí)間為455 μs,包含模擬信號處理的傳感器整體功耗僅13.7 mW,最大的檢測速度為10 m/s。
圖7 實(shí)驗(yàn)平臺
實(shí)驗(yàn)時(shí)讀數(shù)頭按先加速再勻速,再減速到0,然后反向加速、勻速,再減速到0的模式運(yùn)動(dòng),利用PC儲(chǔ)存磁編碼器以及激光干涉儀輸出的數(shù)據(jù),并將激光干涉儀的數(shù)據(jù)作為參考。
圖8為角度的解算誤差,可以看出在不同階段算法的性能相同,并不受運(yùn)動(dòng)速度的影響。校正前的角度解算精度為±3.95°, 校正后的精度為±0.89°,算法將角度解算精度提升了77.5%,細(xì)分倍數(shù)由原來的91倍提升為404倍,位移測量精度由±0.109 mm提升為±0.024 7 mm。
圖8 校正前后角度誤差
圖9為校正后信號的頻譜分析結(jié)果,可明顯看出,校正后信號中的三階諧波被去除,并且信號中沒有引入額外的諧波成分。
(a)Us校正后頻譜局部
圖10為校正前后輸出信號的lisaru圖像與標(biāo)準(zhǔn)lisaru圖像的對比,可明顯看出校正后輸出信號的lisaru圖形與標(biāo)準(zhǔn)lisaru圖形幾乎重合,證明本算法能夠有效消除信號中的畸變、諧波等誤差。
圖10 校準(zhǔn)前后的lisaru圖形
圖11為校正前后的輸出信號,可看出校正前的信號中包含幅值不等誤差,而信號校正后幅值不等被有效消除。
圖11 校正前后輸出信號
本文提出了基于查找表和頻域處理的磁柵位移傳感器誤差校正與細(xì)分算法,使用查找表消除磁編碼器輸出信號中的幅值不等、相移和諧波成分,利用頻域處理法消除了信號中的畸變誤差。實(shí)驗(yàn)表明此算法將位移測量精度提升了77.5%,有效提高了磁柵編碼器的細(xì)分精度并降低了計(jì)算量,使其適用于低功耗、低算力場合。