一阶互补滤波
基于一階互補濾波算法的MPU6050數據融合
我們已經知道,MPU6050可以獲得加速度和角速度,但是由于傳感器的噪聲信號比較大,無法直接通過兩個數據來獲得該軸上的角度。因此,需要進行互補濾波來近似得到一個比較準確的角度。
傳感器原始數據特點分析:
加速度數據,不是很準確,但是趨勢是對的,通過受力分能夠顯示角度變化趨勢,在長期變化來看是可以利用的。?
角速度數據,加速度積分得到角度,但是由于傳感器誤差,積分作用會造成累計誤差,所以角速度數據在短期是可以使用的,長期來看誤差會很大是不可使用的
兩種特點的數據使得我們對得到精確地角度看到了希望,以下幾個內容需要明白
數字低通濾波器
可以讓長期變化通過,濾波消除短期變化,用于對加速度計的濾波
數字高通濾波器
可以讓短時信號通過,過濾出變化緩慢的信號,消除漂移
積分
數字積分是通過累加來實現的,即 Angle = gyro * dt?
dt是采樣時間越短積分值越準確
采樣周期
這個簡單,比如1ms獲取一次時間,則采樣率是1000HZ,采樣時間為0.001s
時間常數
τ是常用時間常數符號,一般表示過渡反應的時間過程的常數。指該物理量從最大值衰減到最大值的1/e所需要的時間,對于濾波器而言是信號會作用的相對時間。?
對于低通濾波器周期比時間常數大的多的信號可以平穩通過,周期比時間常數短的信號被濾出,高通則相反。?
設互補濾波系數為a,則?
y = a*y + (1-a)*x;?
若以dt為周期執行,則有τ = (a*dt)/(1-a) ->得出互補濾波系數為 a = τ/(τ + dt);
互補
即,高頻信號與低頻信號都與我們將求得的量相關,我們將其進行濾波運算,給兩部分一個權重得到一個相對準確的值,或者得到一個很好的近似的過程
角度互補濾波器
Angle = (0.98) * (Angle + gyro * dt) + (0.02) *(acc);?
我們可以根據采樣周期來算出濾波器的時間常數,最終求得它的響應速度。同樣的,我們也可以根據自己的需要,確定一個時間常數,進而獲得合適的濾波系數,為了獲取更加準確的值需要對系數進行一定的調整。
轉載自 :?https://blog.csdn.net/ysudykx/article/details/68945567
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: 关于modbus温湿度传感器,IIC热成
- 下一篇: http请求 get 与 post 区别