Діагностика: VX3.5
Здоров'я дрона
Що знайдено
Середня команда: ззаду 28.7%, решта 19.2%. I-складова по pitch ніколи не обнуляється (45) — вона компенсує перекіс. Центр мас зсунуто назад (акумулятор/камера), або дрон багато літав швидко вперед.
Що робити: Посунь акумулятор так, щоб дрон рівно балансував на пальцях під центром рами. Зайве навантаження на одну пару = менше запасу тяги, більше нагріву й гірший пропвош.
roll 4.1, pitch 2.4, yaw 2.5 °/с. Шумно — шукай причину в пропелерах/моторах/рамі, а не у фільтрах.
Що робити: Спершу механіка: нові пропелери, перевір підшипники, постав стек на м'які демпфери.
Відповідь проскакує ціль на 36% (90%: 29–44%, за 165 з 372 ділянок, де є рух стіка); половину заданої швидкості набирає за 8 мс. Поточні коефіцієнти roll: P 45, I 80, D 30 (до 45 на різких рухах), FF 120. Feedforward робить 60% роботи на рухах стіка, а на найрізкіших із них гіроскоп випереджає setpoint → перерегулювання від feedforward, а не від P/D.
Що робити: Знизь feedforward по roll на 15%: f_roll 120 → 102. Це налаштування міняти безпечно — мотори від нього не гріються, тому почни з нього, P і D поки не чіпай. Злітай ще раз і порівняй. Якщо перерегулювання лишиться лише на різких фліпах — наступним кроком зменш буст: «set feedforward_boost = 8» (зараз 15). Увага: поточні PID не збігаються зі слайдерами — Configurator перезапише їх під час наступного збереження; команди нижче вимикають слайдери (simplified_pids_mode = OFF).
set f_roll = 102 set simplified_pids_mode = OFF save
Відповідь проскакує ціль на 28% (90%: 23–37%, за 295 з 577 ділянок, де є рух стіка); половину заданої швидкості набирає за 9 мс. Поточні коефіцієнти pitch: P 47, I 84, D 34 (до 51 на різких рухах), FF 125. Feedforward робить 56% роботи на рухах стіка, а на найрізкіших із них помилка стеження майже нульова → перерегулювання від feedforward, а не від P/D.
Що робити: Знизь feedforward по pitch на 15%: f_pitch 125 → 106. Це налаштування міняти безпечно — мотори від нього не гріються, тому почни з нього, P і D поки не чіпай. Злітай ще раз і порівняй. Буст feedforward (feedforward_boost) спільний для всіх осей — про нього у знахідці «roll: перерегулювання 36%». (Слайдери PID вже вимкнено командою зі знахідки «roll: перерегулювання 36%».)
set f_pitch = 106 set simplified_pids_mode = OFF save
Тривало довше за 0.5 с — акумулятор працює на межі. Просідання на піках струму — акумулятор не тягне такий струм.
Що робити: Візьми акумулятор із вищим C-рейтингом, меншою ємністю/вагою або сідай раніше.
Мотори розкручуються до 610 Гц, а лог пишеться з частотою 1000 Гц (видно лише до 500 Гц). Вищі частоти «складаються» (аліасинг). Аналіз вібрацій по моторах це враховує, але спектр шуму й частоти резонансів неоднозначні.
Що робити: Для точної діагностики пиши лог на ~2 кГц (PID-цикл 4000 Гц → дільник 1/2).
set blackbox_sample_rate = 1/2 save
Feedforward — похідна стіка. Поки стіки рухаються, його складова вище 40 Гц (ривок на кожному пакеті апаратури): roll 2.1%, pitch 1.7% від діапазону мотора, ривків понад 5% діапазону — 34/28 на секунду (за 23 секунди руху стіків). Корисна частина FF (до 12 Гц) — 1.5/1.2%. На нерухомих стіках її майже немає (0.40%) — отже, її дають сходинки стіка. Зараз: лінк апаратури 494 Гц, згладжування стіків 185 Гц. Частки високочастотного шуму PID (>80 Гц) за записаними складовими: feedforward 89%, D-term 10%, P 1%.
Що робити: Поки не критично. Спершу зроби кроки зі знахідок «roll: перерегулювання 36%» і «pitch: перерегулювання 28%» (зниження FF) і злітай ще раз; згладжування FF нижче — для наступного польоту. По одній зміні за політ, зверху вниз: 1) усередни FF за двома пакетами й згладь його: feedforward_averaging OFF → 2_POINT, feedforward_smooth_factor 25 → 65. 2) feedforward_jitter_factor 7 → 12 (сильніше гасить FF на дрібних смиканнях стіка). 3) rc_smoothing_auto_factor 30 → 45: згладжування стіків 185 → 135 Гц, затримка +0.5 мс. D і фільтри D-складової заради цього шуму не знижуй: шум іде не від них, їхнє зниження лише додасть затримки.
Виміряно за D-складовою в лозі: roll: на найрізкіших рухах D росте лише до ×1.06 при налаштованих ×1.50 (використано 12% запасу); pitch: на найрізкіших рухах D росте лише до ×1.04 при налаштованих ×1.50 (використано 7% запасу). Отже, зазвичай ти літаєш на d_min_roll = 30, d_min_pitch = 34, а d_roll = 45, d_pitch = 51 досягаються рідко.
Що робити: Демпфування міняй через базовий D — у Configurator це колонка «Derivative» (у CLI d_min_roll, d_min_pitch), а не «D Max» (d_roll, d_pitch): D Max — лише стеля буста. Якщо хочеш буст на фліпах, підніми d_max_advance (швидкість стіка) або d_max_gain (пропвош).
Замало різких зупинок після фліпів/ролів: roll 2, pitch 1 (потрібно хоча б 6 на вісь) — без них не перевірити відскок після зупинки.
Що робити: У наступному польоті в ACRO: 6–8 фліпів і ролів з різким поверненням стіка в центр (потримай його в центрі півсекунди).
На старті 3.84 В/банку (повний ≈ 4.2 В).
109.5 с — 8.8 g (наприкінці логу — посадка або краш).
Що робити: Після ударів перевір пропелери й дзвони — саме вони потім дають дисбаланс.
M1: 1.1, M2: 0.5, M3: 1.8, M4: 1.9 (чим рівніше, тим краще)
Відхилення від інших: M1 +1.3%, M2 -0.8%, M3 +1.4%, M4 -1.9%
Шум після фільтрів: 0.53 °/с.
Перерегулювання 6% (90%: 5–11%), половину заданої швидкості набирає за 5 мс.
Виміряно лише чисті скидання газу: 44 з 46. Не враховано: 2 скидання, після яких одразу йшов фліп чи рол (рух стіка псує оцінку). Коливання 15–80 Гц через 0.1–0.6 с після скидання, основна частота ~20 Гц. Норма: менше 4 °/с.
Від зміни setpoint до піку реакції дрона: roll 4.1 мс, yaw 4.6 мс (норма з feedforward — 4–12 мс); від апаратури до setpoint — ще 1.3 мс. Pitch: надійно виміряти не вдалося.
Відхилення за 0.4 с після різкого газу (34 панчі): pitch 2.5°, roll 0.5° (норма: менше 3°).
Мінімум під навантаженням (стійкий, 0.5 с) 3.23 В/банку, наприкінці 3.66 В/банку, пік струму 72 А, витрачено ~248 мА·год.
Оцінка: 182 ділянки із різкою зміною струму. Враховує дроти й роз'єм; напругу та струм вимірюють різні повільні процеси, тому це лише оцінка.