主要内容

磁强计校准

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

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

理想的磁力计

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

要生成磁场样本,请使用imuSensor对象。为了这些目的,假定角速度和加速度在每个方向上都为零是安全的。

N = 500;rng (1);acc = 0 (N,3);av = 0 (N,3);q = randrot(N,1);%均匀分布的随机旋转imu = imsensor (“accel-mag”);[~,x] = imu(acc,av,q);scatter3 (x (: 1) x (:, 2), x (:, 3));轴平等的标题(“理想磁强计数据”);

硬铁效果

噪声源和制造缺陷降低了磁强计的测量。其中最引人注目的是硬铁效应。硬铁效应是静止干扰磁噪声源。通常,这些来自磁力计电路板上的其他金属物体。硬铁效应改变了理想球体的原点。

imu. magnetommeter . constantbias = [2 10 40];[~,x] = imu(acc,av,q);图;scatter3 (x (: 1) x (:, 2), x (:, 3));轴平等的标题(“硬铁偏移的磁力计数据”);

软铁效果

软铁的效果更微妙。它们来自传感器附近的物体,扭曲了周围的磁场。它们具有拉伸和倾斜理想测量球体的作用。测量结果位于椭球面上。

通过将IMU的地磁场矢量旋转到传感器框架,拉伸,然后旋转回全局框架,可以模拟软铁磁场效应。

nedmf = imu.磁场;Rsoft = [2.5 0.3 0.5;0.3 2 2;0.5 0.2 3];软= rotateframe(conj(q),rotateframe(q,nedmf)*Rsoft);2 = 1:元素个数imu (q)。磁场=软(ii,:);[~,x(ii,:)] = imu(acc(ii,:),av(ii,:),q(ii));结束图;scatter3 (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 × 3的向量b.校正未校准的数据计算

$$m = (x-b) a

在这里x1 × 3阵列的未校准磁强计测量和是1 × 3的校正磁强计测量的阵列,它位于一个球体上。矩阵一个行列式是1,矩阵是根号吗R.此外,一个形式和R:单位矩阵、对角线或对称矩阵。因为这些矩阵不能传递一个旋转,矩阵一个在修正过程中不会旋转磁力计数据。

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

使用magcal函数

使用magcal函数确定校正噪声磁强计数据的校准参数。创建有噪声的磁强计数据NoiseDensity的属性磁强计的财产imuSensor.利用变量中的旋转和拉伸磁场模拟软铁效果。

imu. magnetometer . noisendensity = 0.08;2 = 1:元素个数imu (q)。磁场=软(ii,:);[~,x(ii,:)] = imu(acc(ii,:),av(ii,:),q(ii));结束

要找到一个而且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}\√6{\压裂{\ |和|(取向)| | ^ 2 -β\ ^ 2}{N}} $ $

r = sum(xCorrected.^2,2) - expMFS.^2;E =√(r.'*r./N)./(2*expMFS.^2);流('校正数据中的残余误差:%.2f\n\n', E);
校正后数据的残差:0.01

如果只有一些缺陷需要修正,或者为了实现更简单的修正计算,您可以运行单独的求解器。

只要抵销计算

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

[Aeye,beye,expMFSeye] = magcal(x,“眼睛”);xeyecorect = (x-beye)*Aeye;[ax1,ax2] = de. plot(Aeye,beye,expMFSeye,x, xeyecorcorrected,“眼睛”);View (ax1,[-1 0 0]);View (ax2,[-1 0 0]);

硬铁补偿与轴标度计算

对于许多应用,把椭球矩阵当作对角矩阵就足够了。从几何上讲,这意味着未校准磁强计数据的椭球近似地具有其半轴与坐标系轴对齐并从原点偏移中心。虽然这不太可能是椭球的实际特征,但它将修正方程简化为每个轴一次乘一次减。

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

全硬软铁补偿

强迫magcal函数来求解任意椭球并产生一个稠密的、对称的椭球一个矩阵,调用函数为:

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

汽车适合

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

考虑使用高阶拟合器时数据不足的情况。

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

没有足够的数据分布在椭球的表面上,以实现良好的拟合和适当的校准参数与“诊断接头”选择。结果,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 0.0000 3.5407 + 0.0000i

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

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

比较了应用该方法的效果“汽车”拟合器和一个不正确的高阶拟合器显示了不检查返回者的危险一个矩阵,然后修正数据。

de.compareBest(订房、bb mfsbest、Apoor bpoor, mfspoor, xpoor);

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

结论

magcal功能可以给出校正磁强计中硬铁和软铁偏移量的校正参数。调用不带选项字符串的函数“汽车”选项字符串,产生最佳拟合和涵盖大多数情况。