基于ARM與MEMS的AHRS設(shè)計(jì)
目前MEMS傳感器在消費(fèi)類電子產(chǎn)品中得到廣泛應(yīng)用,但是MEMS角速率陀螺儀存在嚴(yán)重的零點(diǎn)漂移和隨機(jī)誤差,在捷聯(lián)慣性導(dǎo)航解算中會(huì)產(chǎn)生積分誤差,難以達(dá)到應(yīng)用的精度。加速度計(jì)和磁場(chǎng)計(jì)能分別測(cè)量出重力加速度和地磁場(chǎng)這兩個(gè)不相關(guān)的三維矢量,可以作為平臺(tái)姿態(tài)的觀測(cè)矢量來(lái)校準(zhǔn)陀螺儀。擴(kuò)展卡爾曼濾波可以結(jié)合這幾種傳感器的特點(diǎn),以陀螺儀測(cè)量得到的角速率作預(yù)測(cè)更新,以重力加速度和磁場(chǎng)觀測(cè)更新,得到更高精度的姿態(tài)角信息。
1 硬件結(jié)構(gòu)
MEMS器件的AHRS硬件基本組成為三軸角速率陀螺儀、三軸加速度計(jì)、三軸磁阻傳感器和STM32系列微處理器STM32F103U8T6。航向姿態(tài)參考系統(tǒng)的硬件結(jié)構(gòu)如圖1所示。
IMU采用整合了16位的三軸陀螺儀和三軸加速度計(jì)的MPU6000,與多組件方案相比,有效避免了組合陀螺儀與加速器時(shí)之軸間安裝誤差的問(wèn)題,節(jié)省了安裝空間。同時(shí),內(nèi)部自帶了16位A/D轉(zhuǎn)換器,簡(jiǎn)化了電路設(shè)計(jì)。MPU6000的角速率量程為±250 °/s、±500 °/s、±1000 °/s與±2000 °/s。加速度測(cè)量范圍為±2g、±4g、±8g與±16g。內(nèi)部自帶16位的數(shù)字溫度傳感器,方便對(duì)傳感器進(jìn)行溫度補(bǔ)償。數(shù)據(jù)可通過(guò)最高可達(dá)400 kHz的I2C總線或最高可達(dá)20 MHz的SPI接口傳輸,采樣更新速率達(dá)到8 kHz,可保證系統(tǒng)測(cè)量的實(shí)時(shí)性。
圖1 航向姿態(tài)參考系統(tǒng)的硬件結(jié)構(gòu)
霍尼韋爾HMC5883為三軸12位I2C總線數(shù)字量輸出磁阻傳感器,測(cè)量范圍為±1~±8 Gs,數(shù)據(jù)更新速率為80 Hz。內(nèi)置OFFSET/SET/RESET電路,不會(huì)出現(xiàn)磁飽和與累加誤差現(xiàn)象,支持自動(dòng)校準(zhǔn)程序,簡(jiǎn)化使用步驟,可以滿足地磁場(chǎng)的測(cè)量要求。選用基于CortexM3內(nèi)核的STM32系列ARM處理器STM32F103U8T6,主頻達(dá)72 MHz,1.25 DMIPS/MHz;具有硬件單周期乘法器,保證姿態(tài)更新的實(shí)時(shí)性;具有豐富外設(shè)接口,可采用I2C總線接口從傳感器中讀取數(shù)據(jù),通過(guò)串口與上位機(jī)進(jìn)行通信。
2 四維擴(kuò)展卡爾曼濾波算法
擴(kuò)展卡爾曼濾波算法(Extended Kalman Filter, EKF)是一套由計(jì)算機(jī)實(shí)現(xiàn)的實(shí)時(shí)遞推算法,所處理的對(duì)象是隨機(jī)信號(hào),利用系統(tǒng)噪聲和觀測(cè)噪聲的統(tǒng)計(jì)特性,以系統(tǒng)的觀測(cè)量作為濾波器的輸入,以所要求的估計(jì)值(系統(tǒng)的狀態(tài)變量)作為濾波器的輸出,濾波器的輸入和輸出由時(shí)間更新和觀測(cè)更新算法聯(lián)系在一起,根據(jù)系統(tǒng)的狀態(tài)方程和觀測(cè)方程估算出所需要處理的信號(hào)。AHRS擴(kuò)展卡爾曼濾波算法的狀態(tài)變量采用四維四元數(shù),與采用歐拉角相比,避免了采用歐拉角計(jì)算時(shí)涉及的大量三角函數(shù)運(yùn)算,保證了更新速率和實(shí)時(shí)性,同時(shí)不存在采用歐拉角運(yùn)算出現(xiàn)的奇異性。歐拉角與四元數(shù)的轉(zhuǎn)換關(guān)系如式(1)~(3)所示。
四元數(shù)微分方程如式(4)所示,
評(píng)論