カルマン‐フィルター【Kalman filter】
カルマンフィルター
【英】:Kalman filter
概要
(1) 信号を生成するシステムのモデル, (2) 雑音の統計的性質,(3) 初期状態に関する事前情報の3つが与えられたとき, 観測データから状態ベクトルの最小2乗推定値を逐次的に生成するオンラインアルゴリズムである. カルマンフィルターの応用は航空宇宙工学, 制御工学, 通信工学, OR, 土木工学など, 非常に広範な分野にわたっている.
詳説
![]() |
図1:状態空間モデル |
図1に示すガウス白色雑音を受ける離散時間線形確率システムを考える.
ただし, はn次元状態ベクトル,
はp次元観測ベクトル,
,
は
および
次元ガウス白色雑音ベクトルで, 平均値は0, 共分散行列は
であるとする. ただし, ,
は非負定値対称行列,
はクロネッカーの記号である.
は一般に時間の関数であってもよいが,簡単のために添字
は省略している. また初期値
は平均値
,共分散行列
のガウス確率ベクトルであり, 雑音とは無相関であるとする.
カルマンフィルタは, 観測データに基づいて,状態
の最小分散推定値(すなわち
の条件付き期待値)
を逐次的に計算するアルゴリズムである. にしたがってそれぞれ, 予測, 濾波, 平滑という.以下では, 状態ベクトルの予測推定値, 濾波推定値を
と表し, それぞれの推定誤差共分散行列を次のようにおく.
1960-61年にカルマン(R. E. Kalman)と ビュシー(R. S. Bucy)は式(1), (2)の状態空間モデルに対して, カルマンフィルターと呼ばれる以下のようなアルゴリズムを提案した [1, 2, 3, 4, 5, 6].
(ii) カルマンゲイン
![]() |
図2:カルマンフィルターのブロック線図 |
図2にカルマンフィルタのブロック線図を示す.カルマンフィルタは観測値を入力とし, 推定値
,
を逐次的に出力する線形動的システムであり,
はイノベーションと呼ばれている.
がガウス分布でない場合には, 上のアルゴリズムは状態ベクトルおよび信号の線形最小分散推定値を与えるという意味で, 最適なフィルタである.
式(6), (7)からを消去して,
とおくと, 離散時間リッカチ方程式
を得る. また上式のにおける極限を代数リッカチ方程式という. 制御理論の分野には(代数)リッカチ方程式に関する膨大な研究がある [7].
白色雑音を受ける非線形確率システムに対しても,その線形化モデルにカルマンフィルタを適用することができるので, カルマンフィルタは航空宇宙工学の分野において飛翔体の軌道推定に威力を発揮した. また状態ベクトルだけてなく, モデルに含まれる未知パラメータを同時に推定する拡張カルマンフィルタも提案されており, カルマンフィルタの応用は時系列の推定を始めとして非常に多くの分野に見られる.
[1] R. E. Kalman, "A New Approach to Linear Filtering and Prediction Problem," Transactions of American Society of Mechanical Engineers, Journal of Basic Engineering, 82D (1960), 34-45.
[2] R. E. Kalman and R. S. Bucy, "New Results in Linear Filtering and Prediction Theory," Transactions of American Society of Mechanical Engineers, Journal of Basic Engineering, 83D (1961), 95-108.
[3] B. D. O. Anderson and J. B. Moore, Optimal Filtering, Prentice-Hall, 1979.
[4] M. S. Grewal and A. P. Andrews, Kalman Filtering - Theory and Practice, Prentice-Hall, 1993.
[5] 有本 卓, 『カルマンフィルター』, 産業図書, 1977.
[6] 片山 徹, 『新版応用カルマンフィルタ』, 朝倉書店, 2000.
[7] S. Bittanti, A. J. Laub and J. C. Willems (Eds.), The Riccati Equation, Springer, 1991.
カルマンフィルター
カルマンフィルター (英: Kalman filter) は、誤差のある観測値を用いて、ある動的システムの状態を推定あるいは制御するための、無限インパルス応答フィルターの一種である。
実用例
カルマンフィルターは、 離散的な誤差のある観測から、時々刻々と時間変化する量(例えばある物体の位置と速度)を推定するために用いられる。レーダーやコンピュータビジョンなど、工学分野で広く用いられる。例えば、カーナビゲーションでは、機器内蔵の加速度計や人工衛星からの誤差のある情報を統合して、時々刻々変化する自動車の位置を推定するのに応用されている。カルマンフィルターは、目標物の時間変化を支配する法則を活用して、目標物の位置を現在(フィルター)、未来(予測)、過去(内挿あるいは平滑化)に推定することができる。
歴史
このフィルターはルドルフ・カルマンによって提唱されたが、同様の原理はトルバルド・ティエレとピーター・スワーリングによってすでに開発されていた[1]。カルマンがアメリカ航空宇宙局のエイムズ研究センターを訪問した際、この理論がロケットの軌道推定に有用なことに気づき、のちのアポロ計画で用いられた。
用いられる動的システム
カルマンフィルターは時間領域において、連続時間線形動的システム、もしくは離散化された離散時間線型動的システムに基づいて駆動する。以降に導入される解説は、後者の立場のものである。それらはガウス白色雑音によって励振をうける線形演算子からなるマルコフ連鎖モデルにより表現される。より端的にいえば、システムは状態空間モデル (state space model) で表現されるということである。
対象のシステムに定義された「状態 (state)」は、そのシステムの過去の動特性の遷移を保持する役割を果たし、動特性の遷移を保持する線形空間が状態空間として定義される。この空間は実数空間であるため、システムの状態は一般に、任意の次元の状態空間に含まれる実数ベクトルとして与えられる。状態の変化は、現在の状態と、それに付加する雑音の影響と、場合によってはシステムの状態の制御に関与する既知の制御入力の線形結合によって記述される。したがって、状態はシステムの因果性に寄与する存在である。上記の理念は、以下に記述する状態方程式 (state equation) によって表現される。 状態が直接観測できない場合には、システムの出力は一般に状態と観測雑音の線形結合として観測が可能なものとして与えられる。この理念は観測方程式 (observation equation) として、以下に示すような線形モデルで表現される。 カルマンフィルターは、システムの状態が直接観測できない問題に対する状態推定法であるから、一般的に観測方程式を伴う問題に適用される。
カルマンフィルターは隠れマルコフモデル (hidden Markov model) の類似であると考えることができる。両者の主な差異は隠れマルコフモデルにおける状態変数が、連続であるか離散であるかである。また、隠れマルコフモデルでは状態変数の未来への変化を任意の分布に従う形式で統計的に与えることができる一方で、カルマンフィルターでは、ガウス分布に従う雑音によって未来の状態変数が統計的に記述される点が異なっている。したがって、カルマンフィルターと隠れマルコフモデルの間には強固な双対性が存在する。ちなみに、カルマンフィルターの導出過程においては、「システムに付随する雑音の性質はガウス分布に従う」という仮定の下に行われるのが一般的であるが、雑音の性質がガウス分布に従わない場合であっても、カルマンフィルターは線形なクラスにおける最適な推定値、すなわち線形最小分散推定値を導くことができる点で、汎用性に富んでいるといえる。
観測が可能な唯一の、雑音の影響を受けた出力過程に基づいて(制御問題であれば、入力も観測可能な過程となる)、システムの状態をカルマンフィルターを用いて推定するためには、対象とするシステムに対して、カルマンフィルターの理念と合致するような状態の遷移(すなわち状態過程)に関するモデルを与えなければならない。これは、時変 (time-variant) な行列
- Kalmanfilterのページへのリンク