exponenta event banner

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

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

Описание

пример

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 для получения дополнительной информации.

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

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

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

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

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

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

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

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2016a