exponenta event banner

предсказать

Прогнозирование состояния робота на следующем шаге времени

Описание

пример

[statePred,stateCov] = predict(pf) вычисляет предсказанное состояние системы и связанную с ним ковариацию неопределенности. predict использует StateTransitionFcn имущество stateEstimatorPF объект, pf, чтобы эволюционировать состояние всех частиц. Затем он извлекает лучшую оценку состояния и ковариацию на основе настройки в StateEstimationMethod собственность.

[statePred,stateCov] = predict(pf,varargin) передает все дополнительные аргументы, указанные в varargin к нижележащему StateTransitionFcn имущество pf. Первый вход в StateTransitionFcn - набор частиц из предыдущего временного шага, за которым следуют все аргументы в varargin.

Примеры

свернуть все

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

Список входных аргументов переменной длины, указанный как список, разделенный запятыми. Этот вход передается непосредственно в StateTransitionFcn имущество pf для развития состояния системы для каждой частицы. При звонке:

predict(pf,arg1,arg2)
MATLAB ® по существу вызывает stateTranstionFcn как:
stateTransitionFcn(pf,prevParticles,arg1,arg2)

Выходные аргументы

свернуть все

Прогнозируемое состояние системы, возвращаемое как вектор с длиной NumStateVariables. Прогнозируемое состояние вычисляется на основе StateEstimationMethod алгоритм.

Скорректированная системная дисперсия, возвращаемая в виде матрицы N-на-N, где N - значение NumStateVariables свойство из pf. Исправленное состояние вычисляется на основе StateEstimationMethod алгоритм и MeasurementLikelihoodFcn. Если указать метод оценки состояния, который не поддерживает ковариацию, то функция возвращает stateCov как [].

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

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

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