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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • StateTransitionFcn

  • MeasurementLikelihoodFcn

  • ResamplingPolicy

  • ResamplingMethod

  • StateEstimationMethod

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

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

Инициализируйте частицы

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

Демонстрационные частицы от распределения

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

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

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

Предсказать

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

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

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

Правильный

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

Извлеките лучшую оценку состояния

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

Передискретизируйте частицы

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

Постоянно предсказывайте и корректируйте

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

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

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

Смотрите также

| | | |

Связанные примеры

Больше о