一、地磁干扰校准概述

为什么需要校准?

说实话,我刚入行那会儿,觉得地磁传感器挺简单的——不就是测个磁场方向嘛。直到有一次,我做的无人机飞控在室内测试时,航向偏差了整整30度。查了两天,最后发现是电路板上的一个螺丝钉惹的祸。

地磁传感器,说白了就是测量地球磁场的工具。地球磁场本身很微弱,大概在0.25到0.65高斯之间。你想想看,这么弱的信号,随便一点干扰就能把它淹没掉。

我遇到过不少工程师,觉得校准是可有可无的步骤。嗯,这里我要说一句:不校准的地磁传感器,数据基本没法用

地磁传感器工作原理简介

目前主流的地磁传感器,大多基于磁阻效应霍尔效应。我习惯用磁阻传感器,因为它灵敏度高、功耗低。

简单来说,传感器内部有几个磁阻元件,排成X、Y、Z三个轴。当外部磁场变化时,这些元件的电阻值会跟着变。通过测量电阻变化,就能算出磁场强度。

举个例子,常用的HMC5883L芯片,内部就是四个磁阻元件组成的惠斯通电桥。输出的是模拟电压,经过ADC转换后变成数字量。

// 典型的HMC5883L读取代码
uint8_t status = readRegister(0x09);
if (status & 0x01) {  // 数据就绪
    int16_t x = readRegister16(0x03);
    int16_t y = readRegister16(0x07);
    int16_t z = readRegister16(0x05);
    // 原始数据,单位是LSB
}

注意,这里读出来的是原始值,不是真正的磁场强度。要转换成高斯,还得乘以一个比例系数。不过,校准的时候我们更关心的是数据的相对关系,而不是绝对值。

常见干扰源分析

干扰主要分两类:硬铁干扰软铁干扰。这两者的区别,我当年可是踩过坑才搞明白的。

硬铁干扰

硬铁干扰,说白了就是永磁体产生的固定磁场。比如扬声器里的磁铁、电机里的永磁体、甚至电路板上的螺丝钉。

这种干扰的特点是:方向固定、大小不变。它会在传感器的输出上叠加一个固定的偏移量。

我曾经在一个手持设备上,发现地磁数据总是偏北20度。排查了半天,原来是电池旁边的铁氧体磁珠在作怪。换了个位置,问题就解决了。

硬铁干扰的特征:
  • 在传感器坐标系中表现为固定偏移
  • 不随传感器旋转而改变方向
  • 校准后可以通过减去偏移量消除

软铁干扰

软铁干扰就复杂多了。它来自铁磁性材料(比如铁、镍、钴)对磁场的扭曲。这些材料本身不带磁性,但会改变磁力线的走向。

你想想看,如果传感器旁边有一块铁皮,地球磁场经过这块铁皮时,方向会被扭曲。传感器测到的就不是真实的地磁场方向了。

软铁干扰的特点是:随传感器旋转而变化,而且变化是非线性的。我遇到过最头疼的情况,是在一个金属外壳的设备里装地磁传感器。外壳本身不带磁,但会严重扭曲磁场,导致校准参数怎么调都不对。

注意:软铁干扰不能简单地通过减去偏移量来消除。它需要更复杂的校准算法,通常涉及矩阵运算。

校准的核心目标

说了这么多,校准到底要干什么?其实就三个目标:

  1. 消除硬铁干扰——找到并减去固定的偏移量
  2. 补偿软铁干扰——修正磁场扭曲带来的比例误差
  3. 对齐传感器轴——确保X、Y、Z三轴互相垂直,且灵敏度一致

我个人的习惯是,先做硬铁校准,再做软铁校准。顺序不能乱,因为硬铁干扰会影响软铁校准的结果。

校准完成后,理想情况下,传感器在任意方向旋转时,测到的总磁场强度应该是一个常数(等于当地地磁场强度)。如果画成三维图,所有数据点应该落在一个球面上。

小技巧:在校准前,先查一下当地的地磁场强度。中国大部分地区在0.45-0.55高斯之间。如果校准后总强度偏离这个范围太多,说明校准有问题。

嗯,这里要提醒一下:校准不是一劳永逸的。温度变化、机械应力、甚至电池电量变化,都可能改变干扰特性。我建议在产品出厂前做一次校准,然后在每次开机时做一次快速校验。

好了,这一章的内容就到这里。记住一句话:校准做得好,数据才可靠


专注资料整理