2、传感器标定基础:加速度计、陀螺仪、磁力计、气压计的工作原理与标定必要性

传感器标定,说白了就是给飞控的「眼睛」和「耳朵」做一次视力听力检查。你想想看,一个刚出厂的加速度计,它读出来的数据能直接信吗?我做了这么多年飞控,还真没见过哪个传感器上来就是准的。

这一节,咱们把四种核心传感器挨个捋一遍。不讲太深的理论,重点说清楚它们怎么工作、为什么需要标定、以及不标定会出什么幺蛾子。

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

加速度计测量的是物体受到的比力(Specific Force),说白了就是重力加运动加速度的合力。三轴加速度计输出三个值:Ax、Ay、Az,单位通常是 m/s² 或 g。

工作原理:内部有个微小的质量块,挂在弹簧结构上。当芯片加速或倾斜时,质量块会位移,电容值随之变化。通过测量电容差,反算出加速度。

关键点:静止时,加速度计只感受重力。所以理论上,水平放置时 Ax=0, Ay=0, Az=1g。但实际读出来往往不是这样——这就是标定的原因。

标定必要性:

  • 零偏误差:静止时输出不为0。比如水平放,Ax 读出来是 0.05g。
  • 比例因子误差:1g 的输入,输出可能是 1.02g。
  • 轴间非正交:三个轴不是完美的 90° 夹角。

我在项目中遇到过一架四旋翼,起飞后总是缓慢朝一个方向漂移。查了半天,发现是加速度计零偏没标定,导致水平估计一直有 0.3° 的偏差。嗯,这种问题最坑人,因为地面站上看不出明显异常。

标定方法:六面法。把传感器分别朝上、朝下、朝左、朝右、朝前、朝后各放一会儿,采集数据拟合出零偏和比例因子。PX4 和 ArduPilot 的自动标定流程就是这个原理。

2.2 陀螺仪:飞控的「角速度计」

陀螺仪测量的是绕各轴的旋转角速度,单位 rad/s 或 °/s。它用的是 MEMS 谐振结构——一个高速振动的质量块,当有角速度输入时,科里奥利力会让质量块在垂直方向产生位移。

标定必要性:

  • 零偏(Bias):静止时输出不为0。比如静止时读出来是 0.1°/s。
  • 温度漂移:零偏随温度变化,这是最头疼的。
  • 比例因子误差:输入 100°/s,输出可能是 98°/s。

陀螺仪的零偏会积分成角度误差。1°/s 的零偏,飞 10 秒就偏了 10°。你想想看,这飞机还能稳住吗?

避坑指南:我曾经遇到过一批陀螺仪,常温下标定完零偏只有 0.02°/s,但飞到 60°C 时零偏漂到了 0.5°/s。后来我养成了一个习惯——每次上电后先让飞控预热 2 分钟,再执行陀螺仪零偏采集。这个细节救了我好几次。

标定方法:静止采集 100-200 组数据,取平均作为零偏。比例因子标定需要转台,一般消费级飞控只标零偏。

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

磁力计测量的是地球磁场在三个轴上的分量。它利用的是霍尔效应或磁阻效应——磁场变化会引起材料电阻或电压变化。

标定必要性:

  • 硬铁干扰:电路板上的永磁体、电机磁钢、电流产生的磁场,这些是固定的偏移。
  • 软铁干扰:铁磁性材料(如机架、螺丝)会扭曲磁场,导致不同方向上的灵敏度不同。
  • 比例因子和轴间误差:和加速度计类似。

磁力计不标定,后果很严重。我见过一架六旋翼,因为磁力计没标定,航向角误差达到 30°。飞机一解锁就往错误方向飞,差点撞墙。

核心概念:理想情况下,磁力计在三维空间旋转时,输出轨迹是一个球心在原点的球面。硬铁干扰会让球心偏移,软铁干扰会让球面变成椭球。标定的目的就是把这个椭球拉回标准球。

标定方法:拿着飞机在空中画「8」字,或者绕各轴旋转。采集足够多的点后,用椭球拟合算法算出偏移和缩放矩阵。PX4 的 mag calibration 就是这个流程。

个人经验:我建议每次更换机架、电机或电池位置后,都重新标定磁力计。因为硬铁干扰源变了,旧标定参数就废了。另外,标定时要远离钢筋建筑和高压线,这些外部磁场会污染数据。

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

气压计测量的是大气压强,通过气压-高度公式换算成海拔高度。它内部有一个 MEMS 薄膜,气压变化会让薄膜形变,改变电容值。

标定必要性:

  • 绝对精度差:出厂时每个气压计的零偏都不一样。
  • 温度漂移:气压计对温度极其敏感。
  • 动态响应滞后:气压变化传到传感器需要时间。

气压计不标定,高度估计会有一个固定偏差。比如实际高度 10 米,飞控可能认为只有 8 米。不过好消息是,飞控用的是相对高度(起飞点归零),所以绝对偏差影响不大。

注意:气压计最怕的是风。我曾经在户外测试时,一阵风吹过,气压计高度跳了 2 米。后来我把气压计用海绵包裹起来,装在机腹的静压腔内,效果好了很多。

标定方法:上电后采集 50 组数据取平均,作为当前海平面气压的参考值。这个值会随天气变化,所以每次上电都要重新采集。

2.5 四种传感器标定对比

传感器 主要误差 标定参数 标定方法 标定频率
加速度计 零偏、比例因子、非正交 6 个(3 零偏 + 3 比例因子) 六面法 出厂一次,更换安装位置后重做
陀螺仪 零偏、温度漂移 3 个(零偏) 静止采集平均 每次上电
磁力计 硬铁、软铁、比例因子 9 个(偏移 + 缩放矩阵) 旋转画 8 字 + 椭球拟合 更换硬件后必做
气压计 零偏、温度漂移 1 个(参考气压) 上电采集平均 每次上电

2.6 标定的核心逻辑

说了这么多,其实标定的本质就一句话:建立传感器原始输出到真实物理量的映射关系。

数学上,这个映射通常是一个线性模型:

真实值 = 比例因子 × (原始值 - 零偏)

对于加速度计和磁力计,还要加上轴间非正交的修正矩阵:

真实向量 = M × (原始向量 - 零偏向量)

其中 M 是一个 3×3 的矩阵,包含了比例因子和轴间耦合的修正。

我的习惯:每次拿到新飞控板,第一件事就是跑一遍完整的传感器标定流程。加速度计六面法、陀螺仪零偏采集、磁力计画 8 字、气压计参考值记录。全部做完后,把标定参数保存到参数文件里,标注日期和硬件版本。这个习惯帮我省了无数排查时间。

2.7 不标定的后果

咱们来点实际的。如果不标定,飞控会出什么问题?

  • 加速度计不标:水平估计有偏差,飞机悬停时漂移,甚至解锁后直接侧翻。
  • 陀螺仪不标:角速度积分出角度误差,姿态发散,飞机抖振或自旋。
  • 磁力计不标:航向角误差大,GPS 模式下飞机画圈或飞偏。
  • 气压计不标:高度控制有静差,定高模式忽高忽低。

你想想看,这些故障在飞行中任何一个出现,都可能导致炸机。所以标定不是可选项,是必选项。

最后一句:标定参数不是一劳永逸的。温度变化、机械冲击、元器件老化都会让参数漂移。我建议每飞行 50 小时或每 3 个月,重新做一次完整标定。安全第一,别偷懒。

传感器标定知识体系 传感器标定 加速度计 陀螺仪 磁力计 气压计 六面法 静止采集平均 画8字+椭球拟合 上电采集平均 零偏+比例因子+非正交 零偏 硬铁+软铁+比例因子 参考气压 标定本质:建立传感器原始输出到真实物理量的映射关系