Skip to content

Діаграми контролера

Цей розділ містить схеми основних контролерів PX4.

Діаграми використовують стандартну нотацію PX4 (і кожна має підписаний легенду).

Мультикоптерна архітектура контролю

MC Controller Diagram

  • Це - стандартна каскадно-контрольна архітектура.
  • Контролери представлені комбінацією P та PID контролерів.
  • Оцінки приходять від EKF2.
  • Залежно від режиму, зовнішня (позиційна) петля обходиться (показана як мультиплексор після зовнішньої петлі). Зовнішню петлю використовується лише при утриманні позиції або коли запитана швидкість по одній з осей є нульовою.

Контролер кутової швидкості мультикоптера

MC Rate Control Diagram

  • K-PID контролер. Для отримання додаткової інформації див. Контролер швидкості.
  • Інтегральні повноваження обмежені, щоб запобігти ліквідації.
  • Виходи обмежені (у модулі розподілу керування), зазвичай в межах від -1 до 1.
  • Фільтр низьких частот (LPF) використовується на шляху похідної для зменшення шуму (драйвер гіроскопа забезпечує відфільтровану похідну для контролера).

:::note Потік IMU (інерціальної системи зоріентованості) включає наступні етапи: дані з гіроскопа > застосування параметрів калібрування > видалення оціненого зміщення > павуки-фільтри (IMU_GYRO_NF0_BW та IMU_GYRO_NF0_FRQ) > фільтр нижнього частотного діапазону (IMU_GYRO_CUTOFF) > кутова швидкість транспортного засобу (фільтрована кутова швидкість, використовувана контролерами P та I) > похідна -> фільтр нижнього частотного діапазону (IMU_DGYRO_CUTOFF) > кутове прискорення транспортного засобу (фільтроване кутове прискорення, використовуване контролером D)

IMU pipeline :::

Мультикоптер Attitude Controller

MC Angle Control Diagram

  • Контролер орієнтації використовує кватерніони.
  • Контролер реалізовано з цієї статті.
  • При налаштуванні цього контролера єдиний параметр, що становить зацікавленість, - це коефіцієнт P.
  • Команда швидкості насичена.

Перетворення заданого значення прискорення мультикоптера в тягу та положення

  • Встановлені значення прискорення, що генеруються контролером швидкості, будуть перетворені в установки тяги та кута нахилу.
  • Перетворені встановлені точки прискорення будуть насичуватися та пріоритизуватися у вертикальній та горизонтальній тязі.
  • Насичення тяги здійснюється після розрахунку відповідного тяга:
    1. Обчислити необхідну вертикальну тягу (thrust_z)
    2. Наситити thrust_z MPC_THR_MAX
    3. Сатуратувати thrust_xy з (MPC_THR_MAX^2 - thrust_z^2)^0.5

Деталі реалізації можна знайти у файлі PositionControl.cpp та ControlMath.cpp.

Контролер швидкості мультиоптера

MC Velocity Control Diagram

  • PID контролер стабілізує швидкість. Команди прискорення.
  • Інтегратор включає анти-сбросову петлю (ARW) за допомогою методу обмеження.
  • Командоване прискорення НЕ насичене - насичення буде застосовано до перетворених встановлених точок тяги в поєднанні з максимальним кутом нахилу.
  • Горизонтальні коефіцієнти встановлюються за допомогою параметрів MPC_XY_VEL_P_ACC, MPC_XY_VEL_I_ACC та MPC_XY_VEL_D_ACC.
  • Вертикальні коефіцієнти встановлюються за допомогою параметрів MPC_Z_VEL_P_ACC, MPC_Z_VEL_I_ACC та MPC_Z_VEL_D_ACC.

Контролер положення мультикоптера

MC Position Control Diagram

  • Простий P контролер, який керує швидкістю.
  • Задана швидкість насичується, щоб підтримувати швидкість у певних межах. Подивіться параметр MPC_XY_VEL_MAX. Цей параметр задає максимально можливу горизонтальну швидкість. Це відрізняється від максимальної бажаної швидкості MPC_XY_CRUISE (автономні режими) та MPC_VEL_MANUAL (ручний режим контролю позиції).
  • Горизонтальна P підсилення за параметром MPC_XY_P.
  • Вертикальне P підсилення параметра MPC_Z_P.

Діаграма комбінованої позиції і швидкості контролера

MC Position Controller Diagram

  • Залежні від режиму передачі вперед (ff) - наприклад, у режимі місії генератор траєкторій (траєкторія з обмеженням ривка) обчислює точки встановлення позиції, швидкості та прискорення.
  • Точки встановлення прискорення (в інерціальній системі координат) будуть перетворені (з установкою курсу) на точки встановлення орієнтації (кватерніон) та точки встановлення загального тяги.

Контролер положення фіксованого крила

Система загального контролю електроенергії (ТЕКС)

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

TECS

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

:::note Обов’язково налаштуйте контролер положення, перш ніж намагатися налаштувати TECS. :::

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

TECS пропонує рішення, представляючи проблему в термінах енергій, а не початкових заданих значень. Повна енергія літака — це сума кінетичної та потенціальної енергії. Тяга (через керування дроселем) збільшує загальний стан енергії літака. Даний загальний енергетичний стан може бути досягнутий довільними комбінаціями потенціальної та кінетичної енергій. Іншими словами, польот на великій висоті, але з низькою швидкістю, може бути еквівалентним польоту на низькій висоті, але з більшою швидкістю повітря з точки зору загальної енергії. Ми називаємо це балансом конкретної енергії і обчислюємо його за поточною висотою та встановленим значенням швидкості повітря. Баланс конкретної енергії контролюється за допомогою кута тангажу літака. Збільшення кута тангажу перетворює кінетичну енергію на потенційну енергію, а від'ємний кут тангажу - навпаки. Таким чином, проблема управління була розкрита шляхом перетворення початкових встановлених значень в енергетичні величини, які можуть бути контрольовані незалежно. Ми використовуємо тягу для регулювання конкретної загальної енергії транспортного засобу, а тангаж підтримує конкретний баланс між потенційною (висотою) та кінетичною (швидкістю) енергією.

Загальний цикл контролю балансу енергії

Energy loop

Загальний цикл контролю балансу енергії

Energy balance loop

Загальна енергія літака - це сума кінетичної та потенціальної енергії:

ET=12mVT2+mgh

Проведення похідної відносно часу призводить до загальної швидкості енергії:

ET˙=mVTVT˙+mgh˙

З цього можна сформувати специфічну швидкість енергії:

E˙=ET˙mgVT=VT˙g+h˙VT=VT˙g+sin(γ)

де γ є кутом польоту. Для невеликих γ ми можемо наблизити це як:

E˙VT˙g+γ

З рівнянь динаміки літака ми отримуємо таке співвідношення:

TD=mg(VT˙g+sin(γ))mg(VT˙g+γ)

де T і D - сили тяги і опору. У горизонтальному польоті початкова тяга компенсується опором, а зміна тяги призводить до:

ΔT=mg(VT˙g+γ)

Як видно, ΔT пропорційно E˙, і тому встановлення тяги слід використовувати для контролю загальної енергії.

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

B˙=γVT˙g

Контролер положення фіксованого крила

FW Attitude Controller Diagram

Контролер положення працює за допомогою методу каскадного циклу. Зовнішній цикл обчислює помилку між встановленим величиною орієнтації та оціненим значенням орієнтації, яка, помножена на коефіцієнт (контролер P), генерує встановлення швидкості. Внутрішній цикл обчислює помилку в швидкостях та використовує ПІ (пропорційний + інтегральний) контролер для генерації потрібного кутового прискорення.

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

:::note Якщо датчик швидкості повітря не використовується, то налаштування коефіцієнтів для контролера орієнтації фіксованого крила відключене (це відкритий цикл); корекція в ТЕСС за допомогою зворотного зв'язку по швидкості повітря відсутня або неможлива. :::

The feedforward gain is used to compensate for aerodynamic damping. По суті, два основні компоненти моментів на осях тіла літака створюються керуючими поверхнями (ельєронами, крейцерами, рулями - які створюють рух) та аеродинамічним згасанням (пропорційним до швидкостей тіла - протидіють рухові). Щоб підтримувати постійну швидкість, це демпфування можна компенсувати за допомогою прямого зв’язку в циклі швидкості.

Поворотна координація

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

Ψ˙sp=gVTtanϕspcosθsp

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

Диспетчер польотів VTOL

VTOL Attitude Controller Diagram

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

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

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

Для отримання додаткової інформації про налаштування логіки переходу всередині блоку VTOL див. Конфігурація VTOL.

Масштабування швидкості повітря

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

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

Читачу слід знати різницю між істинною швидкістю повітря (TAS) та індикованою швидкістю повітря (IAS), оскільки їх значення значно відрізняються, коли не літають на рівні моря.

Визначення динамічного тиску таке

q¯=12ρVT2

де ρ - щільність повітря, а VT - істинна швидкість повітря (TAS).

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

=12ρVT2SbC=q¯SbC

де момент крену, b розмах крила і S опорна поверхня.

Недименсійна похідна моменту кочення C може бути моделювана за допомогою похідної ефективності ельєронів Cδa, похідної згасання кочення Cp та похідної дігонь-кутів Cβ

C=C0+Cββ+Cpb2VTp+Cδaδa

де β - кут бокового зносу, p - кутова швидкість кочення корпусу, а δa - відхилення ельєронів.

Припускаючи симетричний (C0=0) і координований (β=0) літак, рівняння можна спростити, використовуючи лише згасання кутової швидкості по крену та момент кочення, створений ельєронами

=12ρVT2Sb[Cδaδa+Cpb2VTp]

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

Масштабування статичного моменту (PI)

При умові нульових швидкостей (p=0), згасаючий член зникає, і стале - моментальне - крутне зусилля може бути згенеровано за допомогою:

=12ρVT2SbCδaδa=q¯SbCδaδa

Витяг δa дає

δa=2bSCδa1ρVT2=bSCδa1q¯

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

Крім того, замість масштабування за щільністю повітря та швидкістю повітря (TAS), можна показати, що індикована швидкість повітря (IAS, VI) вже коригується за щільність повітря, оскільки на низькій висоті і швидкості ІAS може бути переведена в TAS за допомогою простого фактора помилки щільності

VT=VIρ0ρ

де ρo - щільність повітря на рівні моря при 15°C.

Піднесення до квадрату, перестановка та додавання множника 1/2 до обох сторін дозволяє виразити вираз для динамічного тиску q¯

q¯=12ρVT2=12VI2ρ0

Тепер ми можемо легко побачити, що динамічний тиск пропорційний квадрату IAS:

q¯VI2

Множник, який раніше містив TAS та густину повітря, нарешті може бути записаний лише з використанням IAS

δa=2bSCδaρ01VI2

Оцінити (FF) масштабування

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

Cδaδa=Cpb2VTp

Перегруповуючи для вилучення ідеального відхилення ельєронів, отримуємо

δa=bCp2Cδa1VTp

Зазначте, що від'ємний знак потім поглинається похідною згасання кочення, яка також є від'ємною. Зауважте, що від'ємний знак потім поглинається похідною згасання кочення, яка також є від'ємною.

Висновок

Вихід контролера кутової швидкості PI має бути масштабований квадратом індикованої швидкості повітря (IAS), а вихід кутової швидкості feedforward (FF) має бути масштабований швидкістю повітря (TAS)

δa=VI02VI2δaPI+VT0VTδaFF

де VI0 і VT0 – IAS і TAS за умов регулювання.

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

ω˙spb=VI02VI2ω˙spPIb+VT0VTω˙spFFb

та реалізувати його безпосередньо в контролерах кутової швидкості по крену, тангажу та розвороту.

У випадку повітряних конструкцій, де продуктивність управління не залежить безпосередньо від швидкості повітря, наприклад, вертольота, такого як autogyro. Існує можливість вимкнути функцію масштабування швидкості повітря за допомогою FW_ARSP_SCALE_ENпараметра.

Рекомендації з налаштування

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

Крім того, для отримання найбільш стабільного польотного енвелопу слід налаштувати контролери орієнтації на значенні швидкості повітря, яке знаходиться між швидкістю стійкості та максимальною швидкістю транспортного засобу (наприклад: літак, який може літати від 15 до 25 м/с, слід налаштувати на 20 м/с). Цю "настройку" швидкості повітря слід встановити в параметрі FW_AIRSPD_TRIM.