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

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

свернуть все

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

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

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

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

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

Смотрите также

| | | | | |

Введенный в R2018b