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

Как убрать пропвош: найди причину по логу

Пропвош — болтанка квадрика, когда он проваливается в собственный поток воздуха. Пропы работают в уже закрученном воздухе, тяга на каждом моторе скачет, и полётник должен это гасить. Физику не отменить, но у сильного пропвоша обычно одна из трёх причин, и лечатся они по-разному: холостой ход, задержка фильтров или нехватка демпфирования. Поднимать D вслепую — самый частый способ нагреть моторы и ничего не исправить. Все цифры ниже — из реальных логов, на которых проверяется bbdoctor.

Что такое пропвош и когда он сильнее всего

Квадрик всё время отбрасывает воздух вниз. Пока он летит вперёд или вверх, пропы входят в чистый воздух. Стоит сбросить газ и начать падать — квадрик влетает в собственный след, и каждый проп попадает то в восходящий вихрь, то в нисходящий. Сильнее всего пропвош после сброса газа, в сплит-S и других разворотах через верх, в дайвах с резким выходом на газ у земли и на резких разворотах на 180°, когда квадрик проходит через воздух, который сам только что отбросил.

На видео это мелкая дрожь картинки, в тяжёлых случаях — заметная раскачка, а в логе — колебания гироскопа в основном на 15–30 Гц. В отличие от шума моторов (сотни герц, нагрев), пропвош — низкочастотная история: полётник видит ошибку, но не успевает её погасить.

Почему среднее по всем сбросам врёт

Колебания гироскопа на 15–80 Гц после сброса газа бывают не только от собственного потока. Если сразу после сброса ты крутишь флип, стик за полсекунды гонит setpoint до сотен градусов в секунду, гироскоп догоняет его с задержкой, и ошибка «гироскоп минус setpoint» в той же полосе получается огромной. Анализатор, который считает все сбросы подряд, покажет жуткий пропвош там, где на самом деле обычное отставание контура на быстром манёвре. Вот насколько это меняет результат:

ЛогСбросовЧистыхСреднее по всемПо чистым
Betaflight 4.2.5, 4S, запись 2 кГц15318.4 °/с1.8 °/с
Betaflight 4.5.1, 6S, 1 кГц52199.4 °/с0.85 °/с
Betaflight 4.5.1, 6S, 1 кГц, другой лог58357.2 °/с1.2 °/с
Betaflight 4.5.1, 6S, 1 кГц, третий лог52174.2 °/с1.0 °/с
VX3.5, Betaflight 4.5.2, 4S63383.8 °/с2.0 °/с

В первом логе 12 из 15 сбросов сразу ушли во флип с setpoint около 800 °/с. Вместе это «критичные» 18.4 °/с. Три сброса со стиками в центре дают 1.8 °/с. С квадриком всё в порядке, просто пилот любит флипать на сбросе.

Столбцы пропвоша для каждого из 15 сбросов газа: двенадцать красных от 5 до 59 °/с и три зелёных около 2 °/с; справа среднее по всем 18.4 и по чистым 1.8 °/с
Все 15 сбросов одного полёта (Betaflight 4.2.5, 2 кГц), худшая из осей roll/pitch, шкала логарифмическая, под столбцами — секунда лога. Красные — после сброса сразу флип, 5.1–58.6 °/с. Зелёные — чистые сбросы, 1.4–2.2 °/с. Пунктир — граница нормы 4 °/с. Справа: среднее по всем 15 (серый, 18.4) и по трём чистым (зелёный, 1.8).

В тестовом наборе bbdoctor 15 полётов на Betaflight с тремя и больше чистыми сбросами (прошивки от 3.1.5 до 2026.6), и во всех пропвош по чистым сбросам — 0.5–2.0 °/с. Лог Betaflight 4.6.0 дал среднее 10.9 °/с по пяти сбросам, но чистый среди них один, и отчёт пишет «не оценить». Выше нормы вышел только вупер 1S на INAV 8.0: 9.4 °/с по трём чистым сбросам. Но и там подвох: все три сброса — одна серия «газ в ноль и снова вверх» за 1.2 секунды, и газ возвращался уже через 0.2–0.4 с, внутри окна замера. Пока моторы были внизу, колебания держались на 2.9–6.4 °/с, а на возврате газа, когда моторы упирались в 100%, выросли до 10–15.

Тест на сбросах газа

Чтобы мерить пропвош, а не свои флипы, нужен отдельный короткий тест. Он занимает полбатареи; повторяй его после каждого изменения настроек, на такой же батарее и в похожий ветер.

  1. Включи blackbox (как — в гайде настройка blackbox). Полоса пропвоша кончается на 80 Гц, но пиши хотя бы 1 кГц: при более редкой записи шум моторов выше половины частоты записи отражается вниз и может попасть в эту полосу. 2 кГц заодно лучше покажут сам шум моторов, а он решает, можно ли поднимать D.
  2. Разгонись вверх на газе 50–70%. Сброс засчитывается, если за 0.15 с до него газ был выше 35% и упал больше чем на 25 процентных пунктов.
  3. Резко брось газ в ноль и держи его там, а roll и pitch в центре, хотя бы секунду — пусть квадрик провалится в свой поток. Окно замера — от 0.08 до 0.6 с после сброса: если газ вернётся раньше, bbdoctor посчитает панч вместе с пропвошем.
  4. Выровняйся, снова набери высоту, повтори 6–8 раз. Место выбирай без препятствий: сброс, закончившийся ударом или посадкой, анализатор выкинет.

Три чистых сброса дают грубую оценку, для уверенного вывода нужно пять. Если чистых восемь и больше, самый сильный выбрасывается: один сброс через ветку или чужой поток не решает за весь полёт. Мелкие поправки стиком не мешают: сброс считается чистым, пока setpoint по roll и pitch не превышает 150 °/с, а всё, что ниже 15 Гц, полосовой фильтр и так убирает.

Как читать пропвош в логе самому

  1. Найди сброс газа в Blackbox Explorer или другом просмотрщике: линия throttle резко падает.
  2. Посмотри на setpoint по roll и pitch в следующие полсекунды. Если там флип (сотни °/с), этот сброс пропусти.
  3. Если setpoint около нуля, смотри на gyro через 0.1–0.6 с после сброса. Пропвош — частые колебания вокруг setpoint: на 20 Гц это около 10 размахов за окно.
  4. Посмотри на моторы и газ в том же окне. Если линия мотора лежит на самом низу, полётнику нечем тормозить раскачку. А если газ уже пошёл вверх и моторы упёрлись в 100%, это не пропвош — такой сброс пропусти.
  5. Посчитай размахи за 0.1 с. До четырёх (до 40 Гц) — это демпфирование, пять и больше (от 50 Гц) — скорее задержка фильтров. У bbdoctor граница — 45 Гц.
Два чистых сброса газа: у вупера на INAV моторы падают в ноль, гироскоп болтает десятками градусов в секунду, а к концу окна газ снова максимальный; у VX3.5 моторы держатся выше холостого и гироскоп идёт за setpoint
Один чистый сброс в двух логах; пунктир — момент сброса, жёлтая полоса — окно замера (0.08–0.6 с). A — вупер 1S, INAV 8.0: моторы падают к нулю, гироскоп болтает при setpoint в нуле, а до конца окна газ снова в потолке и моторы упираются в 100%; 8.6 °/с на этом сбросе, 9.4 — по трём. B — VX3.5, Betaflight 4.5.2: самый слабый мотор не опускается ниже 5%, 0.6 °/с на этом сбросе, 2.0 — по 38.

Три причины и как bbdoctor их различает

Когда пропвош по чистым сбросам выше нормы, важно уже не «сколько», а «почему». bbdoctor решает это по тем же окнам после сброса:

ПричинаЧто видно в логеКак решает bbdoctorЧто делать
Холостой ходНа сбросе самый слабый мотор лежит на минимуме, часто это одна и та же параСамый слабый мотор в пределах 2% от минимума хотя бы 30% окна — в половине чистых сбросов и больше; или такие сбросы по медиане в 1.5 раза хуже остальных (если тех и других хотя бы по два)Dynamic Idle или холостой ход выше, D не трогать
Задержка фильтровМоторы не на минимуме, колебания частые, от ~45 ГцМедиана основной частоты по чистым сбросам — 45 Гц и вышеЧастоты D-term lowpass +15%, если моторы холодные
Мало демпфированияМоторы работают, колебания ниже 45 Гц, обычно 15–30Всё остальноеD +10% (базовый и потолок вместе), на шумных моторах — P +10%

Тяжесть: меньше 4 °/с — норма, 4–10 — предупреждение, от 10 — критично. Если чистых сбросов всего 3–4, любое превышение нормы — повод перепроверить на следующем полёте, а не сразу крутить настройки.

Во всех логах Betaflight из набора, кроме одного, основная частота пропвоша — 16–24 Гц, зона демпфирования; у вупера на INAV — 26 Гц. Исключение — лог Betaflight 2026.6 с пиком около 50 Гц, но пропвош там 1.2 °/с, а записан лог всего с частотой 247 Гц: всё, что выше 123 Гц, в нём отражается вниз по частоте. Высокий пик в медленном логе — повод для осторожности, а не для смены фильтров.

Причина 1: холостой ход

Мотор не может крутиться медленнее холостого. Если на сбросе самый слабый мотор уже лежит на минимуме, выровнять квадрик полётник может только поднимая остальные моторы, а тормозить с этой стороны ему нечем. Сколько D ни добавляй, ниже минимума мотор не опустится.

Betaflight 4.3+ с bidirectional DShot. Включи Dynamic Idle: он держит минимальные обороты моторов по телеметрии, а не процент газа. Значение задаётся в сотнях оборотов в минуту: для 5" около 30 (3000 об/мин), для 3" — 40–50, для 7" — 20–25. Если уже включён, прибавь 5. В 4.2 похожая настройка называлась idle_min_rpm и работала поверх dshot_idle_value.

set dyn_idle_min_rpm = 30
save

Два полёта 6S-квадрика на Betaflight 4.5.1 с dyn_idle_min_rpm = 35: ни один из 19 и 35 чистых сбросов не попал в «холостой ход». В двух других 6S-логах на той же прошивке Dynamic Idle выключен, и там так лежал мотор в 12–13% чистых сбросов; в одном из логов эти сбросы дали в 2.4 раза больше пропвоша, чем остальные, хотя в целом всё равно вышло 1.0 °/с.

При включённом Dynamic Idle в 4.3+ dshot_idle_value не действует: в заголовке тех логов нижняя граница моторов (motorOutput) — 48, то есть ноль DShot, а не 158. Поднимать dshot_idle_value в такой настройке бесполезно, прибавляй dyn_idle_min_rpm.

Без RPM-телеметрии подними обычный холостой ход на 1% газа (+100 единиц): dshot_idle_value в 4.5 и раньше, motor_idle в 2025.12+. Airmode должен быть включён, иначе на нуле газа стабилизация слабеет.

set dshot_idle_value = 650
save

INAV. throttle_idle задаётся в процентах (по умолчанию 8). Подними на 2 и переключи airmode на порог газа: тогда на нуле газа с отпущенными стиками I-term не замораживается. Документация INAV советует этот режим коптерам с пропами до 7"; сам airmode тоже должен быть включён.

set throttle_idle = 10
set airmode_type = THROTTLE_THRESHOLD
save

Ровно это bbdoctor посоветовал вуперу 1S на INAV: 9.4 °/с по трём чистым сбросам (8.6, 11.1 и 8.6), основная частота 26 Гц, в двух сбросах самый слабый мотор лежал на минимуме 46% и 36% окна. Сбросов только три, и газ возвращался раньше конца окна, поэтому совет идёт с оговоркой «если подтвердится»: подтверди его чистым тестом.

ArduPilot: MOT_SPIN_MIN +0.02, и держи его хотя бы на 0.03 выше MOT_SPIN_ARM. PX4: DSHOT_MIN +0.01, для аналоговых ESC — PWM_MAIN_MINx +20 мкс.

Обратная сторона высокого холостого — квадрик становится «плавучим»: медленнее снижается на нуле газа, хуже садится, вверх ногами быстрее теряет высоту. Поднимай по шагу, D на этом этапе не трогай.

Моторы на минимуме сами по себе не приговор. В логе Betaflight 4.0 самый слабый мотор лежал на холостом в 78% чистых сбросов при пропвоше 1.1 °/с, а у VX3.5 такие сбросы оказались не хуже остальных (0.6–1.0 от их уровня). Холостой ход — причина, только когда пропвош выше нормы.

Причина 2: задержка фильтров

Любой фильтр — это задержка. Если D-term отфильтрован слишком сильно, демпфирование приходит с опозданием, и контур раскачивается на сравнительно высокой частоте, от ~45 Гц. Подними частоты D-term lowpass примерно на 15% от текущих:

Пример для 4.5 с динамическим фильтром 75–150 Гц и включённым слайдером, как в 6S-логах из набора:

set simplified_dterm_filter = OFF
set dterm_lpf1_dyn_min_hz = 86
set dterm_lpf1_dyn_max_hz = 173
save

Для 4.2 с фильтром 70–170 Гц тот же шаг даёт 81 и 196 Гц в dyn_lpf_dterm_min_hz и dyn_lpf_dterm_max_hz.

Условие одно: моторы после полёта не должны стать заметно теплее, чем до изменения; стали — верни как было. Трогай их сразу после посадки, отключив батарею. Если моторы и так шумят и греются, частоты не трогай, сначала механика и шум (фильтры и нагрев моторов). Там же — про RPM-фильтр: именно он позволяет фильтровать меньше без вреда.

Причина 3: мало демпфирования

Моторы не на минимуме, частота ниже 45 Гц (обычно 15–30) — значит, контуру не хватает D (или P). Подними D по roll и pitch на 10%, базовый и потолок вместе:

Пример для 4.5 с теми же 6S-настройками (roll: базовый 33, потолок 44; pitch: 37 и 50; PID на слайдерах):

set simplified_pids_mode = OFF
set d_min_roll = 36
set d_roll = 48
set d_min_pitch = 41
set d_pitch = 55
save

В 2025.12 те же числа пишутся в d_roll/d_max_roll и d_pitch/d_max_pitch. Первая строка выключает слайдеры PID: иначе при следующем сохранении Configurator пересчитает ручные значения из них. Хочешь остаться на слайдерах — двигай слайдер демпфирования вместо команд.

Буст D на сбросах. D поднимается от базового к потолку не только от движения стика, но и от самой раскачки, по гироскопу. За это отвечает d_max_gain (в 4.0–4.2 — d_min_boost_gain). При низком базовом D и высоком потолке поднять его — способ получить больше D именно на пропвоше и не грузить моторы шумом в спокойном полёте. Подробнее о D Max и именах D по версиям — в гайде настройка PID по логу.

Когда D поднимать нельзя. D усиливает шум гироскопа, и этот шум идёт прямо в моторы. На горячих или шумных моторах вместо D подними P по roll и pitch на 10%: P тоже держит квадрик и шумит гораздо меньше. Но только если по этим осям нет перерегулирования; если ступенчатый отклик уже просит снизить P, не трогай и его — сначала механика и шум. Одно изменение за полёт.

В других прошивках: INAV — mc_d_roll/mc_d_pitch, ArduPilot — ATC_RAT_RLL_D/ATC_RAT_PIT_D, PX4 — MC_ROLLRATE_D/MC_PITCHRATE_D. Как проверить, что D не перебор, — там же.

Механика и центр тяжести

Пропвош усиливает всё, что отнимает у моторов запас. Побитый или погнутый проп даёт неровную тягу как раз там, где воздух и так рваный, а люфт в подшипниках и разболтанный стек добавляют шум, из-за которого нельзя поднять D (вибрации — найти плохой мотор или проп).

Менее очевидный фактор — центр тяжести. В трёх логах VX3.5 задняя пара моторов (M1 и M3 в стандартной раскладке Betaflight) работает на 42–54% выше передней: 27–37% выходного сигнала против 19–25%. И это не аэродинамика быстрого полёта: на участках почти без наклона (перегрузка 1 g ± 5%, вращение меньше 30 °/с) разница та же, 42–50%. Значит, вес смещён назад, передним моторам остаётся меньше работы, и на сбросе они первыми падают к холостому: во всех 38 чистых сбросах одного из полётов самым слабым был передний мотор. Пропвош на этом квадрике всё равно в норме, 2.0 °/с, но будь он выше, сдвинуть батарею вперёд было бы правильнее, чем крутить D.

Когда ничего не трогать

Частые ошибки: мерить пропвош по всем сбросам вместе с флипами (18 °/с вместо 1.8), возвращать газ раньше, чем кончится окно замера, поднимать D, когда мотор лежит на холостом, поднимать частоты фильтров на горячих моторах и менять три параметра за раз.

Проверить автоматически

Загрузи лог в bbdoctor, это бесплатно. Пропвош меряется ровно так, как описано выше, только по чистым сбросам. В отчёте будет заголовок вида «Пропвош: 1.8 °/с после сброса газа», сколько сбросов посчитано и почему остальные нет, основная частота, а если пропвош выше нормы — причина и команды для твоей прошивки от текущих значений.

Если чистых сбросов меньше трёх, а флипов много, отчёт напишет «не оценить» и подскажет, как слетать тест. D на шумных моторах сервис поднимать не предложит, а для медленных логов PX4 и ArduPilot, где верх полосы не виден, сделает оговорку. Как выглядит отчёт целиком — пример отчёта; настройки без лога можно проверить в проверке конфига.

Частые вопросы

Почему квадрик трясёт при сбросе газа?

Это пропвош: квадрик падает в собственный поток, и пропы работают в рваном воздухе. Сильным его делает одно из трёх: моторы проваливаются в холостой ход, фильтры D-term дают задержку или не хватает демпфирования. Причину видно по логу: лежат ли моторы на минимуме и какая частота у колебаний.

Поможет ли от пропвоша поднять D?

Только если причина — нехватка демпфирования (моторы не на минимуме, частота ниже 45 Гц), а моторы после полёта не горячие. Если на сбросе самый слабый мотор лежит на холостом, поможет Dynamic Idle, а не D. На горячих или шумных моторах вместо D подними P на 10%, если отклик не перелетает.

Как проверить пропвош по логу?

Слетай 6–8 прямых сбросов: разгон вверх на газе выше 35%, газ в ноль и секунду держи стики в центре. Флип сразу после сброса портит оценку: движение стика даёт те же колебания 15–80 Гц. Нужно хотя бы 3 чистых сброса, для уверенного вывода — 5.

Помогает ли RPM-фильтр от пропвоша?

Напрямую нет: пропвош лежит на 15–80 Гц, а RPM-фильтр режет шум моторов на частотах их вращения и ниже rpm_filter_min_hz (по умолчанию 100 Гц) не опускается. Зато с ним меньше шума, и можно поднять частоты D-фильтров и сам D без перегрева. А bidirectional DShot, который ему нужен, позволяет включить Dynamic Idle — главное средство, когда моторы проваливаются в холостой ход.

Обновлено:

Другие гайды