我們已經知道,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);
我們可以根據取樣週期來算出濾波器的時間常數,最終求得它的響應速度。同樣的,我們也可以根據自己的需要,確定乙個時間常數,進而獲得合適的濾波係數,為了獲取更加準確的值需要對係數進行一定的調整。
一階互補濾波
六軸採集原始資料用的都是16位的adc,所以顯示的數字是從 32768 32768,要看自己選擇的量程進行換算,量程選擇在配置裡面找,比如選擇 250 250量程,那麼 32768 32768就對應 250 250 進行換算就可以了。對mpu6050來說,加速度計對四軸或小車的加速度比較敏感,取瞬時...
一階濾波器
一階濾波,又叫一階慣性濾波,或一階低通濾波。是使用軟體程式設計實現普通硬體rc低通濾波器的功能。一階低通濾波的演算法公式為 y n x n 1 y n 1 式中 濾波係數 x n 本次取樣值 y n 1 上次濾波輸出值 y n 本次濾波輸出值。一階低通濾波法採用本次取樣值與上次濾波輸出值進行加權,得...
一階低通濾波器方程 一階低通濾波原理詳解
在汽車標定中,使用最多的濾波演算法即低通濾波,很多朋友可能知道怎麼標定,但是不清楚具體的原理,因此本文將介紹一階低通濾波的原理 演算法建模 和優缺點 一階濾波演算法的原理 一階濾波,又叫一階慣性濾波,或一階低通濾波。一階低通濾波的演算法公式為 y n x n 1 y n 1 式中 濾波係數 x n ...