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: [1.0000e-03 1.0000e-03 1.0000e-03 ... ]
                       State: 'Use the getStateEstimate function to see the value.'
             StateCovariance: 'Use the getStateEstimate function to see the value.'

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

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

свернуть все

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

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

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

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

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

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

Аргументы name-value

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

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

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

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

Введенный в R2017b