В этом примере показано, как запустить приложение Flight Log Analyzer, импортировать данные журнала полетов, создавать фигуры и графики, экспортировать сигналы и использовать пользовательское отображение сигналов в приложении.
Приложение Flight Log Analyzer позволяет анализировать файлы журналов, созданные моделируемыми или реальными полетами.
Анализ журнала помогает найти основную причину аварии или контролировать состояние во время полета транспортного средства. Можно выполнить базовый анализ для определения:
Насколько хорошо контроллеры отслеживают свои ссылки
Есть ли сильная вибрация
Если транспортное средство испытывает сбои в электроснабжении
На вкладке Приложения в разделе Проектирование и анализ системы управления щелкните Анализатор журнала полетов.
Кроме того, можно использовать flightLogAnalyzer в командной строке MATLAB ®.
Загрузите файл ULOG.
ulg = ulogreader('flight.ulg')ulg =
ulogreader with properties:
FileName: 'flight.ulg'
StartTime: 00:00:00.176000
EndTime: 00:02:15.224000
AvailableTopics: [51x5 table]
DropoutIntervals: [0x2 duration]
На панели инструментов приложения Flight Log Analyzer выберите Импорт > Из рабочего пространства. В разделе Log Data диалогового окна Import flight log signal mapping and log data from Workspace выберите ulogreader объект ulg и нажмите кнопку Импорт.

По умолчанию приложение отображает спутниковую карту с записанными данными GPS и режимами полета в виде таблицы. Режимы полета вместе с соответствующими временами начала и окончания отображаются в таблице на панели Режимы полета (Flight Modes).
Каждый БПЛА (стационарный или многороторный) оснащен набором датчиков, таких как гироскоп, акселерометр, магнитометр и барометр, для определения состояния транспортного средства. Состояние транспортного средства включает в себя положение, скорость, высоту, скорость и скорости вращения транспортного средства.
В разделе «Печать» на панели инструментов приложения нажмите кнопку «Добавить фигуру», чтобы добавить пустую фигуру на панель печати. Затем в графической галерее щелкните IMU, чтобы добавить графики к фигуре для гироскопа, гироскопа и акселерометра, акселерометра.

Для визуализации данных от различных датчиков можно использовать различные предопределенные графики из галереи.
На панели Режимы полета (Flight Modes) найдите первый экземпляр режима полета Loiter и запишите его значения Время начала (Start Time) и Время окончания (End Time). Сосредоточьтесь на режиме полета, перетащив на панели «Панорамирование» красную и синюю ручки к начальному времени и конечному времени, соответственно, требуемого режима полета. Можно также ввести значения «Время начала» и «Время окончания» в полях «Слева» и «Справа» под полосковым графиком. Щелкните график ускорения, чтобы сосредоточиться на нем.

Если вибрация БПЛА находится в хорошем диапазоне, то z-аксиальное ускорение должно оставаться ниже x-axis и y- аксиальное ускорение. Построенные на графике полетные данные указывают на то, что в этот момент полета вибрация БПЛА находится в хорошем диапазоне. С помощью «Паннера» сосредоточиться на трех других режимах полета «Лойтера» и наблюдать за ускорением БПЛА.
Затем создайте пользовательский график временных интервалов для сравнения расчетного крена с целью крена.
Сначала в разделе «Пользовательские графики» галереи печати щелкните «Временные ряды».
На панели «Сигналы» дважды щелкните Добавить сигнал, чтобы добавить два сигнала.
Дважды щелкните столбец Y-Axis первого сигнала и в панели Signal Browser введите RollTarget в поле Поиск, а затем щелкните стрелку рядом с AttitudeTargetEuler и выбрать RollTarget. Затем нажмите кнопку Обновить.
Повторите три предыдущих шага для добавления второго сигнала Roll.
Переименование первого сигнала в RollTarget и второй сигнал к Roll. Чтобы переименовать сигнал, дважды щелкните его запись в столбце Signal Name и введите новое имя.
На панели «Подробности» выберите «Показать легенду» для отображения легенды на графике.
На графике видно, что расчётный крен близко следует цели крена до последних нескольких секунд полёта.

Для дальнейшего анализа данных можно экспортировать сигналы. На панели инструментов приложения щелкните Экспорт и выберите Экспорт сигнала.

Используйте диалоговое окно Экспорт сигнала (Export Signal), чтобы выбрать интересующие сигналы и экспортировать их в рабочую область или в MAT-файл. Сигналы экспортируются в виде расписания.
Отображение сигнала по умолчанию возвращает заранее определенный набор сигналов.
flsmObj = flightLogSignalMapping('ulog'); info(flsmObj,"Signal")
ans=18×4 table
SignalName IsMapped SignalFields FieldUnits
_____________________ ________ __________________________________________________________________________________________________________________________________________________________________________________________________________ ___________________________________________________
"Accel" true "AccelX, AccelY, AccelZ" "m/s^2, m/s^2, m/s^2"
"Airspeed" true "PressDiff, IndicatedAirSpeed, Temperature" "Pa, m/s, degreeC"
"AttitudeEuler" true "Roll, Pitch, Yaw" "rad, rad, rad"
"AttitudeRate" true "BodyRotationRateX, BodyRotationRateY, BodyRotationRateZ" "rad/s, rad/s, rad/s"
"AttitudeTargetEuler" true "RollTarget, PitchTarget, YawTarget" "rad, rad, rad"
"Barometer" true "PressAbs, PressAltitude, Temperature" "Pa, m, degreeC"
"Battery" true "Voltage_1, Voltage_2, Voltage_3, Voltage_4, Voltage_5, Voltage_6, Voltage_7, Voltage_8, Voltage_9, Voltage_10, Voltage_11, Voltage_12, Voltage_13, Voltage_14, Voltage_15, Voltage_16, RemainingCapacity" "v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, %"
"GPS" true "Latitude, Longitude, Altitude, GroundSpeed, CourseAngle, SatellitesVisible" "degree, degree, m, m/s, degree, N/A"
"Gyro" true "GyroX, GyroY, GyroZ" "rad/s, rad/s, rad/s"
"LocalENU" true "X, Y, Z" "m, m, m"
"LocalENUTarget" true "XTarget, YTarget, ZTarget" "m, m, m"
"LocalENUVel" true "VX, VY, VZ" "m/s, m/s, m/s"
"LocalENUVelTarget" true "VXTarget, VYTarget, VZTarget" "m/s, m/s, m/s"
"LocalNED" true "X, Y, Z" "m, m, m"
"LocalNEDTarget" true "XTarget, YTarget, ZTarget" "m, m, m"
"LocalNEDVel" true "VX, VY, VZ" "m/s, m/s, m/s"
⋮
В дополнение к заранее определенному набору сигналов можно отобразить другие сигналы, присутствующие в журнале полета. Например, использовать mapSignal нанести на карту WindSpeed в flightLogSignalMapping объект, flsmObj.
mapSignal(flsmObj,"WindSpeed", ... @(data)getTime(getTable(data,"wind_estimate")), ... @(data)getModeValue(getTable(data,"wind_estimate")), ... ["WindSpeed_East","WindSpeed_North"]);
Проверьте, что flsmObj теперь содержит новый сигнал.
info(flsmObj,"Signal")ans=19×4 table
SignalName IsMapped SignalFields FieldUnits
_____________________ ________ __________________________________________________________________________________________________________________________________________________________________________________________________________ ___________________________________________________
"Accel" true "AccelX, AccelY, AccelZ" "m/s^2, m/s^2, m/s^2"
"Airspeed" true "PressDiff, IndicatedAirSpeed, Temperature" "Pa, m/s, degreeC"
"AttitudeEuler" true "Roll, Pitch, Yaw" "rad, rad, rad"
"AttitudeRate" true "BodyRotationRateX, BodyRotationRateY, BodyRotationRateZ" "rad/s, rad/s, rad/s"
"AttitudeTargetEuler" true "RollTarget, PitchTarget, YawTarget" "rad, rad, rad"
"Barometer" true "PressAbs, PressAltitude, Temperature" "Pa, m, degreeC"
"Battery" true "Voltage_1, Voltage_2, Voltage_3, Voltage_4, Voltage_5, Voltage_6, Voltage_7, Voltage_8, Voltage_9, Voltage_10, Voltage_11, Voltage_12, Voltage_13, Voltage_14, Voltage_15, Voltage_16, RemainingCapacity" "v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, %"
"GPS" true "Latitude, Longitude, Altitude, GroundSpeed, CourseAngle, SatellitesVisible" "degree, degree, m, m/s, degree, N/A"
"Gyro" true "GyroX, GyroY, GyroZ" "rad/s, rad/s, rad/s"
"LocalENU" true "X, Y, Z" "m, m, m"
"LocalENUTarget" true "XTarget, YTarget, ZTarget" "m, m, m"
"LocalENUVel" true "VX, VY, VZ" "m/s, m/s, m/s"
"LocalENUVelTarget" true "VXTarget, VYTarget, VZTarget" "m/s, m/s, m/s"
"LocalNED" true "X, Y, Z" "m, m, m"
"LocalNEDTarget" true "XTarget, YTarget, ZTarget" "m, m, m"
"LocalNEDVel" true "VX, VY, VZ" "m/s, m/s, m/s"
⋮
Чтобы использовать это пользовательское отображение сигналов в приложении Flight Log Analyzer:
На панели инструментов приложения щелкните Импорт и выберите Из рабочей области.
В диалоговом окне выберите flsmObj из списка Signal Mapping.
Выберите ulogreader объект ulg из раздела «Данные журнала».
Щелкните Импорт (Import).

Создайте пользовательский график временных интервалов и выполните шаги в разделе «Добавить пользовательский график», чтобы добавить WindSpeed_East и WindSpeed_North сигналы из браузера сигналов.

Этот процесс можно использовать для сопоставления других сигналов с пользовательским объектом отображения сигналов и визуализации их в приложении.
[1] PX4 Автопилот. «Анализ журнала полетов». PX4 Руководство пользователя. Доступ состоялся 14 декабря 2020 года. https://docs.px4.io/master/en/log/flight_log_analysis.html
[2] PX4 Автопилот. «Анализ журнала с использованием обзора полета». PX4 Руководство пользователя. Доступ состоялся 14 декабря 2020 года. https://docs.px4.io/master/en/log/flight_review.html