initialize

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

Описание

пример

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

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

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

Примеры

свернуть все

Создайте stateEstimatorPF объект и выполните шаг предсказания и коррекции для оценки состояния. Фильтр частиц дает предсказанную оценку состояния, основанную на возврате значении StateTransitionFcn. Затем он корректирует состояние на основе заданного измерения и возвращаемого значения MeasurementLikelihoodFcn.

Создайте фильтр частиц с тремя состояниями по умолчанию.

pf = stateEstimatorPF
pf = 
  stateEstimatorPF with properties:

           NumStateVariables: 3
                NumParticles: 1000
          StateTransitionFcn: @nav.algs.gaussianMotion
    MeasurementLikelihoodFcn: @nav.algs.fullStateMeasurement
     IsStateVariableCircular: [0 0 0]
            ResamplingPolicy: [1x1 resamplingPolicyPF]
            ResamplingMethod: 'multinomial'
       StateEstimationMethod: 'mean'
            StateOrientation: 'row'
                   Particles: [1000x3 double]
                     Weights: [1000x1 double]
                       State: 'Use the getStateEstimate function to see the value.'
             StateCovariance: 'Use the getStateEstimate function to see the value.'

Укажите метод оценки среднего состояния и метод систематической повторной дискретизации.

pf.StateEstimationMethod = 'mean';
pf.ResamplingMethod = 'systematic';

Инициализируйте фильтр частиц в состоянии [4 1 9] с единичной ковариацией (eye(3)). Используйте 5000 частицы.

initialize(pf,5000,[4 1 9],eye(3));

Принимая измерение [4,2 0,9 9], запустите один предсказание и один правильный шаг.

[statePredicted,stateCov] = predict(pf);
[stateCorrected,stateCov] = correct(pf,[4.2 0.9 9]);

Получите лучшую оценку состояния на основе StateEstimationMethod алгоритм.

stateEst = getStateEstimate(pf)
stateEst = 1×3

    4.1562    0.9185    9.0202

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

свернуть все

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

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

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

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

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

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

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

Пример: "CircularVariables",[0 0 1]

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

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.
Введенный в R2016a