Фильтр частиц является рекурсивным, Байесовым средством оценки состояния, которое использует дискретные частицы, чтобы аппроксимировать апостериорное распределение предполагаемого состояния.
Алгоритм 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
интегрировать несколько показаний от того же самого или несколько датчиков. Функция корректирует состояние на основе каждого набора собранной информации.
stateEstimatorPF
| initialize
| getStateEstimate
| predict
| correct