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

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

Синтаксис

initialize(pf,numParticles,mean,covariance)
initialize(pf,numParticles,stateBounds)
initialize(___,Name,Value)

Описание

пример

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.'

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

Входные параметры

свернуть все

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

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

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

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

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

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

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

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

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

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

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

Введенный в R2017b