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 调优步骤
- 物理校准:把飞机放平,用水平仪确认。然后在QGC里执行「加速度计校准」。这一步必须做,否则后面全是错的。
- 调整滤波:我个人习惯从30Hz开始。如果发现悬停时姿态抖动,就降到20Hz。如果感觉响应太慢,可以升到40Hz。
- 检查噪声:在日志里看
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 调优步骤
- 先看频谱:在日志里分析
vehicle_angular_velocity的FFT。找到振动峰值频率。 - 设置陷波滤波器:如果发现某个频率(比如80Hz)有尖峰,就把
IMU_GYRO_NF_FREQ设为80,IMU_GYRO_NF_BW设为10。 - 调整低通滤波:如果振动比较分散,就用低通。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 调优步骤
- 安装位置:远离大电流线缆和电机。我习惯把外部磁力计装在碳管末端,用3D打印支架固定。
- 执行校准:在QGC里做「磁力计校准」,按提示旋转飞机六个面。校准后检查
MAG_CALIBRATION_VALID是否为1。 - 检查干扰:上电后,在日志里看
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 调优步骤
- 物理保护:给气压计加海绵或泡棉,避免阳光直射和螺旋桨下洗气流。
- 地面校准:上电后静止30秒,让飞控记录地面气压。设置
BARO_GND_CFG为1。 - 检查噪声:在日志里看
vehicle_air_pressure的波动。正常悬停时,高度波动应该在±0.3米以内。
注意:气压计对温度变化非常敏感。如果你在室内调好参数,拿到室外飞,高度可能会漂移。我建议每次起飞前都做一次地面校准。
4.5 传感器融合与优先级
飞控不会只依赖一个传感器。它会用EKF(扩展卡尔曼滤波)把四个传感器的数据融合起来。但融合是有优先级的。
下面这张图展示了传感器数据在EKF中的融合流程:
4.6 常见问题与排查
- 飞机悬停时左右晃动:大概率是加速度计噪声大。检查
IMU_ACC_CUTOFF,或者看看机架振动。 - 航向慢慢漂移:磁力计受干扰了。重新校准,或者检查附近有没有金属物体。
- 高度忽高忽低:气压计被气流干扰了。加海绵罩,或者检查
BARO_GND_CFG是否开启。 - 日志里出现大量传感器错误:可能是硬件连接问题。检查排线、焊点,或者换个传感器试试。
我的经验:如果你在日志里看到
sensor_combined 的 gyro_vibration_metric 超过0.3,说明振动已经大到影响传感器了。这时候别调参数,先解决机械振动。
传感器参数调优,说白了就是「让飞控看到真实的世界」。每个传感器都有自己的脾气,你得顺着它来。别急,慢慢调,飞机会给你反馈的。