Main menu

Оценивание состояния систем: фильтр Калмана и анализ зашумленных данных

Проблема скрытых состояний и неточных датчиков

В задачах управления сложными динамическими системами — будь то беспилотный автомобиль, межконтинентальная ракета или экономическая модель — мы сталкиваемся с двумя фундаментальными проблемами. Во-первых, мы не всегда можем измерить желаемые параметры напрямую (скрытое состояние). Например, мы можем измерять температуру снаружи двигателя, но нам нужно знать температуру в его центре. Во-вторых, любые измерения в реальном мире подвержены случайным ошибкам и шумам датчиков. Данные GPS скачут на метры, акселерометры накапливают ошибку дрейфа. Как из этого хаоса неточных, зашумленных данных извлечь истинное состояние системы в режиме реального времени?

Решение этой задачи было найдено в 1960 году Рудольфом Калманом. Его алгоритм, получивший название Фильтр Калмана, стал одним из важнейших открытий в истории вычислительной математики и теории управления. Именно этот фильтр позволил бортовым компьютерам миссии «Аполлон» точно оценивать траекторию спускаемого модуля и успешно приземлиться на Луну, несмотря на сильнейшие шумы радаров.

Математика предсказаний и коррекций

Фильтр Калмана работает по принципу рекурсивного байесовского оценивания. Он не требует хранения огромного массива прошлых данных; ему нужны только результаты предыдущего шага и текущее измерение. Алгоритм элегантно объединяет два источника информации: физическую (математическую) модель системы и показания датчиков. Работа фильтра состоит из бесконечно повторяющегося двухтактного цикла: Предсказание (Predict) и Коррекция (Update).

На этапе Предсказания фильтр использует уравнения физики (например, законы Ньютона), чтобы рассчитать, где должна оказаться система на следующем шаге. Поскольку модель не идеальна, фильтр также рассчитывает матрицу ковариации ошибок (степень своей неуверенности в этом предсказании). Затем наступает этап Коррекции. Датчик присылает новое, зашумленное измерение. Фильтр сравнивает предсказанное значение с измеренным.

Магия коэффициента усиления Калмана

Суть алгоритма скрыта в вычислении специальной матрицы — коэффициента усиления Калмана (Kalman Gain). Этот коэффициент определяет, кому алгоритм должен доверять больше в данный момент: своей математической модели или показаниям датчика. Если модель очень точная, а датчик сильно шумит (например, во время бури), коэффициент усиления уменьшается, и фильтр игнорирует скачки показаний, опираясь на физику. Если же модель неточна (возник непредсказуемый порыв ветра), а датчик высокоточный, коэффициент усиления возрастает, и фильтр жестко корректирует свою внутреннюю оценку по данным прибора.

Путем умножения матриц и обновления ковариаций, фильтр Калмана математически доказывает, что его оценка является оптимальной (минимизирует среднеквадратичную ошибку) для линейных систем с нормальным гауссовским шумом. Для нелинейных систем (с которыми мы работаем в 99% случаев) был разработан Расширенный фильтр Калмана (EKF), который на каждом шаге линеаризует уравнения с помощью матриц Якоби, оставаясь сегодня абсолютным стандартом в робототехнике, навигации дронов и системах автопилотов.

Оценить
(0 votes)
Вверх

Соц. сети