exponenta event banner

правильный

Корректная ковариация ошибок оценки состояния и состояния с помощью фильтра слежения

Описание

пример

[xcorr,Pcorr] = correct(filter,zmeas) возвращает исправленное состояние, xcorrи исправленную ковариацию ошибки оценки состояния, Pcorr, для следующего временного шага входного фильтра слежения на основе текущего измерения, zmeas. Скорректированные значения перезаписывают ковариацию внутреннего состояния и ошибки оценки состояния filter.

[xcorr,Pcorr] = correct(filter,zmeas,measparams) задает дополнительные параметры, используемые функцией измерения, которая определена в MeasurementFcn имущество filter. Можно вернуть любой вывод из предыдущих синтаксисов.

Если фильтр является trackingKF или trackingABF , то вы не можете использовать этот синтаксис.

[xcorr,Pcorr] = correct(filter,zmeas,zcov) определяет дополнительную ковариацию измерения, zcov, используется в MeasurementNoise имущество filter.

Этот синтаксис можно использовать только в том случае, если filter является trackingKF объект.

[xcorr,Pcorr,zcorr] = correct(filter,zmeas) также возвращает коррекцию измерений, zcorr.

Этот синтаксис можно использовать только в том случае, если filter является trackingABF объект.

[xcorr,Pcorr,zcorr] = correct(filter,zmeas,zcov) возвращает коррекцию измерений, zcorr, а также определяет дополнительную ковариацию измерения, zcov, используется в MeasurementNoise имущество filter.

Этот синтаксис можно использовать только в том случае, если filter является trackingABF объект.

correct(filter,___) обновления filter с ковариацией скорректированного состояния и ошибки оценки состояния без возврата скорректированных значений. Укажите фильтр отслеживания и любую из комбинаций входных аргументов из предшествующих синтаксисов.

xcorr = correct(filter,___) обновления filter с ковариацией исправленного состояния и ошибки оценки состояния, но возвращает только исправленное состояние, xcorr.

Примеры

свернуть все

Создание двумерного trackingEKF и использовать пары «имя-значение» для определения StateTransitionJacobianFcn и MeasurementJacobianFcn свойства. Используйте предопределенные модели движения и измерения с постоянной скоростью и их якобианы.

EKF = trackingEKF(@constvel,@cvmeas,[0;0;0;0], ...
    'StateTransitionJacobianFcn',@constveljac, ...
    'MeasurementJacobianFcn',@cvmeasjac);

Запустите фильтр. Используйте predict и correct для распространения состояния. Вы можете позвонить predict и correct в любом порядке и столько раз, сколько вы хотите. Задайте измерение в декартовых координатах.

measurement = [1;1;0];
[xpred, Ppred] = predict(EKF);
[xcorr, Pcorr] = correct(EKF,measurement);
[xpred, Ppred] = predict(EKF);
[xpred, Ppred] = predict(EKF)
xpred = 4×1

    1.2500
    0.2500
    1.2500
    0.2500

Ppred = 4×4

   11.7500    4.7500         0         0
    4.7500    3.7500         0         0
         0         0   11.7500    4.7500
         0         0    4.7500    3.7500

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

свернуть все

Фильтр для отслеживания объектов, указанный как один из следующих объектов:

  • trackingKF - Линейный фильтр Калмана

  • trackingEKF - Расширенный фильтр Кальмана

  • trackingUKF - Незараженный фильтр Калмана

  • trackingABF - Альфа-бета-фильтр

  • trackingCKF - Кубатурный фильтр Калмана

  • trackingIMM - Взаимодействующий фильтр множественных моделей (IMM)

  • trackingGSF - гауссово-суммарный фильтр

  • trackingPF - Фильтр частиц

  • trackingMSCEKF - Расширенный фильтр Калмана с измененными сферическими координатами (MSC)

Измерение отслеживаемого объекта, заданного как вектор или матрица.

Типы данных: single | double

Аргументы функции измерения, указанные как список аргументов, разделенных запятыми. Эти аргументы являются теми же, которые передаются в функцию измерения, заданную MeasurementFcn свойства фильтра отслеживания. Если filter является trackingKF или trackingABF объект, то вы не можете указать measparams.

Предположим, вы установили MeasurementFcn кому @cameas, а затем позвоните correct:

[xcorr,Pcorr] = correct(filter,frame,sensorpos,sensorvel)
correct функция внутренне вызывает следующее:
meas = cameas(state,frame,sensorpos,sensorvel)

Ковариация измерения, заданная как матрица M-by-M, где M - размерность измерения. Одна и та же ковариационная матрица измерения принимается для всех измерений в zmeas.

Типы данных: single | double

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

свернуть все

Исправленное состояние фильтра, указанное как вектор или матрица. State свойство входа filter перезаписывается этим значением.

Скорректированная ковариация состояния фильтра, заданная как вектор или матрица. StateCovariance свойство входа filter перезаписывается этим значением.

Скорректированное измерение фильтра, указанное как вектор или матрица. Вы можете вернуться zcorr только когда filter является trackingABF объект.

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

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

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