2017年4月21日金曜日

カルマンフィルタの基礎式を代数とベイズ定理から見る

カルマンフィルタの歴史ももう長いことと思いますが,各所で各人なりにまとめられているあたり,なかなか理解の難しいものなんだなあと感じています.
例に漏れず自分もカルマンフィルタの原理がいまいちピンとこなかったので自分なりにまとめてみました.

カルマンフィルタ(Kalman Filter)はフィルタと名付けられてはいますが,使われ方としてはフィルタよりも現代制御のオブザーバ(Observer; 状態推定器)に近いような気がします.
観測した情報から,状態ベクトルが真値に最も近くなるように推定するものです.

概念は以下のところでわかりやすく説明されています.

モノを作りたくなるブログ

シンプルなモデルとイラストでカルマンフィルタを直感的に理解してみる

ただ,数式として少し省略されているところもあったので,改めてまとめるに至りました.
基本的に,代数とベイズの定理のみから丁寧に導出していこうという感じです.

カルマンゲインの式の導出,予測値の算出,分散の更新は天下り的な部分も多いので,今回はこれらの導出に焦点を当ててみました.
統計的にみて,予測値と実プラントの誤差が最小となるように演繹的に求めていくとカルマンフィルタの式に行き着くあたり,統計学の応用先の代表例になっているだけのことはあるなあ,という感想です.

ここでは,状態空間と観測空間が同一の場合のみ扱います.

2017年4月14日金曜日

4ストロークエンジンの物理モデル

4ストロークのガソリンエンジンの物理モデリングをしてみました.
シミュレーションはMATLAB/Simulink,可視化ツールはProcessingです.

参考元はこのあたり.
双方ともに高知工科大学の磯村先生の文献です.

4 サイクルガソリンエンジンの動特性について

並列計算機によるエンジンのシミュレータ開発


以前にも倒立振子とかパーティクルフィルタでのグリッドマップマッチングとか2リンク平面マニピュレータとかのモデリングをやってきたのですが,そのどれとも色が違うなあ,ということで.

例によって,ラグランジュ法で運動方程式を立てます.
このあたりは参考文献の上の方が詳しいかな.