設定例
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/12 16:55 UTC 版)
まっすぐで無限の長さを持つ摩擦の無いレールの上に乗っているトロッコを考えよう。初期条件は、トロッコは位置 0 に静止している。トロッコにはランダムな 力(加速度)が与えられる。Δt 秒ごとにトロッコの位置 x を観測する。ただしこの観測には誤差が混入している。トロッコの位置と速度のモデルを考えると、以下の様に設定すると、カルマンフィルターが用い得る。 制御の必要はないから、 uk は考えない。行列 F、 G、 H、 R、 Q は時間変化しないので添字は付けない。 トロッコの場所と速度は、 x k = [ x x ˙ ] {\displaystyle {\boldsymbol {x}}_{k}={\begin{bmatrix}x\\{\dot {x}}\end{bmatrix}}} で、表される。 x ˙ {\displaystyle {\dot {x}}} は位置の時間微分、すなわち速度である。 時刻 k − 1 と時刻 k の間に加速度 a k {\displaystyle a_{k}} がトロッコに与えられる。加速度 a k {\displaystyle a_{k}} は平均 0 標準偏差 σ a {\displaystyle \sigma _{a}} の正規分布をしている。運動の第2法則により、 x k = F x k − 1 + G w k {\displaystyle {\boldsymbol {x}}_{k}=F{\boldsymbol {x}}_{k-1}+G{\boldsymbol {w}}_{k}} ここに、 F = [ 1 Δ t 0 1 ] {\displaystyle F={\begin{bmatrix}1&\Delta t\\0&1\end{bmatrix}}} かつ G = [ Δ t 2 2 Δ t ] {\displaystyle G={\begin{bmatrix}{\frac {\Delta t^{2}}{2}}\\\Delta t\end{bmatrix}}} w k = [ a k ] {\displaystyle {\boldsymbol {w}}_{k}={\begin{bmatrix}a_{k}\end{bmatrix}}} である。 G w k {\displaystyle G{\boldsymbol {w}}_{k}} の共分散は、 σ a {\displaystyle \sigma _{a}} がスカラーであることを用いて、 c o v ( G w k ) = σ a 2 × G G T = σ a 2 × [ Δ t 4 4 Δ t 3 2 Δ t 3 2 Δ t 2 ] {\displaystyle \mathrm {cov} (G{\boldsymbol {w}}_{k})=\sigma _{a}^{2}\times GG^{\textrm {T}}=\sigma _{a}^{2}\times {\begin{bmatrix}{\frac {\Delta t^{4}}{4}}&{\frac {\Delta t^{3}}{2}}\\{\frac {\Delta t^{3}}{2}}&\Delta t^{2}\end{bmatrix}}} それぞれの時刻に、トロッコの位置を観測する。観測誤差も平均 0 で標準偏差 σ z {\displaystyle \sigma _{z}} の正規分布と仮定する。 z k = H x k + v k {\displaystyle {\boldsymbol {z}}_{k}=H{\boldsymbol {x}}_{k}+{\boldsymbol {v}}_{k}} ここに、 H = [ 1 0 ] {\displaystyle H={\begin{bmatrix}1&0\end{bmatrix}}} かつ R = E ( v k v k T ) = [ σ z 2 ] {\displaystyle R=\mathrm {E} ({\boldsymbol {v}}_{k}{\boldsymbol {v}}_{k}^{\textrm {T}})={\begin{bmatrix}\sigma _{z}^{2}\end{bmatrix}}} である。 初期条件は正確に分かっているので、 x ^ 0 | 0 = [ 0 0 ] {\displaystyle {\hat {\boldsymbol {x}}}_{0|0}={\begin{bmatrix}0\\0\end{bmatrix}}} P 0 | 0 = [ 0 0 0 0 ] {\displaystyle P_{0|0}={\begin{bmatrix}0&0\\0&0\end{bmatrix}}} もしも、初期条件に誤差があるならば、誤差の大きさに応じて B を設定し、 P 0 | 0 = [ B 0 0 B ] {\displaystyle P_{0|0}={\begin{bmatrix}B&0\\0&B\end{bmatrix}}} と、取るべきである。もし B が大きければカルマンフィルターは、初期条件より、それ以降の観測に重みを置くようになる。
※この「設定例」の解説は、「カルマンフィルター」の解説の一部です。
「設定例」を含む「カルマンフィルター」の記事については、「カルマンフィルター」の概要を参照ください。
- 設定例のページへのリンク