Перейти к содержимому
Настройка PID-регулятора в системах управления полетом

Настройка PID-регулятора в системах управления полетом

Настройка ПИД-регулятора

Каждый аспект динамики полёта БПЛА контролируется ПИД-регулятором. Это алгоритм, отвечающий за реакцию на команды с пульта управления и поддержание стабильности аппарата в воздухе с использованием данных гироскопов и/или акселерометров (в зависимости от режима полёта).

ПИД-параметры — это набор коэффициентов, определяющих поведение регулятора. Оптимальные значения параметров различаются для каждого БПЛА, поэтому, если вы не найдёте пользователя с аналогичной конфигурацией, готового поделиться своими настройками, потребуется провести ряд экспериментов для подбора наиболее эффективных значений.

В общем случае задача ПИД-регулятора — обеспечить такое изменение угловой скорости БПЛА по трём осям, которое соответствует командам, задаваемым с помощью стиков пульта управления. Рассчитывается ошибка — разница между целевой скоростью вращения и фактической, измеренной гироскопами, после чего регулятор стремится эту ошибку минимизировать.

ПИД-параметры

  • P - параметр (пропорциональный) управляет силой коррекции, применяемой для достижения заданного угла или скорости вращения. Если значение P слишком мало, БПЛА будет плохо реагировать на команды и не сможет сохранять устойчивость. Слишком высокое значение приведёт к быстрым колебаниям и вибрациям из-за постоянного перерегулирования.
  •  I - параметр (интегральный) корректирует длительные небольшие отклонения. Низкое значение I может вызывать медленный дрейф положения дрона, а слишком высокое — приведёт к колебаниям (но с меньшей частотой, чем при высоком P).
  •  D - параметр (дифференциальный) увеличивает устойчивость системы, анализируя скорость изменения ошибки. При быстром её уменьшении D-параметр снижает силу коррекции, чтобы предотвратить перерегулирование цели.

TPA и точка TPA (TPA Breakpoint)

TPA означает Throttle PID Attenuation (затухание ПИД-коэффициентов при увеличении тяги). 

«TPA позволяет агрессивно настроенному мультироторному БПЛА снижать значения ПИД-коэффициентов при увеличении тяги выше порогового значения TPA. Это устраняет высокочастотные колебания».

Обратите внимание, что параметр TPA можно настраивать через CLI или на вкладке "PID TUNING" графического интерфейса. Значение tpa_breakpoint также устанавливается через CLI.

Стоит учитывать, что TPA и tpa_breakpoint могут быть недоступны в некоторых типах ПИД-контроллеров. Подробную информацию см. в описании конкретного контроллера.

TPA применяется для снижения значений ПИД-коэффициентов в зависимости от уровня тяги. Он используется для демпфирования ПИД-параметров при достижении максимальной тяги.

  • TPA — процент снижения значений ПИД-коэффициентов при полной тяге.
  • tpa_breakpoint — точка на кривой тяги, начиная с которой начинает действовать TPA.

Пример:

TPA = 50 (или 0.5 в GUI) и tpa_breakpoint = 1500 (при диапазоне тяги 1000–2000):

  • При значении 1500 на канале тяги начинает действовать TPA.
  • При 3/4 тяги (1750) значения ПИД-коэффициентов снижаются примерно на 25%.
  • При полной тяге (2000) снижение составляет 50%.

TPA может повысить угловую скорость при увеличении тяги, что позволяет выполнять более резкие перевороты и кувырки благодаря связи ПИД-параметров и скоростей. Только контроллеры MWREWRITE и LUX используют линейную реализацию TPA, при которой угловые скорости не влияют на работу функции.

Пример диаграммы TPA

network-asset-165317342-9639a7f8-1a05-4584-9b80-3faa2da565cb-20250701214732-4rmprpx.png

Как и зачем использовать?

Если вы наблюдаете колебания при 3/4 тяги, установите **tpa_breakpoint = 1750** или ниже (при стандартном диапазоне 1000–2000), затем постепенно увеличивайте TPA, пока колебания не исчезнут. Обычно лучше начать немного раньше момента появления колебаний, чтобы компенсировать их до возникновения.

ПИД-контроллеры

В Cleanflight 1.x были доступны экспериментальные ПИД-контроллеры, но начиная с версии 2.0 используется только один.

ПИД-контроллер "LUXFloat"

Это новый ПИД-контроллер, основанный на вычислениях с плавающей точкой. MW23 и MWREWRITE используют целочисленную арифметику, которая была более быстрой на ранних 8-битных контроллерах MultiWii, но менее точной.

Этот контроллер компенсирует возможные вариации времени цикла, что позволяет не перенастраивать ПИД-коэффициенты при изменении этого параметра.

Это первый ПИД-контроллер, разработанный специально для 32-битных процессоров, и он не является наследником MultiWii.

Сила автовыравнивания в Angle-режиме регулируется LEVEL-параметром P, обозначенным в интерфейсе как "Angle", "Strength". В версиях до v1.13.0 использовался параметр `level_angle`. По умолчанию значение равно 50.

Сила автовыравнивания в Horizon-режиме регулируется LEVEL-параметром I, обозначенным как "Horizon", "Strength". Также использовался параметр `level_horizon` до версии v1.13.0. Значение по умолчанию — 50.

Переход между автовыравниванием и акробатическим поведением в Horizon-режиме регулируется LEVEL-параметром D, обозначенным как "Horizon", "Transition". Ранее использовался параметр `sensitivity_horizon`. Он задаёт процент хода стика, при котором активно автовыравнивание. Меньшие значения увеличивают зону действия автовыравнивания.

Например, при значении 100:

  • - При центральном положении стика — 100% силы автовыравнивания.
  • - При 50% хода — 50% силы.
  • - При 100% хода — автовыравнивание отключено.

При уменьшении чувствительности до 75:
- Центр — 100%, 63% хода — 50%, 75% и выше — отсутствие автовыравнивания.

Описание команд Horizon-режима приведено ниже.

RC Rate, Pitch and Roll Rates, Yaw Rate

  • RC Rate — общий множитель входных сигналов стика для тангажа, крена и рыскания. Определяет базовую чувствительность стика.
  • Pitch and Roll Rates — множитель чувствительности стика отдельно для крена и тангажа. Чувствительность остаётся неизменной на крайних положениях стика. Значение "0" означает отсутствие усиления сверх установленного в RC Rate.
  • Yaw Rate — множитель чувствительности стика для рыскания.

Фильтры

  • gyro_lpf - устанавливает значение аппаратного фильтра нижних частот для гироскопа. Если значение равно 0 или 256, гироскоп использует минимальную доступную частоту аппаратной фильтрации — 256 Гц, а внутренняя частота дискретизации достигает максимума — 8 кГц, обеспечивая минимальную задержку.

    Чем меньше значение gyro_lpf, тем сильнее фильтрация сигнала гироскопа. Более сильная фильтрация снижает уровень шума в данных гироскопа до их передачи на расчёт PID-регулятора. Однако усиленная фильтрация увеличивает задержки, что может вызывать колебания и снижение отзывчивости управления.

    Фильтрация необходима, поскольку шум от моторов и рамы может приводить к перегреву двигателей, особенно если этот шум усиливается D-составляющей (Dterm) в квадрокоптерах с малой массой и быстрыми ESC с функцией торможения.

    Если значение установлено на 188 или ниже, внутренняя частота дискретизации гироскопа снижается до 1 кГц, а задержки увеличиваются. Более высокая частота дискретизации обеспечивает лучшую отзывчивость, но может привести к появлению помех и искажений сигнала.

    Значение 188 позволяет синхронизировать полетный контроллер с гироскопом на частоте 1 кГц (при условии, что функция gyro_sync включена и поддерживается в прошивке), что значительно уменьшает эффект искажений (aliasing).

 

  • gyro_soft_lpf — это программный фильтр нижних частот типа IIR (Infinite Impulse Response), который можно настроить на любую желаемую частоту среза. Если значение параметра больше нуля, фильтр активируется. Он работает после аппаратного фильтра на гироскопе (реализованного в коде полетного контроллера) и дополнительно снижает уровень шума в сигнале.

    Два последовательно включенных фильтра обеспечивают более эффективное подавление высокочастотных шумов — их суммарная частота среза получается примерно вдвое выше, чем у одного фильтра по отдельности. Нет смысла задавать значение gyro_soft_lpf выше, чем у аппаратного фильтра gyro_lpf, так как это не улучшит фильтрацию.

    Обычно gyro_soft_lpf устанавливают примерно на половину частоты аппаратного фильтра, чтобы лучше отсекать высокочастотные помехи перед этапом расчёта PID-регулятора. Частоты выше 100 Гц не представляют интереса для управления полётом и должны быть удалены из сигнала до вычислений PID.

 

  • dterm_cut_hz — это программный фильтр нижних частот типа IIR, который можно настроить на любую желаемую частоту среза. Он применяется после фильтров gyro_cut и фильтрует исключительно данные D-составляющей (D-term).

    Значения D-term зависят от частоты: чем выше частота, тем больше вычисленное значение D-term. Этот фильтр необходим, если несмотря на фильтрацию гироскопа, сохраняется чрезмерный шум в D-term.

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

    Для правильной оптимизации значения dterm_cut_hz рекомендуется использовать запись полетных данных (черный ящик) и анализировать их.

Команды Horizon-режима

CLI-команды horizon_tilt_effect и horizon_tilt_mode управляют влиянием текущего наклона на автовыравнивание в Horizon-режиме.

  • horizon_tilt_effect: Чем выше значение, тем меньше влияние автовыравнивания при увеличении наклона. Значение по умолчанию — 75.
  • horizon_tilt_mode SAFE  | EXPERT: Устанавливает режим работы для 'horizon_tilt_effect'.
  • SAFE — автовыравнивание активно при центральном положении стика. Даже при перевороте БПЛА (180°) он автоматически выровняется.
  • EXPERT — автовыравнивание может быть полностью отключено при перевороте. Полезно для выполнения акробатических манёвров.

Значения horizon_tilt_effect и horizon_tilt_mode настраиваются индивидуально для каждого профиля.

Внешние URLs: 88 ПОЛЕЗНЫЙ КОНСПЕКТ?
0.0/3 rating (0 votes)
Настройка PID-регулятора в системах управления полетом