Этот пример показывает вам, как запустить приложение Flight Log Analyzer, данные логов рейса импорта, создать фигуры и графики, сигналы экспорта и использование пользовательского отображения сигнала в приложении.
Приложение Flight Log Analyzer позволяет вам анализировать файлы журнала, сгенерированные симулированными или действительными рейсами.
Логарифмический анализ помогает найти первопричину катастрофического отказа или контролировать здоровье во время рейса транспортного средства. Можно выполнить основной анализ, чтобы определить:
Как хорошо контроллеры отслеживают свои ссылки
Существует ли какая-либо сильная вибрация
Если транспортное средство испытывает перебои в питании
Во вкладке Apps, в соответствии с Проектом Системы управления и Анализом, нажимают 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: [51×5 table] DropoutIntervals: [0×2 duration]
На панели инструментов приложения Flight Log Analyzer выберите Import> From Workspace. В разделе Log Data журнала рейса Импорта отображение сигнала и данные логов от диалогового окна Workspace, выберите ulogreader
объект ulg
и нажмите Import.
По умолчанию, отображения приложения спутниковая карта с регистрируемыми данными о GPS и режимами рейса как таблица. Режимы рейса, наряду с их соответствующими временами начала и конца, сведены в таблицу в панели Режимов Рейса.
Каждый UAV (зафиксированный или мультиротор) оборудован набором датчиков, таких как гироскоп, акселерометр, магнитометр, и барометр, чтобы определить состояние транспортного средства. Состояние транспортного средства включает положение, скорость, высоту, скорость и уровни вращения транспортного средства.
В разделе Plot панели инструментов приложения нажмите Add Figure, чтобы добавить пустую фигуру в панель графического вывода. Затем в галерее графика нажмите IMU, чтобы добавить графики в фигуру для гироскопа, Гироскопа, и акселерометра, Акселерометра.
Можно использовать различные предопределенные графики из галереи графика, чтобы визуализировать данные из различных датчиков.
В панели Режимов Рейса найдите первую инстанцию Слоняться режима рейса и отметьте его значения Времени начала и Времени окончания. Фокусируйтесь на режиме рейса, в панели Регулятора панорамы, перетаскивая красные и синие указатели на Время начала и Время окончания, соответственно, желаемого режима рейса. В качестве альтернативы можно ввести значения Времени начала и Времени окончания в полях Left and Right ниже полосного графика. Кликните по Ускоряющему графику фокусироваться на нем.
Если вибрация UAV находится в хорошей области значений, то z
- ускорение оси должно остаться ниже x
- ось и y
- ускорение оси. Нанесенные на график полетные данные указывают, что в этой точке в рейсе вибрация UAV находится в хорошей области значений. Используя Регулятор панорамы, особое внимание на других трех Слоняется режимы рейса и наблюдает ускорение UAV.
Затем создайте пользовательский график Timeseries сравнить предполагаемый крен с целью крена.
Во-первых, в разделе Custom Plots галереи графика, нажмите Timeseries.
В панели Сигналов нажмите Add Signal дважды, чтобы добавить два сигнала.
Дважды кликните столбец Оси Y первого сигнала и, в панели Браузера Сигнала, введите RollTarget
в Поле поиска, и затем кликают по стреле рядом с AttitudeTargetEuler
и выберите RollTarget
. Затем нажмите Update.
Повторите предыдущие три шага для второго сигнала добавить Roll
.
Переименуйте первый сигнал в RollTarget
и второй сигнал к Roll
. Чтобы переименовать сигнал, дважды кликните его запись в столбце Имени Сигнала и введите новое имя.
В Панели выберите Легенду Show, чтобы показать легенду на графике.
График показывает, что предполагаемый крен сопровождает цель крена до последних нескольких секунд рейса.
Чтобы далее анализировать данные, можно экспортировать сигналы. На панели инструментов приложения нажмите Export, и затем выберите Export 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:
На панели инструментов приложения нажмите Import и выберите From Workspace.
В диалоговом окне выберите flsmObj
из списка Отображений Сигнала.
Выберите ulogreader
объект ulg
от раздела Log Data.
Нажмите Import.
Создайте, пользовательский Timeseries строит и выполняет шаги в, Добавляет Пользовательский График добавить 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