簡單介紹一下用加速度傳感器修正角速度傳感器(陀螺儀)累計誤差的原理

內容原作者 OURAVR - feng_matrix

陀螺儀輸出角速度,是瞬時量,一般角速度姿態平衡上是不能直接使用,多數慣導系統控制需要角度信號
所以需要角速度與時間積分計算角度,得到的角度變化量與初始角度相加,就得到目標角度,其中積分時間Dt越小,輸出角度越準
但陀螺儀的原理決定了它的測量基準是自身,並沒有系統外的絕對參照物,加上Dt是不可能無限小
所以積分的累積誤差會隨着時間流逝迅速增加,最終導致輸出角度與實際不符,所以陀螺儀只能工作在相對較短的時間尺度內。

加速度測量的是重力方向,有系統外絕對參照物“重力軸”,在無外力加速度的情況下,能準確輸出ROLL/PITCH兩軸姿態角度
並且此角度不會有累積誤差,在更長的時間尺度內都是準確的。但是加速度傳感器測角度也有缺點
加速度傳感器實際上是用MEMS技術檢測慣性力造成的微小形變,而慣性力與重力本質就是一個東東
所以它就不會區分重力加速度與外力加速度,當系統在三維空間做變速運動時,它的輸出就不正確了。
很可惜,多數需要慣導姿態角的系統,都不是工作在靜止狀態下。

所以在沒有其它參照物的基礎上,要得到較爲真實的姿態角,就要揚長避短,結合兩者的優點,擯棄其各自缺點
最簡單的辦法就是加權,設計算法在短時間尺度內增加陀螺儀的權值,在更長時間尺度內增加加速度權值,這樣系統輸出角度就更真實了

其實MK四軸的平衡算法也是這樣,首先對陀螺儀做PI運算,其中I的真正含義就是積分反演角度
有了陀螺儀PI算法,四軸就有了瞬時增穩,就可以遙控飛了,但是它不會永遠水平
由於累積誤差的作用,很快中立點就不是水平位置了,這時候就需要用加速度不斷的糾正陀螺儀積分誤差。

你可以看到MK算法中有根據加速度方向不斷把積分量I遞減清零的代碼,就是這個融合算法的核心了
MK立足於一個高級航模玩具,爲了在低成本8位單片機上運行,不去顯式的計算姿態角,只把校正後的PI值輸出負反饋控制電機了
這樣的好處是基本上只用整型算法就能完成運算,而要顯式的計算姿態角,更專業的做法就是KALMAN濾波顯式求解姿態
卡曼濾波也是在對歷史數據積分,並且可以同步融合陀螺儀與加速度數據,陀螺儀與加速度貢獻權值還可以通過濾波參數調整
所以它就成了慣性數據處理的經典算法,他的缺點是浮點運算量較大,對系統資源要求較高
很少有人在資源較少的8位單片機上玩卡曼濾波的。

總結一下就是:
PITCH/ROLL角速度積分->PITCH/ROLL姿態角,再結合加速度糾正累積誤差
YAW角速度積分->方向角,再結合地磁傳感器、GPS糾正累積誤差

當然導航並非只能用加速度傳感器,其它有絕對參照物的傳感器都可以
比如人除了耳蝸外,還有視覺,根據身邊的景物人也不會有累積誤差導致摔跤的問題
但一般人閉上眼睛,即便有耳蝸能保持平衡,摔跤可能性也會增加。
還有其它傳感器,比如紅外,航模上有種德國紅外平衡儀,就是檢測地平線上下,紅外背景強度不同來保證絕對姿態的。
衛星上以前還聽說過星光導航的,應該也是用它來作爲一個相對靜止的參照物。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章