Skip to content

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

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

TIP

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

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

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

INFO

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

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

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

WARNING

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

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

Контролер швидкості - це внутрішній цикл з трьома незалежними ПІД-регуляторами для керування швидкостями тіла (курс, тангаж, крен).

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

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

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 є наступні:

Контролер швидкості можна налаштувати в режимі Acro або в режимі Ручного/Стабілізованого керування:

  • Режим Акро є бажаним, але складніше керувати. Якщо ви виберете цей режим, вимкніть усі stick expo:
    • 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
  • Ручний/стабілізований режим простіше керувати, але також важче бачити, чи потрібні додаткові налаштування для контролера кута або швидкості.

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

  • Якщо при першій спробі злітання виникають сильні коливання (до того ж, коли воно не летить), зменште всі виграші 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

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

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

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

Для налаштування контролера нахилу літайте в режимі Manual/Stabilized та поступово збільшуйте значення P-коефіцієнтів. Якщо почнуть виникати коливання або перехід, коефіцієнти занадто великі.

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

  • Максимальна швидкість обертання (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.