應亞萍,王 潔,倪佳樂,張逸寧,徐浩東
(浙江工業(yè)大學 之江學院,浙江 紹興 312030)
地球有一個自然磁場,人們可以通過磁傳感器測量得到當?shù)氐拇艌鲂畔?,通過地磁場矢量來計算獲得載體的偏航角,從而確定方向信息。在20世紀初,科學家發(fā)明了機械羅盤,由于材料、工藝和工作原理等方面的限制,這種羅盤的抗振動和抗沖擊能力較低,之后由電子羅盤替代了機械羅盤。隨著傳感器技術和集成電路技術的飛速發(fā)展,微機電系統(tǒng)(Micro Electro Mechaical System,MEMS)傳感器應運而生。MEMS傳感器是融合微電子和微機械加工技術設計的傳感器,能完成傳統(tǒng)傳感器所不能實現(xiàn)的一些功能,具有體積小、重量輕、靈敏度高、成本低、功耗小和易于智能化等特點。MEMS傳感器取代傳統(tǒng)傳感器,使得電子羅盤的性能和參數(shù)都得到了較大的改善。電子羅盤作為平板電腦、智能手機和無人駕駛飛行器(Unmanned Air Vehides,UAVs)等產品的基本配置,市場應用前景廣闊。因此基于MEMS傳感器的電子羅盤的研究具有現(xiàn)實意義和實用價值
地球像1塊條形磁鐵,在周圍形成地磁場。由于地理位置的不同,地磁場的強度也不同[1-3]。地球磁場可以通過如圖1所示的模型模擬表示,該模型以條形磁鐵的形式從磁南指向磁北。地磁極不與地理磁極重疊,它們之間有1個角度叫做磁偏角α。地磁場矢量在1個固定的位置上可以被分解為2個平行于該位置水平面的水平磁分量Hx和Hy以及1個垂直于該位置水平面的豎直磁分量Hz,因此如果把電子羅盤放置在平行于當?shù)厮矫娴钠矫嫔希瑒t磁力計的3個軸輸出剛好對應這3個分量,而地球磁場在地理坐標系中可以被分解為總是指向磁北極的水平分量H0和垂直于地球表面的垂直分量Hg[2]。地磁場H在XY水平面內的分解示意如圖2所示。磁方位角的定義是在地理坐標系中載體向前方向的X軸投影和磁北方向之間的夾角大小。若地理坐標系和載體坐標系相重合,那么由磁力計輸出地球磁場在載體坐標系上的Y軸和X軸磁場分量Hy和Hx,由此可推出在理想情況下,水平面內的航向角計算公式為
圖2 地磁場H在XY水平面上分解圖
然而,較為常見的情況是載體處在三維空間中,載體坐標系不平行于地理坐標系[2]。如果地理坐標系和載體坐標系如圖3所示,載體坐標系的坐標原點是載體的重心,沿著水平垂直軸向前方向是X軸的正方向,沿著水平軸向右方向是Y軸正方向,向下垂直于水平面的方向是Z軸正方向[2]。地理坐標系的原點是地球球體的中心,沿著北極方向的是X軸正方向,沿著地理東的方向的是Y軸正方向,垂直于向下的XY軸平面的方向則是Z軸正方向,同時兩個坐標系都符合右手定則[2]。載體坐標系在運動中不斷發(fā)生變化,導致傳感器數(shù)據(jù)相對于地理坐標系連續(xù)變化。姿態(tài)角就是載體坐標系X、Y、Z軸與地理坐標系X、Y、Z軸之間的3個夾角[2]:即橫滾角γ、俯仰角θ和航向角φ。俯仰角θ定義為載體前進方向與其在水平面投影的夾角;橫滾角γ定義為羅盤平面上與前進方向垂直的方向與其在水平面投影的夾角。
圖3 坐標系與相關角度示意圖
對載體進行分析如圖4所示,東北天坐標系即OXnYnZn為載體所在的地理坐標系,磁傳感器連接到載體,載體坐標系為OXbYbZb,同時地理坐標系的原點與載體坐標系的原點相重合。那么這2個坐標系每個軸之間的夾角就是載體的姿態(tài)角,即航向角φ,橫滾角γ和俯仰角θ。
圖4 載體分析圖
地磁傳感器測出地磁場在載體坐標系3個軸的磁場矢量為Xb、Yb、Zb,后將3軸磁矢量通過歐拉角旋轉矩陣可求得地理坐標系上的3軸地磁分量為
式中:X1、Y1、Z1為地磁場磁場強度投影到地理坐標系的值。
則有
知道地磁場在地理坐標系的磁場分量,即可計算得到磁航向角為
橫滾角和俯仰角通過求解載體坐標系中3軸重力加速度分量得到。靜止時,地球重力加速度大小就是加速度計3軸輸出值的平方和。因此,如果加速度傳感器的3軸輸出為(gx,gy,gz),重力加速度在地理坐標系上的3軸分量為(0,0,g),則可以得到關系式
由上述矩陣可解算出
進而可得
然而,得到的方位角是載體相對于磁北極的角度。由于地理北極和地磁北極之間存在磁偏角α,而實際的方位角是載體相對于地理北極的方位角,因此航向角計算公式為φm=φ+α。需要注意的是,每個地方的磁偏角不是同一大小,可以根據(jù)國際地磁參考場來得到各個地方的磁偏角數(shù)值。
通過測量地球磁場矢量來計算磁北方向與載體前進方向之間的角度是電子羅盤測量航向角的原理,但如果周圍有磁性材料,磁傳感器測量地球磁場的方向和大小就會產生誤差,這種磁干擾引起的磁傳感器測量誤差被稱為羅盤誤差。硬磁干擾和軟磁干擾都會產生這種磁干擾[2]。
(1)硬磁干擾。主要是由永久磁鐵等其他硬磁材料產生的相對于地磁傳感器的固定大小和方向的磁場干擾,所以3軸磁傳感器除了檢測到的地磁場外,還在3軸增加了1個固定大小和方向的磁場。對羅盤來說,磁傳感器的輸出應該是平面上的1個圓,但是由于受到這種硬磁干擾的影響,相當于磁傳感器的輸出圓心偏離了原點[1]。
(2)軟磁干擾。主要是由于羅盤里的一些軟磁材料被地磁場磁化產生,從而影響了磁力計的輸出。軟磁材料磁化后產生磁場導致磁力計檢測到的磁場方向和大小隨外界磁場的變化而變化,這種干擾不僅會影響磁力計檢測到的磁場的磁場方向,而且還會嚴重影響檢測到磁場的大小[3]。所以軟磁干擾補償較為困難,一般在這個干擾的影響下,磁傳感器的輸出會變成橢圓形
羅盤軟硬磁干擾可以被橢圓擬合補償方法校正補償。硬磁干擾會使得磁傳感器3軸產生偏移量。磁傳感器的偏移量Xoff、Yoff、Zoff可采用以下方法計算,把羅盤上磁傳感器的XY軸平面放置在平行于水平面的平面上,勻速旋轉羅盤1周,采集磁傳感器的輸出值并計算出磁力計X軸和Y軸的最大最小值Xmax、Ymax、Xmin、Ymin;之后將羅盤豎起,使得磁力計的XZ軸平面平行于水平面,再次勻速旋轉1周,采集磁力計的輸出值并計算Z軸的最大最小值,記為Zmax和Zmin[4,5]。地磁傳感器的三軸偏移量為
而軟磁干擾的影響會不斷影響磁力計的輸出,使得磁力計的輸出由1個球變成1個橢球,可以引入3個標定因數(shù)Kx,Ky和Kz來將橢圓擬合成圓形。標定因數(shù)計算所需參數(shù)與計算偏移量所需參數(shù)相同,也需要磁力計3軸的最大最小值,將X軸設為標準軸,設定X軸的標定因數(shù)Kx=1,可求得3個標定因數(shù)Kx,Ky和Kz為
在得到磁力計3軸偏移量和3個標定因子后,可以通過標定因子的比例關系式將橢圓擬合成1個圓,圓心通過偏移量被移到原點,磁力計的輸出值變?yōu)镠x1,Hy1,Hz1,可以以求得其數(shù)值大小為
本設計基于MEMS傳感器開發(fā),其系統(tǒng)總體框架如圖5所示。系統(tǒng)硬件主要包括微控制單元(Micro Controller Unit,MCU)、三軸MEMS地磁傳感器、三軸加速度傳感器以及有機發(fā)光二極管(Organic Light-Emitting Diode,OLED)顯示屏。加速度傳感器采集重力加速度矢量G在載體坐標系上的3個加速度分量Gx、Gy、Gz,通過I2C通信傳輸給MCU進行處理濾波,俯仰角θ和翻滾角γ通過加速度傳感器測量得到的地球重力加速度矢量帶入公式解算出來。3軸地磁傳感器采集地磁場矢量M在載體坐標系上的3個磁分量Mx、My、Mz也通過I2C送入MCU。MCU根據(jù)濾波后的加速度傳感器數(shù)據(jù)計算得到俯仰角和橫滾角以及通過橢圓擬合補償和標定誤差處理后的地磁傳感器3軸磁分量Mx、My、Mz,經過公式進行傾角補償和航向角解算,得到穩(wěn)定的姿態(tài)角數(shù)據(jù)。
圖5 電子羅盤的系統(tǒng)框架
傳感器的性能與羅盤性能密切相關。本設計選擇Bosch公司的BMA456加速度傳感器和AKM公司的AK09918C磁傳感器。這2款都是MEMS傳感器。BMA456具有16位高精度ADC,其噪聲為120 μg/Hz,溫度偏移系數(shù)為 ±0.3 mg/K,尺寸為 2.0×2.0×0.65 mm3,封裝形式為柵格陣列封裝(Land Grid Array,LGA),易于整合到可穿戴設備中。AK09918C是1款采用霍爾傳感器技術的可檢測三軸磁感應強度的單芯片,采用0.8×0.8×0.5 mm3晶圓片級芯片規(guī)模封裝(Water Level Chip Scale Packaging,WLCSP)形式,內置 16 位高精度ADC和高性能數(shù)字處理功能。BMA456加速度計在8 g量程下的靈敏度為4096 LSB/g,AK0991C磁力計的靈敏度為 0.15 μT/LSB[2]。
單片機采用STM32F103,將傳感器采集的數(shù)據(jù)濾波處理后進行姿態(tài)解算,并將解算后的數(shù)據(jù)發(fā)送給OLED模塊顯示。
由于電子羅盤在使用過程中受環(huán)境因素的影響較嚴重,必須在使用前對本進行校準補償。該設計中羅盤的參數(shù)補償是基于橢球擬合方法。羅盤的工作模式分為正常工作模式和校準模式,其工作過程如下:在上電后電子羅盤會默認進入正常工作模式,其內部的MCU先完成一些外設資源的初始化、MEMS傳感器的初始化以及OLED屏的初始化,再讀取片內F LASH,得到9個校準參數(shù),即3軸加速度偏移值(Gxoff、Gyoff、Gzoff)、地磁傳感器3軸的標定因數(shù)(Kx、Ky、Kz)、地磁傳感器三軸的偏移值(Mxoff、Myoff、Mzoff),然后MCU采集傳感器的原始數(shù)據(jù),將數(shù)據(jù)濾波后進行姿態(tài)解算得到姿態(tài)角和航向角。當按下按鍵,系統(tǒng)程序就會進入校準模式。羅盤先校準加速度傳感器,通過加速度計持續(xù)采集一段時間的3軸加速度數(shù)據(jù),實時比較每次發(fā)送給MCU的數(shù)據(jù),得到加速度計XYZ軸的最大最小值,然后經過計算得到每個軸的偏移值,接著校準磁力計。磁力計先收集XY軸最大最小值,完成后將羅盤繞X軸旋轉90°,收集Z軸最大最小值,然后計算每個軸的偏移值,并在校準完成后保存9個新的補償參數(shù)到片內FLASH中,程序自動返回到正常工作模式。
系統(tǒng)軟件的流程如圖6所示。
圖6 軟件流程
電子羅盤的數(shù)據(jù)處理采用滑動窗口濾波算法,羅差補償校準采用基于橢圓擬合法,即在0°~360°,每隔45°等間隔共8個試驗點進行誤差測試。程序運行后,通過OLED顯示屏記錄電子羅盤在經過誤差校準補償之后的水平和30°傾角的傾斜狀態(tài)下的輸出點。測試實驗的數(shù)據(jù)如表1所示。
表1 實驗結果 單位:°
通過實驗驗證本文設計的羅盤在被軟件校準補償后可達到±2°的精度和1°的分辨率,可以測量0°~360°范圍的航向角,驗證了本文提出的基于橢圓擬合的校準補償算法能夠很好地對傾角及羅差進行補償。
通過對羅盤導航原理和誤差分析,實現(xiàn)了基于MEMS傳感器、可在三維空間中測量航向角、并具有校準補償功能的電子羅盤。實驗測試表明,所設計的電子羅盤能夠實現(xiàn)姿態(tài)角的實時顯示,提出的基于橢圓擬合補償?shù)臉硕ǚ椒ㄓ行?,被軟件校準補償后可達到±2°的精度。該方法簡單快速,通過選擇高精度傳感器就可以改善羅盤的測量精度,對未來要求的小體積、低功耗及高精度電子羅盤設計具有參考價值。