bbdoctor
Діагностика дрона за логом: Betaflight, INAV, ArduPilot, PX4
RUENESPTUA

Вібрація дрона: як знайти несправний мотор або пропелер за логом

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

Нижче — як це працює в bbdoctor, які там пороги та що показали справжні логи.

Що вібрує: мотор, пропелер чи рама

Що видно в лозіЙмовірна причинаЩо робити
У одного мотора складова на частоті обертання (1×) значно сильніша, ніж в іншихДисбаланс: погнутий або неправильно встановлений пропелер, сміття під втулкою, погнутий дзвін або валПостав новий пропелер, потім оглянь дзвін і вал
У одного мотора підвищені складові 2× або 3×Пошкоджена лопать, різний крок або трекінг лопатейЗаміни пропелер
Мотор обертається повільніше за інші за однакового газуЗношені підшипники, дзвін треться, обмотка згоріла, більший крок пропелераПрокрути рукою, поміняй місцями із сусіднім мотором
Мотор обертається швидше за інші за однакового газуПропелер створює менше навантаження: надщерблений, обрізаний, не того розміру або прокручується на валуОглянь і заміни пропелер
Пік на одній частоті за будь-якого газуРезонанс рами, стека, камери або антениПідтягни гвинти, закріпи деталі; notch — лише тимчасовий захід
Мотори одного напрямку обертання завжди працюють інтенсивнішеНахилений мотор, скручений промінь, різний крок пропелерів по діагоналіПеревір раму на рівному столі, вирівняй мотори, постав однакові пропелери
Одна пара (передня або задня) постійно навантажена більше, I-складова pitch не повертається до нуляЗміщений центр масПересунь акумулятор, а не міняй мотори

Останні два випадки — не вібрація, але вони часто пояснюють, чому один мотор гарячий.

Чому спектр не може назвати мотор

Швидкість моторів постійно змінюється, тому за політ їхні піки розмазуються в одну смугу, а оберти однаково навантажених моторів відрізняються максимум на кілька герців. Навіть коли пари обертаються по-різному (у VX3.5 нижче зміщений назад центр мас тримав задні мотори на 240–280 Гц, а передні — на 190–215 Гц), спектр може вказати на пару, але не на окремий мотор.

Є ще частота запису. На цьому 3,5-дюймовому VX3.5 пікова швидкість моторів у польотах становила 583–644 Гц (приблизно 35 000–39 000 RPM), а лог записувався на 1 кГц, тож видно лише складові до 500 Гц. Усе вище відбивається назад: 600 Гц показуються як 400 Гц, а 644 Гц — як 356 Гц. Пік видно, але його частота вже не вказує на джерело.

Що має бути в лозі

Два поля: нефільтрований гіроскоп і RPM кожного мотора.

Для Betaflight 4.5+ (14 полюсів підходить для більшості моторів від 18xx; якщо сумніваєшся, порахуй магніти в дзвоні):

set dshot_bidir = ON
set motor_poles = 14
set blackbox_disable_rpm = OFF
set blackbox_disable_gyrounfilt = OFF
set blackbox_sample_rate = 1/2
save

Дільник 1/2 розрахований на цикл PID 4 кГц; для 8 кГц використовуй 1/4, інакше записуватимеш на 4 кГц і заповниш флеш-пам'ять удвічі швидше. Тестовий політ: хвилина-дві висіння, плавні зміни газу, трохи польоту вперед. Фристайл із крашами гірший: удари додають власний шум, а швидкості моторів постійно перетинаються. Докладніше — у гайді з налаштування blackbox.

Як працює відстеження порядку для кожного мотора

Метод запозичено з діагностики обертових механізмів:

  1. Фаза мотора. eRPM дає частоту обертання кожного мотора для кожного відліку; накопичення цих значень дає кут ротора — фазу.
  2. Блоки. Сирий гіроскоп roll і pitch, із відфільтрованим рухом нижче 30 Гц, ділиться на блоки по 0,25 с: частотна роздільність 4 Гц.
  3. Демодуляція. Кожен блок «розкручується» за фазою одного мотора. Складові, що обертаються синхронно з ним, підсумовуються; складові інших моторів і шум усереднюються. Так отримуємо 1× (раз за оберт: дисбаланс), 2× і 3×.
  4. Рівень шуму. Такий самий розрахунок на 12 і 16 Гц вище та нижче гармоніки дає фон, який віднімається за потужністю. У звіті показано вібрацію «після віднімання шуму».
  5. Відбраковування. Блок пропускається, якщо будь-який мотор повільніший за 20 Гц, а гармоніка — якщо її частота нижча за 40 Гц, ближча ніж на 15 Гц до половини частоти запису або ближча ніж на 10 Гц до будь-якої іншої гармоніки — іншого мотора чи власної відбитої. У точках перетину їх неможливо розрізнити.
  6. Результат. Медіана за всіма блоками, стійка до викидів. Потрібно щонайменше 8 блоків (дві секунди придатного польоту).

Оскільки фаза обчислюється за справжньою частотою обертання, аліасинг не має значення: мотор на 640 Гц у лозі 1 кГц аналізується так само, як мотор на 300 Гц. Відбраковування зменшує обсяг даних: у польоті VX3.5 тривалістю 193 секунди для переднього лівого мотора залишилося 387 із приблизно 770 блоків.

УмоваПорігЧому
Гармоніка мотора перевищує власний шумщонайменше ×2,5Не звинувачуй мотор у рівні, який губиться у фоні
Базове значеннямедіана інших моторів, у яких гармоніка перевищує шум щонайменше у ×1,5; якщо таких немає — 0,1 град/сСам мотор не враховується, а мотори з гармонікою, що губиться у шумі, не знижують базове значення
1× сильніша за базове значенняпопередження — 1,8×, критичний рівень — 3×Для порівняння: у наших логах розкид без попереджень сягав 1,5–1,7×
2× або 3× сильніша за базове значенняпопередження — 2,2×Ці гармоніки слабші й сильніше різняться між моторами
Мінімум даних8 блоків по 0,25 с, дані щонайменше для трьох моторівДва блоки або один сусідній мотор нічого не доводять

Що показали справжні логи

Той самий мотор у трьох польотах

3,5-дюймовий VX3.5 на Betaflight 4.5.2, 4S, запис 1 кГц, три польоти по дві-три хвилини. У всіх трьох звіт позначив M4, передній лівий мотор:

Вібрація 1× кожного мотора у семи польотах: на VX3.5 M4 має найвище значення у польотах A, B і C (2,0×, 2,0×, 2,2×); на квадрокоптері 6S у польотах D–G найгучніший мотор — M3, потім M3, M1 і M4
Вібрація 1× кожного мотора після віднімання шуму: польоти A–C на VX3.5 (ліворуч), польоти D–G на квадрокоптері 6S (праворуч, поріг перевищено лише в E і F). Пунктир — 1,8× медіани інших моторів; підписи — найгучніший мотор і решта.

Це ознака апаратної проблеми: випадковість не обирає той самий мотор тричі. У четвертому польоті M4 знову був найгучнішим із показником 1,75× — трохи нижче порога, тому звіт не подав сигналу. Поріг відсікає граничні випадки; висновок роби за серією логів.

M3 (задній лівий) теж має підвищене значення — 1,6–1,7×, але порога не перевищує: варто оглянути, але це ще не доказ. До того ж M4 — найменш навантажений мотор цього дрона (у другому польоті середня команда для передньої пари становила 21%, для задньої — 33%), але вібрує він найбільше. Отже, причина не в навантаженні, а в дисбалансі пропелера, дзвона або вала.

Квадрокоптер 6S, де проблема переміщується

Інша збірка на Betaflight 4.5.1, 6S, запис приблизно 1 кГц, чотири польоти за два тижні. В одному польоті позначено M3 (задній лівий): 3,2 проти ~1,7 град/с, 1,8×, ×12,4 вище шуму, 619 блоків. В іншому — M1 (задній правий): 4,0 проти ~2,1, 1,9×, ×13,3, 713 блоків. У двох решті польотів M3 і M4 були найгучнішими з показниками 1,5× і 1,6× — нижче порога.

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

Ці логи також показують, чому важливий поріг шуму. В окремих моторів співвідношення 2× виглядало тривожно: 4,8–5,3. Але в жодного іншого мотора 2× не перевищувала шум навіть у ×1,5, тому для співвідношення взяли базові 0,1 град/с. Гармоніка становила близько 0,5 град/с — лише ×1,6–1,9 вище шуму, нижче порога ×2,5, — тож звіт правильно її проігнорував.

Як читати фразу «що рівномірніше, то краще»

У звіті наведено вібрацію 1× для кожного мотора. VX3.5, політ другий: M1: 1.4, M2: 0.7, M3: 2.3, M4: 2.9.

Ліворуч: стовпчики вібрації 1×, 2× і 3× для моторів M1–M4; на 1× виділяється M4 зі значенням 2,95 град/с, 2× низька в усіх моторів, 3× рівномірна — близько 1 град/с. Праворуч: відхилення RPM кожного мотора від інших за однакового газу; всі лінії в межах ±4%, далеко від порогів ±6% і −10%
VX3.5, політ другий. A: 1×, 2× і 3× для кожного мотора після віднімання шуму (сірі точки — рівень шуму); M4 виділяється на 1×, тоді як 2× нижче 0,6 град/с, а 3× рівномірна, тож ознак пошкодженої лопаті немає. B: відхилення RPM від інших моторів за однакового газу — у межах ±4%; червоні риски — ±6%, червоні точки — −10%.

Абсолютні значення залежать від рами, жорсткості променів і кріплення польотного контролера, тому не порівнюй «2,9 град/с» між різними дронами; порівнюй мотори одного дрона й дивись на його попередні логи. Якщо після заміни пропелера значення вирівнялися, проблему усунуто, навіть якщо нічого не було позначено.

Коли даних мало

Лог PX4 1.12 із записом 200 Гц для великого дрона 6S, мотори на 41–53 Гц: гармоніки часто опускаються нижче 40 Гц, впираються у стелю 85 Гц або перетинаються. 1× вдалося обчислити лише для двох моторів. Для 2× звіт повідомив: «мотор 2: підвищена гармоніка 2×, у 52,9 раза сильніша (5,3 проти ~0,0 град/с)», але для інших моторів не вдалося виміряти рівень шуму, тож жоден не потрапив до базового значення й для співвідношення використали 0,1 град/с, хоча власне значення 2× мотора 1 було вищим — 8,6 град/с. Оглянь пропелери, але не вважай це вироком: враховуй абсолютне значення град/с, кількість блоків і частоту запису, а не лише співвідношення.

RPM за однакового газу

Друга, незалежна перевірка виявляє тертя й навантаження. Справні мотори з однаковими пропелерами обертаються з однаковою швидкістю за однакового газу. Аналіз розбиває політ на діапазони команди мотора (10–90% із кроком 5%, щонайменше 0,3 с даних для кожного мотора в кожному діапазоні) і порівнює медіану RPM кожного мотора із середнім значенням інших моторів, щоб один слабкий мотор не змушував сусідні здаватися швидшими. Результат — середнє значення за діапазонами.

RPM також відстає від команди приблизно на 20 мс через інерцію ротора. Якщо це не врахувати, інтенсивніше навантажені мотори (наприклад, задня пара за зміщеного назад центру мас) здаватимуться на 2–3% «повільнішими», хоча несправності немає. Тому спершу так само зміщують у часі команду.

Відхилення від іншихРівеньЩо перевірити
−6% або меншепопередженняПідшипники (прокрути рукою, перевір, чи немає скреготу), дзвін, що треться, перегріті обмотки, крок пропелера
−10% або меншекритичноТе саме; не літай, доки не перевіриш: це зменшує запас тяги й перегріває мотор
+6% або більшепопередженняПропелер: надщерблена чи обрізана лопать, неправильний крок або розмір, прокручування на валу

Норма: для VX3.5 отримано +2,0%, −1,7%, +2,0%, −2,2%, а в окремих діапазонах — до ±4% (панель B вище). Задня пара майже всюди показує трохи «вищі» оберти — імовірно, причина не в моторах: через зміщений назад центр мас вони довго працюють на високому газу, тоді як передня пара виходить на нього лише короткими ривками. Загальні значення квадрокоптера 6S залишилися в межах ±0,6%. Поріг 6% чітко відділяється від цього розкиду.

Розглядай обидві перевірки разом. Сильна 1× за нормального RPM: дисбаланс (M4 на VX3.5). Низький RPM без піка 1×: тертя або згоріла обмотка. Обидві ознаки в одного мотора: зазвичай пошкодження після крашу, погнутий вал або дзвін, що треться.

Перевір на столі

  1. Новий пропелер. Постав новий пропелер із тієї самої партії на підозрілий мотор і злети. Пік зник — винен пропелер. Переконайся, що втулка лежить рівно: пісок або перекошена шайба під пропелером спричиняють такий самий дисбаланс.
  2. Прокрути мотор рукою. Від'єднай акумулятор, зніми пропелер (після польоту мотор може бути гарячим) і прокрути дзвін: скрегіт, заїдання, вертикальний люфт вала або сліди тертя на статорі означають, що потрібні нові підшипники або мотор. Подивися збоку, чи не хитається дзвін: від удару він може погнутися.
  3. Поміняй місцями. Поміняй мотор місцями із сусіднім. Проблема перемістилася — винен мотор. Залишилася — перевір ESC, паяні з'єднання або промінь.
  4. Геометрія. Перевір на рівному столі, що всі мотори стоять вертикально й жоден промінь не скручений.
  5. Контрольний лог. Виконай такий самий простий політ і порівняй лінію 1×.

Тест обертання у вкладці Motors — лише без пропелерів. Деякі несправності проявляються тільки під навантаженням, тому остаточну відповідь дає лог.

Нумерація: Betaflight та INAV, Quad X — M1 задній правий, M2 передній правий, M3 задній лівий, M4 передній лівий. ArduPilot і PX4 — 1 передній правий, 2 задній лівий, 3 передній лівий, 4 задній правий. bbdoctor використовує нумерацію прошивки з логу й, якщо відома конфігурація рами, додає позицію: «Мотор 4 (передній лівий)».

Схожі проблеми, коли з моторами все гаразд

Желе на відео

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

Спершу перевір лог: якщо один мотор виділяється на 1×, заміни його пропелер і оглянь мотор, потім постав нові пропелери на всі мотори. Якщо вібрація моторів рівномірна, а желе не зникло, проблема у кріпленні: підтягни гвинти, переконайся, що камера не торкається рами, додай демпфери або TPU-кріплення. Стабілізація під час монтажу часто не прибирає дрібне високочастотне желе.

У лозі немає RPM

INAV та EmuFlight зазвичай не записують RPM кожного мотора; Betaflight теж не записує їх до версії 4.5, а в ArduPilot чи PX4 без телеметрії ESC немає джерела RPM. Тоді аналіз кожного мотора недоступний, і звіт повідомить про це. Решта перевірок працює:

Тоді діє старий спосіб: спершу нові пропелери, потім міняй мотори місцями. Якщо ESC підтримують двонаправлений DShot, увімкнути його в Betaflight 4.5 швидше, ніж цілий день міняти деталі.

Перевір автоматично

Завантаж лог на bbdoctor — це безкоштовно й працює онлайн. Сервіс виконує всі перевірки з цього гайда. Якщо якихось полів бракує, у звіті буде вказано, що ввімкнути, і наведено команди CLI. Переглянь приклад звіту й перевір налаштування перед польотом за допомогою перевірки конфігурації.

Часті запитання

Як зрозуміти, який мотор спричиняє вібрацію?

Потрібен лог із нефільтрованим гіроскопом і RPM для кожного мотора (двонаправлений DShot або телеметрія ESC). Тоді вібрацію можна розділити за моторами: у проблемного мотора значно сильніша складова на його частоті обертання (1×). bbdoctor позначає мотор, коли ця складова у 1,8 раза сильніша, ніж в інших, і чітко перевищує шум. Без RPM у лозі доведеться міняти пропелери й мотори місцями.

Це пропелер чи мотор?

Постав новий пропелер на підозрілий мотор і злети ще раз. Пік зник — винен пропелер. Залишився — поміняй мотор місцями із сусіднім: якщо проблема перемістилася разом із мотором, несправний мотор (дзвін, вал, підшипники); якщо лишилася на тому самому промені, перевір ESC, паяні з'єднання або промінь. Якщо мотор виділяється в кожному польоті навіть із новим пропелером, оглянь дзвін, вал і підшипники.

Чому один мотор гарячіший за інші?

Порівняй його RPM за однакового газу: якщо він обертається щонайменше на 6% повільніше за інші, щось гальмує його — підшипники, дзвін треться, обмотка згоріла або крок пропелера більший. Якщо RPM нормальний, зазвичай причина — зміщений центр мас: одна пара моторів постійно працює інтенсивніше й нагрівається.

Чи можна знайти несправний мотор без двонаправленого DShot?

Аналіз кожного мотора — ні: без RPM неможливо прив'язати вібрацію до конкретного мотора. У лозі все одно видно загальний рівень шуму, резонанси рами, різницю навантаження між парами моторів і діагональ, яка компенсує рискання. Точний мотор тоді знаходять, міняючи пропелери й мотори місцями.

Оновлено:

Інші гайди