加速度計濾波實驗參數:
采樣頻率Fs=250Hz 截止頻率Cutoff Frequency | 未開電機靜止 | 開電機懸停 | 未開電機轉動飛控 |
原始輸出(Raw) | 260 Hz | 260Hz | 260Hz |
MPU6050内部(LPF) | 94 Hz | 94 Hz | 94 Hz |
2階(Butterworth) | 30 Hz | 30 Hz | 30 Hz |
8深度視窗滑動(Window) | N/A | N/A | N/A |
資料分析 | 4組畫圖對比(A) | 4組畫圖對比(C) | 4組畫圖對比(F) |
4組FFT變換(B) | 4組FFT變換(D) | N/A | |
8組 RMSE (E) | N/A |
說明:
1. 所有資料來源于MPU6050,單片機采樣周期為4ms,即采樣頻率Fs=250Hz
2. 開電機懸停:綁住對角機臂,四電機同時打開,解開繩索飛行器可在空中飛行不掉下。由于沒有快速無線數傳,是以沒有測試實際飛行懸停加速度計輸出,是以該測試結果隻近似做參考。
3. 原始輸出Raw:根據晶片手冊配置,低通濾波器最大帶寬為260Hz,即截止頻率為260Hz。近似可看成原始加速度計輸出
4. MPU6050内部LPF:根據晶片手冊配置,LPF這裡選擇94Hz,用于測試内部LPF性能
5. 2階Butterworth:截止頻率選擇為30Hz,對Raw進行濾波
6. 8深度視窗滑動:目前四軸上廣泛使用的平均滑動濾波,深度為8,對Raw進行濾波
測試結果(以下“>”表示:“性能好于”):
A(未開電機靜止):
結論:
靜态平滑性能:視窗滑動>Butterworth>LPF>Raw
B(未開電機靜止):
結論:
1. 從Raw的FFT變換結果可以看出靜态時的加速度計類似白噪聲,其振幅平均分布在Fs/2上
2. LPF的結果不盡如人意。LPF的截止頻率為94Hz,理應在94Hz處有較大的幅值下降,但是這種幅值變化的不明顯,由此可見MPU6050内置的LPF性能有待改進
3. 2階Butterworth濾波器效果就好很多,在30Hz以前和Raw的頻譜大緻相同,接着在30Hz出現大幅度的幅值衰減,說明濾波器起到了效果
4. 視窗平均滑動濾波出現了匪夷所思的現象,這種幅值衰減特别有規律!鑒于筆者信号分析學的很爛,這裡就不展開了。
5. 其實從視窗滑動濾波的FFT結果就可以看出來效果了,簡單的平均濾波效果在頻譜上确實有不錯的效果,至少比内置的LPF效果要好。如果在四軸同時應用了LPF和視窗平均滑動,那麼效果會更好
C(開電機懸停):
結論:
打開電機之後,結果同靜态平滑性能:視窗滑動>Butterworth>LPF>Raw
D(開電機懸停):
結論:
1. 從Raw的FFT變換結果可以看出打開電機時的加速度計與靜止時的結果有了明顯不同:首先是振幅有了明顯的變化,從原先的200~600,到現在的10000~60000,這是由于打開電機後的機械震動引起的巨大振幅;其次就是頻率分布,可以清楚地看到在40Hz和90Hz附近有較大的振幅分布,說明機械震動産生的信号頻率大多數分布在這兩個頻率範圍附近,而這種頻率附近的信号我們是不需要的,這也就是說:我們要采用某種濾波器,至少在40Hz或者90Hz處截止,高于該頻率的信号一律屏蔽。
2. LPF的結果很奇怪。在低頻階段0~40Hz的振幅極小,反而在100Hz處有較大的幅值分布,看起來就像是高通濾波器,而不像是低通濾波器。雖然設定的LPF在94Hz截止,但是在94Hz後面仍然有較大的震動信号出現,再次證明了MPU6050内置的LPF的效果确實不怎麼令人滿意
3. 2階Butterworth濾波器效果比LPF效果好很多。在打開電機後,可以看到在30Hz之前的信号頻譜和Raw的分布基本一緻,說明保留了真實的信号輸出。而在30Hz以後,其信号的幅值有了大幅度的明顯衰減,有效的濾掉了高頻的電機震動引起的幹擾信号
4. 對于視窗平均滑動濾波依舊出現了匪夷所思的現象。這種有規律的頻譜實在是看不懂,不過在低頻段和原始輸出保持一緻,而在高頻部分也有效的抑制了電機産生的震動信号。是以這種方法應用在四軸上的加速度計濾波是可以的,至少比内部LPF效果要好。
E(8組 RMSE):
這個圖很有意思,RMSE(Root-Mean-Square-Error)均方根誤差,常用來表征估計的準确程度。RMSE越小說明精度越高,這裡由于是靜止測試和開電機懸停測試,是以這裡的RMSE用來表示資料的平滑性。
結論:
無論開電機與否,資料平滑性性能:視窗滑動>Butterworth>LPF>Raw
F(未開電機轉動):
該測試用來比較Butterworth和視窗滑動濾波的延遲特性
結論:
資料平滑性性能名額:視窗滑動>Butterworth>Raw
為了更加清楚的看到延遲特性,下圖放大Y軸在980次采樣點的三條輸出曲線:
結論:
資料延遲性能特性:Raw>Butterworth>視窗滑動,也就是說Butterworth濾波延遲小于8深度的視窗滑動濾波。
最後總結:
1. 盡量不要用MPU6050内置的LPF濾波。雖然相比于原始加速度計輸出,該LPF可以平滑輸出,但是在FFT頻譜上的表現相當差勁。
2. 廣泛使用的視窗平均滑動濾波無論在FFT還是RMSE表現上都有不錯的表現,是以一般基礎應用(低速運動或四軸初學者)采用視窗平均濾波是比較明智的選擇。
3. 想要達到更好的濾波效果,FIR或者IIR濾波器是更好的選擇。筆者測試2階30Hz的Butterworth濾波器雖然在平滑性RMSE隻比視窗平均滑動差了一點(但是比LPF要好),但是資料實時性性能名額上比前者響應速度提高了近一倍。是以在制作四軸的進階階段,可以考慮将視窗平均滑動換成Butterworth濾波器。