Продолжаем заметки для любознательных коптероводов, которые хотят понимать чуть больше, чем требуется для сборки и полетов.
3.3.3. Фильтр скользящего среднего
Итак сегодня: Зачем нужна фильтрация, и что она делает. Почему нельзя отфильтровать сильные вибрации. Интерактивный пример фильтрации с возможностью покрутить алгоритм в руках. Но на самом деле ей напичкан буквально фильтрация по скользящему среднему контроллер. Взять, например, барометр.
Основы сглаживания и фильтрации данных: экспоненциальное среднее.
Он измеряет атмосферное давление, по которому можно вычислять высоту относительно точки взлета. Но у любого барометра есть своя погрешность.
Кроме нее на показания датчика влияют различные внешние факторы: В результате програма полетного контроллера получает не фактическую высоту, а измеренную, которая каждый раз отличается от фактической на какую-то случайную погрешность: На вход этого алгоритма поступают измеренные значения чего-либо, а на выходе у него — сглаженные значения. Таких механизмов существует великое множество. У каждого есть свой принцип работы и область применения.
Вот некоторые из фильтров, которые можно установить для простой скользящей средней. Вариант 1. Вариант 2. Вариант 3.
Например, можно брать среднее арифметическое по нескольким последним измерениям. Например, четыре: Обобщенная формула для локального окна n: Фильтрация по скользящему среднему вдаваясь в подробности можно сказать, что недостатками такого подхода будут: На выход фильтра одинаково влияют все измеренные значения внутри локального окна.
1. Введение
К формуле экспоненциального среднего приводят попытки исправить эти два пункта. Выглядит немного странно: Но самое свежее измеренное значение все еще очень сильно влияет на результат: Можно ослабить это влияние: Это и есть экспоненциальный фильтр. Чем меньше альфа, тем более гладким будет результат. Два крайних случая: В первом случае фильтр вообще не зависит от измеренных значений, то есть он очень-очень гладкий. Во втором случае результат в точности равен последнему измеренному значению, то есть фильтрация в принципе не происходит.
В статье описаны методы сглаживания колебаний в последовательностях. Введение Задача сглаживания колебаний возникает когда надо выявить основное направление изменения сильно осцилирующей последовательности. Это могут быть показания датчика уровня топлива в автомобиле или биржевые сводки. Различные варианты решения этой задачи мы рассмотрим далее. Взвешенное скользящее среднее Взвешенное скользящее среднее - WMA Weighted Moving Average [ 1 ], этот метод похож на предыдущий SMAего особенность в том, что он учитывает последовательность истории для усреднения.
Экспоненциальный фильтр — комбинация этих двух крайностей с настраиваемой пропорцией. В программке ниже красная линия — фактическая величина. Зеленая линия — результат работы фильтра. При альфа близких к единице фильтрация почти не осуществляется: При уменьшении альфа можно наблюдать, как зеленая линия становится плавнее.
Но с ростом плавности растет и запаздывание зеленой линии от красной. Это называется сдвигом фазы.
Чем сильнее фильтрация, тем сильнее сдвиг фазы. И здесь всегда приходится искать золотую середину: Похожим свойством обладает и механическое демпфирование. Хоть этот процесс гораздо сложнее из-за собственных частот, физических свойств демпферов, но аналогию с экспоненциальным фильтром провести можно: Всем хорошей фильтрации! До новых коптервстреч!
Запись опубликована в рубриках: Все статьиМатематика полета. Скопируйте прямую ссылкучтобы поделиться. Post navigation.