Перейти к содержимому
Betaflight | Защита от переполнения гироскопа (Gyro Overflow Detect)

Betaflight | Защита от переполнения гироскопа (Gyro Overflow Detect)

Вторник, 22 июля 2025

Суть проблемы

Современные гироскопы имеют ограниченный диапазон измерений (обычно ±2000°/с). При превышении этого значения происходит переполнение (overflow) — гироскоп не может корректно измерить скорость вращения, что приводит к:

  • 1 Инверсии показаний — вместо +2000°/с гироскоп показывает -2000°/с (или наоборот)
  • 2 Катастрофическому сбою стабилизации — контроллер получает ложные данные → отправляет неверные команды моторам → коптер теряет управление

Как работает защита

Детектирование переполнения

Алгоритм постоянно проверяет "скачки" показаний гироскопа, превышающие физически возможные значения (например, изменение на 4000°/с за 1 мс)

Экстренное отключение PID-регуляторов

При обнаружении переполнения система:

if gyro_overflow_detected:
    disable_all_PIDs() # Отключает систему стабилизации
    set_motors_to_idle() # Сбрасывает моторы на холостой ход

Восстановление работы

Контроллер возобновляет нормальную работу только после:

  • Стабилизации скорости вращения (обычно < 1850°/с)
  • Получения стабильных показаний гироскопа в течение 20-50 мс

Типы гироскопов и их уязвимость

Тип гироскопаУязвимость к переполнениюРекомендуемые настройкиРаспространенные модели
MPU6000/6500 Низкая gyro_overflow_detect = OFF Matek F405, Omnibus F4
ICM-42688/P Высокая gyro_overflow_detect = ALL Matek F722, Diatone Mamba
BMI270 Средняя gyro_overflow_detect = YAW SpeedyBee F405, T-Motor F7

Важное предупреждение

Для ICM-гироскопов защита обязательна — без нее высок риск неконтролируемого вращения ("YSTTM" или "взлет до луны"). Отключение защиты на таких гироскопах может привести к потере коптера!

Практические следствия

Активация защиты в Betaflight:

# Для всех осей (рекомендуется для ICM)
set gyro_overflow_detect = ALL

# Только для оси рысканья (YAW)
set gyro_overflow_detect = YAW

# Полное отключение (только для MPU)
set gyro_overflow_detect = OFF

Признаки срабатывания защиты:

  • Характерный звуковой сигнал (beep-beep-beep)
  • Мигание светодиодов на полетном контроллере
  • Сброс моторов на минимальные обороты
  • Кратковременная потеря реакции на команды

Пример из практики

Сценарий: Удар о ворота на скорости 100 км/ч

БЕЗ защиты
  1. Фактическая скорость вращения: +2300°/с
  2. Гироскоп ICM из-за переполнения показывает: -1900°/с
  3. Контроллер усиливает вращение (ошибка > 4000°/с!)
  4. Коптер входит в "бесконечное" вращение (YSTTM)
  5. Потеря контроля → падение или потеря коптера
С защитой
  1. Фактическая скорость вращения: +2300°/с
  2. Система детектирует переполнение
  3. PID отключается → моторы сбрасываются на idle
  4. Через 0.8 сек вращение падает до 1700°/с
  5. Система перезапускается → контроль возвращается

Восстановление контроля происходит за 0.8-1.2 секунды вместо бесконечного вращения!

Важно знать:

Защита от переполнения — это "скорая помощь". Для полного восстановления контроля после срабатывания используется функция yaw_spin_recovery, которая активно тормозит вращение с помощью моторов.

Оптимальная настройка:
set yaw_spin_recovery = ON + set gyro_overflow_detect = YAW

Betaflight | Защита от переполнения гироскопа (Gyro Overflow Detect) ID 49