日志分析基础:飞控日志的作用、常见格式与工具概览

各位同学好,我是老张。做飞控这些年,我最大的体会就是——日志是飞控工程师的“黑匣子”。飞机在天上飞,你没法拿示波器去戳它的引脚,也没法在它翻滚的时候问它“你咋了”。

那出了问题怎么办?看日志。

我个人习惯,每次试飞回来第一件事就是拔卡、读日志。哪怕这次飞得很顺,我也会扫一眼关键参数。为什么?因为很多隐患在日志里早有征兆,只是你没注意到而已。

核心观点:飞控日志是系统运行过程的完整数字镜像。它记录了传感器数据、控制输出、状态切换、错误事件等所有关键信息。学会读日志,就等于给飞控装上了“回放功能”。

1.1 飞控日志到底有什么用?

说白了,日志就干三件事:

  • 故障排查——飞机炸了,日志告诉你“为什么炸”。是传感器数据跳变?还是电机响应滞后?还是参数整定有问题?
  • 性能评估——飞得稳不稳?响应快不快?有没有异常抖动?这些都能从日志里量化分析。
  • 参数调优——调PID、调滤波器、调限幅……改完参数飞一圈,日志就是最好的“体检报告”。

我记得有一次,一个学员说他的四轴悬停时总往一边偏。他调了三天重心、换了两次电机,问题依旧。我让他把日志导出来一看——磁罗盘Y轴偏置异常。校准一下就好了。你看,没有日志,你就是在瞎猜。

我的建议:养成“飞必记、记必看”的习惯。哪怕只是换了个桨叶,也值得飞一次看看日志有没有异常。很多问题在早期阶段只是日志里的一个“小毛刺”,等它变成“大故障”就晚了。

1.2 常见日志格式:ULog 与 BIN

目前主流的飞控日志格式就两种:ULog 和 BIN。你想想看,一个PX4派系,一个ArduPilot派系,各有各的生态。

对比项 ULog(PX4) BIN(ArduPilot)
文件后缀 .ulg .bin
数据结构 自描述、带类型定义 固定格式、按消息ID索引
存储效率 较高,支持压缩 中等,无压缩
工具链 pyulog、FlightPlot、PlotJuggler Mission Planner、MAVExplorer
适用场景 PX4原生、HITL/SITL仿真 ArduPilot全系列

ULog 是PX4从2016年开始推的格式。它的好处是“自描述”——日志文件里自带每个字段的名字、类型、单位。你拿一个没见过的日志,用工具一读,所有信息都清清楚楚。我在PX4早期版本时还用过老的SDLog格式,那叫一个痛苦……字段全靠猜。

BIN 格式是ArduPilot的老传统。它更紧凑,但解析起来需要对照消息定义表。不过ArduPilot的生态很成熟,Mission Planner直接帮你解析好了,你看到的是图形化数据,不用关心底层格式。

注意:不要试图用文本编辑器直接打开 .bin 或 .ulg 文件。它们是二进制格式,打开全是乱码。一定要用专用工具解析。我曾经见过有人用记事本打开 .bin 文件然后说“日志坏了”……嗯,那是你不会看。

1.3 日志分析工具概览

工欲善其事,必先利其器。我这些年用过不下十种日志分析工具,挑几个最常用的跟大家说说。

1.3.1 PX4 生态工具

  • FlightPlot(Java桌面应用)——PX4官方推荐,界面清爽,支持多曲线叠加、时域缩放、数据导出。适合日常快速查看。
  • pyulog(Python库)——如果你要做批量处理或自定义分析,这个库是首选。我经常用它写脚本自动检测“异常跳变点”。
  • PlotJuggler(跨平台)——这个工具不是飞控专用的,但配合ULog插件非常好用。它的拖拽式操作很顺手,适合做深度对比分析。

1.3.2 ArduPilot 生态工具

  • Mission Planner——ArduPilot的“全家桶”,日志分析只是它众多功能之一。图形化界面,操作直观,适合新手。
  • MAVExplorer(命令行)——如果你喜欢用命令行,这个工具很强大。支持SQL-like查询,可以写脚本做自动化分析。

1.3.3 通用工具

  • MATLAB/Octave——适合做高级分析,比如频谱分析、系统辨识。我经常把日志数据导到MATLAB里做FFT,看有没有共振频率。
  • Excel/WPS——别笑,有时候快速看一眼CSV格式的日志,Excel反而是最方便的。尤其是做简单的统计对比。

我的建议:新手先从 FlightPlot 或 Mission Planner 入手,把基本操作练熟。等你遇到“工具解决不了的问题”时,再学 pyulog 或 MATLAB 做定制分析。别一上来就搞命令行,容易劝退。

1.4 知识体系总览

下面这张图是我自己整理的日志分析知识体系。你可以把它当成整个课程的地图——我们接下来29章,就是沿着这个结构一步步深入。

日志分析知识体系总览 日志基础(第1章) 数据解析与提取 参数分析与诊断 可视化与报告 ULog/BIN格式 传感器数据 异常检测 参数调优 图表生成 应用场景:故障排查 · 性能评估 · 参数调优 · 安全审计 本课程共30章,从基础到进阶,覆盖日志分析全流程 每章都配有实际案例和可复用的分析脚本

1.5 本章小结

这一章我们聊了三个核心问题:

  1. 日志有什么用?——故障排查、性能评估、参数调优,缺一不可。
  2. 日志长什么样?——ULog和BIN两种主流格式,各有优劣,选对工具就行。
  3. 用什么工具看?——从FlightPlot到pyulog,从Mission Planner到MATLAB,工具链很丰富。

嗯,到这里基础概念就铺垫完了。从下一章开始,我们会真正动手——装工具、读日志、看数据。到时候你会发现,原来日志里藏着这么多信息。

一句话记住本章:日志是飞控的“黑匣子”,学会读日志,你就有了“上帝视角”。