exponenta event banner

предсказать

Ковариация ошибок прогнозирования состояния и оценки состояния линейного фильтра Калмана

Описание

[xpred,Ppred] = predict(filter) возвращает прогнозируемое состояние, xpredи ковариация прогнозируемой ошибки оценки состояния, Ppred, для следующего временного шага входного линейного фильтра Калмана. Прогнозируемые значения перезаписывают ковариацию внутреннего состояния и ошибки оценки состояния filter.

Этот синтаксис применяется при установке ControlModel имущество filter в пустую матрицу.

[xpred,Ppred] = predict(filter,u) задает управляющий ввод, или силу, uи возвращает один или несколько выходов из предшествующих синтаксисов.

Этот синтаксис применяется при установке ControlModel имущество filter в непустую матрицу.

[xpred,Ppred] = predict(filter,F) определяет модель перехода состояния, F. Этот синтаксис используется для изменения модели перехода состояния во время моделирования.

Этот синтаксис применяется при установке ControlModel имущество filter в пустую матрицу.

[xpred,Ppred] = predict(filter,F,Q) определяет модель перехода состояния, Fи ковариация шума процесса, Q. Этот синтаксис используется для изменения модели перехода состояния и обработки ковариации шума во время моделирования.

Этот синтаксис применяется при установке ControlModel имущество filter в пустую матрицу.

[xpred,Ppred] = predict(filter,u,F,G) определяет силу или управляющий ввод, u, модель перехода состояния, Fи модель управления, G. Этот синтаксис используется для изменения модели перехода состояния и управляющей модели во время моделирования.

Этот синтаксис применяется при установке ControlModel имущество filter в непустую матрицу.

[xpred,Ppred] = predict(filter,u,F,G,Q) определяет силу или управляющий ввод, u, модель перехода состояния, F, модель управления, Gи ковариация шума процесса, Q. Этот синтаксис используется для изменения модели перехода состояния, модели управления и ковариации шума процесса во время моделирования.

Этот синтаксис применяется при установке ControlModel имущество filter в непустую матрицу.

пример

[xpred,Ppred] = predict(filter,dt) возвращает прогнозируемые выходные данные после временного шага dt.

Этот синтаксис применяется, когда MotionModel имущество filter не имеет значение 'Custom' и ControlModel свойство имеет значение пустой матрицы.

[xpred,Ppred] = predict(filter,u,dt) также определяет силу или управляющий ввод, u.

Этот синтаксис применяется, когда MotionModel имущество filter не имеет значение 'Custom' и ControlModel свойство имеет значение непустой матрицы.

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

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

Примеры

свернуть все

Создание линейного фильтра Калмана, использующего 2D Constant Velocity модель движения. Предположим, что измерение состоит из местоположения объекта x-y.

Укажите начальную оценку состояния, чтобы иметь нулевую скорость.

x = 5.3;
y = 3.6;
initialState = [x;0;y;0];
KF = trackingKF('MotionModel','2D Constant Velocity','State',initialState);

Создайте измеренные положения из траектории постоянной скорости.

vx = 0.2;
vy = 0.1;
T  = 0.5;
pos = [0:vx*T:2;5:vy*T:6]';

Спрогнозировать и исправить состояние объекта.

for k = 1:size(pos,1)
    pstates(k,:) = predict(KF,T);
    cstates(k,:) = correct(KF,pos(k,:));
end

Постройте графики.

plot(pos(:,1),pos(:,2),'k.', pstates(:,1),pstates(:,3),'+', ...
    cstates(:,1),cstates(:,3),'o')
xlabel('x [m]')
ylabel('y [m]')
grid
xt  = [x-2 pos(1,1)+0.1 pos(end,1)+0.1];
yt = [y pos(1,2) pos(end,2)];
text(xt,yt,{'First measurement','First position','Last position'})
legend('Object position', 'Predicted position', 'Corrected position')

Figure contains an axes. The axes contains 6 objects of type line, text. These objects represent Object position, Predicted position, Corrected position.

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

свернуть все

Линейный фильтр Калмана для отслеживания объектов, указанный как trackingKF объект.

Управляющий вектор, заданный как действительный L-элементный вектор.

Модель перехода состояния, заданная как вещественно-значная матрица M-by-M, где M - размер вектора состояния.

Обрабатывать ковариационную матрицу шума, заданную как положительно-определенная вещественно-значимая матрица M-на-М, где M - длина вектора состояния.

Модель управления, заданная как вещественно-значная матрица M-by-L. M - размер вектора состояния. L - количество независимых элементов управления.

Шаг времени, заданный как положительный скаляр. Единицы измерения в секундах.

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

свернуть все

Предсказанное состояние, возвращаемое как вектор M-элемента с действительным значением. Предсказанное состояние представляет вычитаемую оценку вектора состояния, распространенную из предыдущего состояния с использованием моделей перехода состояния и управления.

Прогнозируемая ковариационная матрица состояния, заданная как вещественно-значная матрица M-by-M. M - размер вектора состояния. Прогнозируемая ковариационная матрица состояния представляет выводимую оценку вектора ковариационной матрицы. Фильтр распространяет ковариационную матрицу из предыдущей оценки.

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

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

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