Оцените системные измерения и состояния с помощью Фильтра Калмана
Система dsp.KalmanFilter
object™ является средством оценки, используемым, чтобы рекурсивно получить решение для линейной оптимальной фильтрации. Эта оценка сделана без точного ведома базовой динамической системы. Фильтр Калмана реализует следующий линейный процесс дискретного времени с состоянием, x, в kth такт: (уравнение состояния). Это измерение, z, дано как: (уравнение измерения).
Алгоритм Фильтра Калмана вычисляет выполняющий двух шагов рекурсивно:
Предсказание: параметры Процесса x (состояние) и P (ошибочная ковариация состояния) оцениваются с помощью предыдущего состояния.
Исправление: состояние и ошибочная ковариация исправляются с помощью текущего измерения.
Отфильтровать каждый канал входа:
Создайте объект dsp.KalmanFilter
и установите его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.
kalman = dsp.KalmanFilter
kalman = dsp.KalmanFilter(STMatrix, MMatrix, PNCovariance,
MNCovariance, CIMatrix)
kalman = dsp.KalmanFilter(Name,Value)
возвращает Системный объект Фильтра Калмана, kalman
= dsp.KalmanFilterkalman
, со значениями по умолчанию для параметров.
возвращает Системный объект Фильтра Калмана, kalman
= dsp.KalmanFilter(STMatrix
, MMatrix
, PNCovariance
,
MNCovariance
, CIMatrix
)kalman
. Свойство StateTransitionMatrix
установлено в STMatrix
, свойство MeasurementMatrix
установлено в MMatrix
, свойство ProcessNoiseCovariance
установлено в PNCovariance
, свойство MeasurementNoiseCovariance
установлено в MNCovariance
, и свойство ControlInputMatrix
установлено в CIMatrix
.
возвращает Системный объект Фильтра Калмана, kalman
= dsp.KalmanFilter(Name,Value
)kalman
, с каждым набором свойств к заданному значению. Заключите каждое имя свойства в одинарные кавычки. Незаданные свойства имеют значения по умолчанию.
Для версий ранее, чем R2016b, используйте функцию step
, чтобы запустить алгоритм Системного объекта. Аргументы к step
являются объектом, который вы создали, сопровождаемый аргументами, показанными в этом разделе.
Например, y = step(obj,x)
и y = obj(x)
выполняют эквивалентные операции.
[zEst, xEst, MSE_Est, zPred, xPred, MSE_Pred] = kalman(z,u)
[
выполняет итеративный алгоритм Фильтра Калмана по измерениямzEst
, xEst
, MSE_Est
, zPred
, xPred
, MSE_Pred
] = kalman(z
,u
), z
и управление вводят u
. Столбцы в z
и u
обработаны как входные параметры, чтобы разделить параллельные фильтры, исправление которых (или обновление) шаг может быть отключен свойством DisableCorrection
. Возвращенные значения являются оцененными измерениями zEst
, оцененные состояния xEst
, MSE предполагаемых состояний MSE_Est
, предсказанные измерения zPred
, предсказанные состояния xPred
и MSE предсказанных состояний MSE_Pred
.
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj
, используйте этот синтаксис:
release(obj)
Этот объект реализует алгоритм, входные параметры и выходные параметры, описанные на странице с описанием блока Kalman Filter. Свойства объектов соответствуют параметрам блоков.
[1] Грег Уэлч и Гэри Бишоп, введение в фильтр Калмана, технический отчет TR95 041. Университет Северной Каролины в Чапел-Хилле: Чапел-Хилл, NC., 1995.