УДК 004
В.И. Кравчук
ОСОБЕННОСТИ РАБОТЫ ФИЛЬТРА КАЛМАНА И ЕГО ПРИМЕНЕНИЕ
В статье рассматривается актуальность обработки потока данных. Изучен алгоритм работы Фильтра Калмана, его особенности и применение в различных областях науки и техники. Также рассмотрен пример его применения.
Ключевые слова: обработка данных, фильтр Калмана, шумы, данные, информационные системы.
На сегодняшний день благодаря повседневным потребностям человека развитие техники достигло такого уровня, что обычная бытовая техника изготавливается с использованием элементов информационных систем. Однако стоить отметить, что любая информационная система должна быть обеспечена соответствующими средствами защиты поступающих данных от шумов, возникающих по тем или иным причинам.
Учитывая вышесказанное, изучение и разработка алгоритмов фильтрации данных является одной из актуальных задач в рамках развития науки и техники.
Целью данной статьи является изучение алгоритма обработки данных названного в честь немецкого математика Рудольфа Эмиля Калмана.
Фильтр Калмана - это, наверное, самый популярный алгоритм фильтрации, используемый во многих областях науки и техники. Благодаря своей простоте и эффективности его можно встретить в вР8-приемниках, обработчиках показаний датчиков, при реализации систем управления и т.д.
Любой измерительный прибор обладает некоторой погрешностью, на него может оказывать влияние большое количество внешних и внутренних воздействий, что приводит к тому, что информация с него оказывается зашумленной. Чем сильнее зашумлены данные, тем сложнее обрабатывать такую информацию.
Шум - беспорядочные колебания различной физической природы, отличающиеся сложностью временной и спектральной структуры.
Фильтр - это алгоритм обработки данных, который убирает шумы и лишнюю информацию. В фильтре Калмана есть возможность задать априорную информацию о характере системе, связи переменных и на основании этого строить более точную оценку, но даже в простейшем случае (без ввода априорной информации) он дает отличные результаты [1].
Фильтр Калмана использует динамическую модель системы (например, физический закон движения), известные управляющие воздействия и множество последовательных измерений для формирования оптимальной оценки состояния. Алгоритм состоит из двух повторяющихся фаз: предсказание и корректировка. На первом рассчитывается предсказание состояния в следующий момент времени (с учетом неточности их измерения). На втором, новая информация с датчика корректирует предсказанное значение (также с учетом неточности и зашумленности этой информации).
Уравнения представлены в матричной форме. Разберемся сначала в обозначениях: подстрочный индекс обозначает момент времени: к - текущий, (к-1) - предыдущий, знак «минус» в верхнем индексе обозначает, что это предсказанное промежуточное значение [2].
© Кравчук В.И., 2016.
Рис. 1. Структура алгоритма
/ — матрица идентичности
Корректировка
чД. Вычисление усиления Калмана (Kaiman Gain)
кк
2. Обновление оценки с учетом измерения z^-'"'
xk = xk +
--^Обновление ошибки ковариации
z-(J - измерение в текущий момент времени
Рис. 2. Описание переменных
Рассмотрим простейший пример - предположим нам необходимо контролировать уровень топлива в баке. Для этого в бак устанавливается емкостный датчик, он очень прост в обслуживании, но обладает некоторыми недостатками - например, зависимость от заправляемого топлива (диэлектрическая проницаемость топлива зависит от многих факторов, например, от температуры), большое влияние «болтанки» в баке. В итоге, информация с него представляет типичную «пилу» с приличной амплитудой. Такого рода датчики часто устанавливаются на тяжелой карьерной технике.
Так как состояние системы представлено одной переменной (объем топлива в баке), то матрицы вырождаются в обычные уравнения
Рис. 4. Уравнения предсказания и корректировки
Для того чтобы применить фильтр, необходимо определить матрицы/значения переменных определяющих динамику системы и измерений F, В и Н:
Р - переменная описывающая динамику системы, в случае с топливом - это может быть коэффициент определяющий расход топлива на холостых оборотах за время дискретизации (время между шагами алгоритма). Однако помимо расхода топлива, существуют ещё и заправки, поэтому для простоты примем эту переменную равную 1 (то есть мы указываем, что предсказываемое значение будет равно предыдущему состоянию).
В - переменная определяющая применение управляющего воздействия. Так как управляющих воздействий в нашей модели нет (нет информации о них), то принимаем В = 0.
Н - матрица определяющая отношение между измерениями и состоянием системы, примем эту переменную также равную 1.
Сглаживающие свойства:
Я - ошибка измерения может быть определена испытанием измерительных приборов и определением погрешности их измерения.
0 - определение шума процесса является более сложной задачей, так как требуется определить дисперсию процесса, что не всегда возможно. В любом случае, можно подобрать этот параметр для обеспечения требуемого уровня фильтрации [3].
1000
0 100 200 300 400
Рис. 5. Результат работы фильтра Библиографический список
1. Горбачёв А.Ю. Критерии оценки алгоритмов оптимальной фильтрации // Авиакосмическое приборостроение. - 2008. - № 6.
2. Brown R.G., Hwang P.Y.C. Introduction to Random Signals and Applied Kalman Filtering, Second Edition, John Wiley & Sons, Inc. - 1992.
3. Kalman R.E. "A New Approach to Linear Filtering and Prediction Problems," Transaction of the ASME-Journal of Basic Engineering. - 1960. - P. 35-45.
КРАВЧУК ВЛАДИСЛАВ ИГОРЕВИЧ - магистрант факультета информатики и робототехники, Уфимский государственный авиационный технический университет, Россия.