拡張カルマンフィルター
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/12 16:55 UTC 版)
「カルマンフィルター」の記事における「拡張カルマンフィルター」の解説
ここでは時間発展モデル x k = f ( x k − 1 , u k , w k ) {\displaystyle {\boldsymbol {x}}_{k}=f({\boldsymbol {x}}_{k-1},{\boldsymbol {u}}_{k},{\boldsymbol {w}}_{k})} と、観測モデル z k = h ( x k , v k ) {\displaystyle {\boldsymbol {z}}_{k}=h({\boldsymbol {x}}_{k},{\boldsymbol {v}}_{k})} を考える。どちらも微分可能であれば線形である必要はない。関数 f は前の状態から推定値を与え、関数 h は観測値を与える。どちらの関数も直接共分散を求めることはできず、偏微分行列(ヤコビアン)を用いる必要がある。 原理としては、非線形モデルを現在の推定値の回りで線形化する。そのためにそれぞれの時刻で、ヤコビアンを計算する。すなわち、 予測 x ^ k | k − 1 = f ( x ^ k − 1 | k − 1 , u k , 0 ) {\displaystyle {\hat {\boldsymbol {x}}}_{k|k-1}=f({\hat {\boldsymbol {x}}}_{k-1|k-1},{\boldsymbol {u}}_{k},0)} P k | k − 1 = F k P k − 1 | k − 1 F k T + G k Q k G k T {\displaystyle P_{k|k-1}=F_{k}P_{k-1|k-1}F_{k}^{\textrm {T}}+G_{k}Q_{k}G_{k}^{\textrm {T}}} 更新 e k = z k − h ( x ^ k | k − 1 , 0 ) {\displaystyle {\boldsymbol {e}}_{k}={\boldsymbol {z}}_{k}-h({\hat {\boldsymbol {x}}}_{k|k-1},0)} S k = H k P k | k − 1 H k T + R k {\displaystyle S_{k}=H_{k}P_{k|k-1}H_{k}^{\textrm {T}}+R_{k}} K k = P k | k − 1 H k T S k − 1 {\displaystyle K_{k}=P_{k|k-1}H_{k}^{\textrm {T}}S_{k}^{-1}} x ^ k | k = x ^ k | k − 1 + K k e k {\displaystyle {\hat {\boldsymbol {x}}}_{k|k}={\hat {\boldsymbol {x}}}_{k|k-1}+K_{k}{\boldsymbol {e}}_{k}} P k | k = ( I − K k H k ) P k | k − 1 {\displaystyle P_{k|k}=(\mathrm {I} -K_{k}H_{k})P_{k|k-1}} 出てくる行列は次のヤコビアンで定義される。 F k = ∂ f ∂ x | x ^ k − 1 | k − 1 , u k {\displaystyle F_{k}=\left.{\frac {\partial f}{\partial {\boldsymbol {x}}}}\right\vert _{{\hat {\boldsymbol {x}}}_{k-1|k-1},{\boldsymbol {u}}_{k}}} H k = ∂ h ∂ x | x ^ k | k − 1 {\displaystyle H_{k}=\left.{\frac {\partial h}{\partial {\boldsymbol {x}}}}\right\vert _{{\hat {\boldsymbol {x}}}_{k|k-1}}}
※この「拡張カルマンフィルター」の解説は、「カルマンフィルター」の解説の一部です。
「拡張カルマンフィルター」を含む「カルマンフィルター」の記事については、「カルマンフィルター」の概要を参照ください。
- 拡張カルマンフィルターのページへのリンク