一、基本原理
磁力计是提供导航及基于位置服务的重要组成,一般利用各项异性磁致电阻或霍尔效应来检测空间中的磁感应强度。此外,基于洛伦兹力的磁力计在不断研究和发展。基于洛伦兹力原理,电磁场会激发电磁力,进而改变电路中电容的大小。
随着半导体工艺的进步和手机操作系统的发展,集成了越来越多传感器的智能手机变得功能强大,很多手机上都实现了电子罗盘的功能。而基于电子罗盘的应用(如Android的Skymap)在各个软件平台上也流行起来。同时,在小型低成本飞控上,很多算法都是采用加速度计来修正俯仰角和滚转角,用磁力计测量地磁向量,求出飞行器与磁北的夹角。
二、地磁场与航向角
如图1所示,地球的磁场像一个条形磁体一样由磁南极指向磁北极。在磁极点处磁场和当地的水平面垂直,在赤道磁场和当地的水平面平行,所以在北半球磁场方向倾斜指向地面。用来衡量磁感应强度大小的单位是Tesla或者Gauss(1Tesla=10000Gauss)。随着地理位置的不同,通常地磁场的强度是 0.4 ∼ 0.6 0.4\sim0.6 0.4∼0.6 Gauss。需要注意的是,磁北极和地理上的北极并不重合,通常他们之间有11度左右的夹角。
磁场强度的单位换算包括三种单位:Oe(奥斯特)、A/m、T(特斯拉)。
其中:
1
T
=
1000
m
T
,
1T=1000mT,
1T=1000mT,
1
m
T
=
10
G
s
,
1mT=10Gs,
1mT=10Gs,
1
G
s
=
79.6
A
/
m
,
1Gs=79.6A/m,
1Gs=79.6A/m,
1
T
(
特斯拉
)
=
10000
G
s
(
高斯
)
=
1
W
b
/
M
2
,
1T (特斯拉)=10000Gs (高斯)=1Wb/M2,
1T(特斯拉)=10000Gs(高斯)=1Wb/M2,
1
G
s
(
高斯
)
=
1
O
e
(
奥斯特
)
.
1Gs (高斯)=1Oe (奥斯特).
1Gs(高斯)=1Oe(奥斯特).
在工程计算中,磁感应强度的单位常用高斯(CGS制中磁感应强度或磁通量的单位),常用符号G或Gs表示。它与国际单位制中的 特斯拉T 的换算关系为:
1
G
=
1
0
−
4
T
=
0.1
m
T
,
1 G = 10^{-4}T=0.1 mT,
1G=10−4T=0.1mT,
1
T
=
1
0
4
G
.
1 T = 10^{4} G.
1T=104G.
地磁场
O
T
→
\overrightarrow{\boldsymbol{OT}}
OT 是一个矢量,对于一个固定的地点来说,这个矢量可以被分解为两个与当地水平面平行的分量
O
X
→
\overrightarrow{\boldsymbol{OX}}
OX 和
O
Y
→
\overrightarrow{\boldsymbol{OY}}
OY,以及一个与当地水平面垂直的分量
O
Z
→
\overrightarrow{\boldsymbol{OZ}}
OZ,如图2所示。
实际上对水平方向的两个分量 O X → \overrightarrow{\boldsymbol{OX}} OX 和 O Y → \overrightarrow{\boldsymbol{OY}} OY 来说,他们的矢量和总是指向磁北的。罗盘中的航向角(Azimuth)就是当前方向和磁北的夹角。如果罗盘保持水平,那么只需要用磁力计水平方向两轴(通常为X轴和Y轴)的检测数据就能计算出航向角。当罗盘水平旋转的时候,航向角在 0 ∘ ∼ 36 0 ∘ 0^{\circ}\sim360^{\circ} 0∘∼360∘ 之间变化。
三、铁磁场干扰分析
磁力计主要是通过感知地球磁场的存在来计算磁北极的方向。然而由于地球磁场在一般情况下只有微弱的0.5高斯,而一个普通的手机喇叭当相距2厘米时仍会有大约4高斯的磁场,一个手机马达在相距2厘米时会有大约6高斯的磁场,这一特点使得针对电子设备表面地球磁场的测量很容易受到电子设备本身的干扰。
磁场干扰是指由于具有磁性物质或者可以影响局部磁场强度的物质存在,使得磁传感器所放置位置上的地球磁场发生了偏差。
磁力计误差主要分为:固有误差和外部干扰。固有误差包括非线性、偏移和温度漂移,而外部干扰涉及磁场干扰和电磁辐射等因素。对于理想的三轴磁力计而言,其沿正交的x、y和z轴测量磁场强度;在没有任何磁干扰的情况下,磁力计测量地球磁场,但噪声源和制造缺陷会降低磁力计的测量效果。
软铁效应指的是磁力计受到周围变化的磁场的干扰;这些变化的磁场可以来自电流流过的导线、电磁波等。由于磁力计具有一定的响应时间,当周围磁场变化较快时,会导致磁力计输出的延迟和失真,从而引入误差。这些干扰通常来自传感器附近的物体,这些物体会扭曲周围的磁场,将理想的球体进行拉伸,其效果如图3所示。
硬铁效应更为显著;磁力计受到来自周围永久磁体等强磁场的干扰。这些强磁场会对磁力计的测量结果产生显著影响,造成误差。其干扰源包括附近的磁体、电机、电磁阀等,它们会产生静态磁场,而磁力计对静态磁场非常敏感,这些干扰改变了理想球体的原点,其效果如图4所示。
此外,MEMS磁力计的误差主要还来自以下几个方面:
- 制造工艺误差:MEMS磁力计的制造工艺是一个复杂的过程,包括光刻、蒸发、刻蚀等步骤,每个步骤都可能引入误差。例如,在光刻过程中,掩膜对准不准确或曝光不均匀等都会导致磁力计性能下降。
- 器件非线性:MEMS磁力计的输出与输入磁场之间存在非线性关系。这种非线性可能是由于磁场在磁敏感层中的传播不均匀,以及磁敏感层的特性随输入磁场变化而变化等因素导致的。
- 噪声:MEMS磁力计的输出还会受到各种类型的噪声的干扰,如:热噪声、振动噪声、电磁干扰等。这些噪声会降低磁力计的灵敏度和准确性。
- 温度效应:温度变化会导致MEMS磁力计的性能发生变化。温度变化会导致磁敏感层的特性发生变化,从而影响磁力计的输出。此外,温度变化还会引起磁力计其他部件的尺寸变化,进一步影响磁力计的性能。
- 非磁场干扰:MEMS磁力计还可能受到来自其他非磁场源的干扰,如电场干扰、重力影响等。这些干扰会误导磁力计的输出,导致误差。
四、磁力计校准
在使用罗盘传感器之前,需要对其进行校准以消除两个主要误差。一个是失调误差,这原本是由传感器和电路的失调误差引起的。另一个是标度误差。这两种误差都容易受到周围磁环境的干扰。例如,如果有一个 x x x 轴向的外部磁场施加到传感器上,就会给出外部 x x x 轴失调误差。同时, x x x 轴标度也将与 y y y 轴和 z z z 轴不同。
通常用于校准磁传感器的方法是在 x y xy xy 平面上转动传感器绕圈,然后抽取数据。一个地点的地磁场强度是一个常数值,因此绘制的数据应该是一个圆;然而,事实上,我们将看到一个椭圆形,这意味着我们需要移动椭圆并重新缩放到以零为中心的圆。
上述 2 D 2D 2D 校准方法有一些缺点,并且需要用加速器来测量其倾斜度。我们使用 3 D 3D 3D 球面拟合方法来校准罗盘传感器。首先,我们需要将传感器旋转到 x y z xyz xyz 空间中的每个方向,并在 3 D 3D 3D 坐标中绘制其值。然后我们需要使用最小平方误差 ( M S E ) (MSE) (MSE)方法将数据拟合为椭球面。
椭球方程可以表示为:
a X 2 + b Y 2 + c Z 2 + 2 f X Y + 2 g X Z + 2 h Y Z + 2 p X + 2 q Y + 2 r Z + d = 0 aX^2 + bY^2 + cZ^2 + 2fXY + 2gXZ + 2hYZ + 2pX + 2qY + 2rZ +d = 0 aX2+bY2+cZ2+2fXY+2gXZ+2hYZ+2pX+2qY+2rZ+d=0
其中: X , Y X,Y X,Y 和 Z Z Z 是磁力计输出在三个方向上的地磁分量。将这些值拟合为椭球面意味着,我们需要得到一组最优系数解。我们将系数定义为:
δ = [ a , b , c , d , f , g , h , p , q , r , d ] T \delta =[a, b, c, d, f, g, h, p, q, r, d]^{T} δ=[a,b,c,d,f,g,h,p,q,r,d]T
在拟合时,我们定义向量:
β = [ X 2 , Y 2 , Z 2 , 2 X Y , 2 X Z , 2 Y Z , 2 X , 2 Y , 2 Z ] T \beta = [X^2, Y^2, Z^2, 2XY, 2XZ, 2YZ, 2X, 2Y, 2Z]^{T} β=[X2,Y2,Z2,2XY,2XZ,2YZ,2X,2Y,2Z]T$
所以我们需要计算最优 δ \delta δ,并使用下式来找出最小值:
m i n ( δ T β T β δ ) min(\delta^{T}\beta^{T}\beta\delta) min(δTβTβδ)
这样我们就可以得到下图所示的拟合结果。
为了校准传感器,我们需要拉伸或压缩拟合的椭球面并将其移至以零为中心的球面上。我们使用矩阵奇异值分解(SVD)方法来进行这种校准。校准后的球体如图2所示。
校准后,我们可以看到,测得的磁场强度(球半径)几乎恒定不变,如下图所示: