Діаграми контролера
Цей розділ містить схеми основних контролерів PX4.
The diagrams use the standard PX4 notation (and each have an annotated legend).
Мультикоптерна архітектура контролю
- Це - стандартна каскадно-контрольна архітектура.
- Контролери представлені комбінацією P та PID контролерів.
- Estimates come from EKF2.
- Залежно від режиму, зовнішня (позиційна) петля обходиться (показана як мультиплексор після зовнішньої петлі). Зовнішню петлю використовується лише при утриманні позиції або коли запитана швидкість по одній з осей є нульовою.
Контролер кутової швидкості мультикоптера
K-PID контролер. See Rate Controller for more information.
Інтегральні повноваження обмежені, щоб запобігти ліквідації.
Виходи обмежені (у модулі розподілу керування), зазвичай в межах від -1 до 1.
Фільтр низьких частот (LPF) використовується на шляху похідної для зменшення шуму (драйвер гіроскопа забезпечує відфільтровану похідну для контролера).
INFO
The IMU pipeline is: gyro data > apply calibration parameters > remove estimated bias > notch filter (
IMU_GYRO_NF0_BW
andIMU_GYRO_NF0_FRQ
) > low-pass filter (IMU_GYRO_CUTOFF
) > vehicle_angular_velocity (filtered angular rate used by the P and I controllers) > derivative -> low-pass filter (IMU_DGYRO_CUTOFF
) > vehicle_angular_acceleration (filtered angular acceleration used by the D controller)
:::
Мультикоптер Attitude Controller
- The attitude controller makes use of quaternions.
- The controller is implemented from this article.
- При налаштуванні цього контролера єдиний параметр, що становить зацікавленість, - це коефіцієнт P.
- Команда швидкості насичена.
Перетворення заданого значення прискорення мультикоптера в тягу та положення
- Встановлені значення прискорення, що генеруються контролером швидкості, будуть перетворені в установки тяги та кута нахилу.
- Перетворені встановлені точки прискорення будуть насичуватися та пріоритизуватися у вертикальній та горизонтальній тязі.
- Насичення тяги здійснюється після розрахунку відповідного тяга:
- Compute required vertical thrust (
thrust_z
) - Saturate
thrust_z
withMPC_THR_MAX
- Saturate
thrust_xy
with(MPC_THR_MAX^2 - thrust_z^2)^0.5
- Compute required vertical thrust (
Implementation details can be found in PositionControl.cpp
and ControlMath.cpp
.
Контролер швидкості мультиоптера
- PID контролер стабілізує швидкість. Команди прискорення.
- Інтегратор включає анти-сбросову петлю (ARW) за допомогою методу обмеження.
- Командоване прискорення НЕ насичене - насичення буде застосовано до перетворених встановлених точок тяги в поєднанні з максимальним кутом нахилу.
- Horizontal gains set via parameter
MPC_XY_VEL_P_ACC
,MPC_XY_VEL_I_ACC
andMPC_XY_VEL_D_ACC
. - Vertical gains set via parameter
MPC_Z_VEL_P_ACC
,MPC_Z_VEL_I_ACC
andMPC_Z_VEL_D_ACC
.
Контролер положення мультикоптера
- Простий P контролер, який керує швидкістю.
- Задана швидкість насичується, щоб підтримувати швидкість у певних межах. See parameter
MPC_XY_VEL_MAX
. Цей параметр задає максимально можливу горизонтальну швидкість. This differs from the maximum desired speedMPC_XY_CRUISE
(autonomous modes) andMPC_VEL_MANUAL
(manual position control mode). - Horizontal P gain set via parameter
MPC_XY_P
. - Vertical P gain set via parameter
MPC_Z_P
.
Діаграма комбінованої позиції і швидкості контролера
- Залежні від режиму передачі вперед (ff) - наприклад, у режимі місії генератор траєкторій (траєкторія з обмеженням ривка) обчислює точки встановлення позиції, швидкості та прискорення.
- Точки встановлення прискорення (в інерціальній системі координат) будуть перетворені (з установкою курсу) на точки встановлення орієнтації (кватерніон) та точки встановлення загального тяги.
Контролер положення фіксованого крила
Система загального контролю електроенергії (ТЕКС)
Реалізація системи загального керування енергією PX4 (TECS) дозволяє одночасно контролювати справжню повітряну швидкість і висоту літака. Код реалізований у вигляді бібліотеки, яка використовується в модулі керування положенням.
Як видно на діаграмі вище, TECS отримує в якості вхідних даних задані значення швидкості повітря та висоти, і виводить задані значення дроселя та кута тангажу. Ці два вихідні дані надсилаються до контролера орієнтації фіксованого крила, який реалізує рішення з контролю орієнтації. Проте встановлення дроселя передається, якщо воно є скінченим і якщо не виявлено відмови двигуна. Тому важливо зрозуміти, що продуктивність TECS безпосередньо впливає на продуктивність петлі керування кутом тангажу. Погане відстеження швидкості повітря та висоти часто викликається поганим відстеженням кута тангажу повітряного судна.
INFO
Make sure to tune the attitude controller before attempting to tune TECS.
Сеанс одночасного контролю швидкості та висоти не є тривіальним завданням. Збільшення кута нахилу літака призведе до збільшення висоти, але також до зменшення швидкості. Збільшення дросельної заслінки збільшить швидкість повітря, але також збільшиться висота через збільшення підйомної сили. Таким чином, ми маємо два входи (кут нахилу та дросель), які обидва впливають на два виходи (швидкість повітря та висоту), що ускладнює проблему керування.
TECS пропонує рішення, представляючи проблему в термінах енергій, а не початкових заданих значень. Повна енергія літака — це сума кінетичної та потенціальної енергії. Тяга (через керування дроселем) збільшує загальний стан енергії літака. Даний загальний енергетичний стан може бути досягнутий довільними комбінаціями потенціальної та кінетичної енергій. Іншими словами, польот на великій висоті, але з низькою швидкістю, може бути еквівалентним польоту на низькій висоті, але з більшою швидкістю повітря з точки зору загальної енергії. Ми називаємо це балансом конкретної енергії і обчислюємо його за поточною висотою та встановленим значенням швидкості повітря. Баланс конкретної енергії контролюється за допомогою кута тангажу літака. Збільшення кута тангажу перетворює кінетичну енергію на потенційну енергію, а від'ємний кут тангажу - навпаки. Таким чином, проблема управління була розкрита шляхом перетворення початкових встановлених значень в енергетичні величини, які можуть бути контрольовані незалежно. Ми використовуємо тягу для регулювання конкретної загальної енергії транспортного засобу, а тангаж підтримує конкретний баланс між потенційною (висотою) та кінетичною (швидкістю) енергією.
Загальний цикл контролю балансу енергії
Загальний цикл контролю балансу енергії
Загальна енергія літака - це сума кінетичної та потенціальної енергії:
Проведення похідної відносно часу призводить до загальної швидкості енергії:
З цього можна сформувати специфічну швидкість енергії:
де
З рівнянь динаміки літака ми отримуємо таке співвідношення:
де T і D - сили тяги і опору. У горизонтальному польоті початкова тяга компенсується опором, а зміна тяги призводить до:
Як видно,
З іншого боку, керування ліфтом є енергозберігаючим, і тому використовується для обміну потенційної енергії на кінетичну і навпаки. З цією метою питома норма енергетичного балансу визначається як:
Контролер положення фіксованого крила
Контролер положення працює за допомогою методу каскадного циклу. Зовнішній цикл обчислює помилку між встановленим величиною орієнтації та оціненим значенням орієнтації, яка, помножена на коефіцієнт (контролер P), генерує встановлення швидкості. Внутрішній цикл обчислює помилку в швидкостях та використовує ПІ (пропорційний + інтегральний) контролер для генерації потрібного кутового прискорення.
The angular position of the control effectors (ailerons, elevators, rudders, ...) is then computed using this desired angular acceleration and a priori knowledge of the system through control allocation (also known as mixing). Крім того, оскільки керуючі поверхні ефективніші при високій швидкості і менш ефективні при низькій швидкості, контролер, налаштований на крейсерську швидкість, масштабується за допомогою вимірів швидкості повітря (якщо використовується такий датчик).
INFO
If no airspeed sensor is used then gain scheduling for the FW attitude controller is disabled (it's open loop); no correction is/can be made in TECS using airspeed feedback.
The feedforward gain is used to compensate for aerodynamic damping. По суті, два основні компоненти моментів на осях тіла літака створюються керуючими поверхнями (ельєронами, крейцерами, рулями - які створюють рух) та аеродинамічним згасанням (пропорційним до швидкостей тіла - протидіють рухові). Щоб підтримувати постійну швидкість, це демпфування можна компенсувати за допомогою прямого зв’язку в циклі швидкості.
Поворотна координація
Контролери крену та тангажу мають однакову структуру, і довжинна та поперечна динаміка вважаються достатньо роз'єднаними, щоб працювати незалежно один від одного. Контролер курсу, однак, генерує встановлення швидкості курсу, використовуючи обмеження координації повороту для мінімізації бокового прискорення, що виникає, коли літак слідкує. Алгоритм узгодження повороту базується виключно на узгодженому розрахунку геометрії повороту.
The yaw rate controller also helps to counteract adverse yaw effects and to damp the Dutch roll mode by providing extra directional damping.
Диспетчер польотів VTOL
Цей розділ розповідає про структуру управління вертикальним Зльотом і Посадкою літаків (VTOL). Контролер польоту VTOL складається з контролера багтропільного вертольота та контролера фіксованого крила, які працюють окремо в відповідних режимах VTOL або разом під час переходів. На діаграмі вище є спрощена діаграма управління. Зверніть увагу на блок контролера орієнтації VTOL, який передусім забезпечує необхідну логіку перемикання та змішування для різних режимів VTOL, а також дії з контролю, характерні для типів VTOL під час переходів (наприклад, плавне збільшення потужності реактивного двигуна стандартного VTOL під час переходу вперед). Входи до цього блоку називаються "віртуальними", оскільки, залежно від поточного режиму VTOL, деякі від них ігноруються контролером.
Для стандартного і кутового вертольота під час переходу контролер орієнтації фіксованого крила генерує встановлення швидкості, які потім подаються на окремі контролери швидкості, що призводить до команд моменту для приводів багтропільного вертольота та фіксованого крила. Для tailsitters під час переходу запущений контролер положення мультикоптера.
The outputs of the VTOL attitude block are separate torque and force commands for the multicopter and fixed-wing actuators (two instances for vehicle_torque_setpoint
and vehicle_thrust_setpoint
). Ці вихідні дані обробляються в класі розподілу керування, який специфікується для кожного типу повітряного судна.
For more information on the tuning of the transition logic inside the VTOL block, see VTOL Configuration.
Масштабування швидкості повітря
Метою цього розділу є пояснення за допомогою рівнянь, чому і як вихід контролерів кутової швидкості PI та передачі подачі (FF) може бути масштабований за допомогою швидкості повітря для покращення роботи системи керування. Спочатку ми представимо спрощене лінійне розмірне рівняння моменту по коченню, потім покажемо вплив швидкості повітря на пряме створення моменту, і, нарешті, вплив швидкості повітря під час постійного кочення.
Як показано в контролері орієнтації фіксованого крила вище, контролери швидкості створюють встановлення кутового прискорення для розподільника керування (тут названого "міксер"). Для створення цих бажаних кутових прискорень міксер виробляє моменти за допомогою наявних аеродинамічних поверхонь керування (наприклад, стандартний літак зазвичай має два ельєрона, два руля висоти та кормовий руль). Моменти, що створюються цими поверхнями керування, сильно впливають на відносну швидкість повітря та щільність повітря, або, точніше, на динамічний тиск. Якщо не виконується масштабування швидкості повітря, контролер, який тісно налаштований для певної крейсерської швидкості повітря, зробить літак коливатися при вищій швидкості повітря або буде погано відслідковувати рух при низькій швидкості повітря.
The reader should be aware of the difference between the true airspeed (TAS) and the indicated airspeed (IAS) as their values are significantly different when not flying at sea level.
Визначення динамічного тиску таке
де
Беручи в якості прикладу вісь крену для решти цього розділу, розмірний момент крену можна записати
де
Недименсійна похідна моменту кочення
де
Припускаючи симетричний (
Це кінцеве рівняння потім використовується як базове для двох наступних підрозділів для визначення виразу масштабування швидкості повітря, необхідного для контролерів PI та FF.
Масштабування статичного моменту (PI)
При умові нульових швидкостей (
Витяг
де перший дріб є постійним, а другий залежить від щільності повітря та квадрата швидкості повітря (Tas).
Крім того, замість масштабування за щільністю повітря та швидкістю повітря (TAS), можна показати, що індикована швидкість повітря (IAS,
де
Піднесення до квадрату, перестановка та додавання множника 1/2 до обох сторін дозволяє виразити вираз для динамічного тиску
Тепер ми можемо легко побачити, що динамічний тиск пропорційний квадрату IAS:
Множник, який раніше містив TAS та густину повітря, нарешті може бути записаний лише з використанням IAS
Оцінити (FF) масштабування
Головне використання впередньої подачі контролера кутової швидкості полягає у компенсації природного згасання кутової швидкості. Почнемо з базового розмірного рівняння, але на цей раз під час кочення зі сталою швидкістю момент, створений ельєронами, повинен точно компенсувати згасання, наприклад,
Перегруповуючи для вилучення ідеального відхилення ельєронів, отримуємо
Зазначте, що від'ємний знак потім поглинається похідною згасання кочення, яка також є від'ємною. Зауважте, що від'ємний знак потім поглинається похідною згасання кочення, яка також є від'ємною.
Висновок
Вихід контролера кутової швидкості PI має бути масштабований квадратом індикованої швидкості повітря (IAS), а вихід кутової швидкості feedforward (FF) має бути масштабований швидкістю повітря (TAS)
де
Нарешті, оскільки виходи приводу нормалізовані, а міксер і блоки сервоприводу вважаються лінійними, ми можемо переписати останнє рівняння наступним чином:
and implement it directly in the rollrate, pitchrate and yawrate controllers.
In the case of airframes with controls performance that is not dependent directly on airspeed e.g. a rotorcraft like autogyro. There is possibility to disable airspeed scaling feature by FW_ARSP_SCALE_EN parameter.
Tuning recommendations
The beauty of this airspeed scaling algorithm is that it does not require any specific tuning. However, the quality of the airspeed measurements directly influences its performance.
Furthermore, to get the largest stable flight envelope, one should tune the attitude controllers at an airspeed value centered between the stall speed and the maximum airspeed of the vehicle (e.g.: an airplane that can fly between 15 and 25m/s should be tuned at 20m/s). This "tuning" airspeed should be set in the FW_AIRSPD_TRIM parameter.