Skip to content

MC Filter Tuning & Контроль затримки

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

Ця тема надає огляд затримки управління та настройки фільтрів в PX4.

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

Затримка керування

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

TIP

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

Наступні фактори впливають на затримку керування:

  • М'яка конструкція або м'яка амортизація вібрацій збільшує затримку (вони діють як фільтр).
  • Нижні фільтри у програмному забезпеченні та на мікросхемі датчика вимірювання компенсують збільшену затримку для покращеного фільтрування шуму.
  • Внутрішні складові програмного забезпечення PX4: сигнали датчиків потрібно зчитати у драйвері, а потім пройти через контролер до виходного драйвера.
  • Максимальна частота публікації гіроскопа (налаштовується за допомогою IMU_GYRO_RATEMAX). Вища частота знижує затримку, але вимагає більше обчислювальних ресурсів / може викликати голодування інших процесів. Частота 4 кГц або вище рекомендується лише для контролерів з процесором STM32H7 або новіше (значення 2 кГц близьке до межі для менш потужних процесорів).
  • Мікросхема введення-виведення (головні контакти) додає приблизно 5,4 мс затримки порівняно з використанням додаткових контактів (це не стосується Pixracer або Omnibus F4, але стосується Pixhawk). Щоб уникнути затримки введення-виведення, підключіть мотори до додаткових контактів замість головних.
  • Сигнал виведення ШІМ: ввімкніть Dshot за бажанням, щоб зменшити затримку (або One-Shot, якщо DShot не підтримується). Протокол вибирається для групи виведення під час налаштування приводу дії.

Нижче ми розглянемо вплив нижніх фільтрів.

Фільтри

Це конвеєр фільтрації для контролерів у PX4:

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

  • Фільтр вирівнювання на даних гіроскопа, який використовується для фільтрації вузькосмугового шуму, наприклад, гармоніки на частоті проходження лопаток ротора. Цей фільтр можна налаштувати за допомогою параметрів IMU_GYRO_NF0_BW та IMU_GYRO_NF0_FRQ.

  • Фільтр нижніх частот на даних гіроскопа. Його можна налаштувати за допомогою параметра IMU_GYRO_CUTOFF.

    INFO

Вибірка та фільтрація завжди виконується на повній швидкості відсічки датчика вводу (зазвичай 8 кГц, в залежності від ІІМУ). :::

  • Окремий фільтр нижніх частот для терміну D. Термін D найбільш схильний до шуму, при цьому незначне збільшення затримки не негативно впливає на продуктивність. З цієї причини термін D має окремо налаштований фільтр нижніх частот, IMU_DGYRO_CUTOFF.
  • Фільтр обмеження швидкості на виходах двигуна (MOT_SLEW_MAX). Зазвичай не використовується.

Для зменшення затримки керування ми хочемо збільшити частоту відсічки для фільтрів нижніх частот. Вплив збільшення IMU_GYRO_CUTOFF на затримку наближено нижче.

Частота відсічки (Гц)Затримка (мс)
308
603.8
1201.9

Однак це компроміс, оскільки збільшення IMU_GYRO_CUTOFF також призведе до збільшення шуму сигналу, який подається на двигуни. Шум на двигунах має наступні наслідки:

  • Двигуни та регулятори обертання можуть нагріватися до такого рівня, коли вони пошкоджуються.
  • Зменшення часу польоту, оскільки двигуни постійно змінюють свою швидкість.
  • Видимі випадкові невеликі дрібні подергування.

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

INFO

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

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

Налаштування фільтра

Спочатку переконайтеся, що активований профіль високочастотного ведення журналу (параметр SDLOG_PROFILE). Flight Review потім покаже графік Фур'є для управління креном, тангажем та рулів.

WARNING

  • Не намагайтеся виправити транспортний засіб, який страждає від високих вібрацій, за допомогою налаштування фільтра! Замість цього виправте налаштування апаратного забезпечення транспортного засобу.
  • Переконайтеся, що коефіцієнти PID, зокрема D, не встановлені занадто високо, оскільки це може виявитися як вібрації.

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

Виконане повітряне маневрування може просто полягати в зависанні в режимі Manual/Stabilized з деякими кочуваннями і тангажами в усіх напрямках і деякими збільшеними періодами газу. Загальна тривалість не повинна перевищувати 30 секунд. Щоб краще порівняти, маневр має бути схожим у всіх тестах.

Спочатку налаштуйте фільтр гіроскопа IMU_GYRO_CUTOFF, збільшуючи його кроками по 10 Гц, використовуючи низьке значення фільтра D-term (IMU_DGYRO_CUTOFF = 30). Завантажте журнали до Flight Review та порівняйте графік Фур'є керованих акторів Actuator Controls FFT. Встановіть частоту відсічки на значення, перше, ніж шум стане помітно зростати (для частот приблизно 60 Гц і вище).

Потім налаштуйте фільтр D-term (IMU_DGYRO_CUTOFF) таким же чином. Зверніть увагу, що можуть бути негативні впливи на продуктивність, якщо IMU_GYRO_CUTOFF та IMU_DGYRO_CUTOFF встановлені занадто далеко один від одного (різниця повинна бути значною - наприклад, D=15, gyro=80).

Нижче наведено приклад для трьох різних значень фільтра IMU_DGYRO_CUTOFF (40 Гц, 70 Гц, 90 Гц). При 90 Гц загальний рівень шуму починає збільшуватися (особливо для крену), тому частота відсічки 70 Гц є безпечним налаштуванням. IMU_DGYRO_CUTOFF=40 IMU_DGYRO_CUTOFF=70 IMU_DGYRO_CUTOFF=90

INFO

Графік не можна порівнювати між різними транспортними засобами, оскільки шкала осі у буде різна. На тому ж транспортному засобі вона є послідовною і незалежною від тривалості польоту.

Якщо графіки польоту показують значні піки низької частоти, подібні до показаного на діаграмі нижче, ви можете видалити їх за допомогою фільтра позбавлення. У цьому випадку ви можете використовувати наступні налаштування: IMU_GYRO_NF0_FRQ=32 і IMU_GYRO_NF0_BW=5 (зауважте, що цей пік вузький, ніж зазвичай). Низкочастотні фільтри та фільтр позбавлення можна налаштовувати незалежно (тобто вам не потрібно встановлювати фільтр позбавлення перед збором даних для налаштування низкочастотного фільтра).

IMU_GYRO_NF0_FRQ=32 IMU_GYRO_NF0_BW=5

Додаткові поради

  1. Прийнятна затримка залежить від розміру транспортного засобу та очікувань. ФПВ гонщики зазвичай налаштовують на мінімальну затримку (як приблизно IMU_GYRO_CUTOFF близько 120, IMU_DGYRO_CUTOFF від 50 до 80). Для більших транспортних засобів затримка менш критична, і IMU_GYRO_CUTOFF близько 80 може бути прийнятним.

  2. Ви можете почати налаштування на високих значеннях IMU_GYRO_CUTOFF (наприклад, 100 Гц), що може бути бажаним, оскільки налаштування за замовчуванням IMU_GYRO_CUTOFF встановлено дуже низьким (30 Гц). Однак вам потрібно бути обізнаними з ризиками:

    • Не літайте більше 20-30 секунд
    • Перевірте, що двигуни не нагріваються занадто сильно
    • Слухайте дивні звуки та симптоми надмірного шуму, як обговорено вище.