В этом примере показано, как запустить приложение Flight Log Analyzer, импортировать данные журнала рейсов, создать рисунки и графики, экспортировать сигналы и использовать пользовательское отображение сигналов в приложении.
Приложение Flight Log Analyzer позволяет вам анализировать файлы журнала, сгенерированные симулированными или реальными рейсами.
Журнал анализ помогает найти первопричину сбоя или контролировать состояние во время рейса транспортного средства. Можно выполнить основной анализ, чтобы определить:
Насколько хорошо контроллеры отслеживают свои ссылки
Есть ли сильная вибрация
Если транспортное средство испытывает отказы в степени
На вкладке Apps, в разделе Control System Design and Analysis, нажмите 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 выберите Import > From Workspace. В разделе Log Data окна Import flight log signal mapping and logg data from Workspace выберите ulogreader
ulg объекта
и нажмите Импортировать.
По умолчанию приложение отображает спутниковую карту с записанными в журнал данными GPS и режимами рейса в виде таблицы. Режимы рейса вместе с соответствующими временами начала и конца сведены в таблицу на панели Рейса Modes.
Каждый БПЛА (фиксированный или мультиротор) оборудован набором датчиков, таких как гироскоп, акселерометр, магнитометр и барометр, для определения состояния транспортного средства. Состояние транспортного средства включает в себя положение, скорость, высоту, скорость и скорости вращения транспортного средства.
В разделе Plot на панели инструментов приложения нажмите Add Figure, чтобы добавить пустой рисунок на панель графического изображения. Затем в галерее графиков нажмите IMU, чтобы добавить графики к рисунку для гироскопа, гироскопа и акселерометра, Accelerometer.
Можно использовать различные предопределенные графики из галереи графиков, чтобы визуализировать данные с разных датчиков.
На панели Режимы рейса найдите первый образец режима рейса Loiter и отметьте его значения Время начала и Время окончания. Особое внимание на режиме рейса путем, на панели Panner, перетаскивания красных и синих указателей на начальное и конечное время, соответственно, необходимого режима рейса. Кроме того, можно ввести значения «Время начала» и «Время окончания» в полях «Слева» и «Справа» под полосным графиком. Щелкните График ускорения (Acceleration plot), чтобы сосредоточиться на нем.
Если вибрация БПЛА находится в хорошей области значений, то z
- ускорение оси должно оставаться ниже x
-ось и y
- ускорение оси. Нанесенные на график данные о рейсе указывают, что в этой точке рейса вибрация БПЛА находится в хорошей области значений. Используя «Паннер», сосредоточьтесь на трех других режимах рейса «Лойтера» и наблюдайте разгон БПЛА.
Затем создайте пользовательский график Timeseries, чтобы сравнить предполагаемый крен с целевым значением крена.
Сначала в разделе Пользовательские графики галереи графиков нажмите Timeseries.
На панели «Сигналы» дважды нажмите Add Signal, чтобы добавить два сигнала.
Дважды кликните столбец Y-Axis первого сигнала и в панели Signal Browser введите RollTarget
в поле поиска, а затем щелкните стреле рядом с AttitudeTargetEuler
и выберите RollTarget
. Затем нажмите кнопку Обновить.
Повторите предыдущие три шага для добавления второго сигнала Roll
.
Переименуйте первый сигнал в RollTarget
и второй сигнал на Roll
. Чтобы переименовать сигнал, дважды кликните его запись в столбце «Имя сигнала» и введите новое имя.
На панели «Сведения» выберите «Легенда Показа», чтобы отобразить легенду на графике.
График показывает, что расчетный крен тесно следует по цели крена до последних нескольких секунд рейса.
Для дальнейшего анализа данных можно экспортировать сигналы. На панели инструментов приложения нажмите Экспорт, а затем выберите Экспорт Signal.
Используйте диалоговое окно 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
из списка Отображение.
Выберите ulogreader
ulg объекта
из раздела Log Data.
Нажмите кнопку Импорт.
Создайте пользовательский график Timeseries и следуйте шагам в Add Custom Plot, чтобы добавить 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