主要内容

磁力计校准

磁强计沿传感器的X、Y和Z轴检测磁场强度。精确的磁场测量是传感器融合和确定航向和方向的关键。

为了用于航向和定向计算,典型的低成本MEMS磁力计需要进行校准,以补偿环境噪声和制造缺陷。

理想的磁力计

理想的三轴磁强计沿正交的X、Y、Z轴测量磁场强度。在没有任何磁干扰的情况下,磁强计的读数是测量地球磁场的。如果在传感器通过所有可能的方向旋转时进行磁强计测量,那么测量值应该位于一个球体上。球的半径就是磁场强度。

要生成磁场样本,请使用imusvesor.目的。出于这些目的,假设在每个方向上的角速度和加速度是安全的。

n = 500;RNG(1);ACC =零(n,3);AV =零(N,3);q = RANDROT(n,1);%均匀分布的随机旋转imu = imuSensor ('Accel-Mag');[〜,x] = IMU(ACC,AV,Q);散射3(x(:,1),x(:,2),x(:,3));轴平等的标题(“理想的磁强计数据”);

硬铁效应

噪声源和制造缺陷降低了磁力计的测量。最引人注目的是硬铁效应。硬铁效应是静止干扰磁噪声源。通常,它们来自电路板上的其他金属物体,用磁力计。硬铁效应使理想球体的起源移位。

imu.magnetometer.constantbias = [2 10 40];[〜,x] = IMU(ACC,AV,Q);数字;散射3(x(:,1),x(:,2),x(:,3));轴平等的标题('具有硬铁偏移的磁力计数据');

软铁效应

柔软的铁效果更加微妙。它们从传感器附近的物体出现,这些物体扭曲了周围磁场。这些具有拉伸和倾斜理想测量范围的效果。得到的测量位于椭球上。

通过将IMU的地磁场向量旋转到传感器框架,可以旋转柔软的铁磁场效果,然后将其旋转回全局框架。

nedmf = imu.magneticfield;rsoft = [2.5 0.3 0.5;0.3 2 .2;0.5 0.2 3];SOFT =旋转框架(结合(q),旋转框架(q,nedmf)* rsoft);2 = 1:元素个数imu (q)。磁场=软(ii):);[~ x (ii)): = imu (acc (ii):), av (ii):), q (ii));结尾数字;散射3(x(:,1),x(:,2),x(:,3));轴平等的标题('具有硬和柔软的铁效应的磁力计数据');

校正技术

magcal功能可用于确定磁力计校准参数,该参数考虑了硬性和柔软的铁效应。未校准的磁力计数据可以被建模为躺在具有方程的椭圆体上

$$(x -b) R(x-b)^{T} = \beta^2$$

在这个方程式中R是一个3 × 3矩阵,b是一个定义椭球中心的1 × 3向量,x是一个1×3的未校准磁力计测量矢量,和β\美元是标量,指示磁场强度。上述等式是圆锥的一般形式。对于椭球,R必须是积极的。的magcal功能使用各种求解器,基于不同的假设R。在magcal函数,R可以假设为单位矩阵,对角矩阵,或对称矩阵。

magcal函数产生校正系数,在偏移椭球上测量,并将它们变换到以原点为中心的理想球面上。的magcal函数返回一个3×3真实矩阵一个和一个1-by-3矢量b。纠正未校准数据计算

$$ m =(x-b)a。$$

在这里x是一组1 × 3的未经校准的磁力计测量和是一个校正磁力计测量的1×3阵列,它位于球体上。矩阵一个具有1的决定因素,是矩阵平方根R。此外,一个有相同的形式R:标识,对角线或对称矩阵。因为这些类型的矩阵不能赋予旋转,矩阵一个修正期间不会旋转磁力计数据。

magcal函数还返回第三个输出,即磁场强度β\美元。您可以使用磁场强度来设置ExpectedMagneticFieldStrength财产ahrsfilter.

使用magcal功能

使用magcal功能确定校正参数,纠正噪声磁强计数据。创建噪声磁强计数据黑暗度财产的财产磁力计物业在imusvesor.。使用变量中的旋转和拉伸磁场模拟软铁的效果。

imu.Magnetometer.NoiseDensity = 0.08;2 = 1:元素个数imu (q)。磁场=软(ii):);[~ x (ii)): = imu (acc (ii):), av (ii):), q (ii));结尾

找到一个b对未校准磁强计数据进行最佳校正的参数,函数简单调用如下:

[a,b,expmfs] = magcal(x);xcorrited =(x-b)* a;

绘制原始和纠正的数据。显示最适合原始数据的椭圆体。显示纠正数据应该撒谎的球体。

de = helperdrawellipsoid;de.plotcalibrated(a,b,expmfs,x,xcorrect,“汽车”);

magcal功能使用各种求解器来最小化残余误差。剩余误差是校准数据与半径范围之间的距离之和expmfs.

$$ e = \ frac {1} {2 \ beta ^ 2} \ sqrt {\ frac {\ sum ||(x-b)a || ^ 2  -  \ beta ^ 2} {n}} $$

r = sum(xcorrited。^ 2,2) -  expmfs。^ 2;e = sqrt(r。'* r./n)./( expmfs.^2);fprintf('修正数据中的残留错误:%.2f\n\n', E);
校正后数据的残差:0.01

如果只需要纠正一些缺陷或实现更简单的纠正计算,您可以运行单独的解决程序。

只要抵销计算

许多MEMS磁力计在传感器内有寄存器,可以用来补偿硬铁偏移。实际上,上面方程的(x-b)部分发生在传感器上。当只需要一个硬铁补偿时,该一个矩阵有效地成为身份矩阵。单独确定硬铁校正,magcal可以以这种方式调用函数:

[AEYE,BEYE,EXPMFSEYE] = MAGCAL(X,'眼睛');XeyEcorrated =(X-Beye)* Aeye;[AX1,AX2] = de.plotcalibrated(Aeye,Beye,Expmseye,X,XeyEcorrect,“眼睛”);视图(ax₁,[1 0 0]);视图(ax2 (1 0 0));

硬铁补偿和轴缩放计算

在许多应用中,把椭球矩阵当作对角矩阵是充分的。从几何上讲,这意味着未经校准的磁强计数据的椭球面近似具有与坐标系轴线对齐的半轴和偏离原点的中心。虽然这不大可能是椭球体的实际特征,但它将修正方程简化为每个轴只乘一乘一减。

[Adiag, bdiag expMFSdiag] = magcal (x,“诊断接头”);xDiagCorrected = (x-bdiag) * Adiag;(ax₁,ax2) = de.plotCalibrated (xDiagCorrected Adiag, bdiag expMFSdiag x,“诊断接头”);

全硬、软铁补偿

强迫magcal用于求解任意椭圆体并产生密集,对称的功能一个矩阵,称之为:

[a,b] = magcal(x,“符号”);

自动适合

'眼睛',“诊断接头”, 和“符号”标志应仔细使用,并检查输出值。在某些情况下,高阶数据可能不足(“诊断接头”或者“符号”)的拟合和一组更好的校正参数可以用一个更简单的一个矩阵。的“汽车”Fit选项(默认选项)处理这种情况。

考虑与高阶钳工一起使用的数据不足时的情况。

xidx = x(:,3)> 100;xpoor = x(xidx,:);[Apoor,Bpoor,mfspoor] = Magcal(Xpoor,“诊断接头”);

没有足够的数据在椭球表面上传播,以实现良好的合适和适当的校准参数“诊断接头”选项。结果,Apoor矩阵是复杂的。

DISP(APOOR)
0.0000 + 0.4722i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.5981i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 3.5407 + 0.0000i

使用“汽车”适合选项避免了这个问题,找到了一个更简单的一个矩阵是实的,对称的,正定的。调用magcal与之“汽车”选项字符串与不带任何选项字符串的调用相同。

[abest,bbest,mfsbest] = magcal(xpoor,“汽车”);disp(abest)
1 0 0 0 1 0 0 0 1

比较了使用的结果“汽车”钳工和不正确的,高阶钳工显示未检查返回的危险一个矩阵纠正数据之前。

De.comPareBest(Abest,Bbest,MFSbest,Apoor,BPoor,MFSPoor,Xpoor);

打电话给magcal用来的功能“汽车”标志,这是默认的,将尝试所有可能性'眼睛',“诊断接头”“符号”寻找一个b最小化残差错误,保持一个真实,并确保R是正定的和对称的。

结论

magcal功能可以给出校准参数,以纠正磁力计中的硬和软铁偏移。调用没有选项字符串的函数,或等价地“汽车”选项字符串,产生最佳适合,并涵盖大多数情况。