ArduPilot Autotune настройка

Все статьи


Что такое Autotune?

Autotune — это встроенный в ArduPilot алгоритм автоматической настройки ПИД-регуляторов (PID), который:

  • Автоматически подбирает параметры Stabilize P, Rate P, Rate I, Rate D
  • Оптимизирует максимальные угловые ускорения (ATC_ACC_*_MAX)
  • Обеспечивает максимальную отзывчивость без значительных перерегулирований
  • Работает для осей Roll, Pitch и Yaw (в Copter 4.4+)
PID контроллер схема

⚠️ Предупреждение: Autotune не всегда даёт идеальный результат и может привести к неуправляемому поведению дрона. Всегда тестируйте в безопасной зоне!


Подготовка к Autotune

Контрольный список перед запуском:

□ Дрон стабильно летает в режиме AltHold (ручная настройка базовых параметров)
□ Установлены и настроены фильтры гироскопа (Dynamic Notch)
□ Параметр MOT_THST_EXPO корректен для ваших ESC
□ Камера/подвес и другие подвижные элементы сняты или надёжно зафиксированы
□ Погода: слабый ветер (<5 м/с), открытая площадка без препятствий
□ Аккумулятор полностью заряжен (минимум 80%)
□ Включено логирование DataFlash (.bin)

Настройка режимов полёта в Mission Planner:

Настройка режимов полёта
  1. Настройте режимы полёта: назначьте один переключатель на AltHold
  2. Назначьте функцию Autotune:
  • Вариант A: RCx_OPTION = 17 (Aux Function → AutoTune)
  • Вариант B: назначьте целый режим полёта AUTOTUNE на переключатель
  1. Проверьте триммеры: убедитесь, что стики передатчика в нуле (нет триммов!)
Калибровка радио

⚠️ Важно: Дрон должен дёргаться (twitch) под углом 90° к направлению ветра для корректной настройки каждой оси.


Ключевые параметры Autotune

ПараметрДиапазон / ЗначениеОписание
AUTOTUNE_AXES1=Roll, 2=Pitch, 4=Yaw, 8=Yaw DКакие оси настраивать (суммируйте: 15 = все оси)
AUTOTUNE_AGGR0.05–0.10 (default: 0.1)Агрессивность: 0.1 = агрессивный, 0.05 = мягкий
AUTOTUNE_MIN_D≥0.001Минимальное значение D-терма после настройки
AUTOTUNE_GMBKDefault: 25 (%)Запас устойчивости: насколько алгоритм «отступает» от границы нестабильности
ATC_INPUT_TCDefault: 0.1, рекомендация: 0.25Сглаживание ввода пилота (если дрон слишком «нервный» после настройки)
MOT_THST_EXPOЗависит от ESCКритичен для линейного отклика моторов (обычно 0.65–0.75 для BLHeli)
Таблица параметров

Пошаговый запуск Autotune

Рабочий процесс Autotune:

Этап 1: Взлёт и подготовка

1. Дождитесь спокойной погоды, выберите просторную площадку
2. Убедитесь, что переключатель Autotune в положении LOW (выключен)
3. Взлетите и перейдите в режим AltHold на высоте 10–20 метров
4. Сориентируйте дрон так, чтобы ось настройки была перпендикулярна ветру
   (например, для настройки Roll — носом против ветра)

Этап 2: Запуск алгоритма

5. Переключите Aux-канал в HIGH (или активируйте режим AUTOTUNE)
   → Дрон начнёт «подёргиваться» (~20°) влево-вправо, затем вперёд-назад
6. Наблюдайте за сообщениями в GCS (Mission Planner/QGroundControl):
   • "AutoTune: Twitch" — начало теста
   • "AutoTune: (P) Rate P Up" — корректировка параметра
   • "success X/4" — успешных итераций из 4
7. При необходимости корректируйте позицию стиками:
   • Во время коррекции используются исходные ПИД
   • После отпускания стиков алгоритм продолжит с места остановки

Визуализация процесса настройки:

График настройки Autotune

Что показывает график:

  • Красная линия — целевая угловая скорость (Target Rate)
  • Зелёная линия — фактическая угловая скорость (Actual Rate)
  • Стрелка влево — фактическая скорость немного ниже целевой (это нормально)
  • Стрелка вправо — фактическая скорость превышает целевую (FF gain слишком высокий)
График настройки增益

Дополнительный график:

  • Красная линия — ATSH.gain (коэффициент усиления)
  • Зелёная линия — частота (frequency)
  • Стрелка — частота на пике выбирается для настройки gain
  • Стрелки внизу — Angle P gain (SP колонка) повышается пока response gain не достигнет значения 2.0

Этап 3: Завершение и тест

8. После завершения настройки дрон вернётся к исходным ПИД
9. Переключите Autotune OFF → ON (или выйдите/войдите в режим) 
   для тестирования новых параметров
10. Оцените поведение:
    • Слишком «нервный»? → увеличьте ATC_INPUT_TC до 0.25
    • Слишком «вялый»? → увеличьте AUTOTUNE_AGGR до 0.10 и повторите
11. Если результат устраивает: 
    • Оставьте переключатель в HIGH (или в режиме AUTOTUNE)
    • Посадите и отключите моторы → параметры сохранятся в EEPROM

Масштабирование по напряжению батареи

Почему это важно?

По мере разряда батареи напряжение падает → моторы выдают меньшую тягу при том же PWM-сигнале → эффективность ПИД-регуляторов снижается → дрон становится «вялым» в конце полёта.

Правильные параметры для Copter:

ПараметрРекомендуемое значениеОписание
MOT_BAT_VOLT_MAX4.2 × количество ячеекНапряжение полной зарядки (напр. 12.6 В для 3S)
MOT_BAT_VOLT_MIN3.3 × количество ячеек или напряжение фейлсейфаМинимальное рабочее напряжение
MOT_BAT_CURR_MAX(опционально) лимит тока в амперахЗащита батареи от перегрузки

Настройка в Mission Planner:

Настройка напряжения батареи
1. Config → Full Parameter List
2. Найдите:
   • MOT_BAT_VOLT_MAX = 12.6    # для 3S LiPo
   • MOT_BAT_VOLT_MIN = 9.9     # ~3.3В/ячейка
3. Убедитесь, что подключен и калиброван датчик напряжения (BATT_MONITOR > 0)
4. Сохраните параметры → Перезагрузите полётный контроллер

⚠️ Важно: Правильная калибровка датчика напряжения критична для работы масштабирования ПИД!

Как работает масштабирование:

Если включено (MOT_BAT_VOLT_MAX > 0):

Полное напряжение (12.6В для 3S):
  → ПИД-коэффициенты применяются "как есть"

Среднее напряжение (11.4В):
  → Коэффициенты умножаются на 12.6/11.4 ≈ 1.11
  → Контроллер "усиливает" реакцию, компенсируя потерю тяги

Низкое напряжение (10.5В):
  → Коэффициенты × 1.2, но не выше, чем позволяет MOT_BAT_VOLT_MIN

Визуализация эффекта:

Без масштабирования:          С масштабированием:
[Полёт 0-10 мин]             [Полёт 0-10 мин]
┌─────────────────┐         ┌─────────────────┐
│ Стабильный отклик         │         │ Стабильный отклик         │
└────────────────              └────────────────
         ▼                           ▼
─────────────────┐         ─────────────────┐
│ "Вялый" отклик              │        │ Стабильный отклик       │
│ ПИД не компенсирует  │        │ ПИД усиливается           │
│ падение напряжения   │        │ автоматически                │
└─────────────────┘     └─────────────────┘

AUTOTUNE_AGGR — Детальное объяснение

Что это?

AUTOTUNE_AGGR контролирует порог чувствительности алгоритма к перерегулированию (overshoot) и отскоку D-терма при настройке ПИД.

Диапазон значений:

ЗначениеХарактер настройкиКогда использовать
0.050Мягкая, консервативная• Гибкие рамы / подвесы • Сильная вибрация • Обучение / первые тесты
0.075Средняя (рекомендуемая)• Стандартные сборки • Умеренные условия
0.100Агрессивная, отзывчивая• Жёсткие гоночные рамы • Нужна максимальная реакция • Хорошие фильтры шума

Как именно работает:

Высокое значение (0.10):
+ Более высокие итоговые P и D-коэффициенты
+ Лучшее подавление внешних возмущений (ветер)
+ Более "острая" реакция на стики
- Выше риск осцилляций при шуме/вибрации

Низкое значение (0.05):
+ Более плавное, предсказуемое поведение
+ Устойчивость к шуму гироскопа и механическим люфтам
- Меньшая отзывчивость, "вялый" отклик

Визуализация PID отклика:

PID Tuning Visualization

Что показывает график:

  • Красная линия — ATRP.Demanded (требуемая скорость)
  • Зелёная линия — ATRP.Achieved (достигнутая скорость)
  • Синяя линия — ATRP.P (прогрессия P-коэффициента во время настройки)

Практические рекомендации:

# Начните с дефолта:
AUTOTUNE_AGGR = 0.1

# Если после автотюна дрон "нервный":
AUTOTUNE_AGGR = 0.075  # или 0.05 для повторного запуска

# Если дрон "вялый" и не держит позицию:
AUTOTUNE_AGGR = 0.1    # убедитесь, что не выше 0.10

# Дополнительно для сглаживания ввода пилота:
ATC_INPUT_TC = 0.25    # вместо дефолтных 0.1

⚠️ Совет: Изменение AUTOTUNE_AGGR требует повторного запуска автотюна — параметры не пересчитываются «на лету».


Диагностика и типовые проблемы

Autotune не запускается (нет «подёргиваний»):

  • Причина: стики не в нуле, есть триммы
  • Решение: увеличьте мёртвую зону: RC1_DZ, RC2_DZ = 50+

Дрон стал слишком «нервным» после настройки:

  • Причина: слишком агрессивная настройка
  • Решение:
  • Уменьшите AUTOTUNE_AGGR до 0.075 или 0.05 и повторите
  • Увеличьте ATC_INPUT_TC до 0.25 для сглаживания ввода
  • Вручную уменьшите угловые P: ATC_ANG_*_P с 10 до 6

Дрон «вялый», не держит позицию:

  • Причина: слишком консервативная настройка
  • Решение:
  • Увеличьте AUTOTUNE_AGGR до 0.10
  • Убедитесь, что MOT_THST_EXPO корректен
  • Проверьте, не перегружены ли моторы/винты

Анализ логов:

Анализ логов в Mission Planner

В DataFlash-логах ищите сообщения:

  • ATUN — обзор процесса Autotune
  • ATDE — детальные данные по каждой итерации
  • ATNH — сообщения о ходе настройки (видны в таблице внизу графика)

Анализируйте в Mission Planner: Flight Data → Log Browse → ATUN/ATDE/ATNH


Сохранение и пост-обработка

Как параметры сохраняются:

Сохраняются при разоружении (disarm), ЕСЛИ:
   • Переключатель Autotune в HIGH, ИЛИ
   • Активен режим полёта AUTOTUNE

НЕ сохраняются, если:
   • Вы переключили Autotune в LOW перед разоружением
   • Вы сменили режим полёта перед посадкой

Тестирование в других режимах:

Назначьте функцию RCx_OPTION = 180 (AUTOTUNE_TEST_GAINS) для быстрого переключения между исходными и настроенными ПИД в любом режиме полёта.

Рекомендуемые «ручные корректировки» после Autotune:

Для большинства гражданских коптеров:

ATC_ANG_PIT_P = 6.0    # вместо 10.0 (если Autotune дал выше)
ATC_ANG_RLL_P = 6.0
ATC_ANG_YAW_P = 6.0
ATC_RAT_YAW_P = 0.5    # вместо 1.0
ATC_RAT_YAW_I = ATC_RAT_YAW_P × 0.1
ATC_RAT_YAW_D = 0      # обычно не требуется

Продвинутые настройки

Оптимизация для крупных БПЛА:

# Для рам с винтами ≥13" (33 см):
ATC_RAT_RLL_FLTT = 10
ATC_RAT_RLL_FLTD = 10
ATC_RAT_PIT_FLTT = 10
ATC_RAT_PIT_FLTD = 10

# Увеличение приоритета стабилизации над тягой:
ATC_THR_MIX_MAX = 0.9  # default: 0.5
# ⚠️ Опасно при высоких Rate-gain: может мешать снижению при осцилляциях

# Включение настройки D-терма для Yaw (Copter 4.4+):
AUTOTUNE_AXES = 15     # 1+2+4+8 = все оси + Yaw D

Связка: AUTOTUNE + Voltage Scaling

Рекомендуемый порядок настройки:

1. Сначала включите масштабирование напряжения:
   MOT_BAT_VOLT_MAX = 12.6    # под вашу батарею
   MOT_BAT_VOLT_MIN = 9.9

2. Затем запускайте Autotune:
   AUTOTUNE_AGGR = 0.1        # начните с агрессивного
   AUTOTUNE_AXES = 3          # Roll + Pitch (Yaw отдельно при необходимости)

3. После успешного автотюна:
   • Протестируйте полёт при полном и разряженном АКБ
   • Если в конце полёта дрон "плывёт" — проверьте, работает ли масштабирование
   • Если дрон слишком нервный — уменьшите AUTOTUNE_AGGR и повторите

Шпаргалка: Быстрые настройки для крупных БПЛА

# Для крупных БПЛА с длительным полётом

# Масштабирование ПИД по напряжению (ОБЯЗАТЕЛЬНО):
MOT_BAT_VOLT_MAX = 25.2      # для 6S (4.2 × 6)
MOT_BAT_VOLT_MIN = 19.8      # ~3.3 × 6, или напряжение фейлсейфа

# Автотюн:
AUTOTUNE_AGGR = 0.075        # начните с умеренного для безопасности
AUTOTUNE_AXES = 3            # Roll + Pitch
AUTOTUNE_MIN_D = 0.002       # минимальный D-терм
AUTOTUNE_GMBK = 25           # запас устойчивости 25% (дефолт)

# Фильтры для крупных рам (винты ≥13"):
ATC_RAT_RLL_FLTT = 10
ATC_RAT_RLL_FLTD = 10
ATC_RAT_PIT_FLTT = 10
ATC_RAT_PIT_FLTD = 10

# Сглаживание ввода (если после настройки дрон "нервный"):
ATC_INPUT_TC = 0.25

Полезные ссылки

РесурсОписание
Официальная документация: AutotuneПолное руководство по Autotune
Voltage Scaling (Copter)Настройка масштабирования по напряжению
Dynamic Notch FiltersФильтрация шума гироскопа
Mission Planner DownloadПоследняя версия Mission Planner
ArduPilot ParametersПолный список параметров

Итоговая таблица параметров

КатегорияПараметрЗначениеПримечание
AutotuneAUTOTUNE_AGGR0.075–0.10Начните с 0.075 для безопасности
AutotuneAUTOTUNE_AXES3 (Roll+Pitch)15 = все оси + Yaw D
AutotuneAUTOTUNE_MIN_D0.001–0.002Увеличьте при overshoot
BatteryMOT_BAT_VOLT_MAX4.2 × ячейки12.6В для 3S, 25.2В для 6S
BatteryMOT_BAT_VOLT_MIN3.3 × ячейки9.9В для 3S, 19.8В для 6S
FiltersATC_RAT_*_FLTT10 HzДля крупных рам
InputATC_INPUT_TC0.15–0.25Сглаживание стика
ThrottleMOT_THST_EXPO0.5–0.7Избегайте >0.8

⚠️ Напоминание: Всегда сохраняйте .bin логи при тестировании новых настроек — они позволяют точно диагностировать, работает ли масштабирование и как алгоритм автотюна подбирал коэффициенты.

Удачной настройки! Если что-то пошло не так — вернитесь к исходным ПИД, проанализируйте логи и попробуйте снова с более консервативными настройками AUTOTUNE_AGGR.

Прокрутить вверх