コラム

第1回 カルマンフィルタとは

カルマンフィルタで逆解析/第1回担当:里 優(2020.01)


今回のシリーズでは、変形問題の逆解析に挑戦します。一般の変形問題では、地盤や岩盤の剛性などを既知として与え、加えた外力による変形を求めます。逆解析では、観測された変形より剛性などを推定します。逆解析には様々な手法がありますが、ここではカルマンフィルタを用いた手法を紹介するとともに、幾つかの問題に挑戦してみます。


まずは、カルマンフィルタを理解することから始めましょう。カルマンフィルタについては、わかりやすく説明している下記のサイトがあります。以下の説明もこれに倣っています。


→カルマンフィルタの考え方 | Logics of Blue


カルマンフィルタとは、状態空間モデルと呼ばれる数理モデルにおいて、内部の見えない「状態」を効率的に推定するための計算手法です。状態空間モデルでは、例えば、センサーなどから得られる情報を「観測値」として、そこから「状態」を推定し、これに基づいて制御を行います。「状態」とは、例えば「運動している状態」や「変形している状態」など、「観測値」をもたらしている原因です。アポロ計画では、センサーの情報から、宇宙船の正しい位置を推定し、進行方向の調整などを行いました。


最も単純な状態空間モデルは、次のようなものです。


観測方程式
「観測値」 = 「状態」 + ノイズ

観測方程式

状態方程式
「状態」 = 「前回の状態」 + ノイズ

状態方程式

ここに、kk回目の観測を表します。


ノイズは、平均(期待値)が0の正規分布に従うものとし、分散は正の値とします。本モデルでは、観測方程式において『観測値は状態と同じ』と計算されます。同様に、状態方程式においては『今回の状態は、前回の状態と同じ値である』と計算されることになります。


状態空間モデルにおいて、「状態」を効率的に推定する計算アルゴリズムがカルマンフィルタです。カルマンフィルタでは以下の補正の式を使います。


補正後の状態 = 補正前の状態 + カルマンゲイン ×(本物の観測値-補正前の状態)

補正後の状態

「本物の観測値」と「補正前の状態」が大きく離れていれば、「状態」の推定値は大きく補正されることがわかります。一方、カルマンゲインは以下のように計算されます。


カルマンゲイン = 状態の予測誤差の分散 ÷(状態の予測誤差の分散 + 観測方程式のノイズの分散)

カルマンゲイン

「状態の予測誤差の分散」が大きい(予測が当たりにくい)、あるいは観測方程式のノイズの分散が小さい(「観測値」と「状態」の違いが小さい)ならば、カルマンゲインは1に近くなり、「状態」は「本物の観測値」を信用して大きく補正されることになります。


「状態の予測誤差の分散」は、状態方程式のノイズの分散が足しあわされて増えていきます。


状態の予測誤差の分散 = 前回の状態の予測誤差の分散 + 状態方程式のノイズの分散

状態の予測誤差の分散

また、カルマンフィルタでは次のようにして「状態の予測誤差の分散」を修正します。


補正後の状態の予測誤差の分散 = 補正前の状態の予測誤差の分散 ×(1-カルマンゲイン)

状態の予測誤差の分散

カルマンゲインが大きいと、「状態」に大きく補正が入ります。「状態」が正しく補正されるのですから、予測誤差の分散は小さくなるというわけです。カルマンゲインが0.9ならば、予測誤差の分散は一気に10分の1にまで減ることになります。


直感的に理解しづらいカルマンフィルタですが、次回はExcelを使って実験してみます。