Фильтр Калмана

Материал из Википедии — свободной энциклопедии

Перейти к: навигация, поиск

Фи́льтр Ка́лмана — рекурсивный фильтр, оценивающий вектор состояния динамической системы, используя ряд неполных и зашумленных измерений. Назван в честь Рудольфа Калмана.

Фильтр Калмана предназначен для рекурсивного дооценивания вектора состояния априорно известной динамической системы, то есть для расчёта текущего состояния системы необходимо знать текущее измерение, а также предыдущее состояние самого фильтра. Таким образом фильтр Калмана, как и множество других рекурсивных фильтров, реализован во временном представлении, а не в частотном. Далее, запись вида \hat{\textbf{x}}_{n|m} соответствует оценке вектора состояния \textbf{x} в момент времени (итерации) n, по данным на момент времени m.

Состояние фильтра находится в двух переменных:

  • \hat{\textbf{x}}_{k|k} — оценка вектора состояния динамической системы в момент времени k;
  • \textbf{P}_{k|k} — ковариационная матрица ошибок (мера точности оценивания вектора состояния).

Работу каждого шага фильтра Калмана можно разделить на два этапа: прогноз и корректировка. Этап прогноза вычисляет вектор состояния, по его же значению на предыдущем шаге работы фильтра. На этапе корректировки в алгоритм поступают данные текущих измерений, которые используются для уточнения прогнозного значения вектора состояния, и вычисления собственно оценки вектора состояния динамической системы. Рассмотрим работу классического оптимального фильтра Калмана:

[править] Этап прогноза

Вычисление прогнозного значения вектора состояния по априорно известной модели: \hat{\textbf{x}}_{k|k-1} = \textbf{F}_{k}\hat{\textbf{x}}_{k-1|k-1} + \textbf{B}_{k} \textbf{u}_{k-1}
Вычисление прогнозного значения ковариационной матрицы: \textbf{P}_{k|k-1} =  \textbf{F}_{k} \textbf{P}_{k-1|k-1} \textbf{F}_{k}^{T} + \textbf{Q}_{k-1}

[править] Этап корректировки

Вычисление математической невязки прогнозного значения вектора состояния относительно измерений: 
\tilde{\textbf{y}}_{k} = \textbf{z}_{k} - \textbf{H}_{k}\hat{\textbf{x}}_{k|k-1}
Ковариационная матрица измерений: \textbf{S}_{k} = \textbf{H}_{k}\textbf{P}_{k|k-1} \textbf{H}_{k}^{T}+\textbf{R}_{k}
Оптимальный по Калману коэффициент усиления: \textbf{K}_{k} = \textbf{P}_{k|k-1}\textbf{H}_{k}^{T}\textbf{S}_{k}^{-1}
Вычисление оценки вектора состояния через корректировку прогнозного вектора состояния: \hat{\textbf{x}}_{k|k} = \hat{\textbf{x}}_{k|k-1} + \textbf{K}_{k}\tilde{\textbf{y}}_{k}
Обновление ковариационной матрицы ошибок: \textbf{P}_{k|k} = (I - \textbf{K}_{k} \textbf{H}_{k}) \textbf{P}_{k|k-1}

[править] Ссылки