Перейти к содержимому

Урок 31 из 43 · Модуль 4. Методика разбора инцидента

Mission Planner для технического персонала · Урок 31 из 43 · Модуль 4. Эксплуатация и диагностика

Семь шагов от хронологии до проверенной гипотезы, отпечатки типовых сценариев в логе и внешние инструменты анализа.

Хорошая гипотеза объясняет все наблюдаемые факты, а не только удобные. Если версия не объясняет часть данных — версия неверна.

Содержание

1. Цели урока

После этого урока вы будете понимать:

  • последовательность из семи шагов при разборе происшествия
  • как выглядит в логе отказ мотора, разряд, потеря тяги
  • чем отличаются отпечатки ошибки компаса и GPS glitch
  • какие внешние инструменты применять для анализа
↑ К оглавлению

2. Методика разбора инцидента

Порядок действий при разборе нештатной ситуации.

Шаг 1. Хронология. Постройте MODE и EV. Определите точное время: армирование, взлёт, смены режима, событие, посадка или падение.

Шаг 2. Сообщения. Просмотрите MSG и ERR в окне около события. Часто ответ находится здесь.

Шаг 3. Питание. BAT.Volt, BAT.Curr. Просадка ниже критического порога объясняет большинство внезапных отказов. Проверьте также POWR.Vcc — питание самого контроллера должно быть стабильным 5,0–5,3 В.

Шаг 4. Навигация. GPS.NSats, GPS.HDop, XKF4.*. Проверьте, не было ли потери решения или скачков положения.

Шаг 5. Механика и тяга. RCOU.C1Cn. Если один канал ушёл в максимум, а остальные в минимум — отказ мотора или винта. VIBE и Clip покажут вибрационные проблемы.

Шаг 6. Управляемость. ATT.DesRoll против ATT.Roll. Расхождение более 20° означает, что аппарат не отрабатывал команды — потеря тяги или полная потеря управления.

Шаг 7. Гипотеза и проверка. Сформулируйте версию и проверьте её по независимым данным. Хорошая гипотеза объясняет все наблюдаемые факты, а не только удобные.

Типовые сценарии и их отпечаток в логе: Отказ мотора: один канал RCOU в максимуме, остальные скомпенсированы, резкое расхождение DesRoll/Roll, вращение по yaw. Разряд батареи: плавное падение BAT.Volt, рост RCOU на всех каналах, срабатывание failsafe. Потеря тяги (недостаточный запас): все RCOU на максимуме, аппарат снижается несмотря на команду набора. Ошибка компаса: рост XKF4.SM, круговое движение в POS, расхождение ATT.Yaw с GPS.GCrs. GPS glitch: скачок в GPS.Lat/Lng, рост XKF4.SP, рывок аппарата в сторону. Вибрационный сбой: рост VIBE, ненулевой Clip, «улёт» по высоте вверх (акселерометр насытился).
↑ К оглавлению

3. Внешние инструменты

Инструмент Возможности
MAVExplorer (часть pymavlink) Скриптовый анализ, FFT, magfit, экспорт в CSV
UAV Log Viewer (браузерный) Быстрый просмотр без установки, 3D-визуализация трека
PlotJuggler Интерактивные графики произвольной сложности, вычисляемые поля
Python + pymavlink Собственные скрипты обработки, пакетный анализ серии логов

Простейший скрипт разбора лога:

from pymavlink import mavutil
log = mavutil.mavlink_connection('2026-07-28.bin')
max_vibe = 0
while True:
m = log.recv_match(type=['VIBE'], blocking=False)
if m is None:
break
max_vibe = max(max_vibe, m.VibeX, m.VibeY, m.VibeZ)
print(f'Максимальная вибрация: {max_vibe:.1f} м/с²')
Python
↑ К оглавлению

4. Практика

Задания выполняются в симуляторе SITL и не требуют реального аппарата. Выполните их до перехода к следующему уроку.

Задание 31.1. Разбор известного отказа

Выполняется в симуляторе SITL, реальный аппарат не требуется.

  • В SITL выполните полёт, затем смоделируйте отказ мотора (SIM_ENGINE_MUL = 0, SIM_ENGINE_FAIL = 1).
  • Скачайте лог и найдите момент отказа по графику RCOU.
  • Определите, через сколько секунд после отказа произошло расхождение DesRoll и Roll.
  • Составьте письменный разбор по методике из раздела 13.8.

Задание 31.2. Пакетный анализ

Выполняется в симуляторе SITL, реальный аппарат не требуется.

  • Напишите скрипт на pymavlink, который для набора логов выводит: длительность полёта, максимальную вибрацию, минимальное напряжение, число событий ERR.
  • Примените его к пяти логам и сведите результаты в таблицу.
↑ К оглавлению

5. Проверьте себя

Сформулируйте ответ своими словами, прежде чем сверяться со справочником ответов (последняя статья курса).

  1. В каких случаях .tlog полезнее, чем .bin, несмотря на меньшую детализацию?
  2. Почему batch sampling нельзя оставлять включённым постоянно?
  3. Какие графики позволяют обнаружить механический перекос аппарата?
  4. Как по логу отличить отказ мотора от разряда батареи?
  5. Что означает ненулевое значение VIBE.Clip0 и почему это критично?
  6. Какова последовательность шагов при разборе инцидента и почему хронология идёт первой?
↑ К оглавлению

6. Чек-лист самопроверки

Урок освоен, если каждый пункт выполнен на практике:

  • Разобран минимум один реальный или смоделированный инцидент
  • Хронология событий восстановлена по MODE и EV
  • Гипотеза проверена по независимым данным
  • Составлено письменное заключение
Результат: все пункты выполнены — переходите к следующему уроку.
↑ К оглавлению

7. Что дальше

  • Предыдущий урок: 30. Анализ логов: связки графиков и коды ошибок
  • Следующий урок: 32. Симулятор SITL: основы и моделирование условий
  • Полный перечень тем — в статье «Содержание курса».
↑ К оглавлению
  • Четверг, 30 июля 2026