韓盈黨,李 哲
(西安郵電大學(xué)電子工程學(xué)院,陜西西安 710061)
?
MEMS加速度傳感器的數(shù)據(jù)采集和預(yù)處理
韓盈黨,李 哲
(西安郵電大學(xué)電子工程學(xué)院,陜西西安 710061)
設(shè)計(jì)了一種基于微機(jī)電系統(tǒng)(MEMS)加速度傳感器的數(shù)據(jù)采集單元,用微處理器通過內(nèi)部集成電路(I2C)總線采集加速度傳感器ADXL345的數(shù)據(jù),對數(shù)據(jù)進(jìn)行低通濾波、零偏誤差修正以及去除重力加速度等,從而得到載體的運(yùn)動(dòng)加速度,并對加速度進(jìn)行二次積分得到位移,在100 m范圍內(nèi)實(shí)測多次,仿真計(jì)算位移誤差在2%以內(nèi)。
微機(jī)電系統(tǒng)(MEMS);加速度傳感器;內(nèi)部集成電路(I2C);數(shù)據(jù)預(yù)處理
隨著微機(jī)電系統(tǒng)(Micro Electro Mechanical System,MEMS)和微加工技術(shù)的發(fā)展,微型傳感器也隨之迅速發(fā)展。MEMS加速度傳感器、陀螺儀、磁力傳感器等構(gòu)成慣性測量單元,可實(shí)現(xiàn)室內(nèi)定位與導(dǎo)航功能,是全球定位系統(tǒng)(Global Positioning System,GPS)在室內(nèi)環(huán)境的延伸。加速度傳感器作為室內(nèi)導(dǎo)航系統(tǒng)的一個(gè)核心敏感器件,具有體積小、價(jià)格低、功耗低等特點(diǎn)[1]。
利用MEMS加速度傳感器測量速度和位移,目前國內(nèi)工業(yè)和學(xué)術(shù)領(lǐng)域應(yīng)用還相對較少,且測量位移精度較差或精度范圍有限[2-3]。三軸MEMS加速度傳感器的測量值以數(shù)據(jù)格式輸出,經(jīng)過預(yù)處理后,能夠得到精度較高的載體前進(jìn)方向的加速度值,滿足室內(nèi)導(dǎo)航系統(tǒng)需求。
文中討論了對MEMS加速度傳感器的數(shù)據(jù)采集、數(shù)據(jù)預(yù)處理數(shù)學(xué)建模、仿真分析等。預(yù)處理主要包括:零偏誤差修正、濾除噪聲以及去除重力加速度等,得到運(yùn)動(dòng)載體的實(shí)際前進(jìn)方向加速度,再計(jì)算載體速度和位移。
1.1 硬件電路
數(shù)據(jù)采集單元的硬件電路由微處理器模塊和加速度傳感器測量模塊2部分組成。選用LPC1768作為主微處理器,加速度測量模塊選用ADXL345傳感器。
Cortex M3-1700開發(fā)板主處理器為LPC1768,具有I2C串行總線主接口。加速度傳感器ADXL345是一款超低功耗三軸加速度計(jì),13位有效數(shù)據(jù)輸出,分辨率為3.9 mg/LSB,測量范圍達(dá)±16g,輸出數(shù)據(jù)為二進(jìn)制補(bǔ)碼格式,接口為I2C總線。處理器通過I2C串行總線接口訪問讀取傳感器數(shù)據(jù)。
I2C BUS(Inter IC Bus)是芯片間串行傳輸總線,它有多主機(jī)模式和單主機(jī)模式,該硬件電路選用一主機(jī)、多設(shè)備的單主機(jī)連接模式。
硬件電路如圖1所示,Cortex M3-1700開發(fā)板作為主機(jī),三軸陀螺儀L3G4200D、三軸加速度ADXL345、三軸磁力計(jì)HMC5883L和大氣壓傳感器BMP085分別作為設(shè)備,連接在I2C總線上。
圖1 硬件電路示意圖
Cortex M3-1700開發(fā)板和PC機(jī)通過RS232串口進(jìn)行通信,前者將讀取的加速度傳感器的數(shù)據(jù)通過RS232串口發(fā)送到PC機(jī)上,并在PC機(jī)上顯示、保存和離線仿真處理。
1.2 軟件設(shè)計(jì)
軟件分為Cortex M3-1700開發(fā)板上嵌入式軟件和PC機(jī)上數(shù)據(jù)接收軟件。前者主要由I2C總線采集傳感器數(shù)據(jù)軟件和RS232串口傳輸軟件組成,后者借助于串口調(diào)試軟件接收、顯示和保存數(shù)據(jù),得到傳感器測量的原始數(shù)據(jù),用于預(yù)處理和仿真分析。軟件流程圖如圖2所示。
圖2 軟件實(shí)現(xiàn)過程
I2C采集軟件中,加速度傳感器ADXL345初始化主要包括設(shè)置加速度測量范圍為±16g、13位分辨率模式、數(shù)據(jù)輸出速率為50 Hz、偏移校準(zhǔn)以及數(shù)據(jù)讀取方式等。
數(shù)據(jù)轉(zhuǎn)換部分將加速度傳感器所讀取的二進(jìn)制補(bǔ)碼數(shù)據(jù)轉(zhuǎn)換成加速度數(shù)據(jù)。ADXL345為16位數(shù)據(jù)格式,從數(shù)據(jù)寄存器中獲取加速度數(shù)據(jù)后,用戶必須對數(shù)據(jù)進(jìn)行重建。DATAX0是X軸加速度的低字節(jié)寄存器,DATAX1是高字節(jié)寄存器。在13位模式下,高4位是符號位。ADXL345使用二進(jìn)制補(bǔ)碼數(shù)據(jù)格式,在13位模式下,1LSB代表3.9 mg。所以X軸測量數(shù)據(jù)Temp計(jì)算過程為
Temp=DATAX×3.9 mg
Y軸和Z軸測量原理同上。
在理想狀態(tài)下,三軸加速度傳感器的3個(gè)感應(yīng)軸是完全正交的、沒有誤差存在,在Z軸向上水平靜止時(shí),它們的理想值(aX、aY、aZ)滿足:aX=0,aY=0,aZ=g。
重力加速度值為g=9.8 m/s2,在西安地區(qū),Z軸理想值為
aZ=9.794/9.8=0.999g
加速度傳感器測量值存在固定偏差和隨機(jī)誤差,必須對原始數(shù)據(jù)進(jìn)行濾波、誤差校正以及去除重力加速度等預(yù)處理,得到真正載體運(yùn)動(dòng)前進(jìn)方向加速度,再進(jìn)行速度、位移等運(yùn)算。
2.1 誤差分析
(1)零偏誤差所帶來的積分誤差。零偏誤差為輸入信號為零的時(shí)候,傳感器的輸出不為零的幅度。理論上,載體靜止時(shí),加速度傳感器水平放置條件下理想值:aX=0,aY=0,aZ=0.999g,經(jīng)長時(shí)間觀察,實(shí)際測量值圍繞某個(gè)值小幅波動(dòng),對其求平均值,三軸的均值分別減去各軸理想值,三軸差值的矢量和即為加速度傳感器零偏誤差。
(2) 隨機(jī)噪聲信號所帶來的誤差。在工程應(yīng)用中,加速度傳感器的測量值包含著許多不同類型復(fù)雜的噪聲信號,形成前述圍繞某個(gè)值的波動(dòng),即每次測量值都不一樣。隨機(jī)噪聲主要來源于加速度傳感器上的機(jī)械噪聲、控制轉(zhuǎn)換電路的電路噪聲以及信號傳輸時(shí)的環(huán)境噪聲3個(gè)方面,這些噪聲降低了加速度傳感器的測量精度。
2.2 誤差解決辦法
(1) 零偏誤差使積分初始值不為零,會產(chǎn)生累計(jì)誤差,用測量值的算術(shù)平均值減去理想值可得到零偏誤差值aerror:
aerror=am-at
式中:am為加速度傳感器的測量值的算術(shù)平均值;at為加速度理想值。
aerror通過離線標(biāo)定可以獲得,在實(shí)時(shí)測量中,用加速度測量值減去可去除零偏誤差,消除積分的累計(jì)效應(yīng)。例如當(dāng)加速度傳感器Z軸向上水平靜止60 s時(shí),經(jīng)多次試驗(yàn),加速度Z軸測量值的算術(shù)平均值am為1.085g,理論值at為0.999g,則零偏誤差為
aerror=am-at=1.085-0.999=0.086g
實(shí)時(shí)測量時(shí),把測量值減去0.086g的差值,就認(rèn)為是真實(shí)值,也就是說用加速度測量值減去零偏誤差值即可消除零偏誤差。
(2) 載體姿態(tài)運(yùn)動(dòng)頻帶寬度遠(yuǎn)小于加速度傳感器噪聲帶寬,選擇低通濾波器合理的截止頻率,降低帶外噪聲,可以提高加速度傳感器測量精度。
人的步頻普遍不超過5步/s,在每步中采樣10組數(shù)據(jù),因此加速度傳感器選用50 Hz的采樣頻率,即可以滿足加速度計(jì)算位移的需求。
在Simulink中建立低通濾波器仿真模型圖3所示。
圖3 仿真模型
低通濾波器選用494階有限長單位沖激響應(yīng)數(shù)字濾波器,采用equiripple法,采樣頻率為5 kHz,通帶頻率為50 Hz、截止頻率70 Hz、通帶衰減為1 dB。阻帶衰減為60 dB。模型中input輸入數(shù)據(jù)分別為加速度三軸測量值amX、amY、amZ,圖4中示波器監(jiān)測為加速度濾波前和濾波后的波形。
(a)
(b)圖4 加速度動(dòng)態(tài)X軸濾波前和濾波后波形
2.3 去除重力加速度對計(jì)算位移的影響
利用加速度傳感器值二次積分來計(jì)算位移算法:
加速度積分一次可以得到載體速度即:
對速度積分一次可以得到位移量:
式中:am(t)為載體移動(dòng)加速度;vm(t)為載體移動(dòng)的速度;sm(t)為位移量;ami為第i時(shí)刻的加速度采樣值;vmi為第i時(shí)刻的速率值;a0=0;v0=0;Δt為兩次采樣之間的時(shí)間差。
測量的加速度傳感器數(shù)據(jù)是包含重力加速度在內(nèi)的,不能直接利用測量數(shù)據(jù)計(jì)算位移,必須去除重力分量。加速度傳感器測量的值是相對于載體坐標(biāo)系(也稱為傳感器坐標(biāo)系),利用三維坐標(biāo)變換算法,將三軸加速度傳感器的載體坐標(biāo)系投影到水平坐標(biāo)系中,得到水平坐標(biāo)系加速度值,在水平坐標(biāo)系中,去除重力(Z軸)加速度后,得到載體水平面運(yùn)動(dòng)加速度。
加速度傳感器固定在載體上,加速度傳感器坐標(biāo)系即為載體坐標(biāo)系O-XYZ,當(dāng)加速度傳感器固定在載體上以任意姿態(tài)運(yùn)動(dòng)時(shí),載體坐標(biāo)系可以由沿其前行方向的水平坐標(biāo)系O-XnYnZn(Xn為前行方向,Zn指向天)經(jīng)兩次旋轉(zhuǎn)得到,如圖5所示。
圖5 載體坐標(biāo)系與水平坐標(biāo)系之間的方位關(guān)系
說明:其中角θ、γ分別表示載體的俯仰角和翻滾角,坐標(biāo)系符合右手定則。
加速度傳載體坐標(biāo)系同水平坐標(biāo)系之間的三維坐標(biāo)變換矩陣為[4]:
根據(jù)變換矩陣可以計(jì)算加速度傳感器在水平坐標(biāo)系中X、Y、Z軸的投影,從而消除重力加速度對載體運(yùn)動(dòng)加速度在水平坐標(biāo)系中計(jì)算位移的影響,其計(jì)算公式為:
anX=aXcosγ+aYsinγsinθ-aZsinγcosθ
anY=aYcosθ+aZsinθ
anZ=aZsinγ-aYsinθcosγ+aZcosθcosγ
式中:anX、anY、anZ分別為加速度傳感器在水平坐標(biāo)系中X、Y、Z軸的投影分量,分別為加速度傳感器載體坐標(biāo)系中X、Y、Z軸的測量值經(jīng)過濾波和零偏誤差校正后的值。
當(dāng)加速度傳感器靜止時(shí),用三維坐標(biāo)變換公式,將濾波和去除零偏后的加速度傳感器數(shù)據(jù)進(jìn)行坐標(biāo)變換,理想狀態(tài)在水平坐標(biāo)系中X、Y軸分量分別等于0g,但在實(shí)測30 s時(shí),水平坐標(biāo)系中X、Y軸的投影分量的平均值分別為anXerror=-0.031g,anYerror=-0.005g,對水平坐標(biāo)系中X、Y軸加速度之矢量和積分,一次積分的速度誤差在0.2 m/s以內(nèi),二次積分的位移誤差在0.7 m以內(nèi)。
當(dāng)載體運(yùn)動(dòng)30 m,對測量的加速度三軸數(shù)據(jù)經(jīng)過濾波和去除零偏后,應(yīng)用坐標(biāo)變換公式,將載體坐標(biāo)系投影到水平坐標(biāo)系中,其中一組數(shù)據(jù)在X、Y、Z軸的投影如圖6所示,計(jì)算出水平坐標(biāo)系中加速度之矢量和的模值為
上式即為載體運(yùn)動(dòng)前行方向加速度模值。
(a)
(b)
(c)圖6 水平坐標(biāo)系X軸、Y軸、Z軸投影分量
由于在載體靜止?fàn)顟B(tài)時(shí)進(jìn)行坐標(biāo)變換后,實(shí)際測量數(shù)據(jù)與理論值存在一定的零偏誤差,所以在動(dòng)態(tài)數(shù)據(jù)中應(yīng)減去載體靜態(tài)時(shí)的零偏誤差值,即:
求得其在水平坐標(biāo)系中的矢量和:
用1g=9.8 m/s2將單位換算成m/s2,然后進(jìn)行一次積分和二次積分分別求得載體速度和位移量。仿真結(jié)果圖7所示,當(dāng)傳感器載體在實(shí)際移動(dòng)30 m時(shí),用載體投影在水平坐標(biāo)系中X、Y軸加速度之矢量和計(jì)算位移,一次積分的速度在2 m/s左右波動(dòng),二次積分的位移為29.7 m,符合實(shí)際的位移量,誤差為0.3 m,計(jì)算結(jié)果誤差較小。
基于Cortex M3-1700開發(fā)板實(shí)現(xiàn)加速度的數(shù)據(jù)采集,采用低通濾波器對加速度信號進(jìn)行了濾波處理,零偏誤差校正,去除重力加速度等,仿真結(jié)果表明,利用處理后加速度計(jì)算位移重復(fù)性好,在100 m范圍內(nèi)位移測量相對誤差小于2%,能滿足室內(nèi)導(dǎo)航的精度要求。
(a)
(b)
(c)圖7 加速度、速度、位移仿真圖
[1] 張海濤,閻貴平.MEMS加速度傳感器的原理及分析.電子工藝技術(shù),2003,24(6): 260-263.
[2] 容太平,沈承虎,袁中平,等.用加速度傳感器測量位移的原理與誤差分析.華中理工大學(xué)學(xué)報(bào),2000,28(5):58-60.
[3] 陳建新,王榮,章韻.MEMS加速度傳感器的距離測量性能分析.電腦與電信,2011(11):30-32.
[4] 宋麗梅.磁阻式電子羅盤的軟件集成設(shè)計(jì):[學(xué)位論文].哈爾濱:哈爾濱工程大學(xué),2007:22-25.
[5] 李緒友,梁輝,鄒繼斌.捷聯(lián)式慣導(dǎo)系統(tǒng)中加速度計(jì)的數(shù)據(jù)采集.傳感器技術(shù),2005,24(6):20-22.
[6] 李躍,邱致和.導(dǎo)航與定位—信息化戰(zhàn)爭的北斗星.2版.北京:國防工業(yè)出版社,2008: 384-429.
[7] 許睿.行人導(dǎo)航系統(tǒng)算法研究與應(yīng)用實(shí)現(xiàn):[學(xué)位論文].南京:南京航空航天大學(xué),2008:20-33.
[8] 李東文,熊曉燕,李博.振動(dòng)加速度信號處理探討.機(jī)電工程技術(shù),2008,37(9):51-52.
[9] 鄭成輝,王新華,郭淑琴.基于MEMS傳感器定位測量系統(tǒng)的硬件設(shè)計(jì).杭州電子科技大學(xué)學(xué)報(bào),2012(4):126-128.
[10] 王建東,劉云輝,宋寶泉,等.行人導(dǎo)航系統(tǒng)設(shè)計(jì)與IMU模塊數(shù)據(jù)預(yù)處理.電測與儀表,2006,43(11): 19-22.
Data Acquisition and Pre-processing Based on MEMS Accelerometer
HAN Ying-dang,LI Zhe
(School of Electronic Engineering,Xi’an University of Posts and Telecommunications,Xi’an 710061,China)
An accelerometer data acquisition unit was designed based on Micro Electro Mechanical System (MEMS). The date of ADXL345 acceleration sensor were collected with the microprocessor through the I2C bus, and the data were through lowpass filtering, zero offset error correction, gravitational acceleration elimination, etc. As a result, acceleration of the movement of the carrier was
, and displacement was got through the secondary integral of the acceleration. Through repeated measurements within 100 meters, the displacement error of the simulation calculation was less than 2%.
Micro Electro Mechanical System(MEMS);acceleration sensor;inter-integrated circuit(I2C);data preprocessing
2013-12-17 收修改稿日期:2014-11-30
TN962
A
1002-1841(2015)02-0016-04
韓盈黨(1985—),碩士研究生,研究方向?yàn)橥ㄐ畔到y(tǒng)與電路。E-mail: hanYingdangai432@163.com 李哲(1963—),教授,碩士,從事計(jì)算機(jī)應(yīng)用及嵌入式系統(tǒng)研究。E-mail:xytx03@xupt.edu.cn