Оцените системные измерения и состояния с помощью Фильтра Калмана
Система dsp.KalmanFilter object™ является средством оценки, используемым, чтобы рекурсивно получить решение для линейной оптимальной фильтрации. Эта оценка сделана без точного ведома базовой динамической системы. Фильтр Калмана реализует следующий линейный процесс дискретного времени с состоянием, x, в kth такт: (уравнение состояния). Это измерение, z, дано как: (уравнение измерения).
Алгоритм Фильтра Калмана вычисляет выполняющий двух шагов рекурсивно:
Предсказание: параметры Процесса x (состояние) и P (ошибочная ковариация состояния) оцениваются с помощью предыдущего состояния.
Исправление: состояние и ошибочная ковариация исправляются с помощью текущего измерения.
Отфильтровать каждый канал входа:
Создайте объект dsp.KalmanFilter и установите его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.
kalman = dsp.KalmanFilterkalman = 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.