4. 传感器核心之磁力计:地磁场与航向角
各位同学,咱们今天聊聊磁力计。说实话,在飞控所有的传感器里,磁力计是最容易被忽视、但又最容易出问题的那个。我见过不少新手,IMU和气压计都调得挺好,一上天飞机就开始画圈——最后发现,磁力计没校准。
嗯,咱们先从最基础的说起。
4.1 地磁场与航向角
地球本身就是一个大磁铁。地磁场从南极指向北极,虽然强度很弱(大概0.25到0.65高斯),但足够让指南针工作。
在飞控里,我们利用地磁场来干什么?说白了,就是确定飞机的航向——也就是机头指向哪个方向。
你想想看,GPS能给你经纬度,但它给不了你朝向。IMU里的陀螺仪能测角速度,但积分久了会漂。这时候磁力计就派上用场了——它像一个永不漂移的指南针,告诉你北在哪。
但这里有个坑:地磁场不是水平的。它和水平面有个夹角,叫磁倾角。在中国大部分地区,磁倾角大概在50到60度之间。这意味着什么?意味着你如果直接把磁力计的X、Y分量拿来算航向,结果会偏得离谱。
我在项目中遇到过这种情况:一个学生在实验室里测磁力计,数据看起来很正常,但一装到飞机上,航向就乱跳。后来发现,他根本没做倾斜补偿——飞机稍微一倾斜,算出来的航向就全错了。
核心公式:航向角 ψ = atan2(Yh, Xh)
其中 Xh 和 Yh 是经过倾斜补偿后的水平分量。
所以,正确的做法是:先用加速度计的姿态角(横滚、俯仰)把磁力计的测量值投影到水平面上,然后再算航向。这个步骤,一步都不能省。
4.2 磁力计工作原理
磁力计的工作原理,其实没那么玄乎。目前主流的方案有两种:
- 各向异性磁阻(AMR):比如HMC5883L。内部有一块坡莫合金薄膜,外部磁场会改变它的电阻值。通过测量电阻变化,就能反推出磁场强度。
- 霍尔效应:利用电流在磁场中偏转产生霍尔电压。精度一般,但成本低。
- 磁通门:精度最高,但体积大、功耗高,无人机上很少用。
我个人习惯用AMR类型的磁力计。为什么呢?因为它的灵敏度够用,而且功耗低——对于电池供电的无人机来说,这很重要。
磁力计的输出通常是三个轴(X、Y、Z)的磁场强度,单位是高斯(Gauss)或者微特斯拉(μT)。1高斯 = 100微特斯拉。
小技巧:拿到一个新的磁力计,第一步不是看数据手册,而是先拿一块已知的磁铁靠近它,观察三个轴的数据变化。如果某个轴没反应,那多半是坏了或者焊接有问题。我吃过这个亏,后来就养成了这个习惯。
4.3 常见磁力计型号对比
市面上常见的磁力计型号,我挑两个最有代表性的来讲:HMC5883L 和 IST8310。
| 参数 | HMC5883L | IST8310 |
|---|---|---|
| 测量范围 | ±1.3 到 ±8.1 高斯 | ±16 高斯 |
| 分辨率 | 2 毫高斯 | 0.3 毫高斯 |
| 接口 | I2C(最大400kHz) | I2C(最大400kHz) |
| 功耗 | 约 100 μA | 约 3.5 mA |
| 温度稳定性 | 一般 | 较好 |
| 典型应用 | 早期Pixhawk、ArduPilot | Pixhawk 4、Pixhawk 5X |
HMC5883L 是元老级芯片。我记得2015年那会儿,几乎所有开源飞控都在用这颗芯片。但它有个致命问题:温度漂移严重。夏天和冬天测出来的数据能差好几个度。
IST8310 是后来居上的方案。它的分辨率更高,温度稳定性也更好。Pixhawk 4 和 5X 都用了它。不过功耗比HMC5883L高了30多倍——3.5mA对飞控来说其实不算大,但如果你在做超低功耗设计,就得注意了。
我曾经在一个项目中,把HMC5883L换成IST8310,结果航向精度从±5度提升到了±1度以内。代价是代码里要多做一组校准参数。
避坑指南:我曾经遇到过IST8310在强磁场环境下(比如电机大电流时)数据跳变的问题。后来发现是PCB布局不合理,磁力计离电源走线太近了。解决办法:要么拉远距离,要么加磁屏蔽罩。这个坑,我踩过,你们就别再踩了。
4.4 磁力计校准
校准磁力计,说白了就是消除硬铁干扰和软铁干扰。
- 硬铁干扰:来自永磁体或恒定电流。表现为测量数据整体偏移。校准方法:旋转飞机,采集所有方向的数据,然后求椭球中心。
- 软铁干扰:来自铁磁性材料。表现为数据被拉伸或压缩。校准方法:椭球拟合,求出缩放因子。
在Pixhawk上,校准流程通常是这样的:
// 伪代码示意
1. 采集数据:绕每个轴旋转360度
2. 计算偏移量:offset = (max + min) / 2
3. 计算缩放因子:scale = (max - min) / 2
4. 应用校准:calibrated = (raw - offset) / scale
嗯,这里要注意:校准必须在实际安装位置进行。你拿着磁力计在桌面上校准,装到飞机上之后,飞机的金属结构、电机、电池都会改变磁场分布,之前的校准就白做了。
我的经验:校准完成后,一定要做一次验证。把飞机指向正北,看航向角是不是0度。如果不是,检查一下磁偏角设置对不对。中国大部分地区的磁偏角在-10度到+10度之间,别忽略了。
4.5 知识体系图
下面这张图,把磁力计相关的核心知识点串起来了。你可以把它当作一个快速索引。
这张图从地磁场出发,一路延伸到工作原理、型号对比和校准方法。你可以把它当作一个快速索引,遇到问题时顺着这个结构去排查。
好了,磁力计这部分就讲到这里。记住一句话:磁力计是飞控的「指南针」,但也是最容易受干扰的传感器。校准到位、布局合理,它就能给你可靠的航向;否则,它就是你炸机的元凶。
公众号:蓝海资料掘金营,微信deep3321