このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
residual
構文
説明
residual
コマンドは、extendedKalmanFilter
オブジェクトと unscentedKalmanFilter
オブジェクトについて実際の測定値と予測された測定値の差を返します。残差を確認することは、フィルターの性能を検証する 1 つの方法です。残差は、"イノベーション" とも呼ばれ、予測誤差を定量化し、拡張カルマン フィルターおよびアンセンテッド カルマン フィルターの更新シーケンスの補正ステップを制御します。correct
および predict
(System Identification Toolbox) を使用して推定されたカルマン フィルターの状態を更新するときは、correct
コマンドを使用する直前に residual
コマンドを使用します。
[
は、測定値 Residual
,ResidualCovariance
] = residual(obj
,y
)y
とカルマン フィルター obj
によって生成された予測測定値の間の残差 Residual
を返します。この関数は、残差の共分散 ResidualCovariance
も返します。
extendedKalmanFilter
コマンドまたは unscentedKalmanFilter
コマンドを使用して obj
を作成します。非線形システムの状態遷移関数 f と測定関数 h を obj
に指定します。オブジェクトの State
プロパティには最新の推定状態値が格納されます。各タイム ステップで、correct
および predict
を一緒に使用して、状態 x を更新します。残差 s は、そのタイム ステップにおける実際の測定値と予測された測定値の差であり、s = y - h(x) と表現されます。残差の共分散 S は、R + RP の和です。ここで、R はフィルターの MeasurementNoise
プロパティによって設定された測定ノイズの行列で、RP は測定空間に投影された状態共分散の行列です。
obj.MeasurementFcn
で指定した測定関数 h に次のいずれかの形式が含まれている場合、この構文を使用します。
y(k) = h(x(k))
(加法性の測定ノイズ向け)y(k) = h(x(k),v(k))
(非加法性の測定ノイズ向け)
ここで、y(k)
、x(k)
、および v(k)
はタイム ステップ k
におけるシステムの測定出力、状態、そして測定ノイズです。h への入力のみが状態および測定ノイズです。
システムの測定関数がこれらの入力を必要とする場合、[
は追加の入力引数を指定します。複数の引数を指定できます。Residual
,ResidualCovariance
] = residual(obj
,y
,Um1,...,Umn
)
測定関数 h に次のいずれかの形式がある場合は、この構文を使用します。
y(k) = h(x(k),Um1,...,Umn)
(加法性の測定ノイズ向け)y(k) = h(x(k),v(k),Um1,...,Umn)
(非加法性の測定ノイズ向け)
例
入力引数
出力引数
バージョン履歴
R2019b で導入