最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Kalman Filter

動的システムの状態の予測または推定

ライブラリ

Filtering/Adaptive Filters

dspadpt3

説明

Kalman Filter ブロックを使用して、不完全でノイズを含む一連の測定を使用して動的システムの状態を予測または推定します。次の方程式で定義される、ノイズを含む線形システムがあると仮定します。

xk=Axk1+wk1zk=Hxk+vk

このブロックは、以前に推定した状態 x^k1 を使用して、k, xk 時点の現在の状態を以下の方程式で示すように予測できます。

xk=Ax^k1Pk=AP^k1AT+Q

また、より正確な近似となるように、現在の測定 zk および予測される状態 xk を使用して、k, x^k 時点の現在の状態値を推定することもできます。

Kk=PkHT(HPkHT+R)1x^k=xk+Kk(zkHxk)P^k=(IKkH)Pk

以前の方程式の変数を次の表に定義します。

変数定義既定値または初期条件
x状態N/A
x^推定される状態zeros([6, 1])
x予測される状態N/A
A状態遷移マトリックス

[101000010100001000000100000010000001]

wプロセス ノイズN/A
z測定N/A
H測定マトリックス

[100000010000000010000001]

v測定ノイズN/A
P^推定誤差の共分散10*eye(6)
P-予測誤差の共分散N/A
Qプロセス ノイズの共分散0.05*eye(6)
Kカルマン ゲインN/A
R測定ノイズの共分散eye(4)
I単位行列N/A

前述の方程式で、z は測定値のベクトルです。多くの場合、ブロックは Z、M 行 N 列の行列を処理します。ここで M は測定値の数で、N はフィルターの数です。

[Number of filters] パラメーターを使用して、現在の値を予測または推定するために使用するフィルターの数を指定します。

[Enable filters] パラメーターを使用して、各タイム ステップで有効または無効にするフィルターを指定します。Always を選択すると、フィルターは常に有効になります。Specify via input port <Enable> を選択すると、ブロックに Enable 端子が表示されます。この端子への入力は、長さがフィルターの数と等しい、1 と 0 の行ベクトルでなければなりません。たとえば、3 つのフィルターがあり、Enable 端子への入力が [1 0 1] である場合、このタイム ステップでは 1 番目と 3 番目のフィルターのみが有効になります。[Reset the estimated state and estimated error covariance when filters are disabled] チェック ボックスをオンにすると、無効にされたフィルターに対応する推定および予想された状態と推定誤差の共分散は初期値にリセットされます。

メモ

すべてのフィルターの状態遷移マトリックス、測定マトリックス、初期条件およびノイズ共分散は同じですが、状態、測定、有効および MSE 信号は一意です。状態、測定、有効および MSE 信号では、各列がフィルターに対応します。

[Measurement matrix source] パラメーターを使用して、測定マトリックス値を入力する方法を指定します。Specify via dialog を選択すると、[Measurement matrix] パラメーターがダイアログ ボックスに表示されます。Input port <H> を選択すると、ブロックに H 端子が表示されます。この端子を使用して測定マトリックスを指定します。

このブロックの使用方法の例については、レーダー追跡の例を参照してください。以下を入力して、この例を開きます。

aero_radmod_dsp

入力は MATLAB® コマンド プロンプトで行います。

パラメーター

Number of filters

現在の値を予測または推定するために使用するフィルターの数を指定します。

Enable filters

各タイム ステップで有効または無効にするフィルターを指定します。Always を選択すると、フィルターは常に有効になります。Specify via input port <Enable> を選択すると、ブロックに Enable 端子が表示されます。

Reset the estimated state and estimated error covariance when filters are disabled

このチェック ボックスをオンにすると、無効にされたフィルターに対応する推定および予測される状態と推定誤差の共分散は初期値にリセットされます。このパラメーターが表示されるのは [Enable filters] パラメーターで Specify via input port <Enable> を選択した場合です。

Initial condition for estimated state

推定される状態の初期条件を入力します。

Initial condition for estimated error covariance

推定誤差の共分散の初期条件を入力します。

State transition matrix

状態遷移マトリックスを入力します。

Process noise covariance

プロセス ノイズの共分散を入力します。

Measurement matrix source

測定マトリックス値を入力する方法を指定します。Specify via dialog を選択すると、[Measurement matrix] パラメーターがダイアログ ボックスに表示されます。Input port <H> を選択すると、ブロックに H 端子が表示されます。

Measurement matrix

測定マトリックス値を入力します。このパラメーターが表示されるのは [Measurement matrix source] パラメーターで Specify via dialog を選択した場合です。

Measurement noise covariance

測定ノイズの共分散を入力します。

Output estimated measurement <Z_est>

推定される測定値を出力するには、このチェック ボックスをオンにします。

Output estimated state <X_est>

推定される状態を出力するには、このチェック ボックスをオンにします。

Output MSE of estimated state <MSE_est>

推定される状態の平均二乗誤差を出力するには、このチェック ボックスをオンにします。

Output predicted measurement <Z_prd>

予測される測定値を出力するには、このチェック ボックスをオンにします。

Output predicted state <X_prd>

予測される状態を出力するには、このチェック ボックスをオンにします。

Output MSE of predicted state <MSE_prb>

予測される状態の平均二乗誤差を出力するには、このチェック ボックスをオンにします。

参照

[1] Haykin, Simon. Adaptive Filter Theory. Upper Saddle River, NJ: Prentice Hall, 1996.

[2] Welch, Greg and Gary Bishop, “An Introduction to the Kalman Filter,” TR 95–041, Department of Computer Science, University of North Carolina.

サポートされているデータ型

端子入力/出力サポートされているデータ型

Z

M 行 N 列の測定。M は測定ベクトルの長さで N はフィルターの数です。

  • 倍精度浮動小数点

  • 単精度浮動小数点

Enable

1 と 0 の 1 行 N 列のベクトル。N はフィルターの数です。

  • 倍精度浮動小数点

  • 単精度浮動小数点

  • boolean

H

M 行 P 列の測定。M は測定ベクトルの長さで P はフィルター状態ベクトルの長さです。

Z 端子と同じ

Z_est

M 行 N 列の推定される測定マトリックス。M は測定ベクトルの長さで N はフィルターの数です。

Z 端子と同じ

X_est

P 行 N 列の推定される状態マトリックス。P はフィルター状態ベクトルの長さで N はフィルターの数です。

Z 端子と同じ

MSE_est

推定される状態の平均二乗誤差を表す 1 行 N 列のベクトル。N はフィルターの数です。

Z 端子と同じ

Z_prd

M 行 N 列の予測される測定マトリックス。M は測定ベクトルの長さで N はフィルターの数です。

Z 端子と同じ

X_prd

P 行 N 列の予測される状態マトリックス。P はフィルター状態ベクトルの長さで N はフィルターの数です。

Z 端子と同じ

MSE_prd

予測される状態の平均二乗誤差を表す 1 行 N 列のベクトル。N はフィルターの数です。

Z 端子と同じ

参考

LDL Solver

DSP System Toolbox

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

R2007a で導入