備忘録:相補フィルタとカルマンフィルタ?

 「相補フィルタ」と「カルマンフィルタ」てなんだっけ?ということでこれらのフィルタの基礎の基礎を自分なりに調べてまとめてみた備忘録noteです。ジャイロセンサの扱いを例にしています。

前提として

そもそも、ジャイロセンサが誤差の生じない理想的なセンサであればこのようなフィルタは必要ありません。しかし、どのようなセンサーであっても誤差は必ず含まれます。

 そこで、この誤差を減らすために相補フィルタやカルマンフィルタなどの技術が使用されます。

相補フィルタ

 相補とは互いに補うことです。
相補フィルタは、センサが苦手とする周波数域を他のセンサが補うフィルタです。
加速度センサとジャイロセンサを組み合わせて使います。加速度センサとジャイロセンサの弱点をそれぞれが補うことで、速度情報、位置情報の推定精度を向上させることができます。

 加速度センサの弱点は、高周波域にノイズ成分が含まれること
 ジャイロセンサの弱点は、低周波のドリフト成分により実際は回っていないのにゆっくり回っていくように数値が変化すること

この弱点を補うために
 加速度センサにはローパス(低周波通過)フィルタ
 ジャイロセンサにはハイパス(高周波通過)フィルタ
を適用します。
結果を合成するときの条件はフィルタゲインの和が1となるようにすること。
これが相補フィルタです。

カルマンフィルタ

 ルドルフ・カルマンさんの名前が付けられたカルマンフィルタのアルゴリズムは相補フィルタより複雑です。また、種類も複数あります。
それでも概要としては以下のように簡単に説明できます。

 カルマンフィルタは、
①ジャイロセンサの現在の値(観測値)
②1時刻前の値(推定値)
➂システムへの入力
の三つを代入して推定値を計算する数式ととらえることができます。
 さらにかいつまんでに説明するとすれば
ジャイロセンサの値を再計算することで、精度を向上させることができるフィルタ」ということになります。
①だけだったものに、②と➂の情報が加わることで精度が向上します。

①の値を $${x_1}$$とし、②➂を合成して作った値を$${x_2}$$とします(ここでは$${x_2}$$の詳細には触れません)。そのとき知りたい推定値がxです。
カルマンゲインと呼ばれる値をKとします。
そのときカルマンフィルタの数式は
x=K$${x_1}$$+(1-K)$${x_2}$$
です。
カルマンゲインKの値が0.5の時は、平均値の計算式と同じになりますね。


以上のことからカルマンフィルタも相補フィルタと同じように
誤差の含まれた2つ以上のデータを組み合わせることで、精度の向上を狙ったものとなっています。




誤りがあれば教えていただけると助かります。


参考にしたwebサイト

相補フィルタのしくみを解明してみる【加速度・ジャイロセンサ】
https://depfields.com/complementary-filter/
カルマンフィルター
https://jp.mathworks.com/discovery/kalman-filter.html
カルマンフィルタってなに?
https://qiita.com/IshitaTakeshi/items/740ac7e9b549eee4cc04



いいなと思ったら応援しよう!