correct
拡張カルマン フィルター、アンセンテッド カルマン フィルター、または粒子フィルターと測定値を使用して、状態および状態推定誤差の共分散を修正します。
構文
説明
correct
コマンドは、測定されたシステム出力を使用して、extendedKalmanFilter
、unscentedKalmanFilter
、または particleFilter
オブジェクトの状態および状態推定誤差の共分散を更新します。拡張カルマン フィルター、アンセンテッド カルマン フィルター、または粒子フィルターを実装するには、correct
コマンドと predict
コマンドを一緒に使用します。現在の出力測定値が存在する場合、correct
と predict
を使用できます。測定値がない場合は、predict
のみを使用できます。コマンドの使用順序の詳細については、predict コマンドと correct コマンドの使用を参照してください。
[
は、測定された出力 CorrectedState
,CorrectedStateCovariance
] = correct(obj
,y
)y
を使用して、拡張カルマン フィルター オブジェクト、アンセンテッド カルマン フィルター オブジェクト、または粒子フィルター オブジェクト obj
の状態推定と状態推定誤差の共分散を修正します。
extendedKalmanFilter
コマンド、unscentedKalmanFilter
コマンド、または particleFilter
コマンドを使用して obj
を作成します。非線形システムの状態遷移関数と測定関数を obj
に指定します。また、これらの関数においてプロセス ノイズ項と測定ノイズ項が加法性であるか非加法性であるかを指定します。オブジェクトの State
プロパティには最新の推定状態値が格納されます。タイム ステップ k
で、obj.State
が であると仮定します。この値は、時間 k
の状態推定であり、時間 k-1
までに測定された出力を使用して推定されます。測定されたシステム出力 y[k]
に correct
コマンドを使用すると、ソフトウェアは修正された状態推定 を CorrectedState
出力に返します。ここで、 は時間 k
における状態推定であり、時間 k
までに測定された出力を使用して推定されます。コマンドは の状態推定誤差の共分散を CorrectedStateCovariance
出力に返します。ソフトウェアはまた、これらの修正された値をもつ obj
の State
プロパティと StateCovariance
プロパティを更新します。
obj.MeasurementFcn
で指定した測定関数 h に次のいずれかの形式が含まれている場合、この構文を使用します。
y(k) = h(x(k))
— 加法性の測定ノイズ向け。y(k) = h(x(k),v(k))
— 非加法性の測定ノイズ向け。
ここで、y(k)
、x(k)
、および v(k)
はタイム ステップ k
におけるシステムの測定出力、状態、そして測定ノイズです。h への入力のみが状態および測定ノイズです。
システムの測定関数がこれらの入力を必要とする場合、[
は追加の入力引数を指定します。複数の引数を指定できます。CorrectedState
,CorrectedStateCovariance
] = correct(obj
,y
,Um1,...,Umn
)
測定関数 h に次のいずれかの形式がある場合は、この構文を使用します。
y(k) = h(x(k),Um1,...,Umn)
— 加法性の測定ノイズ向け。y(k) = h(x(k),v(k),Um1,...,Umn)
— 非加法性の測定ノイズ向け。
correct
コマンドはこれらの入力を測定関数に渡し、推定出力を計算します。
例
入力引数
出力引数
詳細
バージョン履歴
R2016b で導入