Main Content

粒子フィルター ワークフロー

粒子フィルターは、推定状態の事後分布を離散粒子によって近似する再帰的ベイズ状態推定器です。

"粒子フィルター" アルゴリズムは状態推定を再帰的に計算します。次の 2 つのステップが含まれます。

  • 予測 - アルゴリズムは与えられたシステム モデルに基づき、前の状態を使用して現在の状態を予測します。

  • 補正 - アルゴリズムは現在のセンサー測定値を使用して状態推定を補正します。

また、アルゴリズムは状態空間内の粒子を定期的に再分布 (リサンプリング) して、推定状態の事後分布と一致するようにします。

推定状態は、すべての状態変数で構成されます。各粒子は離散的な状態仮説を表します。すべての粒子のセットを使用して、最終状態推定が決定されます。

粒子フィルターは、任意の非線形システム モデルに適用できます。プロセス ノイズと測定ノイズは、任意の非ガウス分布に従うことがあります。

粒子フィルターを正しく使用するには、粒子数、粒子の初期位置、状態推定法などのパラメーターを指定しなければなりません。また、特定の運動およびセンサー モデルがある場合、これらのパラメーターを状態遷移関数と測定尤度関数でそれぞれ指定します。詳細については、粒子フィルターのパラメーターを参照してください。

この基本的なワークフローに従って、粒子フィルターを作成して使用します。このページでは、推定ワークフローを詳しく説明し、ループ内で粒子フィルターを実行して継続的に状態を推定する方法の例を示しています。

推定ワークフロー

粒子フィルターを使用する際には、粒子フィルターおよび推定状態を作成するために一連のステップが必要です。予測および補正ステップは、継続的に状態を推定するための主な反復ステップです。

粒子フィルターの作成

stateEstimatorPF オブジェクトを作成します。

非線形システムのパラメーター設定

以下の stateEstimatorPF パラメーターを変更して、具体的なシステムまたはアプリケーションに適合させます。

  • StateTransitionFcn

  • MeasurementLikelihoodFcn

  • ResamplingPolicy

  • ResamplingMethod

  • StateEstimationMethod

基本操作用に、これらのパラメーターの既定値が指定されています。

関数 StateTransitionFcn および MeasurementLikelihoodFcn は、システムの動作と測定値の組み込みを定義します。これらは、粒子フィルターが正確な追跡を行うために不可欠です。詳細については、粒子フィルターのパラメーターを参照してください。

粒子の初期化

関数 initialize を使用して粒子数と初期状態を設定します。

分布からの粒子のサンプリング

粒子の初期位置は 2 つの方法でサンプリングできます。

  • 初期姿勢と共分散 — 初期状態の見当が付いている場合、初期姿勢と共分散を指定することを推奨します。この指定は、推定した形に近い形で粒子をクラスタリングすることで、最初から追跡を効率的に行うために役立ちます。

  • 状態の範囲 — 初期状態がわからない場合、各状態変数が取り得る範囲を指定できます。粒子は、各変数の状態の範囲全体にわたって一様に分布します。粒子が広く分布していると、実際の状態付近に分布している粒子が少ないため、追跡の効率が低下します。状態の範囲を使用する場合、通常、実際の状態推定に収束するまでにより多くの粒子、計算時間、および反復が必要になります。

予測

指定した状態遷移関数に基づき、粒子が変化して次の状態が推定されます。predict を使用して、StateTransitionFcn プロパティに指定された状態遷移関数を実行します。

測定値の取得

センサーから収集された測定値は、次のステップで、現在の推定状態を補正するために使用されます。

補正

次に、測定値を使用して、予測された状態が調整され推定が補正されます。関数 correct を使用して測定値を指定します。correctMeasurementLikelihoodFcn を使用して、各粒子のセンサー測定値の尤度を計算します。後続の反復での状態の変化に伴って推定を更新するために、粒子をリサンプリングする必要があります。このステップでは、ResamplingMethod および ResamplingPolicy プロパティに基づいてリサンプリングがトリガーされます。

最適状態推定の抽出

correct を呼び出すと、各粒子の Weights、およびオブジェクトに指定されている StateEstimationMethod プロパティに基づいて、最適状態推定が自動的に抽出されます。最適推定状態と共分散が、関数 correct によって出力されます。

粒子のリサンプリング

このステップは独立して呼び出されるのではなく、correct を呼び出すと実行されます。状態が十分に変化したら、最新の推定に基づいて粒子をリサンプリングします。correct メソッドは、ResamplingPolicy をチェックし、粒子とその重みの現在の分布に応じて粒子のリサンプリングをトリガーします。リサンプリングがトリガーされなかった場合、次回の推定にも同じ粒子が使用されます。状態があまり変わらない場合や、タイム ステップが小さい場合は、リサンプリングを行わずに predict メソッドと correct メソッドを呼び出すことができます。

継続的な予測と補正

状態推定の必要に応じて、前述の予測と補正のステップを繰り返します。補正ステップでは、粒子のリサンプリングが必要かどうかが決定されます。次のようなときに、predict または correct を複数回呼び出す必要がある場合があります。

  • 使用できる測定値はないが、制御入力と時間の更新が高い頻度で発生している場合。predict メソッドを使用して粒子を変化させ、更新後の予測済み状態をより頻繁に取得します。

  • 複数の測定値が読み取れる場合。correct を使用して、同一または複数のセンサーからの複数の読み取り値を統合します。この関数によって、収集された各情報セットに基づいて状態が補正されます。

参考

| | | |

関連する例

詳細