劉蘅嶸,班亞龍,張提升,牛小驥
(武漢大學衛星導航定位技術研究中心,湖北 武漢 430079)
旋轉平臺絕對運動信息測量系統
劉蘅嶸,班亞龍,張提升,牛小驥
(武漢大學衛星導航定位技術研究中心,湖北 武漢 430079)
針對當前旋轉平臺輸出的運動信息沒有時間刻度問題,設計一種帶有GPS時間的運動信息測量系統。采用單片機STM32F103ZET6作為測量系統的主控單元,一方面通過串口采集GPS接收機模塊提供的時間信息,另一方面運用單片機采集旋轉平臺上增量式光電編碼器輸出的脈沖信息,并實現兩類信息的融合、存儲;最后對系統測量精度從時間信息與運動信息兩方面進行分析、優化與測試驗證。測試表明:系統采用8MHz無源晶振時,時間信息測量誤差在±20μs以內;轉臺轉速為1r/s,半徑為1m,編碼器光柵線數為10000線時,該系統為轉臺提供的位移精度優于0.1mm,滿足測試應用需求。
運動信息測量;GPS授時;STM32;增量式光電編碼器
以增量式光電編碼器為運動信息傳感器的旋轉平臺,作為一種高動態運動測試平臺被廣泛使用,如GNSS接收機動態性能測試、組合導航設備動態特性校準測試等,測試應用中需要提供具有時間刻度的旋轉速度、方向等運動信息參考真值[1-2]。有關旋轉平臺的運動信息測量,傳統方法主要有定時測角法、定角測時法、混合測速法[3],這些方法運算簡單,實時性好,因此目前應用最為廣泛。隨著測試理論的發展,也不斷出現其他方法,如,Maaref等[4]運用擬合法,擬合出非理想編碼器數學模型,來進行測速研究;國內的有中國科學院長春光機所研究設計的全微分測速法[5]。目前的各種方法均致力于測量精度的提高,在時間同步方面,常運用被測系統內部的時間基準,將作為測試平臺的轉臺輸出與被測系統的輸出統一到被測系統內部,授予同一時間標,從而完成時間統一[6]。然而,該方法使測試平臺與被測系統聯系緊密,導致測試平臺運動數據獨立性弱,不具客觀參考價值,同時此方法也無法應用于其他被測系統中。針對以上情況,本文設計出一種能輸出帶時間標刻的運動信息測量系統,運動信息測量采用應用成熟的定時測角法,即通過檢測一定時間內轉臺編碼器輸出的脈沖個數來獲得旋轉過程的運動信息。時間同步采用GPS授時的方法,以GPS接收機模塊輸出的UTC時間作為絕對時間信息,利用單片機內部定時器進行時間刻度精細劃分,實現精準授時[7-8]。
系統對絕對運動信息測量的實現,可分時間信息采集、運動信息采集、信息融合、信息存儲4步完成。一方面,系統采用GPS接收機模塊提供分辨率為1s的精準絕對時間信息,利用串口傳輸給單片機,同時采用單片機內部分辨率可調定時器進行時間刻度精細劃分。另一方面,運動信息采集通過單片機計數器記錄旋轉平臺上編碼器所輸出的脈沖個數完成。然后,在單片機上實現時間信息和運動信息的匹配融合。最后,系統將處理后數據通過單片機保存至SD卡,大大增加了讀取數據的方便性。下面將具體介紹系統的硬件、軟件設計方案。
1.1 系統硬件設計
系統的硬件主要由微處理器單元(MCU)、GPS接收機模塊、旋轉平臺的增量式光電編碼器,SD卡模塊等構成,頂層框圖如圖1所示。MCU是系統核心,主要負責控制和信息采集與處理;GPS接收機模塊負責提供準確可靠的GPS時間;編碼器負責輸出旋轉平臺的運動信息,SD卡模塊用于存取處理后的測試信息;LED指示燈用于指示系統的工作狀態;按鍵用于控制系統啟動與停止。
旋轉平臺采用增量式光電編碼器作為運動信息測量傳感器,通過光柵衍射原理,將位移信息以脈沖信號形式輸出,每一個脈沖對應一個增量位移,旋轉一圈所輸出脈沖數是固定的,由光柵的線數決定。為了方便提取旋轉過程的方向信息,增量式光電編碼器將脈沖信號以雙通道輸出[9]。如圖2所示,為編碼器輸出信號A和B,A和B相位相差90°,當正轉時A超前B 90°,反轉時B超前A 90°[10]。

圖1 硬件系統頂層框圖

圖2 增量式光電編碼器雙通道輸出信號
MCU使用單片機STM32F103ZET6,該單片機是基于ARM Cortex-M3核心的32位微控制器;主頻可達72MHz,處理數據速度能滿足大多情況下的采樣頻率。其內部定時器可設置編碼器接口模式,支持A、B兩路數據同時輸入,并自動按沿信號計數;同時,根據計數值變化方向,可獲取轉臺轉向信息。設置好后,計數過程不需要占用CPU資源。
GPS接收機模塊芯片采用的是瑞士u-blox公司的LEA-6。模塊在接收GPS衛星信號后,在整秒時刻會輸出一個脈沖,其脈沖上升邊沿時刻與標準時間的秒時刻誤差<40ns。在秒脈沖輸出后約80ms,GPS接收機模塊將以串口數據流的形式輸出從衛星信號實時解碼而來的UTC時間信息,格式為NEMA1083。單片機通過串口通信采集UTC時間作為絕對時間標,用內部定時器做相對時間標刻。
1.2 系統軟件設計
系統軟件主程序設計采用自頂向下的程序設計思想,模塊化設計,主程序流程如圖3所示。系統啟動并且完成初始化后,開始進入等待;采樣時間到達,系統采集脈沖個數和時間信息,并進行信息融合與存儲;若為整秒時刻,則還需進行時間信息校準。下面對部分模塊進行詳述。

圖3 主程序流程圖
初始化程序部分,對SD卡及單片機的時鐘、中斷系統、I/O口、串口等部件進行初始化設置,并設置采集所用定時器工作在編碼器接口模式。對于GPS接收機模塊,初始化主要對LEA-6進行設置,使其波特率提升至115200Bd/s,以增加絕對時間信息流的傳輸速率,同時設置LEA-6輸出僅為所需UTC時間信息,屏蔽其他導航信息,節省傳輸時間。
時間信息采集部分,分為絕對時間采集和相對時間采集。絕對時間信息由GPS接收機提供,通過串口傳送至單片機,在秒中斷服務程序中存入指定緩存區,秒中斷由GPS秒脈沖觸發。由于LEA-6先產生秒中斷,再輸出時間信息流,所以秒中斷時存入的時間信息為上一秒的時間信息,需進行加一處理。相對時間信息由單片機內部定時器提供,將定時器按采樣頻率設置中斷頻率,通過中斷對每秒時間進行了精細劃分[11]。
單次信息采集完成后,進入信息融合部分,在主函數中完成。由于采集到的絕對時間為包含年、月、日、時、分、秒信息的ASCII碼字符串,信息融合時將其轉化為GPS時間,也就是GPS原子時。它是以1989年1月6日0點為起始時,以周長和周內秒長的方式表示時間[12]。將轉化好的絕對時間信息與相對時間信息融合成一個雙精度數后,再與以脈沖個數表示的運動信息進行匹配,以兩個雙精度數表示測量信息,大大節省了傳輸帶寬和存儲容量。
由于本系統是將運動信息與時間信息融合輸出,所以系統的精度同時取決于絕對時間信息精度和運動信息精度,下面從這兩方面分別進行精度分析與優化設計。
2.1 時間信息精度分析與優化
本系統的時間信息誤差來源于3方面:GPS秒脈沖時間誤差、程序運行耗時誤差、單片機時鐘誤差。由于前兩者誤差較小,現主要分析單片機時鐘誤差,其由單片機晶振頻率偏差導致。假設晶振頻率偏差為▽f,則用此晶振計時1s產生的誤差為▽t,隨著計時時間變長,▽t增大;并且,由于晶振頻漂的不穩定性,▽t也呈不確定波動,導致采樣間隔不均勻。▽t的計算公式為

為了減小累積誤差,本系統采取了整秒校準的方法進行優化。利用GPS接收機模塊在整秒時刻的秒脈沖,觸發單片機產生中斷,在中斷服務程序中將定時器置零,使絕對時間與相對時間初始點對齊,將時間信息誤差的累積控制在1s之內。為了盡可能使采樣間隔均勻,可將時鐘晶振換為頻率精度和穩定性較好的溫度補償晶振,但此種晶振價格較高。因此在滿足應用場景要求的情況下,本系統仍使用一般的無源晶振。
2.2 運動信息精度分析與優化
本系統對旋轉平臺速度等運動信息的采集,都是通過對平臺上增量式光電編碼器的輸出脈沖計數來實現的。因此系統的精度,除了取決于數據時間標的精度外,還取決于計數精度。計數誤差主要由3個原因導致:

圖4 采樣過程圖
1)計數方式。系統采用的是定時采樣的計數方式,采樣時間到,CPU便讀取計數值。此方式的優點是簡單易實現,占用CPU資源少;缺點是由于采樣時間點與脈沖邊沿不對齊,導致一個脈沖的計數誤差,并且此誤差呈周期出現,脈沖頻率越高,周期越小。如圖4所示,圖中數字代表單位采樣間隔內脈沖沿數。
對于此種情況產生的誤差,本系統通過提高計數分辨率的方法進行了優化。普通情況下,脈沖個數計數采取單邊沿有效的方式,只取上升沿或下降沿來計數。本系統取兩路脈沖信號的上、下沿均有效,將光電編碼器的數據分辨率提高到4倍,此時,計數誤差從1個脈沖降到0.25個脈沖。因此,采用此優化方案,每次采樣由計數方式導致的最大計數誤差為0.25個脈沖。
2)采樣間隔不均勻。除了上述原因可導致計數誤差之外,由2.1節所述的時間誤差導致的采樣間隔不均勻也會產生計數誤差,且脈沖頻率越高,誤差時間內的脈沖個數越多,計數誤差出現的頻率越高。
3)整秒累積時間誤差。盡管進行了整秒校準,但仍無法消除1s內的時間累計誤差。所以在每秒最后時刻,時間誤差將達到最大,為這1s的累計值,從而產生計數誤差。可以看出2)、3)兩點原因均是由于時間誤差產生,所以優化時需從時間精度優化著手,可參考2.1節,此處不再復述。
綜上所述,若不考慮單片機時鐘晶振頻漂的理想情況時,只存在上述原因1)產生的計數誤差,最大為0.25個脈沖;若考慮單片機時鐘晶振頻漂的影響時,分析得知由3個原因綜合導致的計數誤差滿足以下兩個特點:1)脈沖頻率較低時,計數誤差主要由計數方式導致,呈周期性出現,且周期隨脈沖頻率增大而減小;2)脈沖頻率較高時,采樣間隔不均勻和整秒累積時間誤差影響增大,導致計數誤差的出現頻率增高;且由于3個因素共同作用,此時誤差不再呈周期出現。
圖5為系統用于GNSS接收機利用旋轉平臺做動態性能測試時,為其提供絕對運動信息作為參考真值的實拍圖。為了驗證上述分析,下面從時間信息和運動信息兩方面進行測試。
3.1 時間信息測試結果
通過將單片機計時1s的時間與GPS秒脈沖做對比,可得到單片機時鐘晶振的頻率偏差導致的時間誤差。按此方法經過多組反復測試,統計得到系統的時間誤差在±20μs以內。圖6為某組實驗測試圖展示,圖中藍色波形代表單片機計時1s產生的脈沖,黃色波形代表GPS秒脈沖,兩者上升沿的時間差代表了時間誤差,▽t為18.3μs。

圖5 系統應用實拍圖

圖6 系統時間信息精度測試圖
本系統單片機采用的是Citizen公司的8 MHz無源晶振,晶振的容差為30×10-6,頻率穩定性為50× 10-6。在不考慮晶振老化等其他因素的情況下,用此款晶振作為單片機的時鐘發生器,由式(1)得到計時1s產生的最大時間誤差為

式中f為所用晶振的標稱頻率8 MHz,由于此情況為極限情況,實際運用時晶振的頻率穩定性明顯更優。
3.2 運動信息測試結果
運用信號源模擬編碼器的兩路輸出,可在屏蔽了電機等對輸出脈沖影響的情況下,分析系統在不同輸入脈沖頻率下的計數誤差。圖7為采樣頻率為100Hz,轉臺輸出脈沖頻率分別為100Hz、1kHz、10 kHz時,即若取光柵線數為10 000線,轉臺轉速分別為0.01,0.1,1r/s時的單組實驗計數結果展示。圖中尖峰點則為誤差點,對應橫軸值即為計數誤差出現時間點,對應縱軸值與其他正常點的縱軸值之差即為計數誤差。

圖7 計數測試結果
由圖可得,當脈沖頻率較低時,誤差點呈周期出現;隨著脈沖頻率增大,誤差點的出現周期變短;當脈沖頻率進一步增大時,采樣間隔不均勻和整秒累積時間誤差的影響增大,誤差點的出現頻率也進一步增大,誤差周期性消失,均與2.2節分析的計數誤差規律相符。
取轉臺一圈光柵線數為10000線,脈沖頻率為10kHz時轉臺轉速為1r/s,反復實驗統計得出轉臺旋轉一圈脈沖計數誤差為0.09個,以轉臺半徑為1 m情況計算,系統測量位移的誤差<0.1mm。
本文針對以增量式光電編碼器作為運動信息測量傳感器的旋轉平臺,設計出了一種可提供帶有絕對時間標刻的運動信息測量系統,從硬件和軟件兩方面介紹了系統的具體實現。同時,從時間信息和運動信息兩方面對系統精度進行了理論分析、設計優化與測試驗證,結果表明:該系統的時間信息測量精度達到微秒級別,運動信息測量精度達到亞毫米級別,由于GNSS接收機和組合導航設備的位移測量精度最高為毫米級,所以本系統為轉臺提供的位移精度高出被測系統至少1個數量級,滿足測試設備應用需求。為了滿足更高精度的測試應用需求,后續將選擇穩定性更好的晶振,同時對編碼器脈沖計數方法進行改進。
[1]YANG P,LI Q.Design and realization of grey PID control system for high-precision simulated turntable[C]∥ConferenceofGrey Systemsand IntelligentServices. IEEE,2007:881-886.
[2]李敏,趙剡,楊輝,等.基于多功能數據采集卡和變速PID的轉臺控制系統設計[J].計算機測量與控制,2015,23(5):1556-1559.
[3]王亞洲,萬秋華,杜穎財,等.光電編碼器單莫爾條紋測速方法[J].中國光學,2015,8(6):1044-1050.
[4]MAAREF M,REZAZADEH A.An implementable approach in order to model a nonideal incremental encoder in speed measurement studies[J].Turkish Journal of Electrical Engineering&Computer Sciences,2015,23(5):1489-1500.
[5]王亞洲,萬秋華,王樹潔,等.基于疊柵條紋光電信號的全微分測速方法[J].中國激光,2015,42(11):187-194.
[6]王少君,劉永強,楊紹普,等.基于光電編碼器的測速方法研究及實驗驗證[J].自動化與儀表,2015(6):68-72.
[7]ELLIOTT D K,CHRISTOPHER J H.Understanding GPS:principles and applications[M].London:Artech House,2005:300-317.
[8]寧增琨,行鴻彥.新型閃電電場變化測量系統設計[J].中國測試,2015,41(3):78-81.
[9]楊洪扣,劉軍,李麗宏.一種基于旋轉編碼器的車輛行車狀態無線監測裝置[J].中國測試,2014,40(3):80-84.
[10]NEGREA A C,IMECS M,INCZE I,et al.Error compensation methods in speed identification using incrementalencoder[C]∥Conference ofElectricaland Power Engineering.IEEE,2012:441-445.
[11]丁天寶,呂啟元.用GPS技術實現試驗數據同步采集[J].火炮發射與控制學報,2007(1):20-23.
[12]藺玉亭,趙東明,高為廣,等.GPS時間系統及其在時間比對中的應用[J].地理空間信息,2009(3):30-32.
(編輯:李妮)
Measuring system for absolute motion information of rotary platform
LIU Hengrong,BAN Yalong,ZHANG Tisheng,NIU Xiaoji
(Global Navigation Satellite System Research Center,Wuhan University,Wuhan 430079,China)
To solve the problem that rotary platform whose output motion information lacks time scale,this paper presented a system for measuring the motion information with the GPS time which adopts STM32F103ZET6 singlechip as a main control unit of the measuring system to collect time information from the GPS receiver module by serial port and acquires pulse information output from the incremental photoelectric encoder on the rotary platform.Both types of information could be integrated and stored.Finally,the system measuring accuracy was analyzed,optimized and tested from the aspects of time information and motion information.The results show that the time measurement error is within±20 μs when the system uses 8 MHz passive crystal oscillator;the displacement measurement error is lower than 0.1mm when speed of the rotary platform is 1r/s with radius of 1m,and the encoder grating lines are 10000 lines,meeting the test requirements.
motion information measure;GPS time receiving;STM32;incremental photoelectric encoder
A
:1674-5124(2017)01-0064-05
10.11857/j.issn.1674-5124.2017.01.014
2016-04-17;
:2016-05-29
國家自然科學基金項目(41404029)國家863基金項目(2015AA124002)
劉蘅嶸(1993-),女,湖南岳陽市人,碩士研究生,專業方向為電路與系統。