3. 核心参数分类详解:系统参数、传感器参数、控制器参数、通信参数

各位同学,欢迎来到参数系统的核心章节。说实话,ArduPilot 的参数有上千个,刚接触的人很容易懵。我当年第一次看到参数列表时,脑子里就一个想法——这玩意儿怎么调?

后来我慢慢发现,其实这些参数是有规律可循的。它们大致可以分为四大家族:系统参数、传感器参数、控制器参数、通信参数。今天我就带你把它们挨个捋一遍。

核心观点: 参数分类的本质,是让你知道「调什么」和「为什么调」。不是所有参数都需要动,但你必须知道它们在哪。

3.1 系统参数:飞控的「骨架」

系统参数,说白了就是飞控的底层配置。它决定了你的飞控板是什么型号、用什么协议、跑什么模式。

我个人习惯,拿到一块新飞控,第一件事就是检查系统参数。为什么?因为很多炸机事故,根源就是系统参数没配对。

参数名 作用 典型值
SYSID_THISMAV 飞控的系统ID,多机协同时必须唯一 1
SYSID_MYGCS 地面站的系统ID 255
FRAME_CLASS 机架类型(四旋翼、六旋翼、固定翼等) 0(四旋翼)
FRAME_TYPE 机架子类型(X型、+型等) 0(X型)
LOG_BITMASK 日志记录开关,调试时建议全开 65535

我的经验: 有一次我在现场调试,发现飞机起飞就偏航。查了半天,结果是 FRAME_TYPE 设成了 + 型,但实际机架是 X 型。嗯,这种低级错误,犯过一次就再也不会忘了。

3.2 传感器参数:飞控的「眼睛」

传感器参数决定了飞控能不能「看」清世界。包括加速度计、陀螺仪、磁力计、气压计、GPS 等等。

你想想看,如果传感器参数不准,后面控制器调得再好也没用。这就是所谓的「垃圾进,垃圾出」。

3.2.1 加速度计与陀螺仪

这两个是 IMU 的核心。关键参数是校准偏移量和噪声抑制。

# 加速度计校准参数示例
INS_ACC2OFFS_X = 0.0123   # X轴偏移量
INS_ACC2OFFS_Y = -0.0056  # Y轴偏移量
INS_ACC2OFFS_Z = 0.0987   # Z轴偏移量(重力方向)

# 陀螺仪参数
INS_GYRO2OFFS_X = 0.0012  # X轴偏移量
INS_GYRO2OFFS_Y = -0.0008 # Y轴偏移量
INS_GYRO2OFFS_Z = 0.0003  # Z轴偏移量

避坑指南: 我曾经遇到过一架飞机,飞着飞着突然翻滚。后来发现是 INS_ACC2OFFS_Z 的值被误改了。记住:传感器校准参数,非必要不要手动修改。一定要用地面站的校准流程。

3.2.2 磁力计(罗盘)

磁力计是飞控的「指南针」。但它也是最容易受干扰的传感器。

  • COMPASS_ENABLE:是否启用磁力计。多罗盘系统建议只启用一个。
  • COMPASS_OFFS_X/Y/Z:硬铁校准偏移量。
  • COMPASS_DEC:磁偏角,根据你所在地区设置。

我建议,每次更换飞控安装位置后,都重新做一次罗盘校准。尤其是靠近大电流线缆时,干扰非常明显。

3.2.3 GPS 与气压计

GPS 参数主要关注定位精度和更新率。气压计则负责高度测量。

GPS_TYPE GPS 协议类型(UBlox、NMEA 等) 1(UBlox)
GPS_RATE_MS GPS 数据更新周期(毫秒) 200(5Hz)
BARO_ALT_OFFSET 气压计高度偏移 0

小技巧: 如果你在高原地区飞行,记得检查 BARO_ALT_OFFSET。气压计在海平面和 4000 米高原的读数差异很大,不校准的话高度会飘得离谱。

3.3 控制器参数:飞控的「大脑」

控制器参数,说白了就是 PID 参数。这是调参的重头戏,也是很多人最头疼的部分。

ArduPilot 的控制器分为内环(角速度环)和外环(角度环/位置环)。内环响应快,外环响应慢。调参时一定要先调内环,再调外环。

3.3.1 姿态控制参数

# 横滚/俯仰轴 PID
ATC_RAT_RLL_P = 0.15   # 比例增益
ATC_RAT_RLL_I = 0.10   # 积分增益
ATC_RAT_RLL_D = 0.005  # 微分增益

# 偏航轴 PID(偏航通常不需要太大的 D 项)
ATC_RAT_YAW_P = 0.20
ATC_RAT_YAW_I = 0.05
ATC_RAT_YAW_D = 0.000

我个人习惯,先给一个保守的 P 值(比如 0.10),然后慢慢往上加。加到飞机出现轻微抖动时,再回调 20%。这就是所谓的「临界增益法」。

3.3.2 位置控制参数

位置控制依赖 GPS 和气压计。参数包括水平位置 P 和高度 P。

  • POS_XY_P:水平位置比例增益。值越大,响应越快,但容易超调。
  • POS_Z_P:高度比例增益。建议从 1.0 开始试。

注意: 位置控制参数不能调得太激进。我曾经为了追求「定点点得稳」,把 POS_XY_P 调到了 2.5。结果飞机在悬停时像喝醉了酒一样来回晃。后来才明白,位置控制依赖 GPS 精度,GPS 本身就有 1-2 米的误差,你调得再快也没用。

3.4 通信参数:飞控的「神经」

通信参数决定了飞控和地面站、遥控器、机载计算机之间怎么「说话」。

3.4.1 串口与 MAVLink

ArduPilot 的通信核心是 MAVLink 协议。每个串口都可以独立配置协议和波特率。

SERIAL0_BAUD USB 串口波特率 115200
SERIAL1_BAUD 遥测串口波特率 57600
SERIAL2_PROTOCOL 串口 2 的协议类型 1(MAVLink)

你想想看,如果波特率不匹配,地面站和飞控之间就是「鸡同鸭讲」。我遇到过好几次,用户说「连不上飞控」,结果一看,SERIAL0_BAUD 设成了 9600,但地面站用的是 115200。

3.4.2 遥控器与 RC 参数

RC 参数负责解析遥控器信号。关键参数是通道映射和失效保护。

  • RC1_MIN / RC1_MAX:通道 1 的最小/最大 PWM 值。
  • RC3_REV:油门通道反向。
  • FS_THR_ENABLE:油门失效保护开关。

我的建议: 每次换遥控器或接收机后,一定要重新做 RC 校准。不要偷懒用之前的参数。不同遥控器的 PWM 输出范围可能不一样,直接套用会导致通道映射错乱。

3.5 知识体系总览

说了这么多,我画了一张图帮你理清思路。这四类参数的关系,就像一座房子的四个部分:

ArduPilot 参数分类体系 飞控参数系统 系统参数 传感器参数 控制器参数 通信参数 SYSID_THISMAV FRAME_CLASS LOG_BITMASK INS_ACC/GYR COMPASS_OFFS GPS_TYPE ATC_RAT_RLL_PID POS_XY_P POS_Z_P SERIALx_BAUD RCx_MIN/MAX FS_THR_ENABLE 调参顺序建议 ① 系统参数(骨架)→ ② 传感器参数(眼睛) ③ 通信参数(神经)→ ④ 控制器参数(大脑)

这张图你看懂了吗?调参的顺序其实是有讲究的。先搭好骨架(系统),再校准眼睛(传感器),然后确保神经通畅(通信),最后才去优化大脑(控制器)。

很多新手一上来就调 PID,结果传感器都没校准,飞控连自己是正是歪都不知道,调出来的参数能好用吗?

好了,这一章的内容就到这里。记住这四类参数,你以后看参数列表就不会再迷茫了。

专注资料整理