Рабочий процесс фильтра частиц

Фильтр частиц является рекурсивным байесовским оценщиком состояния, который использует дискретные частицы, чтобы аппроксимировать апостериорное распределение предполагаемого состояния.

Алгоритм particle filter вычисляет оценку состояния рекурсивно и включает два шага:

  • Предсказание - алгоритм использует предыдущее состояние, чтобы предсказать текущее состояние на основе заданной системной модели.

  • Коррекция - алгоритм использует измерение датчика тока, чтобы исправить оценку состояния.

Алгоритм также периодически перераспределяет или перераспределяет частицы в пространстве состояний, чтобы соответствовать апостериорному распределению оцененного состояния.

Предполагаемое состояние состоит из всех переменных состояния. Каждая частица представляет гипотезу дискретного состояния. Набор всех частиц используется, чтобы помочь определить окончательную оценку состояния.

Можно применить фильтр частиц к произвольным нелинейным системным моделям. Шум процесса и измерения может следовать произвольным негауссовым распределениям.

Чтобы правильно использовать фильтр частиц, необходимо задать такие параметры, как количество частиц, начальное расположение частиц и метод оценки состояния. Кроме того, если у вас есть определенная модель движения и датчика, вы задаете эти параметры в функции перехода состояния и функции правдоподобия измерения, соответственно. Для получения дополнительной информации см. Раздел «Фильтр частиц Параметров».

Следуйте этому базовому рабочему процессу, чтобы создать и использовать фильтр частиц. Эта страница подробно описывает рабочий процесс оценки и показывает пример того, как запустить фильтр частиц в цикле, чтобы постоянно оценивать состояние.

Рабочий процесс оценки

При использовании фильтра частиц существует необходимый набор шагов, чтобы создать фильтр частиц и оценить состояние. Шаги предсказания и коррекции являются основными шагами итерации для непрерывной оценки состояния.

Создайте фильтр частиц

Создайте stateEstimatorPF объект.

Установите параметры нелинейной системы

Измените эти stateEstimatorPF параметры, подходящие для вашей конкретной системы или приложения:

  • StateTransitionFcn

  • MeasurementLikelihoodFcn

  • ResamplingPolicy

  • ResamplingMethod

  • StateEstimationMethod

Значения по умолчанию для этих параметров приведены для основной операции.

The StateTransitionFcn и MeasurementLikelihoodFcn функции определяют поведение системы и интегрирование измерений. Они жизненно необходимы для точного отслеживания фильтра частиц. Для получения дополнительной информации см. Раздел «Фильтр частиц Параметров».

Инициализация частиц

Используйте initialize функция, чтобы задать количество частиц и начальное состояние.

Выборка частиц из распределения

Можно дискретизировать начальные положения частиц двумя способами:

  • Начальное положение и ковариация - Если у вас есть представление о вашем начальном состоянии, рекомендуется, чтобы вы определили начальное положение и ковариацию. Эта спецификация помогает кластеризировать частицы ближе к вашей оценке, поэтому отслеживание более эффективно с самого начала.

  • Ограничения состояния - Если вы не знаете своего начального состояния, можно задать возможные пределы каждой переменной состояния. Частицы равномерно распределены между границами состояний для каждой переменной. Широко распределенные частицы не так эффективны при отслеживании, потому что меньше частиц близки к фактическому состоянию. Использование границ состояния обычно требует большего количества частиц, времени расчета и итераций, чтобы сходиться к фактической оценке состояния.

Предсказать

На основе заданной функции перехода состояния частицы эволюционируют, чтобы оценить следующее состояние. Использовать predict для выполнения функции перехода к состоянию, указанной в StateTransitionFcn свойство.

Получите измерение

Измерения, собранные с датчиков, используются на следующем шаге, чтобы исправить текущее предсказанное состояние.

Правильный

Измерения затем используются, чтобы настроить предсказанное состояние и исправить оценку. Задайте свои измерения с помощью correct функция. correct использует MeasurementLikelihoodFcn вычислить вероятность измерений датчика для каждой частицы. Повторная дискретизация частиц требуется, чтобы обновить вашу оценку, когда состояние изменяется в последующих итерациях. Этот шаг запускает повторную дискретизацию на основе ResamplingMethod и ResamplingPolicy свойства.

Извлечение оптимальной оценки состояния

После вызова correct, лучшая оценка состояния автоматически извлекается на основе Weights каждой частицы и StateEstimationMethod свойство, заданное в объекте. Лучшее расчетное состояние и ковариация выводятся correct функция.

Повторный образец частиц

Этот шаг не вызывается отдельно, а выполняется при вызове correct. Как только ваше состояние изменилось достаточно, повторите выборку ваших частиц на основе новейшей оценки. The correct метод проверяет ResamplingPolicy для запуска повторной дискретизации частиц в соответствии с распределением тока частиц и их весами. Если повторная дискретизация не запускается, те же самые частицы используются для следующей оценки. Если ваше состояние не сильно варьируется или если ваш временной шаг низок, можно вызвать предсказание и правильные методы без повторной дискретизации.

Непрерывно предсказывать и исправлять

Повторите предыдущие шаги предсказания и коррекции по мере необходимости для оценки состояния. Шаг коррекции определяет, требуется ли повторная дискретизация частиц. Несколько вызовов для predict или correct может потребоваться, когда:

  • Измерение не доступно, но входы управления и обновления времени происходят на высокой частоте. Используйте predict метод для эволюции частиц, чтобы получить обновленное предсказанное состояние чаще.

  • Доступно несколько показаний измерений. Использование correct для интегрирования нескольких показаний от одного и того же или нескольких датчиков. Функция исправляет состояние на основе каждого набора собранной информации.

См. также

| | | |

Похожие примеры

Подробнее о