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