技術資料

Feel&Think

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

担当:里 優
2020.01

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

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

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

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

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

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

数式1(観測方程式)

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

数式2(状態方程式)

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

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

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

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

数式3

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

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

数式4

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

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

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

数式5

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

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

数式6

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

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

ページの先頭にもどる