Skip to content

Посібник з налаштування PID для багатокоптерів (Ручне/Продвинуте)

Ця тема надає докладну інформацію про регулятори PX4 та їх налаштування.

TIP

Autotune is recommended for tuning the vehicles around the hover thrust point, as the approach described is intuitive, easy, and fast. Цього достатньо для багатьох транспортних засобів.

Використовуйте цю тему, коли налаштування навколо точки підняття на тягу не є достатнім (наприклад, на транспортних засобах, де є нелінійності та коливання при високій тяги). Це також корисно для глибшого розуміння того, як працює основне налаштування, і для розуміння того, як використовувати налаштування режиму аеродинамічного положення.

Настройка крокування

INFO

З міркувань безпеки значення за замовчуванням встановлені на низькі значення. Вам потрібно збільшити значення перед очікуванням гарної реакції управління.

Ось деякі загальні рекомендації для настройки:

  • Усі коефіцієнти крокування потрібно збільшувати дуже повільно, оскільки великі коефіцієнти можуть призвести до небезпечних коливань! Зазвичай збільшуйте коефіцієнти на 20-30% за кожною ітерацією, зменшуючи до 5-10% для кінцевої точної настройки.
  • Перед зміною параметра приземліться. Повільно збільшуйте газ і перевіряйте наявність коливань.
  • Настройте транспортний засіб навколо точки з тягою на галуження, і використовуйте параметр кривої тяги, щоб врахувати нелінійності тяги або високі коливання тяги.
  • За потреби увімкніть профіль високошвидкісного журналування за допомогою параметра SDLOG_PROFILE, щоб мати змогу використовувати журнал для оцінки продуктивності крокування швидкості та атитюди (після цього опцію можна вимкнути).

WARNING

Завжди вимикайте MC_AIRMODE при настройці транспортного засобу.

Регулятор швидкості

The rate controller is the inner-most loop with three independent PID controllers to control the body rates (roll, pitch, yaw).

Добре налаштований регулятор швидкості дуже важливий, оскільки він впливає на всі режими польоту. A badly tuned rate controller will be visible in Position mode, for example, as "twitches" or oscillations (the vehicle will not hold perfectly still in the air).

Архітектура/Форма контролера швидкості

PX4 підтримує дві (математично еквівалентні) форми ПІД-регулятора швидкості в одній "змішаній" реалізації: Паралельна та Стандартна.

Користувачі можуть вибрати форму, яка використовується, встановивши пропорційне посилення для іншої форми на "1" (тобто на діаграмі нижче встановіть K на 1 для паралельної форми або P на 1 для стандартної форми - це замінить блоки K або P на лінію).

PID_Mixed

  • G(s) представляє динаміку кутових швидкостей транспортного засобу
  • r - це задана точка регулювання швидкості
  • y є швидкість кутової орієнтації тіла (виміряна гіроскопом)
  • e - це помилка між заданим значенням швидкості та виміряною швидкістю
  • u - це вихід контролера ПІД

Ці дві форми описані нижче.

Похідне поняття (D) знаходиться на шляху зворотного зв'язку, щоб уникнути явища, відомого як похідний удар.

TIP

Для отримання додаткової інформації дивіться:

Паралельний порт

Паралельна форма є найпростішою формою і (тому) часто використовується в підручниках. У цьому випадку вихід контролера просто є сумою пропорційних, інтегральних та диференційних дій.

PID_Parallel

Стандартна форма

Ця форма математично еквівалентна паралельній формі, але основною перевагою є те, що (навіть якщо це здається протирічливим) вона роз'єднує налаштування пропорційного коефіцієнта від інтегрального та диференціального коефіцієнтів. Це означає, що нову платформу легко можна налаштувати, взявши вигоди від дрона зі схожим розміром/інерцією і просто налаштувати коефіцієнт K, щоб він летів належним чином.

PID_Standard

Оцінити Налаштування PID

Пов'язані параметри для налаштування регуляторів швидкості PID є наступні:

The rate controller can be tuned in Acro mode or Stabilized mode:

  • Acro mode is preferred because it allows for isolated rate control testing. However it is significantly harder to pilot.

WARNING

If you choose this mode, you must disable all stick expo and have reasonable maximum rates for all axes:

  • MC_ACRO_EXPO = 0, MC_ACRO_EXPO_Y = 0, MC_ACRO_SUPEXPO = 0, MC_ACRO_SUPEXPOY = 0
  • MC_ACRO_P_MAX = 200, MC_ACRO_R_MAX = 200
  • MC_ACRO_Y_MAX = 100

For PX4 v1.15 and later the defaults are set for this purpose to a maximum rate of 100°/s linear mapping for all axes.

  • Stabilized mode is simpler to fly, but it is also much more difficult to distinguish if attitude or rate controller causes a certain behavior.

Якщо транспортний засіб зовсім не літає:

  • Якщо при першій спробі злітання виникають сильні коливання (до того ж, коли воно не летить), зменште всі виграші P та D до тих пір, поки воно не злетить.
  • Якщо реакція на рух RC є мінімальною, збільште виграші P.

Фактична настройка приблизно однакова у режимі ручного керування або режимі акробатичного керування: Ви ітеративно налаштовуєте коефіцієнти P та D для крену та тангажу, а потім коефіцієнт I. Спочатку ви можете використовувати ті ж значення для крена та тангажу, і як тільки ви отримаєте хороші значення, ви можете їх налаштувати, розглядаючи відповідь на крен та тангаж окремо (якщо ваш транспортний засіб симетричний, це не потрібно). Для крена це дуже схоже, за винятком того, що D може залишатися на 0.

Коефіцієнт пропорційності (P/K)

Коефіцієнт пропорційності використовується для мінімізації помилки відстеження (нижче ми використовуємо P для посилання на обидва P або K). Він відповідає за швидку відповідь і, отже, повинен бути встановлений як найвище можливо, але без введення коливань.

  • Якщо значення P занадто високе: ви побачите високочастотні коливання.
  • Якщо виграш P занадто низький:
    • транспортний засіб буде повільно реагувати на зміни введення.
    • У режимі Acro mode транспортний засіб буде дрейфувати, і вам постійно доведеться вносити корективи, щоб тримати його на рівні.
Похідне Надходження (D)

Коефіцієнт похідної (позначений як D) використовується для зменшення швидкості. Це обов'язково, але повинно бути встановлене лише настільки високо, наскільки потрібно, щоб уникнути перестрілок.

  • Якщо коефіцієнт D занадто великий: двигуни стають нервовими (і можливо гарячими), оскільки термін D посилює шум.
  • Якщо коефіцієнт посилення D занадто низький: ви бачите перерізи після крокового входу.

Типові значення:

  • стандартна форма (P = 1): між 0.01 (4" гонщик) та 0.04 (розмір 500), для будь-якого значення K
  • паралельна форма (K = 1): між 0.0004 та 0.005, в залежності від значення P
Інтегральний коефіцієнт (I)

Коефіцієнт інтегралу I (integral) зберігає пам'ять про помилку. Значення I збільшується, коли бажана швидкість не досягається протягом певного часу. Це важливо (особливо при польоті у режимі Acro mode), але воно не повинно бути встановлено занадто високо.

  • Якщо значення I занадто високе: ви побачите повільні коливання.
  • Якщо I-приріст занадто низький: це найкраще перевірити в режимі Acro, нахиливши транспортний засіб на один бік на близько 45 градусів і тримаючи його таким. Він повинен зберігати той самий кут. Якщо воно відхиляється назад, збільште коефіцієнт I Низький I приріст також видно в журналі, коли є розходження між бажаною та фактичною швидкістю протягом тривалого часу.

Типові значення:

  • стандартна форма (P = 1): між 0. (VTOL площина), 1 (500 розмір) та 8 (4" гон), будь-яке значення K
  • паралельна форма (K = 1): між 0,3 та 0,5, якщо P близько 0,15 Звичайно, коефіцієнт крену має бути трохи вищим, ніж коефіцієнт тангажу.

Процедура тестування

Для перевірки поточних коефіцієнтів, надайте швидке ступеневе вхідне step-input значення під час тримання в повітрі і спостерігайте, як реагує транспортний засіб. Він має негайно слідувати за командою і не коливатися, ані не перевищувати (відчувається "заблокованим").

Ви можете створити ступеневий вхід, наприклад, для крену, швидко натиснувши палицю крену в один бік, а потім швидко відпустити її (будьте обережні, що палиця також буде коливатися, якщо ви просто відпустите її, оскільки вона має пружину - добре налаштований транспортний засіб буде слідувати цим коливанням).

Добре налаштований транспортний засіб в режимі Acro не буде нахилятися випадковим чином в бік, але буде утримувати позу протягом десятків секунд навіть без будь-яких корекцій.

Журнали

Перегляд журналу допомагає оцінити продуктивність відстеження також. Ось приклад хорошого відстеження кутової швидкості нахилу і кутової швидкості курсу:

roll rate tracking yaw rate tracking

І ось хороший приклад відстеження кутової швидкості нахилу з декількома обертами, які створюють екстремальний ступеневий вхід. Ви можете побачити, що транспортний засіб перевищує лише дуже невелику кількість: roll rate tracking flips

Контролер нахилу

Це контролює орієнтацію та виводить бажані обороти тіла за допомогою наступних параметрів налаштування:

Контролер нахилу набагато простіше налаштовувати. Фактично, більшість часу за замовчуванням не потрібно нічого змінювати.

To tune the attitude controller, fly in Stabilized mode and increase the P gains gradually. Якщо почнуть виникати коливання або перехід, коефіцієнти занадто великі.

Також можна налаштувати наступні параметри. Вони визначають максимальні швидкості обертання навколо всіх трьох осей:

  • Максимальна швидкість обертання (MC_ROLLRATE_MAX)
  • Максимальна швидкість висоти (MC_PITCHRATE_MAX)
  • Максимальна швидкість повороту (MC_YAWRATE_MAX)

Крива тяги

Налаштування вище оптимізує продуктивність навколо ховер газу. Але можливо ви побачите коливання при руханні в напрямку повного газу.

Щоб зробити противагу цьому, відрегулюйте криву thrust curve тяги за допомогою параметра THR_MDL_FAC.

INFO

Після зміни цього параметра може знадобитися повторна настройка регулятора швидкості.

Відображення від сигналів управління двигуном (наприклад, PWM(ШІМ)) до очікуваної тяги є лінійним за замовчуванням — установка THR_MDL_FAC на 1 робить її квадратичною. Значення між ними використовують лінійну інтерполяцію між двома. Типові значення знаходяться між 0.3 і 0.5.

Якщо у вас є тяговий стенд (або ви можете інакше вимірювати тягу і сигнали управління двигунами одночасно), ви можете визначити відношення між сигналом управління двигуном і фактичною тягою двигуна та підігнати функцію до даних. Управлінням двигуном в PX4 називається actuator_output може бути ШІМ, Dshot, UAVCAN команди для використання відповідних ЕСС. This Notebook shows one way for how the thrust model factor THR_MDL_FAC may be calculated from previously measured thrust and PWM data. The curves shown in this plot are parametrized by both α and k, and also show thrust and PWM in real units (kgf and μs). In order to simplify the curve fit problem, you can normalize the data between 0 and 1 to find k without having to estimate α (α = 1, when the data is normalized).

Thrust Curve Compensation]

INFO

Відображення між ШІМ і статичною тягою сильно залежить від напруги батареї.

Альтернативним способом виконання цього експерименту є побудова розкиду нормалізованих значень сигналу управління двигуном та тяги, і ітеративне налаштування кривої тяги, експериментуючи з параметром THR_MDL_FAC. Приклад такої графіки показаний тут:

Graph showing relative thrust and PWM scatter

Якщо дані про сигнал управління двигуном і тягу зібрані на протязі всього масштабного діапазону у експерименті, ви можете нормалізувати дані, використовуючи рівняння:

normalized_value = ( raw_value - min (raw_value) ) / ( max ( raw_value ) - min ( raw_value ) )

Після того, як у вас є діаграма розкиду нормалізованих значень, ви можете спробувати зробити так, щоб крива відповідала шляхом побудови рівняння

_rel_thrust = ( THR_MDL_FAC ) _ relsignal^2 + ( 1 - THR_MDL_FAC ) * relsignal*

на лінійному діапазоні нормалізованих значень команд двигуна від 0 до 1. Зверніть увагу, що це рівняння, яке використовується в програмному забезпеченні для відображення тяги та команд двигуна, як показано в посиланні на параметр THR_MDL_FAC. Тут rel_thrust - це нормалізоване значення тяги від 0 до 1, а rel_signal - нормалізоване значення сигналу команди двигуна від 0 до 1.

У цьому вищенаведеному прикладі крива виявилася найкращою, коли THR_MDL_FAC було встановлено на 0,7.

Якщо у вас немає доступу до стенду тяги, ви також можете налаштувати коефіцієнт моделювання емпірично. Почніть з 0,3 і збільшуйте його на 0,1 кожного разу. Якщо він занадто великий, ви помітите початок коливань при нижніх значеннях обертів. Якщо він занадто низький, ви помітите коливання при вищих значеннях обертів.

Airmode & Насиченість змішувача

Регулятор швидкості видає команди на обертовий момент для всіх трьох осей (кочан, тангаж і крен) і скалярне значення тяги, які потрібно перетворити в окремі команди тяги для кожного мотора. Цей крок називається міксуванням.

Можливо, одна з команд мотора стане від'ємною, наприклад, при низькій тязі і великій команді на кочан (і подібно може бути вище 100%). Це насичення міксера. Фізично неможливо виконати ці команди для транспортного засобу (за винятком реверсивних моторів). PX4 має два режими для вирішення цього:

  • Або шляхом зменшення командованого моменту для кочану таким чином, щоб жодна з команд мотора не була нижче нуля (вимкнено режим "Повітряний режим"). У крайньому випадку, коли командована тяга дорівнює нулю, це означає, що корекція атитюди вже неможлива, тому завжди потрібно мінімальне значення тяги для цього режиму.

  • Або шляхом збільшення (підсилення) командованої тяги таким чином, щоб жодна з команд мотора не була від'ємною (ввімкнено режим "Повітряний режим"). Це має велику перевагу, оскільки атитюди/швидкості можуть слідувати правильно навіть при низькій або нульовій потужності. Загалом це покращує польотні характеристики.

    Однак це збільшує загальну тягу, що може призвести до ситуацій, коли транспортний засіб продовжує підніматися, навіть якщо газ знижується до нуля. Для добре налаштованого, правильно функціонуючого транспортного засобу це не відбувається, але, наприклад, це може статися, коли транспортний засіб сильно коливається через занадто високі значення налаштування P.

Обидва режими показані нижче за допомогою двовимірної ілюстрації для двох моторів і команди на обертовий момент для кочану r. На лівому моторі r додається до командованої тяги, тоді як на правому моторі він віднімається від неї. Команди тяги мають зелений колір. З увімкненим режимом "Повітряний режим" командована тяга збільшується на b. Коли він вимкнений, r зменшується.

Airmode

Якщо міксування насичується до верхньої межі, командована тяга зменшується, щоб забезпечити, що жоден з моторів не буде командуватися з більшою тягою 100%. Ця поведінка схожа на логіку режиму "Повітряний режим", і застосовується незалежно від того, чи ввімкнений режим "Повітряний режим", чи вимкнений.

Після того, як ваш транспортний засіб добре летить, ви можете ввімкнути режим "Повітряний режим" за допомогою параметра MC_AIRMODE.