exponenta event banner

инициализировать

Инициализация состояния фильтра частиц

Описание

initialize(pf,numParticles,mean,covariance) инициализирует объект фильтра частиц с заданным количеством частиц. Исходные состояния частиц в пространстве состояний определяются отбором проб из многомерного нормального распределения с заданным mean и covariance. Количество переменных состояния (NumStateVariables) извлекается автоматически на основе длины mean вектор.

пример

initialize(pf,numParticles,stateBounds) определяет начальное местоположение numParticles частицы путем отбора проб из многомерного равномерного распределения с заданным stateBounds.

пример

initialize(___,Name,Value) инициализирует частицы с дополнительными опциями, заданными одним или несколькими Name,Value аргументы пары.

Примеры

свернуть все

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

В этом примере функции vdpParticleFilterStateFcn and vdpMeasurementLikelihoodFcn описать дискретное приближение к генератору ван дер Пол с параметром нелинейности, mu, равным 1.

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

myPF = particleFilter(@vdpParticleFilterStateFcn,@vdpMeasurementLikelihoodFcn);

Инициализация фильтра частиц в состоянии [2; 0] с единичной ковариацией и использовать 1000 частицы.

initialize(myPF, 1000, [2;0], eye(2));
myPF
myPF = 
  particleFilter with properties:

           NumStateVariables: 2
                NumParticles: 1000
          StateTransitionFcn: @vdpParticleFilterStateFcn
    MeasurementLikelihoodFcn: @vdpMeasurementLikelihoodFcn
     IsStateVariableCircular: [0 0]
            ResamplingPolicy: [1x1 particleResamplingPolicy]
            ResamplingMethod: 'multinomial'
       StateEstimationMethod: 'mean'
            StateOrientation: 'column'
                   Particles: [2x1000 double]
                     Weights: [1x1000 double]
                       State: 'Use the getStateEstimate function to see the value.'
             StateCovariance: 'Use the getStateEstimate function to see the value.'

Для оценки состояния и ковариации ошибки оценки состояния от построенного объекта используйте predict и correct команды.

Входные аргументы

свернуть все

Фильтр частиц, указанный как объект. Посмотрите particleFilter для получения дополнительной информации.

Число частиц, используемых в фильтре, указанное как скаляр.

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

Среднее значение распределения частиц, указанное как вектор. NumStateVariables имущество pf задается на основе длины этого вектора.

Ковариация распределения частиц, указанная как матрица N-by-N, где N - значение NumStateVariables свойство из pf.

Границы переменных состояния, заданные как матрица n-by-2. NumStateVariables имущество pf устанавливается на основе значения n. Каждая строка соответствует нижней и верхней границе соответствующей переменной состояния. Количество переменных состояния (NumStateVariables) извлекается автоматически на основе количества строк stateBounds массив.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должно отображаться внутри отдельных кавычек (' '). Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: ...'StateOrientation','row'

Циклические переменные, разделенная запятыми пара, состоящая из CircularVariables и задают как логический вектор. Каждая переменная состояния, использующая круговые или угловые координаты, обозначается символом 1. Длина вектора равна NumStateVariables имущество particleFilter.

Ориентация состояний, определяемая как разделенная запятыми пара, состоящая из StateOrientation как одно из следующих значений: «column» или «row». Если это «column »,State собственность и getStateEstimate метод объекта pf возвращает состояния в виде вектора столбца, и Particles свойство имеет размеры NumStateVariablesоколо-NumParticles. Если это «строка», состояния имеют ориентацию строки иParticles имеет размеры NumParticlesоколо-NumStateVariables.

Представлен в R2017b