MEMS惯性传感器初始姿态角的确定
9軸MEMS慣性傳感器初始姿態角的計算
隨著微機電系統( Micro Electromechanical System,MEMS) 技術的不斷發展,基于MEMS的慣性傳感器得到了更加廣泛的應用,比如機器人跟蹤導航,行人定位。慣性導航系統利用初始的位置、速度和姿態信息,通過陀螺儀和加速度測量的角速率和比力進行二次積分推算得到目標的位置、速度和姿態信息。因此,初始對準的好壞將確定慣性導航系統的精度和穩定性。
MEMS慣性傳感器中加速度計的精度通常優于1mg,而陀螺儀無法敏感到地球自轉,因此可以利用加速度計確定慣性導航系統的橫滾角和俯仰角,但卻無法利用陀螺儀確定航向角信息。利用磁力計能確定慣性導航系統的初始航向角
導航坐標系和載體坐標系之間的關系
這里的導航坐標系采用北向-東向-地向(NED)坐標系,記為n系;載體坐標系采用前向-右向-向下坐標系,記為b系。繞著載體的x\ x?x軸旋轉為橫滾角,繞著載體的y\ y?y軸旋轉為俯仰角,繞著載體的z\ z?z軸旋轉為航向角。導航坐標系依次沿著x\ x?x軸、y\ y?y軸和z\ z?z軸旋轉能變換到載體坐標系中,那么載體坐標系和導航坐標系的姿態旋轉矩陣DCM可表示為:
Cbn=[cosθcosψ?cos?sinψ+sin?sinθcosψsin?sinψ+cos?sinθcosψcosθsinψcos?cosψ+sin?sinθsinψ?sin?cosψ+cos?sinθsinψ?sinθsin?cosθcos?cosθ]\ C{^n_b} = \begin{bmatrix} {cos\theta cos \psi} & {-cos\phi sin \psi +sin\phi sin\theta cos \psi} & {sin\phi sin \psi +cos\phi sin\theta cos \psi} \\ {cos\theta sin\psi} & {cos\phi cos\psi +sin\phi sin\theta sin\psi} & {-sin\phi cos\psi +cos\phi sin\theta sin\psi} \\ {-sin\theta} & {sin\phi cos\theta} &{cos\phi cos\theta} \end{bmatrix} ?Cbn?=???cosθcosψcosθsinψ?sinθ??cos?sinψ+sin?sinθcosψcos?cosψ+sin?sinθsinψsin?cosθ?sin?sinψ+cos?sinθcosψ?sin?cosψ+cos?sinθsinψcos?cosθ????其中,θ\thetaθ為俯仰角,?\phi?為橫滾角,ψ\psiψ為航向角。
注:選擇的導航坐標系和載體坐標系和這里的不一致,以及旋轉順序和這里的不一致,所產生的旋轉矩陣均不相同。
注:坐標系統和姿態旋轉矩陣是慣性導航系統最基礎最核心的部分。
初始橫滾角和俯仰角的計算
當傳感器靜止時,加速度計測量的是重力在載體坐標系下的投影。由于是MEMS傳感器器件誤差較大,可以不考慮重力在北方向和東方向的投影,即不考慮重力的垂線偏差,那么重力和加速度計的比力(加速度)之間的關系為:
fibb=Cnbgnf^b_{ib} = C{^b_n}g^n fibb?=Cnb?gn其中,fibb=[fib,xbfib,ybfib,zb]′f^b_{ib}=\begin{bmatrix} f^b_{ib,x} &f^b_{ib,y}&f^b_{ib,z} \end{bmatrix}'fibb?=[fib,xb??fib,yb??fib,zb??]′為加速度計輸出的x,y和z軸的比力(或加速度)信息,gn=[00gDn]′g^n=\begin{bmatrix} 0 &0&g^n_D \end{bmatrix}'gn=[0?0?gDn??]′為導航坐標系下重力在北(North)、東(East)和地(Down)方向三個的投影。通過上面DCM矩陣可以展開為:
[fib,xbfib,ybfib,zb]=[?sinθ?cosθsin??cosθcos?]gDn......(1)\begin{bmatrix} f^b_{ib,x} \\f^b_{ib,y}\\f^b_{ib,z} \end{bmatrix}=\begin{bmatrix} -sin\theta \\-cos\theta sin\phi \\-cos\theta cos\phi \end{bmatrix}g^n_D \space ......(1) ???fib,xb?fib,yb?fib,zb?????=????sinθ?cosθsin??cosθcos?????gDn??......(1)通過公式(1)可以計算靜止期間慣性傳感器的初始橫滾角和俯仰角,計算公式為:
θ=atan(fib,xbfib,yb?fib,yb+fib,zb?fib,zb),?=atan2(?fib,yb,?fib,zb)\theta=atan(\cfrac{f^b_{ib,x}}{\sqrt{\smash[b]{{f^b_{ib,y}*{f^b_{ib,y}+{f^b_{ib,z}*{f^b_{ib,z} }}}}}}}) \space, \phi=atan2(-f^b_{ib,y},-f^b_{ib,z})θ=atan(fib,yb??fib,yb?+fib,zb??fib,zb??fib,xb??)?,?=atan2(?fib,yb?,?fib,zb?)
初始磁航角的計算
由于陀螺儀無法敏感到地球自轉,因此可通過磁力計確定初始的航向角。當傳感器靜止時,測力計測量的是地磁場在載體坐標系下的投影。磁力計量測的磁場和地磁場之間的關系可表示為:
mn=Cb,prnmbm^n=C{^n_{b,pr}}m^bmn=Cb,prn?mb其中,mn=[mxnmynmzn]′m^n=\begin{bmatrix} m^n_x &m^n_y&m^n_z \end{bmatrix}'mn=[mxn??myn??mzn??]′為地磁場,mb=[mxbmybmzb]′m^b=\begin{bmatrix} m^b_x &m^b_y&m^b_z \end{bmatrix}'mb=[mxb??myb??mzb??]′為磁力計測量的磁場。在通過加速度計確定橫滾角和俯仰角之后,姿態轉換矩陣DCM可以表示為:
Cb,prn=[cosθsin?sinθcos?sinθ0cos??sin??sinθsin?cosθcos?cosθ]C{^n_{b,pr}} =\begin{bmatrix} cos\theta & sin\phi sin\theta &cos\phi sin\theta \\ 0 & cos\phi& -sin\phi \\ {-sin\theta} & {sin\phi cos\theta} &{cos\phi cos\theta} \end{bmatrix}Cb,prn?=???cosθ0?sinθ?sin?sinθcos?sin?cosθ?cos?sinθ?sin?cos?cosθ????磁航角的計算公式為:ψm=?atan2(myn,mxn){\psi_m} = -atan2(m^n_y,m^n_x)ψm?=?atan2(myn?,mxn?)那么磁航角計算公式可進一步表示為:
ψm=?atan2(mybcos??mzbsin?,mxbcosθ+mybsin?sinθ+mzbcos?sinθ){\psi_m} = -atan2(m^b_ycos\phi-m^b_zsin\phi,m^b_xcos\theta+m^b_ysin\phi sin\theta+m^b_zcos\phi sin\theta)ψm?=?atan2(myb?cos??mzb?sin?,mxb?cosθ+myb?sin?sinθ+mzb?cos?sinθ)
初始航向角的計算
由于地理北極和磁力北極之間存在一個磁偏角,慣性導航中初始的航向角是以地理北極(真北)進行計算的,因此計算初始航向角的時候需要減去磁偏角。磁偏角可以通過查表或者公式計算出來(一個城市內磁偏角相同)。
磁北和真北(地理北極)之間的關系可以通過下圖表示
磁偏角可以通過該網址查詢[武漢的磁偏角為-4°26′]:magnetic-declination: http://www.magnetic-declination.com/
注:上述中加速度計和磁力計在靜止時間段內的輸出值進行平均,然后計算初始姿態角,能降低期間中隨機噪聲對結果的影響。
作為學習中的記錄,僅供參考~~
總結
以上是生活随笔為你收集整理的MEMS惯性传感器初始姿态角的确定的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java实现基础坦克大战【含源码】
- 下一篇: java 坦克大战设计论文,java坦克