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

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

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

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