predict

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

Описание

пример

[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)). Используйте 5 000 частиц.

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-by-N матрица, где N является значением NumStateVariables свойство от pf. Откорректированное состояние вычисляется на основе StateEstimationMethod алгоритм и MeasurementLikelihoodFcn. Если вы задаете оценочный метод состояния, который не поддерживает ковариацию, то функция возвращает stateCov как [].

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

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

Введенный в R2016a