predict

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

Описание

[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 -by- M матрица, где M - длина вектора состояния.

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

Временной шаг, заданный как положительная скалярная величина. Модули указаны в секундах.

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

свернуть все

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

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

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

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

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