Ответы пользователя по тегу Датчики
  • Как использовать фильтр Калмана для гироскопа на arduino?

    Kyodza
    @Kyodza
    Инженер по лётным испытаниям лёгких самолетов
    Меня учили, что фильтр Калмана - это адаптивный фильтр. Адаптация заключается в том, что надо иметь мат.модель процесса, который вы сглаживаете. То есть полученное замеренное значение сравнивается с прогнозом и на основании разницы к нему применяется поправка. Разумеется, что уравнения движения могут содержать и X, и Y, и Z и остальные буквы латинского и русского алфавита.

    Например, уравнение движения самолета состоит минимум из 6 диф.ур. А если есть автоматические устройства, которые живут совместной жизнью и самолёт летит в реальной атмосфере, то количество уравнений доходит до 40.

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

    Один знакомый математик сказал, что ф.К. это не формула, а метод, реализаций которых можно наизобретать бесчисленное кол-во.

    Если не сложно, накидайте ссылок, на какие конкретно задачи, примеры реализаций и цели вы ориентируетесь. Сам интересуюсь этим фильтром давно, со студенчества, но мало, кто толково может объяснить суть, и уж тем более показать готовый алгоритм.

    П.С. Есть готовый авиагоризонт WT901B со встроенным ф.К. В последних реализациях его сделали с настраиваемым частотным фильтром, 6 значений частот фильтрации. Мы этот авиагоризонт используем уже очень давно, с 2017 г. Продается на Али, 3000 руб примерно. Выдает весь спектр сигналов по 3 осям - перегрузки - угловые скорости - магнитное поле - пространственные углы. Плюс давление, абсолютная барометрическая высота и температура на плате (=воды в районе Сочи). Рекомендую взять еще и отладочную плату на USB-C, удобно. Общаемся с этим модулем с Mega 2560 R3 по I2C, так удобнее, чем по UART.

    П.С.С.: https://habr.com/ru/post/255661/ В приложении к статье готовый код ф. К. и огромный список литературы на эту тему.

    Можно применить несколько Ардуин обмениваться между ними данными по I2C. У меня сейчас в работе конструкция, в которой основной контроллер Мега 2560, и две вспомогательных Ардуино Pro Micro. Одна общается с GPS другая измеряет длительность сигнала. Так оказалось проще, чем нагрузить всю работу на одну Мегу.
    Ответ написан
    Комментировать