Вібрація дрона: як знайти несправний мотор або пропелер за логом
Після крашу дрон гуде на газу, на відео з'являється желе, а один мотор гарячіший за решту. Знімати пропелери по одному й міняти мотори місцями довго, а коли проблема то з'являється, то зникає — ще й ненадійно. Якщо записати потрібні поля, лог одразу вкаже на мотор і допоможе відрізнити справжню вібрацію від схожих проблем: зміщеного центру мас, нахиленого мотора, збоїв телеметрії.
Нижче — як це працює в 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 і новіші, зокрема 2025.12. DShot300 або DShot600 із двонаправленим DShot, правильною кількістю полюсів, ESC на Bluejay, AM32 або BLHeli_32. У версії 4.5 обидва поля записуються за замовчуванням. Записуй на 2 кГц, а не 1 кГц: дільник 1/2 для циклу PID 4 кГц, 1/4 для 8 кГц.
- Betaflight 4.0–4.4. Сирий гіроскоп потрапляє в лог лише з
debug_mode = GYRO_SCALED, а RPM моторів взагалі не записується: обидва поля з'явилися у версії 4.5. Двонаправлений DShot (починаючи з 4.1) передає RPM до RPM-фільтра, але для аналізу кожного мотора потрібна 4.5. - ArduPilot. RPM із телеметрії ESC (двонаправлений DShot через
SERVO_BLH_BDMASKабо послідовна телеметрія), сирий гіроскоп через біт IMU_RAW уLOG_BITMASK, а такожINS_RAW_LOG_OPTу версії 4.5 і новіших. Дивись аналіз логів ArduPilot. - PX4. RPM із
esc_status, сирий гіроскоп — черезSDLOG_PROFILEз High rate і Raw FIFO gyro. Дивись аналіз PX4 ULog.
Для 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.
Як працює відстеження порядку для кожного мотора
Метод запозичено з діагностики обертових механізмів:
- Фаза мотора. eRPM дає частоту обертання кожного мотора для кожного відліку; накопичення цих значень дає кут ротора — фазу.
- Блоки. Сирий гіроскоп roll і pitch, із відфільтрованим рухом нижче 30 Гц, ділиться на блоки по 0,25 с: частотна роздільність 4 Гц.
- Демодуляція. Кожен блок «розкручується» за фазою одного мотора. Складові, що обертаються синхронно з ним, підсумовуються; складові інших моторів і шум усереднюються. Так отримуємо 1× (раз за оберт: дисбаланс), 2× і 3×.
- Рівень шуму. Такий самий розрахунок на 12 і 16 Гц вище та нижче гармоніки дає фон, який віднімається за потужністю. У звіті показано вібрацію «після віднімання шуму».
- Відбраковування. Блок пропускається, якщо будь-який мотор повільніший за 20 Гц, а гармоніка — якщо її частота нижча за 40 Гц, ближча ніж на 15 Гц до половини частоти запису або ближча ніж на 10 Гц до будь-якої іншої гармоніки — іншого мотора чи власної відбитої. У точках перетину їх неможливо розрізнити.
- Результат. Медіана за всіма блоками, стійка до викидів. Потрібно щонайменше 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, передній лівий мотор:
- політ перший: 2,6 град/с проти ~1,3 в інших, 2,0×, ×6,0 вище шуму, 243 блоки;
- політ другий: 2,9 проти ~1,4, 2,0×, ×6,1, 387 блоків;
- політ третій: 2,5 проти ~1,2, 2,2×, ×4,9, 229 блоків.

Це ознака апаратної проблеми: випадковість не обирає той самий мотор тричі. У четвертому польоті 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.

Абсолютні значення залежать від рами, жорсткості променів і кріплення польотного контролера, тому не порівнюй «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×: тертя або згоріла обмотка. Обидві ознаки в одного мотора: зазвичай пошкодження після крашу, погнутий вал або дзвін, що треться.
Перевір на столі
- Новий пропелер. Постав новий пропелер із тієї самої партії на підозрілий мотор і злети. Пік зник — винен пропелер. Переконайся, що втулка лежить рівно: пісок або перекошена шайба під пропелером спричиняють такий самий дисбаланс.
- Прокрути мотор рукою. Від'єднай акумулятор, зніми пропелер (після польоту мотор може бути гарячим) і прокрути дзвін: скрегіт, заїдання, вертикальний люфт вала або сліди тертя на статорі означають, що потрібні нові підшипники або мотор. Подивися збоку, чи не хитається дзвін: від удару він може погнутися.
- Поміняй місцями. Поміняй мотор місцями із сусіднім. Проблема перемістилася — винен мотор. Залишилася — перевір ESC, паяні з'єднання або промінь.
- Геометрія. Перевір на рівному столі, що всі мотори стоять вертикально й жоден промінь не скручений.
- Контрольний лог. Виконай такий самий простий політ і порівняй лінію 1×.
Тест обертання у вкладці Motors — лише без пропелерів. Деякі несправності проявляються тільки під навантаженням, тому остаточну відповідь дає лог.
Нумерація: Betaflight та INAV, Quad X — M1 задній правий, M2 передній правий, M3 задній лівий, M4 передній лівий. ArduPilot і PX4 — 1 передній правий, 2 задній лівий, 3 передній лівий, 4 задній правий. bbdoctor використовує нумерацію прошивки з логу й, якщо відома конфігурація рами, додає позицію: «Мотор 4 (передній лівий)».
Схожі проблеми, коли з моторами все гаразд
- Зміщений центр мас. На тому самому VX3.5 задня пара в кожному польоті була навантажена на 42–54% більше за передню, а I-складова pitch трималася на рівні 42–55 для компенсації (тривалий швидкий політ уперед може дати схожий результат). Попередження з'являється за різниці між сторонами від 12%, критичний рівень — понад 30%. Пересувай акумулятор, доки дрон не балансуватиме горизонтально на пальцях під центром рами.
- Діагональ компенсує рискання. Якщо середня команда моторів одного напрямку обертання на 12% або більше перевищує інші, мікшер постійно компенсує рискання. На маленькому квадрокоптері 2S (CS110) різниця становила 15%, на Tiny Whoop 1S з INAV — 46%. Причина механічна (нахилений мотор, скручений промінь, різний крок пропелерів), тому нові мотори не допоможуть.
- Помилки телеметрії eRPM. На іншому квадрокоптері 6S (Betaflight 4.5.1) у M3 і M4 було 1,3 і 1,6 стрибка RPM за секунду, а в інших двох — менше ніж 0,1. Поріг — понад один стрибок за секунду або понад 1% нульових значень під час обертання. Тоді RPM-фільтр ставить notch не туди. Перевір паяне з'єднання сигнального дроту ESC, перешкоди від силових дротів і прошивку ESC.
- Резонанс рами. Пік на незмінній частоті за будь-якого газу походить від рами або стека. У лозі із записом приблизно 1 кГц справжня частота неоднозначна: на квадрокоптері 6S (лог 1013 Гц) пік «186 Гц» може бути також 827 або 1199 Гц. Як розпізнати його на тепловій карті — у гайді про читання логу blackbox.
- Шум через налаштування. Слабка фільтрація або високий D нагрівають мотори навіть без механічної несправності. Це, а також налаштування RPM-фільтра й notch, описано в гайді про гарячі мотори й налаштування фільтрів.
Желе на відео
Желе — це артефакт построкового затвора: сенсор зчитує кадр рядок за рядком, і якщо під час зчитування камера тремтить, рядки зміщуються. Тому желе прямо показує вібрацію, що доходить до камери: дисбаланс пропелера або дзвона, ненадійне кріплення, резонансний кронштейн.
Спершу перевір лог: якщо один мотор виділяється на 1×, заміни його пропелер і оглянь мотор, потім постав нові пропелери на всі мотори. Якщо вібрація моторів рівномірна, а желе не зникло, проблема у кріпленні: підтягни гвинти, переконайся, що камера не торкається рами, додай демпфери або TPU-кріплення. Стабілізація під час монтажу часто не прибирає дрібне високочастотне желе.
У лозі немає RPM
INAV та EmuFlight зазвичай не записують RPM кожного мотора; Betaflight теж не записує їх до версії 4.5, а в ArduPilot чи PX4 без телеметрії ESC немає джерела RPM. Тоді аналіз кожного мотора недоступний, і звіт повідомить про це. Решта перевірок працює:
- Теплова карта шуму залежно від газу. Лінії, що піднімаються зі збільшенням газу, походять від моторів і пропелерів; лінія на незмінній частоті — від рами. Це допомагає розрізнити пропелери й раму, але не визначити конкретний мотор.
- Навантаження моторів. Дисбаланс пар і діагональ рискування видно з команд моторів, RPM для цього не потрібен.
- Показники VIBE в ArduPilot. Нижче 30 м/с² — норма, вище 60 майже завжди погіршує утримання висоти й позиції; також є лічильник насичення акселерометра.
Тоді діє старий спосіб: спершу нові пропелери, потім міняй мотори місцями. Якщо ESC підтримують двонаправлений DShot, увімкнути його в Betaflight 4.5 швидше, ніж цілий день міняти деталі.
Перевір автоматично
Завантаж лог на bbdoctor — це безкоштовно й працює онлайн. Сервіс виконує всі перевірки з цього гайда. Якщо якихось полів бракує, у звіті буде вказано, що ввімкнути, і наведено команди CLI. Переглянь приклад звіту й перевір налаштування перед польотом за допомогою перевірки конфігурації.
Часті запитання
Як зрозуміти, який мотор спричиняє вібрацію?
Потрібен лог із нефільтрованим гіроскопом і RPM для кожного мотора (двонаправлений DShot або телеметрія ESC). Тоді вібрацію можна розділити за моторами: у проблемного мотора значно сильніша складова на його частоті обертання (1×). bbdoctor позначає мотор, коли ця складова у 1,8 раза сильніша, ніж в інших, і чітко перевищує шум. Без RPM у лозі доведеться міняти пропелери й мотори місцями.
Це пропелер чи мотор?
Постав новий пропелер на підозрілий мотор і злети ще раз. Пік зник — винен пропелер. Залишився — поміняй мотор місцями із сусіднім: якщо проблема перемістилася разом із мотором, несправний мотор (дзвін, вал, підшипники); якщо лишилася на тому самому промені, перевір ESC, паяні з'єднання або промінь. Якщо мотор виділяється в кожному польоті навіть із новим пропелером, оглянь дзвін, вал і підшипники.
Чому один мотор гарячіший за інші?
Порівняй його RPM за однакового газу: якщо він обертається щонайменше на 6% повільніше за інші, щось гальмує його — підшипники, дзвін треться, обмотка згоріла або крок пропелера більший. Якщо RPM нормальний, зазвичай причина — зміщений центр мас: одна пара моторів постійно працює інтенсивніше й нагрівається.
Чи можна знайти несправний мотор без двонаправленого DShot?
Аналіз кожного мотора — ні: без RPM неможливо прив'язати вібрацію до конкретного мотора. У лозі все одно видно загальний рівень шуму, резонанси рами, різницю навантаження між парами моторів і діагональ, яка компенсує рискання. Точний мотор тоді знаходять, міняючи пропелери й мотори місцями.
Оновлено: