上一篇
飞控日志后该按什么步骤分析呢,怎么分析?
- 云服务器
- 2026-07-21
- 7
飞控日志(如PX4的ulog、ArduPilot的bin/log)包含大量传感器、状态估计和控制数据,系统化分析流程能快速定位问题,以下是推荐步骤:
准备工作:工具与数据
- 选择日志分析工具:
- PX4:使用FlightPlot、PlotJuggler、ULog Reader或WebUI(PX4 Log Viewer)。
- ArduPilot:使用Mission Planner日志分析、MAVExplorer、PlotJuggler。
- 通用工具:MATLAB/Octave(配合自定义脚本)、Python(利用pyulog或dronekit)。
- 确认日志文件包含关键信息:传感器数据、PWM输出、GPS状态、模式切换、错误标志。
快速浏览:整体概览
- 检查飞行模式、GPS锁定状态、RC信号、电池电压、时间轴。
- 确认是否有严重错误标志(如PX4的estimator_status.flags、ArduPilot的EKF check)。
- 观察异常曲线:如高度、姿态突然跳变,信号丢失等。
深入分析:分模块排查

| 分析模块 | 关键参数 | 常见问题 |
|---|---|---|
| 传感器 | IMU(加速度计、陀螺仪)、磁力计、气压计 | 振动过大、磁干扰、漂移、饱和 |
| 状态估计 | EKF/GPS融合状态、位置/速度/姿态残差 | 位置漂移、高度振荡、GPS精度差 |
| 控制输出 | 电机PWM、舵机输出、混控器输出 | 电机响应滞后、输出限幅、混控错误 |
| RC与遥控 | RC信号百分比、通道值、丢失帧数 | 连接中断、信号抖动、RSSI异常 |
| GPS/视觉 | 卫星数、HDOP、速度精度、视觉定位质量 | 定位丢失、跳变、延迟大 |
| 电池与动力 | 电压、电流、功率、剩余电量 | 电压骤降、电流过大、电池不平衡 |
关键诊断技巧
1 振动分析
- 绘制加速度计原始数据(x/y/z轴)或FFT频谱(使用PlotJuggler的FFT插件)。
- 若出现明显峰值(如>50Hz振幅过大),说明机架共振或减震不良。
2 姿态估计对比
- 对比陀螺仪积分姿态与EKF输出姿态(如roll/pitch/yaw)。
- 若出现长周期偏差,可能是磁力计干扰或加速度计偏置未校准。
3 飞行模式切换
- 观察模式切换前后的行为(如首次解锁、自动起飞、悬停、降落)。
- 检查切换时的参数变化,如vehicle_status.nav_state。
4 GPS与高度问题
- 对比气压计高度与GPS高度,若两者差异大,可能GPS垂直精度差或气压计受风影响。
- 检查GPS卫星数和HDOP,低于6颗或HDOP>1.5说明定位弱。
5 控制链路延迟
- 绘制电机输出与期望推力的对比,观察响应延迟。
- 若延迟>100ms,可能是
PID参数过软或混控器更新率低。
典型问题快速定位表
现象 可能原因 检查方法 悬停时高频振荡 角速度/加速度增益过大 查看陀螺仪原始数据频谱,检查PID增益 高度持续漂移 气压计/声纳/激光测距数据异常 对比气压计与GPS高度,检查EKF残差 解锁后电机不转 安全开关、RC信号、降落检测 检查RC_CHANNELS是否有效,arming_status 起飞后自动降落 降落检测误触发、GPS定位失败 检查land_detector,vehicle_land_detected 机头偏航或抖动 磁力计干扰、GPS航向偏差 查看磁力计XCORR,检查EKF磁力计校准 高级分析:自定义脚本
- 使用Python或Octave提取特定时间段的参数,计算统计量(均值、标准差、最大最小值)。
- 计算振动幅值RMS、执行时间同步比较、生成报告。
记录与复现
- 记录异常时间点、参数值、环境条件。
- 如果可能,保留日志文件,并与不同任务日志对比,排除随机干扰。
相关问题与解答
问题1:日志中显示EKF状态一直为“融合不佳”,但GPS卫星数很多,可能是什么原因?
解答:
EKF融合不佳并不只依赖GPS卫星数,常见原因包括:

- 磁力计干扰:导致航向估计偏移,EKF会降低融合权重,检查磁力计原始数据是否噪点大或存在偏置。
- 加速度计振动:机身振动过大使加速度计数据不可靠,EKF会拒绝融合,表现为残差增大,可用FFT查看加速度频谱。
- GPS水平精度恶化:即使卫星数多,HDOP可能因卫星几何分布而变差,检查HDOP值是否>1.5。
- 传感器延迟或时间不同步:GPS、IMU、气压计的时间戳不对齐,导致融合失败,检查日志中时间戳同步标志。
问题2:飞控日志中电机输出一直为最大值,但飞机没有相应推力,应该检查哪些关键参数?
解答:
这种情况通常不是飞控软件问题,而是物理链路或混控器配置故障,建议按以下步骤排查:
- 检查混控器输出:查看ACTUATOR_OUTPUTS中的实际PWM值,是否与期望一致,如果PWM输出正确,则问题在电机/电调侧。
- 检查电机旋转方向:通过日志无法直接判断,但可在地面测试时观察电机转向。
- 检查电池电压:日志中如果电压降至电调截止电压以下,电机可能停止转动或输出极低,检查BATTERY_STATUS中的电压和电流。
- 检查电机型号与参数:确认MOTOR_PWM_MIN/MAX、ESC_CALIBRATION是否设置正确。
- 检查线路连接:电调供电不足、信号线松动或焊接不良都会导致输出异常,日志中无法直接体现,需结合物理检查。
