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