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 км/ч
- Фактическая скорость вращения: +2300°/с
- Гироскоп ICM из-за переполнения показывает: -1900°/с
- Контроллер усиливает вращение (ошибка > 4000°/с!)
- Коптер входит в "бесконечное" вращение (YSTTM)
- Потеря контроля → падение или потеря коптера
- Фактическая скорость вращения: +2300°/с
- Система детектирует переполнение
- PID отключается → моторы сбрасываются на idle
- Через 0.8 сек вращение падает до 1700°/с
- Система перезапускается → контроль возвращается
Восстановление контроля происходит за 0.8-1.2 секунды вместо бесконечного вращения!
Важно знать:
Защита от переполнения — это "скорая помощь". Для полного восстановления контроля после срабатывания используется функция yaw_spin_recovery, которая активно тормозит вращение с помощью моторов.
Оптимальная настройка:
set yaw_spin_recovery = ON + set gyro_overflow_detect = YAW

-
Betaflight | Восстановление после вращения по рысканью и обнаружение "переполнения" гироскопа.
Эта функция, включенная по умолчанию в Betaflight 3.4, сокращает продолжительность и интенсивность неконтролируемых вращений по рысканью (yaw).