カルマンフィルタの基礎 第4回
第1回、第3回を受けて、ようやくカルマンフィルタの設計を行う
今回は、以下の1入力1出力(SISO)の線形時不変の状態空間モデルでの状態ベクトル を推定することを考える
事前推定値と事後推定値
カルマンフィルタでは、いくつかステップを踏んで推定を行う
推定値については、以下の推定値を求めていく
- 事前推定値
- 前回()までの推定結果から求める予測推定値
- 事後推定値
- における観測値 を用いたフィルタリング推定値
カルマンゲインの決定法
線形予測器の構成と事後推定値
最終的に求めたい事後推定値 を、
事前推定値 と 観測値 から求めることを考える
この 、 を求めることを考える
まずは、条件として、事後推定誤差 () が 観測値 と直交することから求める
下記の条件を使用する
結局、下記の結果を得る
ここまでで、事後推定値 は下記になる
が消去されて、カルマンゲイン だけで求めることができる
カルマンゲインの算出
カルマンゲイン を求めるために、
今度は 事後推定誤差 と 出力予測誤差 () が直交することから求める
下記の条件を使用する
まずは、 、 を変換すると
次に、条件を求めると
ここで、事前共分散行列を下記のように定義した
さらに続けて を求めると
つまり、事前共分散行列 を求めることができれば、カルマンゲイン を設定できる
共分散行列の更新
事前共分散行列の算出
次に、先ほどの事前共分散行列 を、
前回の事後共分散行列 から求めることを考える
下記の条件を使用する
また、事前推定値 は、前回の事後推定値 と 状態モデルの から下記のように求める
さらに、 を変換すると、
結局、
を得ることができる
事後共分散行列の算出
最後に、事前共分散行列 から 事後共分散行列 を求める
先に、 を変換すると、
結局、
となる
途中で、カルマンゲイン の算出時に出現した を使用した
カルマンフィルタのアルゴリズム
カルマンフィルタのアルゴリズムを整理する
予測ステップ
初期値 or 前回の事後推定値 と 事後共分散行列 から、
今回の事前推定値 と 事前共分散行列 を求める
フィルタリングステップ
求めた事前推定値 と 事前共分散行列 から、
カルマンゲイン と 事後推定値 を求める
また、次回のために、事後共分散行列 も算出する
参考文献
この記事は以下の書籍を参考にしましたが、
私の拙い知識で書いておりますので、誤り等ありましたらご指摘ください