主要内容

磁强计校准

磁强计沿传感器的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=imu传感器(“accel-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。2;0.5 - 0.2 3];软= rotateframe(连词(q), rotateframe (q, nedmf) * Rsoft);对于ii=1:numel(q)imu。磁场=soft(ii,:);[~,x(ii,:)]=imu(acc(ii,:),av(ii,:),q(ii));结束图;scatter3 (x (: 1) x (:, 2), x (:, 3));轴平等的标题(“具有硬铁和软铁效应的磁力计数据”);

校正技术

这个马卡尔函数可以用来确定磁力计校准参数,包括硬铁和软铁效应。未标定的磁强计数据可以用方程表示为位于椭球面上

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

在这个等式中R是一个3乘3的矩阵,B是定义椭球体中心的1×3矢量,x1乘3的矢量是未经校准的磁力计测量,和$\beta$为表示磁场强度的标量。上面的方程是二次曲线的一般形式。对于一个椭球体,R必须是正定的。这个马卡尔函数使用多种求解器,基于不同的假设R. 在马卡尔作用R可以假定为单位矩阵、对角矩阵或对称矩阵。

这个马卡尔函数生成校正系数,该系数对位于偏移椭球上的测量值进行校正,并将其变换为位于以原点为中心的理想球体上。这个马卡尔函数返回一个3 × 3的实矩阵A.和一个1 × 3的向量B.校正未校正的数据计算

$ $ m =(取向)$ $

在这里x是一个1×3阵列的未校准磁强计测量值和M是1乘3的校正磁强计测量值,它位于一个球体上。矩阵A.行列式是1这个矩阵的平方根是R. 另外,,A.具有与相同的形式R:单位矩阵、对角线矩阵或对称矩阵。因为这些矩阵不能传递旋转,矩阵A.在校正期间不会旋转磁强计数据。

这个马卡尔函数还返回第三个输出,即磁场强度$\beta$.可以用磁场强度来设置预期磁场强度的属性ahrsfilter

使用马卡尔函数

使用马卡尔该函数用于确定校正噪声磁强计数据的校准参数。通过设置NoiseDensity财产的磁强计财产的imuSensor. 在变量中使用旋转和拉伸的磁场软的模拟软铁效果。

imu.磁强计.噪声度=0.08;对于ii=1:numel(q)imu。磁场=soft(ii,:);[~,x(ii,:)]=imu(acc(ii,:),av(ii,:),q(ii));结束

找到A.B最佳校正未校准磁强计数据的参数,只需调用以下函数:

[A, b, expMFS] = magcal (x);xCorrected =(取向)*;

绘制原始数据和校正数据。给出最适合原始数据的椭球。显示校正数据所在的球体。

德= HelperDrawEllipsoid;de.plotCalibrated (A, b, expMFS x, xCorrected,“自动”);

这个马卡尔函数使用多种求解器来最小化残差。残差是校准数据与一个半径球之间的距离之和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)部分发生在传感器上。当只需要硬铁偏移补偿时,则A.矩阵就变成了单位矩阵。要确定硬铁校正单独、马卡尔函数可以这样调用:

[Aeye,贝耶,expMFSeye] = magcal (x,“眼睛”);xEyeCorrected = (x-beye) * Aeye;(ax₁,ax2) = de.plotCalibrated (expMFSeye Aeye,贝耶,x, xEyeCorrected“眼睛”); 视图(ax1,[-100]);视图(ax2,[-100]);

硬铁补偿和轴缩放计算

对于许多应用,将椭球矩阵视为对角矩阵就足够了。几何上,这意味着未校准磁强计数据的椭球近似为其半轴与坐标系轴对齐,且中心偏离原点。尽管这不太可能是椭球的实际特征d、 它将校正方程简化为每个轴的一次乘法和一次减法。

[Adiag,bdiag,expMFSdiag]=magcal(x,“诊断”); xDiagCorrected=(x-bdiag)*Adiag;[ax1,ax2]=de.plotCalibrated(Adiag,bdiag,expMFSdiag,x,XDIAG校正,...“诊断”);

全软硬铁补偿

强迫马卡尔函数求解任意椭球并产生稠密、对称的A.矩阵,将函数调用为:

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

汽车适合

这个“眼睛”,“诊断”,“sym”应该小心使用标记,并检查输出值。在某些情况下,高阶数据可能不足(“诊断”“sym”)使用更简单的方法可以找到拟合和一组更好的校正参数A.矩阵“自动”“拟合”选项是默认选项,用于处理此情况。

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

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

由于没有足够的数据分布在椭球表面,无法实现与椭球的良好拟合和适当的标定参数“诊断”选择。因此,阿波罗矩阵是复杂的。

disp (Apoor)
3.5407 + 0.00000 i 3.5407 + 0.00000 i 3.5407 + 0.00000 i 3.5407 + 0.00000 i

使用“自动”“拟合”选项可避免此问题,并找到更简单的方法A.实对称正定矩阵。调用马卡尔“自动”选项字符串与不带任何选项字符串的调用相同。

(订房,bb, mfsbest] = magcal (xpoor,“自动”);disp(不仅)
1 0 0 0 1 0 0 0 1

比较使用“自动”钳子和不正确的,高阶钳子显示不检查返回的危险A.修正数据前的矩阵。

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

调用马卡尔函数与“自动”Flag,这是默认的,将尝试所有的可能性“眼睛”,“诊断”“sym”寻找A.B使残差最小,保持A.真实的,并确保R是正定且对称的。

结论

这个马卡尔函数可以提供校准参数,以校正磁强计中的软铁和硬铁偏移。调用该函数时不带选项字符串,或等效于“自动”选项字符串,生成最佳拟合并覆盖大多数情况。