Симптом: в Acro аппарат летит приемлемо, но в Stabilize, AltHold или Loiter начинает «колбасить», сам набирает высоту, медленно реагирует на стики или теряет устойчивость. В такой ситуации не стоит сразу уменьшать PID или включать все фильтры подряд. Сначала нужно понять, что показывают VIBE, clipping и IMU, затем устранить механическую причину и только после этого настраивать harmonic notch.
Почему вибрации особенно заметны не в Acro
Акселерометры участвуют в оценке положения вместе с барометром и GPS. В ручном Acro часть ошибки может быть незаметна, потому что пилот сам задаёт движение и не требует от автопилота удерживать угол, высоту и координаты. В Stabilize, AltHold и Loiter эта же ошибка попадает в контур управления. ArduPilot может принять вибрацию за ускорение, наклон или изменение высоты и начать компенсировать несуществующее движение.
Поэтому симптом «в Acro нормально, а в AltHold аппарат резко уходит вверх» не доказывает неисправность режима. Это повод проверить акселерометр, крепление полётного контроллера, пропеллеры, моторы и фильтрацию.
Что смотреть в Mission Planner: Vibe и clipping
В Mission Planner нажмите индикатор Vibe на HUD и наблюдайте VibeX, VibeY и VibeZ на неподвижном аппарате и во время короткого безопасного теста. Это не оценка «на глаз», а численные показатели вибрации акселерометра в м/с².
| Наблюдение | Что оно подсказывает | Следующий шаг |
|---|---|---|
| VibeX/Y/Z обычно ниже 30 м/с² | По ориентиру официальной документации уровень обычно приемлем, но важен весь лог, а не одно мгновенное значение. | Проверить clipping и посмотреть, не растёт ли вибрация на оборотах или скорости. |
| Пики выше 30 м/с² | Могут начаться проблемы с удержанием высоты или позиции. | Искать источник вибрации до настройки PID. |
| Значения выше 60 м/с² | Такой уровень почти всегда связан с проблемами AltHold или позиционных режимов. | Не использовать автономные режимы, снять лог и вернуть аппарат на механику. |
| Clip0/Clip1/Clip2 постоянно увеличиваются | Один или несколько акселерометров достигают предела измерения. Это серьёзнее обычного шума. | Проверить крепление, пропеллеры, моторы и раму; не маскировать проблему фильтром. |
Сноска 1. Порог 30 м/с² — ориентир из документации ArduPilot, а не универсальная гарантия исправного полёта. На разных рамах, режимах и версиях прошивки важны форма графика, длительность пиков и поведение всех осей. Clipping желательно видеть равным нулю; небольшое число импульсов, например после жёсткой посадки, само по себе не равно аварии, но регулярный рост по логу требует ремонта.
Как читать VIBE в DataFlash-логе
- Запишите обычный полёт. Несколько минут спокойного висения недостаточно: добавьте безопасные изменения газа и движения, чтобы увидеть, при каких оборотах возникает проблема.
- Откройте сообщение VIBE. Постройте графики
VibeX,VibeY,VibeZи отдельноClip0,Clip1,Clip2. Сравните участок до появления симптома и сам симптом. - Сопоставьте ось с механикой. Высокие X и Y одновременно часто указывают на мотор, пропеллер или общую виброразвязку. Высокая только одна из горизонтальных осей может быть связана с креплением полётника или проводом, который касается платы. Высокая Z заставляет проверить биение пропеллера и вертикальный люфт мотора.
- Сравните режимы. Если в висении график хороший, а на скорости резко ухудшается, смотрите аэродинамику, жёсткость рамы и влияние потока. Не пытайтесь решить такую причину только снижением частоты фильтра.
Названия полей в старых и новых логах отличаются. Не переносите снимок чужого графика на свою версию ArduPilot без проверки сообщения и типа EKF. Это особенно важно для старых примеров с NKF и XKF.
«The Leans»: когда оценка начинает уезжать
«The Leans» — ситуация, когда оценка положения или крена становится неверной и аппарат заметно наклоняется, хотя пилот командует ровный полёт. Один из возможных механизмов — aliasing: высокочастотная вибрация после дискретизации выглядит как более низкая частота внутри измерительного диапазона.
Фильтр не может надёжно удалить уже наложившуюся ошибку. Поэтому сначала исправляют источник и крепление, а не пытаются поднять или опустить все фильтры. В логе можно сравнить оценки AHRS/EKF, но конкретные названия полей зависят от версии прошивки и выбранного EKF. Если оценки расходятся на несколько градусов, сохраняйте участок лога и проверяйте вибрации вместе с настройками IMU.
Сначала механика, потом фильтры
Порядок проверки имеет значение: программная фильтрация может сделать график красивее, но не выправит кривую раму или разбитый подшипник.
- Снимите пропеллеры и проверьте их на трещины, деформацию, люфт и баланс. Не меняйте сразу все винты на новые без фиксации результата.
- Проверьте вал и подшипники моторов, крепление моторов и одинаковость затяжки. Слишком длинный винт может повредить обмотку.
- Проверьте лучи, пластины и стойки рамы на люфт, трещины и перекос. Небольшая геометрическая ошибка может заметно увеличить вибрацию на оборотах.
- Полётный контроллер должен быть закреплён по инструкции производителя. Провод, стяжка или корпус, касающийся платы, способен передавать вибрацию по одной оси.
- После одного изменения повторите тот же тест. Одновременная замена пропеллеров, моторов и фильтров лишает лог диагностической ценности.
Что делает harmonic notch
ArduPilot использует низкочастотные фильтры для акселерометра и гироскопа, а harmonic notch — для вырезания узких пиков шума на частоте вращения моторов и её гармониках. Механическое устранение вибрации остаётся первым шагом: aliasing и перегрузка акселерометра фильтр надёжно не исправит.
Общая логика настройки такая:
- Снять исходный лог и определить, на каких оборотах или частотах появляется пик.
- Выбрать способ управления частотой notch: статический, throttle-based, по RPM-сенсору, по телеметрии ESC или In-Flight FFT.
- Включить первый набор через
INS_HNTCH_ENABLE = 1и после перезагрузки открыть появившиеся параметры. - Сделать контрольный полёт, сравнить спектр до и после и проверить, не выросла ли нагрузка на процессор.
INS_HNTCH_MODE = 0 задаёт статическую частоту, 1 связывает её с газом, 2 и 5 используют RPM-сенсоры, 3 — телеметрию ESC, а 4 — In-Flight FFT. Точные доступные варианты зависят от типа аппарата, прошивки и аппаратной поддержки.
Сноска 2. Dynamic FFT и фильтр по RPM решают близкую задачу разными измерениями. RPM сообщает, где находится частота вращения, а FFT ищет пики в данных гироскопа. Отсутствие bidirectional DShot не означает автоматически, что FFT невозможен, но режим FFT требует поддержки прошивки и достаточного ресурса CPU. В официальной документации как практический ориентир указаны автопилоты F7/H7; для F4 нужно отдельно проверить ограничения конкретной платы и сборки.
Raw IMU logging: минимальная процедура для FFT
Для прошивки 4.5 и новее на автопилоте с H7 ArduPilot предлагает записывать raw IMU и анализировать лог в Filter Review. Перед тестом выберите способ управления частотой notch и убедитесь, что он действительно настроен: raw-лог показывает шум, но не заменяет настройку ESC telemetry, RPM или throttle-based режима.
- Сохраните параметры и установите
INS_RAW_LOG_OPT = 9. Это сочетание битов 0 и 3: запись первичного гироскопа до и после фильтра. - Выполните обычный тестовый полёт не только в мягком висении, продолжительностью не менее 30 секунд, затем скачайте DataFlash-лог.
- Загрузите лог в Filter Review, выберите стабильный участок висения и нажмите Calculate. Сравнивайте спектр до и после фильтра, особенно в нижней части полосы управления до 40 Гц.
- Подберите параметры в инструменте, сохраните их в автопилот и сделайте повторный полёт для проверки.
- После анализа очистите
INS_RAW_LOG_OPT. Большие raw-логи не следует писать постоянно.
На более медленных F4 raw-логирование может не успевать записывать данные и приводить к пропускам. ⚠️ Если Filter Review сообщает, что данных недостаточно, сначала уменьшите FFT window с 1024 до 512 или отключите запись post-filter и повторите короткий тест. Не оставляйте raw-логирование включённым «на всякий случай».
Не включайте все гармоники подряд
Параметр INS_HNTCH_HMNCS добавляет фильтры на кратных частотах. Чем больше гармоник, тем больше вычислительная нагрузка. В режиме телеметрии ESC набор фильтров может создаваться для каждого мотора, поэтому число фильтров растёт намного быстрее, чем ожидает новичок. Официальная документация называет три гармоники обычно безопасным началом и отдельно предупреждает о риске исчерпать CPU.
Если после включения notch аппарат стал хуже реагировать, появились сообщения о нагрузке или пропуски логов, вернитесь к последнему рабочему набору параметров. Не лечите перегрузку снижением failsafe и не копируйте чужие значения INS_HNTCH_* без совпадения моторов, рамы, RPM и версии прошивки.
Безопасный тест после изменения
- Сохраните параметры до изменения и запишите, какой параметр меняется.
- Проверьте аппарат на земле со снятыми пропеллерами: крепление, проводку, направление вращения и отсутствие механического люфта.
- Выполните короткий тест в ручном или Stabilize-режиме на безопасной высоте и рядом с местом посадки. Не начинайте с RTL, Loiter или Auto.
- Сразу сохраните DataFlash-лог. Сравните VIBE, clipping и спектр с исходным полётом.
- Оставьте изменение только если вибрация действительно уменьшилась и аппарат не получил новую задержку или осцилляцию.
Что говорят практические кейсы
В экспортированном чате FPV Club описан симптом: в Acro полёт выглядит нормально, а в Stabilize или AltHold начинаются сильные вибрации, аппарат набирает высоту и становится плохо управляемым (messages3.html#message229865). Это полезный пример для поиска по симптомам, но не готовый диагноз: тот же сценарий дают неверный hover throttle, плохая настройка, механическая вибрация и ошибки оценки.
В другой ветке спрашивали, есть ли смысл включать Dynamic FFT без bidirectional DShot (messages3.html#message233564). В ответ правильно разделили два подхода: FFT ищет пики шума гироскопа, а RPM-фильтрация использует скорость моторов. Но совет «процессор должен потянуть» нужно превращать в проверку возможностей конкретной платы и лога, а не в универсальную рекомендацию.
Ещё одна дискуссия о FSVIBE_ENABLE показывает типичную путаницу: vibration compensation может временно изменить работу оценки и контура высоты, но это не ремонт вибрации (messages3.html#message228087, messages3.html#message228104). Отдельный вопрос про BlueJay и запись телеметрии ESC подчёркивает, что подключение и логирование ESC — самостоятельная задача, которую нельзя подменять включением FFT (messages2.html#message147587).
Сообщество ArduPilot полезно для поиска похожих конфигураций, но любой совет из форума нужно сверять с официальной документацией, версией прошивки, типом рамы и аппаратным ресурсом.
Короткий чек-лист
- Сняты пропеллеры перед осмотром и сохранён исходный набор параметров.
- В логе проверены VibeX/Y/Z и Clip0/1/2, а не только ощущения в полёте.
- Проверены пропеллеры, моторы, рама, крепление FC и провода.
- Источник вибрации устранён до агрессивной настройки фильтров.
- Для harmonic notch выбран метод, который поддерживают конкретная плата и прошивка.
- После изменения сделан повторный лог, а failsafe и защитные пороги не отключались.
Источники и связанные материалы
- ArduPilot: Measuring Vibration — Vibe, clipping, оси, «The Leans» и FFT.
- ArduPilot: Dynamic Harmonic Notch Filters — режимы
INS_HNTCH_MODE, гармоники и проверка эффективности. - ArduPilot: Raw IMU Logging — сбор данных для спектрального анализа.
- ArduPilot: Vibration Damping — механическое устранение вибраций.
- ArduPilot Filter Review Tool — проверка фильтров по логу.
- ArduPilot Discuss — неофициальные обсуждения, которые нужно сверять с документацией.
- FPV Club: Гайд по тюнингу ArduCopter — общий порядок настройки, а эта статья посвящена диагностике вибраций.
- FPV Club: Гид по логам ArduPilot — базовая работа с DataFlash.
Сноска 3. Названия параметров, поля логов и ограничения аппаратуры меняются между версиями ArduPilot и типами автопилотов. Перед применением сверяйте официальную документацию для своей версии, платы и конфигурации. Проверено: 31 июля 2026 года.
