Фильтр частиц - рекурсивный, байесовский оценщик состояния, использующий дискретные частицы для аппроксимации заднего распределения оценочного состояния.
Алгоритм фильтра частиц вычисляет оценку состояния рекурсивно и включает два этапа:
Предсказание - алгоритм использует предыдущее состояние для предсказания текущего состояния на основе данной системной модели.
Коррекция - алгоритм использует текущее измерение датчика для коррекции оценки состояния.
Алгоритм также периодически перераспределяет или повторно дискретизирует частицы в пространстве состояний, чтобы соответствовать заднему распределению оцененного состояния.
Предполагаемое состояние состоит из всех переменных состояния. Каждая частица представляет дискретную гипотезу состояния. Набор всех частиц используется для определения конечной оценки состояния.
Фильтр частиц можно применить к произвольным моделям нелинейных систем. Шум процесса и измерения может следовать за произвольными негауссовыми распределениями.
Для правильного использования фильтра частиц необходимо указать такие параметры, как количество частиц, начальное местоположение частиц и метод оценки состояния. Кроме того, при наличии определенной модели движения и датчика эти параметры задаются в функции перехода состояния и функции правдоподобия измерения соответственно. Дополнительные сведения см. в разделе Параметры фильтра частиц.
Следуйте этому базовому рабочему процессу для создания и использования фильтра частиц. На этой странице подробно описывается процесс оценки и показан пример запуска фильтра частиц в цикле для непрерывной оценки состояния.
При использовании фильтра частиц имеется необходимый набор шагов для создания фильтра частиц и оценки состояния. Этапы прогнозирования и коррекции являются основными этапами итерации для непрерывной оценки состояния.

Создать stateEstimatorPF объект.
Изменение этих параметров stateEstimatorPF параметры, соответствующие конкретной системе или приложению:
StateTransitionFcn
MeasurementLikelihoodFcn
ResamplingPolicy
ResamplingMethod
StateEstimationMethod
Значения по умолчанию для этих параметров приведены для основной операции.
StateTransitionFcn и MeasurementLikelihoodFcn функции определяют поведение системы и интеграцию измерений. Они жизненно важны для точного отслеживания фильтра частиц. Дополнительные сведения см. в разделе Параметры фильтра частиц.
Используйте initialize для задания количества частиц и начального состояния.
Можно выполнить выборку исходных расположений частиц двумя способами:
Начальная поза и ковариация - если у вас есть представление о вашем начальном состоянии, рекомендуется указать начальную позу и ковариацию. Эта спецификация помогает скомпоновать частицы ближе к вашей оценке, поэтому отслеживание более эффективно с самого начала.
Границы состояния (State bounds) - если начальное состояние неизвестно, можно указать возможные пределы для каждой переменной состояния. Частицы равномерно распределены по границам состояния для каждой переменной. Широко распределенные частицы не так эффективны в отслеживании, потому что меньше частиц находится вблизи фактического состояния. Использование границ состояний обычно требует большего количества частиц, времени вычисления и итераций для схождения с фактической оценкой состояния.
На основе заданной функции перехода состояния частицы эволюционируют для оценки следующего состояния. Использовать predict для выполнения функции перехода состояния, указанной в StateTransitionFcn собственность.
Измерения, полученные от датчиков, используются на следующем этапе для коррекции текущего прогнозируемого состояния.
Затем измерения используются для корректировки прогнозируемого состояния и коррекции оценки. Укажите измерения с помощью correct функция. correct использует MeasurementLikelihoodFcn для расчета вероятности сенсорных измерений для каждой частицы. Повторная выборка частиц необходима для обновления оценки по мере изменения состояния в последующих итерациях. Этот шаг запускает повторную выборку на основе ResamplingMethod и ResamplingPolicy свойства.
После звонка correct, оценка наилучшего состояния автоматически извлекается на основе Weights каждой частицы и StateEstimationMethod свойство, указанное в объекте. Лучшее оцененное состояние и ковариация выводятся correct функция.
Этот шаг не вызывается отдельно, а выполняется при вызове correct. Как только ваше состояние изменилось достаточно, выполните повторную выборку частиц на основе новейшей оценки. correct метод проверяет ResamplingPolicy для запуска повторной выборки частиц в соответствии с текущим распределением частиц и их весами. Если повторная выборка не запускается, то для следующей оценки используются те же самые частицы. Если ваше состояние не сильно варьируется или если ваш шаг времени низок, вы можете вызвать прогнозирующие и правильные методы без повторной выборки.
Повторите предыдущие шаги прогнозирования и коррекции, необходимые для оценки состояния. Этап коррекции определяет, требуется ли повторная выборка частиц. Несколько вызовов для predict или correct может потребоваться в следующих случаях:
Измерения недоступны, но управляющие входы и обновления времени происходят на высокой частоте. Используйте predict способ развития частиц для более частого получения обновленного предсказанного состояния.
Доступно несколько измерений. Использовать correct для интеграции нескольких показаний от одного или нескольких датчиков. Функция корректирует состояние на основе каждого набора собранной информации.
correct | getStateEstimate | initialize | predict | stateEstimatorPF