3、硬磁干扰模型:偏移量模型、椭球体偏移、数学表达式推导

好,咱们进入正题。

硬磁干扰,说白了就是传感器周围那些「自带磁场」的东西在捣乱。比如你电路板上的扬声器、马达、甚至某些铁磁性材料的螺丝。它们自己就是一个永磁体,会叠加一个固定的偏置磁场到地磁场上。

我当年第一次做无人机航向模块时,就吃过这个亏。飞控装好后,磁力计读数怎么都不对,转一圈画出来的轨迹不是圆,而是整个圆平移了一段距离。后来一查,是旁边一个电源模块的屏蔽罩在作怪。嗯,那就是典型的硬磁干扰。

3.1 硬磁干扰的本质:偏移量模型

先想一个问题:理想情况下,磁力计在水平面旋转一圈,X轴和Y轴的读数应该画出一个圆心在原点的圆。对吧?

但硬磁干扰来了之后,这个圆的圆心就跑了。它不再在(0,0),而是跑到了某个固定的偏移点 (Hx, Hy) 上。

为什么会这样?因为硬磁干扰产生的磁场是恒定的,它不随传感器旋转而改变方向。所以它就像一个直流偏置,直接加在了真实的地磁场信号上。

用数学表达就是:

测量值 = 真实地磁场 + 硬磁干扰偏置

我习惯把这个偏置叫做「硬磁偏移向量」。它有三个分量,对应磁力计的X、Y、Z轴。

核心结论:硬磁干扰只改变测量数据的中心位置,不改变数据的形状。圆还是圆,只是圆心不在原点了。

3.2 椭球体偏移:从二维到三维

刚才说的是二维情况。实际应用中,磁力计是三维的。所以硬磁干扰在三维空间里,就是把一个球体的球心给平移了。

你想想看,理想情况下,磁力计在三维空间任意旋转,所有采样点应该落在一个球面上,球心在原点。

加上硬磁干扰后,球心就偏移到了某个点 (Ox, Oy, Oz) 上。这个偏移量就是我们要校准的参数。

不过这里有个坑——我遇到过很多新手,以为只要找到这个偏移量,减掉就完事了。其实没那么简单。因为软磁干扰还会把球体压成椭球体。但那是下一章的内容。这一章我们只谈硬磁,所以假设软磁干扰已经被校正好了,或者压根不存在。

我的经验:在实际项目中,硬磁干扰往往比软磁干扰更明显。尤其是消费级产品,电路板布局紧凑,硬磁干扰的偏移量可能达到地磁场强度的20%-30%。所以优先校正硬磁,效果立竿见影。

3.3 数学表达式推导

好,我们来推公式。别怕,很简单的。

设真实地磁场向量为 B = [Bx, By, Bz]^T,硬磁干扰偏移向量为 O = [Ox, Oy, Oz]^T。

那么磁力计的测量值 M 就是:

M = B + O

写成标量形式:

Mx = Bx + Ox
My = By + Oy
Mz = Bz + Oz

在理想无干扰情况下,真实地磁场的大小是恒定的,记为 R。所以:

Bx² + By² + Bz² = R²

把测量值代入:

(Mx - Ox)² + (My - Oy)² + (Mz - Oz)² = R²

看到了吗?这就是一个球面方程。球心在 (Ox, Oy, Oz),半径为 R。

所以,硬磁干扰校正的任务,就是找到这个球心坐标。然后每次测量时,把测量值减去球心坐标,就得到了校正后的数据。

校准公式:

B_corrected = M - O

其中 O 是硬磁偏移向量,M 是原始测量值。

3.4 如何求解偏移量?

理论上,你只需要采集4个不共面的点,就能解出球心坐标。但实际中,我建议采集至少几十个点,用最小二乘法拟合球面,这样更鲁棒。

拟合球面的方法有很多。我常用的是一种线性最小二乘方法:

把球面方程展开:

Mx² + My² + Mz² - 2*Ox*Mx - 2*Oy*My - 2*Oz*Mz + (Ox² + Oy² + Oz² - R²) = 0

令:

a = -2*Ox
b = -2*Oy
c = -2*Oz
d = Ox² + Oy² + Oz² - R²

则方程变为:

Mx² + My² + Mz² + a*Mx + b*My + c*Mz + d = 0

这是一个关于 a, b, c, d 的线性方程。采集 N 个点,构建超定方程组,用最小二乘法求解即可。

避坑指南:我曾经直接用4个点求解,结果因为传感器噪声,算出来的偏移量误差很大。后来改用50个点做拟合,稳定性好多了。记住,数据量多一点,结果就靠谱一点。

3.5 知识体系结构图

下面我用一张图来总结硬磁干扰模型的核心逻辑:

硬磁干扰模型知识结构 硬磁干扰来源 物理本质:固定偏置磁场叠加 数学模型:M = B + O → (Mx-Ox)² + (My-Oy)² + (Mz-Oz)² = R² 求解方法:最小二乘球面拟合 → 得到偏移量 O 来源层 物理层 数学层 算法层

3.6 实际应用中的注意事项

最后,分享几个我在项目中踩过的坑:

  • 数据采集要均匀:不要只在某个平面内旋转,要尽量覆盖三维空间的各个方向。我见过有人只在一个平面转,结果Z轴偏移量完全没校准到。
  • 远离动态磁场:校准时要确保周围没有变化的磁场,比如大电流的导线、正在工作的电机。否则你校准出来的偏移量会包含动态分量,导致后续使用不准。
  • 温度影响:硬磁干扰的偏移量会随温度变化。如果产品工作温度范围大,建议在不同温度下分别校准,或者做温度补偿。

重要提醒:硬磁干扰校准必须在软磁干扰校准之前进行。因为硬磁影响的是球心位置,软磁影响的是球体形状。先平移再变形,顺序不能乱。

好了,硬磁干扰模型就讲到这里。说白了就是找球心,然后减掉它。下一章我们会看到,当软磁干扰加入后,事情会变得更有趣——球会变成椭球。


公众号:蓝海资料掘金营,微信deep3321