「《カルマンフィルター》」の版間の差分

提供: ORWiki
ナビゲーションに移動 検索に移動
 
(他の1人の利用者による、間の2版が非表示)
1行目: 1行目:
 
'''【かるまんふぃるたー (Kalman filter)】'''
 
'''【かるまんふぃるたー (Kalman filter)】'''
  
<center><table><tr><td align=center>[[画像:sk-0098-b-h-05-1.png]]</td></tr>
+
<center>
<td align=center>図1:状態空間モデル<br><br>[[スタイル検討#カルマンフィルター (0098-b-h-05-1)|スタイル検討]]</td></table></center>
+
<table>
 +
<tr>
 +
<td align=center>[[画像:sk-0098-b-h-05-1.png]]</td>
 +
</tr>
 +
<td align=center>図1:状態空間モデル<br></td>
 +
</table>
 +
</center>
  
 
<!--
 
<!--
92行目: 98行目:
  
  
<center><table><tr><td align=center>[[画像:sk-0098-b-h-05-2.png]]</td></tr>
+
<center>
<td align=center>図2:カルマンフィルターのブロック線図<br><br>[[スタイル検討#カルマンフィルター (0098-b-h-05-2)|スタイル検討]]</td></table></center>
+
<table>
 +
<tr><td align=center>[[画像:sk-0098-b-h-05-2.png]]</td></tr>
 +
<td align=center>図2:カルマンフィルターのブロック線図<br>
 +
</td>
 +
</table>
 +
</center>
  
 
<!--
 
<!--
137行目: 148行目:
  
 
[7] S. Bittanti, A. J. Laub and J. C. Willems (Eds.), ''The Riccati Equation'', Springer, 1991.
 
[7] S. Bittanti, A. J. Laub and J. C. Willems (Eds.), ''The Riccati Equation'', Springer, 1991.
 +
 +
[[category:予測|かるまんふぃるたー]]

2007年8月7日 (火) 03:03時点における最新版

【かるまんふぃるたー (Kalman filter)】

Sk-0098-b-h-05-1.png
図1:状態空間モデル


 図1に示すガウス白色雑音を受ける離散時間線形確率システムを考える.



ただし, 構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle x_t\, } はn次元状態ベクトル, 構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle y_t\, } はp次元観測ベクトル,構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle w_t\, } , 構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle v_t\, }構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle m\, } および構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle p\, } 次元ガウス白色雑音ベクトルで, 平均値は0, 共分散行列は


構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle E \{ w_t w_s^{\top} \} = Q\delta_{ts}, \ \ E \{ v_t v_s^{\top} \} = R\delta_{ts}, \ \ E\{w_tv_s^{\top}\}=0 \, }


であるとする. ただし, , は非負定値対称行列, 構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \delta_{ts}\, } はクロネッカーの記号である. 構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle A,\;B,\;C,\;Q,\;R\, } は一般に時間の関数であってもよいが,簡単のために添字構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle t\, } は省略している. また初期値は平均値構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \bar{x}_0\, } ,共分散行列構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \Sigma_0\, } のガウス確率ベクトルであり, 雑音とは無相関であるとする.

 カルマンフィルタは, 観測データ構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle Y_{0}^{\top}:=\{y_0, y_1, \cdots, y_t\}\, } に基づいて,状態構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle x_{t+m}\, } の最小分散推定値(すなわち構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle x_{t+m}\, } の条件付き期待値)


構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \hat{x}_{t+m|t}=E\{x_{t+m}|Y_{0}^{\top}\}, \ t=0, 1, \cdots \, }


を逐次的に計算するアルゴリズムである. 構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle m>0, m=0, m<0} にしたがってそれぞれ, 予測, 濾波, 平滑という.以下では, 状態ベクトルの予測推定値, 濾波推定値を構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \hat{x}_{t/t-1}, \hat{x}_{t/t}} と表し, それぞれの推定誤差共分散行列を次のようにおく.


構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle P_{t/t-1}=E\{[x_t-\hat{x}_{t/t-1}][x_t-\hat{x}_{t/t-1}]^{\top}\}, \quad P_{t/t}=E\{[x_t-\hat{x}_{t/t}][x_t-\hat{x}_{t/t}]^{\top}\} \, }


 1960-61年にカルマン(R. E. Kalman)と ビュシー(R. S. Bucy)は式(1), (2)の状態空間モデルに対して, カルマンフィルターと呼ばれる以下のようなアルゴリズムを提案した [1, 2, 3, 4, 5, 6].


(i) フィルタ方程式

構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \begin{array}{rlll} \hat{x}_{t+1/t}&=&A\hat{x}_{t/t}, \quad \hat{x}_0=\bar{x}_0 & \qquad (3)\\ \hat{x}_{t/t}&=&\hat{x}_{t/t-1}+K_t[y_t-C\hat{x}_{t/t-1}] & \qquad (4) \end{array} \, }

(ii) カルマンゲイン


(iii) 推定誤差共分散行列

構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \begin{array}{rlll} P_{t+1/t} &=& AP_{t/t}A^{\top} + BQB^{\top} & \qquad (6)\\ P_{t/t} &=& P_{t/t-1}-P_{t/t-1}C^{\top}[CP_{t/t-1}C^{\top}+R]^{-1}CP_{t/t-1}, \quad P_{0/-1}=\Sigma_0 & \qquad (7) \end{array} \, }


Sk-0098-b-h-05-2.png
図2:カルマンフィルターのブロック線図



 図2にカルマンフィルタのブロック線図を示す.カルマンフィルタは観測値構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle y_t\, } を入力とし, 推定値構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \hat{x}_{t/t-1}\, } , 構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \hat{x}_{t/t}\, } を逐次的に出力する線形動的システムであり,構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \nu_t=y_t-C\hat{x}_{t/t-1}\, } はイノベーションと呼ばれている.

 構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle w_t,\;v_t,\;x_0\, } がガウス分布でない場合には, 上のアルゴリズムは状態ベクトルおよび信号の線形最小分散推定値を与えるという意味で, 最適なフィルタである.

 式(6), (7)からを消去して,構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle P_t:=P_{t/t-1}\, } とおくと, 離散時間リッカチ方程式


構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle P_{t+1}=A(P_{t}-P_{t}C^{\top}[CP_{t}C^{\top}+R]^{-1}CP_{t})A^{\top} + BQB^{\top} \qquad (8) \, }


を得る. また上式の構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle t\to \infty\, } における極限を代数リッカチ方程式という. 制御理論の分野には(代数)リッカチ方程式に関する膨大な研究がある [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.