initialize

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

Описание

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 частиц. Большее количество частиц может улучшить оценку, но жертвует скоростью эффективности, потому что алгоритм должен обрабатывать больше частиц. Настройка количества частиц является лучшим способом улучшить отслеживание вашего фильтра частиц.

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

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

Границы переменных состояния, заданные как матрица n -by-2. The 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-by- NumParticles. Если это 'row', состояния имеют ориентацию строк и Particles имеет размерности NumParticles-by- NumStateVariables.

Введенный в R2017b