correct

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

Описание

пример

[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

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

свернуть все

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

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

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

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

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

.
Введенный в R2018b
Для просмотра документации необходимо авторизоваться на сайте