これまで、私たちは予測値について扱ってきました。つまり、次の2つのカルマンフィルタの予測式を導出しました。
これからは、現在の値について扱います。まずは、観測方程式から始めます。
"1次元カルマンフィルタ"では、観測値を \( z_{n} \) で表記しました。
観測値は真の状態に、観測器によるランダムな観測雑音 \( v_{n} \) を加えたもので表されます。
観測雑音の分散 \( r_{n} \) は、各観測に対して一定と考えれることができます。例えば、0.5kg(標準偏差)の精度を持つはかりなどです。一方、観測雑音の分散 \( r_{n} \) は、観測ごとに異なる場合があります。例えば、0.5%(標準偏差)の精度を持つ温度計などです。後者の場合、雑音の分散は観測する温度に依存します。
一般的な、行列表記の観測方程式は次のように表されます。
\( \boldsymbol{z_{n}} \) | :観測ベクトル |
\( \boldsymbol{x_{n}} \) | :真のシステムの状態(観測不可) |
\( \boldsymbol{v_{n}} \) | :ランダム雑音ベクトル |
\( \boldsymbol{H} \) | :観測行列 |
多くの場合、観測値値は目的のシステム状態量ではありません。例えば、デジタル体温計は電流を観測していますが、システムの状態量は温度です。システムの状態(入力)から観測値(出力)への変換が必要となります。
観測行列 \( \boldsymbol{H} \) の目的は、線形変換を使用してシステムの状態量を出力に変換することです。次の章では、観測行列の使用例を紹介します。
距離計は、目的地に向かって信号を送り、反射したエコーを受信します。観測値は、信号の送信と受信の間の遅延時間です。システムの状態量は距離です。
この場合、スケーリングを行う必要があります。
\[ \boldsymbol{z_{n}} = \left[ \begin{matrix} \frac{2}{c}\\ \end{matrix} \right] \boldsymbol{x_{n}} + \boldsymbol{v_{n}} \]
\[ \boldsymbol{H} = \left[ \begin{matrix} \frac{2}{c}\\ \end{matrix} \right] \]
ここで、
\( c \):光速
また、
\( \boldsymbol{x_{n}} \):距離
\( \boldsymbol{z_{n}} \):観測された遅延時間
ある状態量が観測可能で、他の状態量が観測不可能な場合があります。例えば、5次元の状態ベクトルの第1、第3、第5の状態量は観測可能ですが、第2、第4の状態量は観測不可能な場合です。
\[ \boldsymbol{z_{n} = Hx_{n} + v_{n}} = \left[ \begin{matrix} 1 & 0 & 0 & 0 & 0\\ 0 & 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 0 & 1\\ \end{matrix} \right] \left[ \begin{matrix} {x}_{1}\\ {x}_{2}\\ {x}_{3}\\ {x}_{4}\\ {x}_{5}\\ \end{matrix} \right] + \boldsymbol{v_{n}} = \left[ \begin{matrix} {x}_{1}\\ {x}_{3}\\ {x}_{5}\\ \end{matrix} \right] + \boldsymbol{v_{n}} \]
時には、個別の状態量ではなく、いくつかの状態量の重ね合わせが観測されることがあります。例えば、三角形の辺の長さが状態量で、全周囲だけが観測できるのかもしれません。
\[ \boldsymbol{z_{n} = Hx_{n} + v_{n}} = \left[ \begin{matrix} 1 & 1 & 1 \\ \end{matrix} \right] \left[ \begin{matrix} {x}_{1}\\ {x}_{2}\\ {x}_{3}\\ \end{matrix} \right] + \boldsymbol{v_{n}} = ({x}_{1} + {x}_{2} + {x}_{3}) + \boldsymbol{v_{n}} \]
以下の表に、観測方程式の変数の次元をまとめます。
変数 | 説明 | 次元 |
---|---|---|
\( \boldsymbol{x} \) | 状態ベクトル | \( n_{x} \times 1 \) |
\( \boldsymbol{z} \) | 観測ベクトル | \( n_{z} \times 1 \) |
\( \boldsymbol{H} \) | 観測行列 | \( n_{z} \times n_{x} \) |
\( \boldsymbol{v} \) | 観測雑音ベクトル | \( n_{z} \times 1 \) |