劉真諦,陳慕羿,王洪源
(沈陽(yáng)理工大學(xué) 信息科學(xué)與工程學(xué)院,沈陽(yáng) 110159)
?
MEMS傳感器姿態(tài)測(cè)量系統(tǒng)的實(shí)現(xiàn)
劉真諦,陳慕羿,王洪源
(沈陽(yáng)理工大學(xué) 信息科學(xué)與工程學(xué)院,沈陽(yáng) 110159)
摘要:采用一種基于Arduino的捷聯(lián)式姿態(tài)測(cè)量系統(tǒng)的設(shè)計(jì)方案,分別介紹系統(tǒng)中傳感器的選擇及系統(tǒng)的結(jié)構(gòu),設(shè)計(jì)基于Arduino的姿態(tài)測(cè)量系統(tǒng),利用ATMEL公司的Atmega328處理器為核心,完成數(shù)據(jù)采集和處理的功能。通過(guò)對(duì)硬件結(jié)構(gòu)的描述分析系統(tǒng)中各個(gè)電路模塊的功能,給出各個(gè)模塊的方案,由此完成該設(shè)計(jì)的捷聯(lián)式姿態(tài)測(cè)量系統(tǒng)。針對(duì)陀螺儀和加速計(jì)的誤差,使用Kalman濾波對(duì)其進(jìn)行確定性誤差補(bǔ)償處理。通過(guò)實(shí)驗(yàn)測(cè)試,對(duì)比原理樣機(jī)的實(shí)測(cè)數(shù)據(jù)與補(bǔ)償后結(jié)果,驗(yàn)證了該捷聯(lián)式姿態(tài)測(cè)量系統(tǒng)的可靠性以及補(bǔ)償方案的可行性。
關(guān)鍵詞:Arduino;捷聯(lián)式姿態(tài)測(cè)量系統(tǒng);Kalman濾波;誤差補(bǔ)償
微型慣性導(dǎo)航技術(shù)[1]已得到了廣泛應(yīng)用,而測(cè)量載體的姿態(tài)就是其中之一,即測(cè)量載體俯仰角、橫滾角和航向角等姿態(tài)信息[2]。隨著單片機(jī)的發(fā)展,近些年出現(xiàn)了一種開源的單片機(jī)控制器——Arduino[3],由于其便捷靈活、方便上手、應(yīng)用簡(jiǎn)單等優(yōu)點(diǎn)近年來(lái)得到了廣泛應(yīng)用。并且它能夠進(jìn)行編程、調(diào)試、檢驗(yàn)錯(cuò)誤、多次編程和重復(fù)操作等,對(duì)于設(shè)計(jì)開發(fā)和驗(yàn)證具有較大意義。
為了獲得的姿態(tài)信息,國(guó)內(nèi)外學(xué)者進(jìn)行了大量研究和實(shí)驗(yàn),文獻(xiàn)[4]利用陀螺儀及GPS組合導(dǎo)航測(cè)量姿態(tài),然而GPS的信號(hào)采樣率影響很大,使得它的穩(wěn)定性不高,實(shí)時(shí)性不好;文獻(xiàn)[5]利用陀螺儀測(cè)量姿態(tài),因?yàn)橥勇輧x隨著漂移的積累,誤差會(huì)越來(lái)越大,長(zhǎng)時(shí)間測(cè)量會(huì)使得精度受到很大影響。本文設(shè)計(jì)基于Arduino的捷聯(lián)式姿態(tài)測(cè)量系統(tǒng),該系統(tǒng)以低成本、低功耗的ATMEL公司生產(chǎn)的Atmega328[6]芯片為設(shè)計(jì)核心,使用它采集陀螺儀、加速度計(jì)[7]和磁力計(jì)的數(shù)據(jù)進(jìn)行處理,通過(guò)單片機(jī)引腳控制外接設(shè)備,同時(shí)使用USB接口將數(shù)據(jù)傳送給上位機(jī)進(jìn)行顯示。
1系統(tǒng)構(gòu)成及硬件電路
系統(tǒng)主要由以下幾部分構(gòu)成:微機(jī)電傳感器、磁力計(jì)模塊、控制模塊、電源模塊等,能夠通過(guò)USB接口將數(shù)據(jù)傳遞到上位機(jī),系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 姿態(tài)測(cè)量系統(tǒng)結(jié)構(gòu)框圖
系統(tǒng)的硬件電路由以下幾個(gè)模塊組成:預(yù)處理模塊、數(shù)據(jù)采集和處理模塊和輸出模塊,如圖2所示。
圖2硬件電路功能框圖
1.1MEMS傳感器
MEMS傳感器選擇MPU6050,MPU6050為全球首例整合性6軸運(yùn)動(dòng)處理組件,即整合了3軸陀螺儀、3軸加速器,免除了組合陀螺儀與加速器時(shí)之軸間差的問(wèn)題,減少了大量的包裝空間。圖3為MPU6050模塊。
圖3 MEMS模塊
1.2HMC5883L磁力計(jì)
HMC5883L三軸磁力計(jì)傳感器模塊,帶有I2C[8]輸出接口,廣泛應(yīng)用于低成本的磁力計(jì)領(lǐng)域。圖4為磁力計(jì)模塊。
圖4 HMC5883L模塊
1.3預(yù)處理模塊
因?yàn)镸EMS器件[9]本身具有較大的噪聲,所以需要對(duì)其進(jìn)行預(yù)處理。采用低通濾波對(duì)MPU6050和HMC5883L的輸出信號(hào)進(jìn)行預(yù)處理。
1.4數(shù)據(jù)采集與處理模塊
該模塊主要由Arduino組成。選擇ATMEL公司的Atmega328作為主芯片,F(xiàn)lash作為存儲(chǔ)之用,用于程序編寫及運(yùn)行。電路板具有小巧耐用,靈活方便等優(yōu)點(diǎn)。圖5為姿態(tài)測(cè)量系統(tǒng)電路。
圖5 姿態(tài)測(cè)量系統(tǒng)電路
1.5數(shù)據(jù)輸出模塊
Arduino通過(guò)USB接口與上位機(jī)進(jìn)行通信,輸出數(shù)據(jù)給上位機(jī),上位機(jī)用串口助手接收數(shù)據(jù)。
用C語(yǔ)言編寫程序,編程軟件和下載軟件都用Arduino1.0.5。
2算法及誤差補(bǔ)償
加速度計(jì)和陀螺儀是微慣性姿態(tài)測(cè)量系統(tǒng)的核心部分,它們的精度決定了微慣性姿態(tài)測(cè)量系統(tǒng)的精度,且MEMS誤差源中確定性的系統(tǒng)誤差高達(dá)總誤差的90%,因此對(duì)于確定性的系統(tǒng)誤差進(jìn)行分析及補(bǔ)償具有重大意義,而且對(duì)MEMS精度的提高也具有決定性作用。
利用文獻(xiàn)[10]中Kalman濾波的狀態(tài)方程和觀測(cè)方程,建立基于Kalman濾波的補(bǔ)償機(jī)制,分別對(duì)加速度和角速度進(jìn)行濾波處理,提高測(cè)量精度。
對(duì)X軸上加速度和角速度補(bǔ)償?shù)膶?shí)際過(guò)程:
/*kalmenstart*/
Sx=0;Rx=0;Px=1;//X軸卡爾曼變量
for(int i=1;i<15;i++){//測(cè)量值平均值運(yùn)算
a_x[i-1]=a_x[i];//即加速度平均值
Sx+=a_x[i];}
a_x[14]=aax;
Sx+=aax;Sx/=15;//X軸加速度平均值
for(int i=0;i<15;i++){
Rx+=sq(a_x[i]-Sx);}
Rx=Rx/14;//得到方差
Px=Px+0.002;
Kx=Px/(Px+Rx);//計(jì)算卡爾曼增益
agx=agx+Kx(aax-agx);//陀螺儀角度與加速度計(jì)速度疊加
Px=(1-Kx)*Px;//更新P值
/*kalmenend*/
對(duì)加速度角度建立一個(gè)滑動(dòng)采樣隊(duì)列,采樣數(shù)為15,求出隊(duì)列方差,并適當(dāng)縮小后,運(yùn)算得到卡爾曼增益。加速度角度與陀螺儀角度做差后,乘以卡爾曼增益疊加到陀螺儀角度上,更新P值。
3實(shí)驗(yàn)結(jié)果驗(yàn)證
按照上述方法進(jìn)行實(shí)驗(yàn),對(duì)數(shù)據(jù)進(jìn)行采集。用Matlab軟件進(jìn)行圖形顯示。
圖6到圖8為載體的加速度濾波前后曲線、角速度濾波前后曲線和誤差曲線。
這是載體大約在15s近似做擺動(dòng)而得到的數(shù)據(jù)。
從圖8誤差曲線可以看出,由于做的是擺動(dòng),加速度相對(duì)變化較小,使得誤差非常小。而角速度相對(duì)變化很大,使得角速度產(chǎn)生了較大誤差,甚至在某些時(shí)刻產(chǎn)生的誤差瞬間非常大。
(a)加速度濾波前曲線
(b)加速度濾波后曲線
(a)角速度濾波前曲線
(b)角速度濾波后曲線
(a)加速度誤差曲線
(b)角速度誤差曲線
圖9為將姿態(tài)測(cè)量系統(tǒng)放在載體上處于初始狀態(tài),即姿態(tài)信息都為零,由MPU6050和HMC5833L進(jìn)行測(cè)量得到的濾波前后姿態(tài)信息。圖9a為未加濾波前輸出的姿態(tài)信息;圖9b為濾波后輸出的姿態(tài)信息。采集時(shí)間為25s。
(a)靜止補(bǔ)償前姿態(tài)角
(b)靜止補(bǔ)償后姿態(tài)角
從圖9可以看出,濾波補(bǔ)償前,測(cè)得的姿態(tài)角保持的零態(tài)時(shí)間很短,很快產(chǎn)生較大誤差。橫滾角大致的變化在-1°~1.5°;航向角大致的變化在-1°~0.5°;俯仰角大致的變化在-2.5°~0°。而經(jīng)過(guò)濾波補(bǔ)償后的姿態(tài)角得到了明顯的補(bǔ)償,姿態(tài)信息大致都在-0.5°~0.5°之間。誤差小于1°。
圖10為被測(cè)載體繞X軸進(jìn)行近似均勻轉(zhuǎn)動(dòng),然后由MPU6050和HMC5833L測(cè)得的濾波前后的橫滾角。測(cè)量時(shí)間為30s。圖10a為補(bǔ)償前橫滾角,圖10b為濾波補(bǔ)償后橫滾角。從圖10可以看出,濾波前數(shù)據(jù)誤差較大,甚至有幾處毛刺。經(jīng)過(guò)濾波補(bǔ)償之后毛刺基本消失,數(shù)據(jù)得到了很好的改善。
然而無(wú)論是濾波前還是濾波后,可以看出輸出的姿態(tài)角都具有一定誤差,雖然濾波后有所改善,但還存在誤差,這部分誤差主要是由于直接將MEMS傳感器固定在載體上,使得MEMS傳感器直接承受載體的溫度、振動(dòng)和沖擊等影響,使得具有一定誤差;而且使用的MEMS傳感器是中低精度的,這也是原因之一。
(a)補(bǔ)償前橫滾角
(b)補(bǔ)償后橫滾角
4結(jié)論
給出了捷聯(lián)式姿態(tài)測(cè)量系統(tǒng)的硬件和軟件設(shè)計(jì)及調(diào)試,完成了一種功耗低、成本低、易于實(shí)現(xiàn)的系統(tǒng)設(shè)計(jì)方案,并對(duì)系統(tǒng)核心MEMS部分進(jìn)行誤差分析和補(bǔ)償處理。實(shí)驗(yàn)結(jié)果表明:該捷聯(lián)式姿態(tài)測(cè)量系統(tǒng)可準(zhǔn)確采集到MEMS和磁力計(jì)的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行誤差處理,能夠看出濾波前姿態(tài)角誤差(橫滾角為2.5°;航向角為1.5°;俯仰角為2.5°)。濾波后姿態(tài)角誤差為1°。誤差降低1°~1.5°。
參考文獻(xiàn):
[1]杜小菁,翟峻儀.基于MEMS的微型慣性導(dǎo)航技術(shù)綜述[J].飛航導(dǎo)彈,2014(9):77-81。
[2]朱仕永,祖靜,范錦彪,等.姿態(tài)角測(cè)試研究[J].電子設(shè)計(jì)工程,2009,17(1):12-13.
[3]高磊.Arduino讓我們愛(ài)上制作[J].無(wú)線電,2010(9):6-7.
[4]Ying Chilai.The development and verification of attitude and heading reference system for unmanned aerial vehicles[D].Tai-nan:National Cheng Kung University,2010.
[5]邵婷婷,李建新,張永波,等.基于MEMS器件的低成本微慣性導(dǎo)航系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2010,33(20):200-203.
[6]葉軍.基于AVR單片機(jī)的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].大眾科技,2013,9(15):15-16.
[7]馮智勇,曾瀚,張力,等.基于陀螺儀及加速度計(jì)信號(hào)融合的姿態(tài)角度測(cè)量[J].西南師范大學(xué)學(xué)報(bào):自然科學(xué)版,2011,8(4):137-141.
[8]王鈺,潘仕彬,王卉.IIC在數(shù)據(jù)采集中的應(yīng)用[J].科技廣場(chǎng),2008(8):190-191.
[9]邵婷婷,李建新,張永波,等.基于MEMS器件的低成本微慣性導(dǎo)航系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2010(20):200-203.
[10]崔璐璐.基于MEMS器件的姿態(tài)測(cè)量系統(tǒng)研究與實(shí)現(xiàn)[D].大連:大連理工大學(xué),2009.
(責(zé)任編輯:馬金發(fā))
Realization of MEMS Sensor Attitude Measurement Technology System
LIU Zhendi,Chen Muyi,WANG Hongyuan
(Shenyang Ligong University,Shenyang 110159,China)
Abstract:According to strapdown attitude measurement system based on the Arduino design scheme, the sensors choice in the system and system structure are introduced respectively based on Arduino attitude measurement system, and ATMEL company's Atmega328 processor is taken as the core to complete the function of data acquisition and processing. Through function description of hardware structure analysis for each circuit module in the system, each module solution is given by designing of strapdown attitude measurement system. According to gyroscope and accelerometer error, Kalman filter is adopted to compensate error with uncertainty. Experimental results show that, in comparison with the principle machine, the measured data of prototype and compensation results verify the reliability of the strapdown attitude measuring system and the compensation scheme feasibility.
Key words:Arduino;strapdown attitude measurement system; Kalman filter;error compensation
中圖分類號(hào):TP274+.2
文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1003-1251(2016)02-0018-06
作者簡(jiǎn)介:劉真諦(1991—),男,碩士研究生;通訊作者:陳慕羿(1981—),女,講師;研究方向:微電子學(xué)與固體電子學(xué),虛擬現(xiàn)實(shí)技術(shù)。
基金項(xiàng)目:遼寧省教育廳科學(xué)研究一般項(xiàng)目(L2013083)
收稿日期:2014-10-16