4. 参数管理工具

传感器是飞控的「眼睛」和「耳朵」。你想想看,如果传感器数据不准,再好的控制算法也白搭。我见过太多新手一上来就调PID,结果飞机乱飘,最后发现是加速度计没校准好。

这一章,咱们就挨个把四个核心传感器捋一遍。我会把每个传感器的关键参数、调优思路、还有我踩过的坑都告诉你。

核心原则:传感器参数调优的目标不是「完美」,而是「够用且稳定」。过度追求精度反而会引入噪声,得不偿失。

4.1 加速度计:飞控的「水平仪」

加速度计负责感知重力方向,告诉飞控「哪边是下」。它的参数直接影响飞行器的水平姿态。

4.1.1 关键参数

参数名 默认值 调优范围 说明
IMU_ACC_CUTOFF 30 Hz 10 - 80 Hz 加速度计低通滤波截止频率
IMU_ACC_DLPF 0 0 / 1 是否启用硬件数字低通滤波器
CAL_ACC_ID 0 自动 加速度计校准后的设备ID

4.1.2 调优步骤

  1. 物理校准:把飞机放平,用水平仪确认。然后在QGC里执行「加速度计校准」。这一步必须做,否则后面全是错的。
  2. 调整滤波:我个人习惯从30Hz开始。如果发现悬停时姿态抖动,就降到20Hz。如果感觉响应太慢,可以升到40Hz。
  3. 检查噪声:在日志里看 vehicle_acceleration 的方差。正常悬停时,方差应该小于0.05 m/s²。
小技巧:如果你用的是大疆机架,振动通常比较大。我建议把 IMU_ACC_CUTOFF 直接设到20Hz,能省去很多排查振动的时间。

4.2 陀螺仪:飞控的「角速度感知器」

陀螺仪测量角速度,是姿态控制和增稳的核心。它的参数调不好,飞控就会「手抖」。

4.2.1 关键参数

参数名 默认值 调优范围 说明
IMU_GYRO_CUTOFF 80 Hz 30 - 120 Hz 陀螺仪低通滤波截止频率
IMU_GYRO_NF_BW 0 Hz 0 - 50 Hz 陷波滤波器带宽
IMU_GYRO_NF_FREQ 0 Hz 0 - 200 Hz 陷波滤波器中心频率

4.2.2 调优步骤

  1. 先看频谱:在日志里分析 vehicle_angular_velocity 的FFT。找到振动峰值频率。
  2. 设置陷波滤波器:如果发现某个频率(比如80Hz)有尖峰,就把 IMU_GYRO_NF_FREQ 设为80,IMU_GYRO_NF_BW 设为10。
  3. 调整低通滤波:如果振动比较分散,就用低通。80Hz是通用值,机架硬的话可以降到60Hz。
注意:陷波滤波器不是万能的。我曾经在一个严重共振的机架上调了半小时陷波,最后发现是桨叶动平衡没做好。先解决机械问题,再调参数。

4.3 磁力计:飞控的「指南针」

磁力计提供航向参考。它最娇气,容易受干扰。很多炸机都是因为磁力计抽风。

4.3.1 关键参数

参数名 默认值 调优范围 说明
MAG_ENABLE 1 0 / 1 是否启用磁力计
MAG_COMP_ID 自动 自动 磁力计外部补偿ID
MAG_CALIBRATION_VALID 0 0 / 1 校准是否有效

4.3.2 调优步骤

  1. 安装位置:远离大电流线缆和电机。我习惯把外部磁力计装在碳管末端,用3D打印支架固定。
  2. 执行校准:在QGC里做「磁力计校准」,按提示旋转飞机六个面。校准后检查 MAG_CALIBRATION_VALID 是否为1。
  3. 检查干扰:上电后,在日志里看 vehicle_magnetometer 的模长。如果变化超过10%,说明有干扰源。
避坑指南:我曾经在飞场发现磁力计数据乱跳,排查了半天,结果是旁边有个高压线塔。所以起飞前,先看看周围有没有大型金属结构或高压线。

4.4 气压计:飞控的「高度计」

气压计通过测量气压变化来推算高度。它受温度和气流影响大,是高度控制不准的常见原因。

4.4.1 关键参数

参数名 默认值 调优范围 说明
BARO_ENABLE 1 0 / 1 是否启用气压计
BARO_CNT 1 1 - 3 气压计数量(冗余)
BARO_GND_CFG 0 0 / 1 是否使用地面校准

4.4.2 调优步骤

  1. 物理保护:给气压计加海绵或泡棉,避免阳光直射和螺旋桨下洗气流。
  2. 地面校准:上电后静止30秒,让飞控记录地面气压。设置 BARO_GND_CFG 为1。
  3. 检查噪声:在日志里看 vehicle_air_pressure 的波动。正常悬停时,高度波动应该在±0.3米以内。
注意:气压计对温度变化非常敏感。如果你在室内调好参数,拿到室外飞,高度可能会漂移。我建议每次起飞前都做一次地面校准。

4.5 传感器融合与优先级

飞控不会只依赖一个传感器。它会用EKF(扩展卡尔曼滤波)把四个传感器的数据融合起来。但融合是有优先级的。

下面这张图展示了传感器数据在EKF中的融合流程:

传感器数据融合流程(EKF) 加速度计 陀螺仪 磁力计 气压计 预处理(滤波、校准、去噪) EKF 融合 姿态 + 位置 + 速度 控制输出(姿态/位置/航向) 说明:加速度计和陀螺仪融合得到姿态,磁力计修正航向漂移,气压计提供高度参考。 每个传感器在EKF中的权重由噪声方差动态调整。

4.6 常见问题与排查

  • 飞机悬停时左右晃动:大概率是加速度计噪声大。检查 IMU_ACC_CUTOFF,或者看看机架振动。
  • 航向慢慢漂移:磁力计受干扰了。重新校准,或者检查附近有没有金属物体。
  • 高度忽高忽低:气压计被气流干扰了。加海绵罩,或者检查 BARO_GND_CFG 是否开启。
  • 日志里出现大量传感器错误:可能是硬件连接问题。检查排线、焊点,或者换个传感器试试。
我的经验:如果你在日志里看到 sensor_combined 的 gyro_vibration_metric 超过0.3,说明振动已经大到影响传感器了。这时候别调参数,先解决机械振动。

传感器参数调优,说白了就是「让飞控看到真实的世界」。每个传感器都有自己的脾气,你得顺着它来。别急,慢慢调,飞机会给你反馈的。