劉川,張恕遠
(西華大學數控研究所,四川成都 610039)
指示表檢定儀是用來檢定指示表準確度的儀器,在儀表生產企業(yè)和計量檢定技術機構,需要對指示表各項技術指標進行檢定[1],要求檢定儀實現0.1μm的分辨率,目前檢定儀多用光柵尺作為位移傳感器實現檢定?,F代光柵是用精密的刻劃機在玻璃或金屬片上刻劃而成的,由于受加工工藝的限制,刻線條數受到限制[2],對光柵信號可逆計數獲得光柵位移[3],但分辨率低。對于本系統(tǒng)使用光柵尺的柵距為20μm,要求實現0.1μm分辨率,可用常規(guī)硬件電路對信號進行可逆計數或細分[4],或用模數轉換結合硬件查表[5]細分,但電路復雜且難達到要求。為了滿足要求,降低成本,簡化電路,本文作者提出了一種實現光柵位移細分測量的方法。該方法省去了計數電路和細分電路,由單片機采集光柵的兩路正交正弦信號進行數字濾波和特征值提,然后細分和誤差補償,實現了對光柵尺位移的高精度細分測量。
系統(tǒng)硬件結構如圖1所示,光柵細分系統(tǒng)以STM32F103RBT6為主控單元,主要是它使用ARM內核,主頻較高、處理能力較強,滿足細分的采集計算和顯示的動態(tài)要求。
圖1 系統(tǒng)硬件結構
信號調理選用單電源儀表運算放大器AD623,對四路光電池信號的兩兩差分放大后得到兩路互差90°的正弦信號。由于放大器電源電壓為5 V單電源,為不失真地放大出光柵信號,選用TL431輸出2.5 V電壓作為四路光電池的信號的基準電壓,對信號差動放大后可以得到以2.5 V作為基準上下波動的兩路正交正弦信號,便于AD轉換和數據處理。
在信號采集方面,指示表檢定儀的光柵信號實測頻率小于20 Hz,為實現200細分,在采樣過程中不丟失可逆計數判斷點,在一個周期內至少要采樣200個點,AD轉換速度必須大于4 000 Hz。所以選用8位的AD7821模數轉換器,AD7821的1 MHz轉換速率滿足要求。在轉換過程中為避免電源電壓的波動影響AD轉換準確度,選用高精度的電壓基準芯片AD586作為模數轉換器的電壓基準源。系統(tǒng)中外接了鍵盤對采樣和相關參數進行設置,用液晶顯示屏顯示光柵的位移。
經過AD623信號調理后的兩路互差90°的正弦信號可以用sinθ和cosθ表示,sinθ和cosθ中的任意信號的一個完整周期代表著光柵尺的一個柵距的位移,光柵尺停止運動時的相位與上一個完整半周期結束之間的相位構成非完整半周期[6]。為了得到分辨率較高的位移,就需要知道非完整半周期對應的相位。如果用d表示非完整半周期位移,用D表示1個光柵尺柵距,用X表示光柵尺位移,那么光柵的位移可以用如下的公式表示:
從公式(1)可知要計算位移X,需要對N進行可逆計數,并確定非完整半周期的相位。軟件實現可逆計數需要對光柵尺的移動辨向,根據移動方向的不同對半波進行可逆計數??赡嬗嫈禃r選定sinθ作為計數波形,cosθ輔助辨向,按照表1邏輯可實現可逆計數。
表1 可逆計數邏輯
表1中sinθ的過零方式的“↓”和“↑”分別表示從上往下過零和從下往上過零(sinθ>0為上,sinθ<0為下)。表1包含了sinθ的兩種過零方式和cosθ正負值的組合成的4種情況。
半周期可逆計數對光柵信號進行了2細分,為實現200細分還需要對半周期進行100細分,因而需要確定半周期信號的相位。由于正余弦在波峰和波谷處幅值變化不明顯,選取一路AD采樣值求反正弦不能準確地確定相位[5],因此要實現對兩路信號的高精度細分需要對兩路信號重構,從圖2可以看出-幾乎是線性變化的三角波,因此可以將兩路信號重構為函數[7]:
圖2 正向時的細分原理圖
三角波是一個線性的函數,所以在做細分時可以按照恒定的線性關系來計算當前的相位值完成細分。從圖3中可以知道半周期中合成的細分函數是對稱的,所以半周期的100細分可以改為對1/4周期進行50細分。設由線性關系計算的細分值為x,則細分算法如表2所示。表2中判斷光柵尺停止時候的相位,需要根據可逆計數時得到的運動方向和兩路信號的采樣值來計算。
表2 細分算法
根據表2的邏輯關系,在儀器調試時將兩路光柵信號調整為相同的峰峰值,由單片機計算出峰峰值PK。當光柵尺停在圖2中的點A處時,設光柵尺此時位移為XA,可以得到:
因為光柵為正向運動,在A點時sinθ<0,cosθ>0,根據表2可以得到
為了計算的方便需要將Y(θ)向上平移PK/2,讓Y(θ)所有取值為正,得到平移后的函數為:其中公式(5)中的x為:
將公式(7)代入公式(5),然后再將公式(5)代入公式(4),可以得到在點A時的位移為:
為了保證精度需要驗證將Y(θ)作線性函數計算引入的誤差是否滿足精度要求,因為正余弦為周期信號,在分析誤差時可以簡化為對一個周期進行分析,在一個周期之內對應Y(θ)的三角波為設為Y1(θ),Y1(θ)為:
用MATLAB將Y(θ)和Y1(θ)繪制到同一圖中可以看出兩者不是完全重合的,誤差是否在分辨率之內需要對誤差的最大值進行計算,誤差函數為:
在一個周期內誤差為:
U(θ)中的誤差曲線如圖3所示。
圖3 誤差分析圖
用MATLAB計算出誤差U(θ)最大的絕對值約為4.22%,對一個周期進行200細分,細分分辨率為0.1μm,對1/4個周期要進行50細分,所以誤差絕對值的最大值為:
U(θ)max=D/4×0.1×4.22%
U(θ)max=0.211μm
由此可知用Y(θ)對信號線性細分誤差最大為0.211μm,該值大于了0.1μm,所以為達到精度需要誤差補償,對誤差建表格存入單片機Flash,以查表的方式對誤差進行補償。
將硬件電路和儀器機械部分調試好后,在信號調理輸出端可以得到如圖4左半部分所示的兩路相位互差90°,幅值基本相等的正弦信號,其構成的李薩茹圖如圖5的右半部分所示。
圖4 信號調理后的光柵信號
由于得到的兩路信號不是理想的正弦信號,在預處理之前用STM32的庫函數中自帶的FIR低通數字濾波器對信號進行了濾波。因為在硬件電路和機械上不可能將兩路正弦信號都調整到絕對的相位互差90°和幅值相同,所以在軟件部分需要對信號進行預處理來調整相位和幅值。如果是首次使用儀器,需要對信號進行采樣提取特征值,且將特征值存入Flash便于以后直接讀取特征值進行預處理。
由數字濾波和預處理要求,以及表1和表2的邏輯關系,編寫程序到STM32中對光柵位移細分測量,為驗證算法是否正確且誤差是否滿足要求,實驗選用了比0.1μm更高分辨率和精度的激光干涉儀檢驗測量數據。實驗設備如圖5所示,本次實驗用Renishaw公司的激光干涉儀ML10測量光柵的位移與文中設計的細分系統(tǒng)測量的位移對比,在對比實驗時將激光干涉儀的分辨率調整到0.01μm。
圖5 實驗設備
實驗對一個周期的莫爾條紋采集了一系列點,以激光干涉儀測量的位移作為橫坐標,激光干涉儀測量值與細分系統(tǒng)測量值之差作為縱坐標,繪制出誤差曲線如圖6所示。
圖6 誤差曲線
由圖6的誤差曲線可以看出,在一個周期內最大誤差為0.05μm,小于分辨率0.1μm,細分算法達到了細分精度要求。
以STM32F103RBT6作為處理單元,以軟件的方法實現光柵信號的可逆計數和細分已經應用到計量行業(yè)的指示表檢定儀上。用軟件的方法實現20μm柵距的200細分,編程計算稍微復雜,但是硬件電路簡單可靠,且成本低,在實際使用中效果良好,細分誤差滿足光柵式指示表檢定儀規(guī)程的要求。
[1]王倩.光柵式指示表檢定儀及其檢定[J].中國計量,1999(6):36-38.
[2]李燕青,郝德阜.衍射光柵制造技術的發(fā)展[J].長春理工大學學報,2003,26(1):66-68.
[3]劉曉軍,宋浩.基于偏振相移的干涉條紋細分原理[J].華中科技大學學報,2008,36(6):4-6.
[4]NORBERT C Cheung.An Innovative Method to Increase Resolution of Optical Encoders in Motion Servo System[C].IEEE 1999 International Conference on Power Electronics and Drive Systems,PEDS.99,Hong Kong,1999.
[5]KIM Jun-Chan,KIM Jang-Mok,KIM Cheul-U.Ultra Precise Position Estimation of Servomotor Using Analog Quadrature Encoders[C].Applied Power Electronics Conference and Exposition,APEC.06,Twenty-First Annual IEEE,2006.
[6]劉柯,宋金城,陳秀政.基于TMS320F2812的光柵細分卡的設計[J].紅外與激光工程,2008,37(S1):242-246.
[7]李懷瓊,陳錢,莊小棟.新型光柵信號數字細分技術及其誤差分析[J].電子測量與儀器學報,2001,15(3):71-75.