このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
extendedKalmanFilter
オンライン状態推定に対する拡張カルマン フィルター オブジェクトの作成
構文
説明
は、離散時間非線形システムのオンライン状態推定に対する拡張カルマン フィルター オブジェクトを作成します。obj
= extendedKalmanFilter(StateTransitionFcn
,MeasurementFcn
,InitialState
)StateTransitionFcn
は、時間 k-1 における状態ベクトルが与えられた場合の時間 k でシステムの状態を計算する関数です。MeasurementFcn
は、時間 k における状態が与えられた場合の時間 k でシステムの出力測定を計算する関数です。InitialState
は状態推定の初期値を指定します。
オブジェクトを作成した後、correct
コマンドと predict
コマンドを使用し、1 次離散時間の拡張カルマン フィルター アルゴリズムとリアルタイム データを使用して状態推定および状態推定誤差の共分散値を更新します。
は 1 つ以上の obj
= extendedKalmanFilter(StateTransitionFcn
,MeasurementFcn
,InitialState
,Name,Value
)Name,Value
ペア引数を使用して、拡張カルマン フィルター オブジェクトの追加属性を指定します。
は、指定された状態遷移関数と測定関数を使用して拡張カルマン フィルター オブジェクトを作成します。obj
= extendedKalmanFilter(StateTransitionFcn
,MeasurementFcn
)predict
コマンドと correct
コマンドを使用する前に、ドット表記を使って初期状態を指定してください。たとえば、初期状態値が [1;0]
の 2 状態システムの場合、obj.State = [1;0]
と指定します。
は 1 つ以上の obj
= extendedKalmanFilter(StateTransitionFcn
,MeasurementFcn
,Name,Value
)Name,Value
ペア引数を使用して、拡張カルマン フィルター オブジェクトの追加属性を指定します。predict
コマンドと correct
コマンドを使用する前に、Name,Value
のペア引数またはドット表記を使って初期状態値を指定してください。
は 1 つ以上の obj
= extendedKalmanFilter(Name,Value
)Name,Value
ペア引数を使用して、指定されたプロパティで拡張カルマン フィルター オブジェクトを作成します。predict
コマンドと correct
コマンドを使用する前に、Name,Value
のペア引数またはドット表記を使って状態遷移関数、測定関数、および初期状態の値を指定してください。
オブジェクトの説明
extendedKalmanFilter
は 1 次離散時間の拡張カルマン フィルター アルゴリズムを使用して、離散時間非線形システムのオンライン状態推定のオブジェクトを作成します。
状態 x、入力 u、出力 y、プロセス ノイズ w および測定ノイズ v をもつプラントについて考えます。プラントを非線形システムとして表現できると仮定します。
アルゴリズムは指定した状態遷移関数と測定関数を使用して非線形システムの状態推定 を計算します。ソフトウェアを使用して、これらの関数にノイズを加法性または非加法性として指定することができます。
加法性ノイズ項 — 状態遷移方程式と測定方程式は次の形式で表されます。
ここで f は、タイム ステップ間の状態
x
の変化を記述する非線形の状態遷移関数です。非線形の測定関数 h は、x
をタイム ステップk
での測定値y
に関連付けます。w
とv
はそれぞれ、ゼロ平均の無相関プロセス ノイズと測定ノイズです。これらの関数は、方程式のus
とum
で表される追加の入力引数をもつこともできます。たとえば、追加引数はタイム ステップk
または非線形システムに対する入力u
にすることもできます。このような引数は複数存在する可能性があります。両方の方程式において、ノイズ項は加法性であることに注意してください。つまり、
x(k)
はプロセス ノイズw(k-1)
に線形に関連し、y(k)
は測定ノイズv(k)
に線形に関連します。非加法性ノイズ項 — ソフトウェアでは、状態 x[k] と測定値 y[k] がそれぞれプロセス ノイズと測定ノイズの非線形関数である、より複雑な状態遷移関数と測定関数もサポートされます。ノイズ項が非加法性な場合、状態遷移方程式と測定方程式は次の形式で表されます。
オンライン状態推定を実行する場合、最初に非線形の状態遷移関数 f と測定関数 h を作成します。次に、これらの非線形関数を使用して extendedKalmanFilter
オブジェクトを構築し、ノイズ項が加法性であるか非加法性であるかを指定します。また、状態遷移関数と測定関数のヤコビアンを指定することもできます。これらを指定しない場合、ソフトウェアはヤコビアンを数値的に計算します。
オブジェクトを作成した後、predict
コマンドを使用して次のタイム ステップでの状態推定を予測し、correct
でアルゴリズムとリアルタイム データを使用して状態推定を修正します。アルゴリズムの詳細については、オンライン状態推定のための拡張カルマン フィルター アルゴリズムおよびアンセンテッド カルマン フィルター アルゴリズムを参照してください。
次のコマンドを extendedKalmanFilter
オブジェクトとともに使用できます。
コマンド | 説明 |
---|---|
correct | タイム ステップ k で測定されたデータを使用して、タイム ステップ k での状態と状態推定誤差の共分散を修正します。 |
predict | 次のタイム ステップでの状態と状態推定誤差の共分散を予測します。 |
residual | 実際の測定値と予測測定値の差を返します。 |
clone | 同じオブジェクト プロパティ値を使用して別のオブジェクトを作成します。 構文 |
extendedKalmanFilter
オブジェクトのプロパティについては、プロパティを参照してください。