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 как [].

Введенный в R2016a