磁力计校准

磁力检测沿着一个传感器的X,Y和Z轴的磁场强度。精确磁场测量对于传感器融合和航向和方位的确定至关重要。

为了对标题和取向计算是有用的,典型的低成本的MEMS磁强计需要校准以补偿环境噪声和制造缺陷。

理想的磁力

沿正交的X,Y和Z轴的理想的三轴磁力计测量的磁场强度。不具有任何磁干扰,磁强计读数测量地球磁场。如果作为传感器通过所有可能的方向旋转时取磁力计测量,测量应该位于一个球体。球体的半径是磁场强度。

为了产生磁场的样品,使用imuSensor目的。出于这些目的,可以安全地假设角速度和加速度在每个取向是零。

N = 500;RNG(1);ACC =零(N,3);AV =零(N,3);Q = randrot(N,1);%均匀分布的随机旋转IMU = imuSensor(“加速 -  MAG”);[〜中,x] = IMU(ACC,AV,Q);scatter3(X(:,1)中,x(:,2)中,x(:,3));轴等于标题(“理想的磁强计数据”);

硬铁效应

噪声源和制造缺陷降低磁力的测量结果。其中最引人注目的是硬铁效应。硬铁效应是固定的干扰磁场噪声源。通常,这些来自与所述磁力计的电路板上的其它金属物体。硬铁效应却将理想球体的起源。

imu.Magnetometer.ConstantBias = [2 10 40];[〜中,x] = IMU(ACC,AV,Q);数字;scatter3(X(:,1)中,x(:,2)中,x(:,3));轴等于标题(“磁力数据与硬铁偏移”);

软铁影响

软铁效应更加微妙。它们从该扭曲周围的磁场传感器附近的物体产生的。这些具有拉伸和倾斜理想的测量球的效果。将得到的测量躺在椭圆体。

软铁磁场影响可以由IMU的地磁场矢量旋转到传感器框架,其拉伸,然后使其旋转回全局帧进行模拟。

nedmf = imu.MagneticField;Rsoft = [2.5 0.3 0.5;0.3 2 0.2;0.5 0.2 3];软= rotateframe(缀(Q),rotateframe(Q,nedmf)* Rsoft);对于II = 1:numel(Q)imu.MagneticField =软(二,:);[〜,X(ⅱ,:)] = IMU(ACC(二,:),AV(二,:),Q(二));结束数字;scatter3(X(:,1)中,x(:,2)中,x(:,3));轴等于标题(“磁强计数据硬和软铁效应”);

校正技术

magcal函数可用于确定占硬和软铁效应磁力计校准参数。未校准磁强计数据可以模拟成躺在方程椭球

$$(X  -  b)中R(X-B)^ {T】= \的β^ 2 $$

在这个公式中[R是一个3×3矩阵,b是定义椭圆体中心的1×3向量,X未经校准的磁力计测量的1×3向量,并且$ \ $公测是指示磁场强度的标量。上面的等式是圆锥的一般形式。对于椭圆,[R必须是正定的。该magcal功能采用了多种求解器的基础上,对不同的假设[R。在里面magcal功能,[R可以假定为单位矩阵,对角矩阵,或对称矩阵。

magcal函数产生采取的位于偏移椭球,并将其转化到躺在理想球体,以原点为中心的测量校正系数。该magcal函数返回一个3乘3实矩阵一个和一个1×3向量b。要纠正未经校正的数据计算

$$ M =(X-B)一种。$$

这里X是一个1×3阵列未经校准的磁力计测量的和是1×3阵列校正磁力计测量,其位于一个球体。矩阵一个具有1的行列式,并且是矩阵平方根[R。另外,一个具有相同的形式作为[R:身份,一对角,或对称矩阵。因为这些类型的矩阵的不能赋予旋转,所述基质一个校正过程中不会旋转磁强计数据。

magcal函数也返回的第三输出是磁场强度$ \ $公测。您可以使用磁场强度来设置ExpectedMagneticFieldStrength财产ahrsfilter

使用magcal功能

使用magcal函数来确定校准参数正确嘈杂磁力计数据。通过设置创建嘈杂的磁强计数据NoiseDensity财产磁力仪在属性imuSensor。使用旋转和拉伸磁场变柔软的模拟软铁的影响。

imu.Magnetometer.NoiseDensity = 0.08;对于II = 1:numel(Q)imu.MagneticField =软(二,:);[〜,X(ⅱ,:)] = IMU(ACC(二,:),AV(二,:),Q(二));结束

为了找到一个b其中最好的纠正未经校正的磁强计数据参数,只需调用函数为:

[A,B,expMFS] = magcal(X);xCorrected =(X-B)* A;

画出原始和校正后的数据。显示椭球最适合的原始数据。显示在其上的修正后的数据应位于球体。

DE = HelperDrawEllipsoid;de.plotCalibrated(A,B,expMFS,X,xCorrected,'汽车');

magcal功能使用多种解算器,以尽量减少剩余误差。所述残余误差是校准后的数据和半径的球体之间的距离的总和expMFS

$$ E = \压裂{1} {2 \的β^ 2} \ {SQRT \压裂{\总和||(X-B)一种|| ^ 2  -  \的β^ 2} {N}} $$

R =总和(xCorrected ^ 2,2) -  expMFS ^ 2;E = SQRT(R'* r./N)./(2*expMFS.^2。);fprintf中(的残余误差在校正后的数据:%.2f \ n \ n',E);
残留误差在校正后的数据:0.01

如果只是一些缺陷,需要加以纠正或者实现一个简单的校正计算可以运行独立求解。

偏移仅计算

许多MEMS磁力计具有可用于补偿硬铁偏移传感器内部的寄存器。实际上,等式(X-B)部分的上方上板发生传感器。当只需要一个硬铁偏移补偿时,一个矩阵有效地变为单位矩阵。要孤军奋战,确定硬铁校正magcal函数可以调用这种方式:

[Aeye,拜厄,expMFSeye] = magcal(X,'眼');xEyeCorrected =(X-拜厄)* Aeye;[AX1,AX2] = de.plotCalibrated(Aeye,拜厄,expMFSeye,X,xEyeCorrected,'眼');视图(AX1,[ -  1 0 0]);视图(AX2,[ -  1 0 0]);

硬铁补偿,以及轴缩放计算

对于许多应用,治疗椭球矩阵为对角矩阵就足够了。几何上,该装置未校准的磁力计数据的椭球近似为具有其半轴与坐标系统的轴和中心从原点偏移对准。尽管这是不太可能是椭圆体的实际特性,它减少了校正方程到单个乘法和每个轴单个减法。

[Adiag,bdiag,expMFSdiag] = magcal(X,“诊断”);xDiagCorrected =(X-bdiag)* Adiag;[AX1,AX2] = de.plotCalibrated(Adiag,bdiag,expMFSdiag,X,xDiagCorrected,...'Diag(诊断)');

全硬和软铁补偿

要强制magcal函数来求解任意椭圆体并产生一个高密度,对称一个矩阵,调用函数为:

[A,B] = magcal(X,“符号”);

自动调整

'眼'“诊断”“符号”标志应谨慎使用和输出值进行检查。在一些情况下,可能存在对于高阶数据不足(“诊断”要么“符号”)配合和一套更好的校正参数可以通过一个简单的发现一个矩阵。该'汽车'调整选项,这是默认的,处理这种情况。

考虑的情况下,当足够的数据与高阶钳工使用。

xidx = X(:,3)> 100;xpoor = X(xidx,:);[Apoor,bpoor,mfspoor] = magcal(xpoor,“诊断”);

没有椭球的表面上足够的数据传播,实现了良好的配合和正确的校准参数与“诊断”选项。其结果是,在Apoor矩阵是复杂的。

DISP(Apoor)
0.0000 + 0.6221i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.7334i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 2.1919 + 0.0000i

使用'汽车'调整选项避免了这个问题,并找到一个更简单一个矩阵是真实的,对称的,和正定的。调用magcal'汽车'选项字符串是一样的调用没有任何选项字符串。

[阿卑,京佑久,mfsbest] = magcal(xpoor,'汽车');DISP(亚之杰)
1 0 0 0 1 0 0 0 1

对比使用的结果'汽车'钳工和不正确的,高阶钳工显示没有检查返回的危险一个校正数据之前矩阵。

de.compareBest(阿卑,京佑久,mfsbest,Apoor,bpoor,mfspoor,xpoor);

调用magcal与功能'汽车'标志,这是默认的,将尝试所有的可能性'眼'“诊断”“符号”搜索的一个b这最小化剩余误差,保持一个真实的,并确保[R是正定的并且是对称的。

结论

magcal功能可以给校准参数在磁力正确的软,硬铁偏移。调用函数不带选项字符串,或等效的'汽车'选项字符串,生产最适合的,涵盖大多数情况下。