主要内容

磁强计校准

磁力计沿传感器的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);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];soft =旋转框架(结合(q),旋转框架(q,nedmf)* rsoft);为了II = 1:numel(q)imu.magneticfield = 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×3矢量定义椭圆体中心,X是一个1×3的未校准磁力计测量矢量,和$ \ beta $是标量,指示磁场强度。上述等式是圆锥的一般形式。对于椭圆体,R.必须是积极的。这玛卡函数使用多种求解器,基于不同的假设R.。在里面玛卡功能,R.可以假设是身份矩阵,对角线矩阵或对称矩阵。

玛卡功能产生校正系数,该校正系数采取偏移椭圆体的测量并将其转换为位于原点以来的理想球体上。这玛卡函数返回一个3×3真实矩阵一种和一个1×3矢量B.。纠正未校准数据计算

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

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

玛卡功能还返回第三个输出,这是磁场强度$ \ beta $。您可以使用磁场强度来设置预期的MagneticFieldStrencth财产ahrsfilter.

使用玛卡函数

使用玛卡用于确定校正磁力计数据的校准参数的功能。通过设置造成嘈杂的磁力计数据黑色曝光财产的磁力计物业在imusvesor.。在变量中使用旋转和拉伸的磁场柔软的模拟柔软的铁效果。

IMU.Magnetometer.NoiseSensy = 0.08;为了II = 1:numel(q)imu.magneticfield = soft(ii,:);[〜,x(ii,:)] = IMU(ACC(II,:),AV(II,:),Q(II));结尾

找到一种B.最佳校正未校准磁力计数据的参数,只需称之为:

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

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

德= HelperDrawEllipsoid;de.plotCalibrated (A, b, expMFS x, xCorrected,'汽车');

玛卡功能使用各种求解器来最小化残余误差。剩余误差是校准数据与半径范围之间的距离之和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)./(2expmfs.^2);FPRINTF('纠正数据中的剩余错误:%.2f \ n \ n',e);
纠正数据中的残留误差:0.01

如果只需要纠正某些缺陷或实现更简单的校正计算,则可以运行各个求解器。

仅抵消计算

许多MEMS磁力计具有可在传感器内的寄存器,其可用于补偿硬铁偏移。实际上,上述等式的(X-B)部分发生在传感器上。当只需要硬铁偏移补偿时,一种矩阵就变成了单位矩阵。要确定硬铁校正单独、玛卡函数可以这样调用:

[Aeye,Beye,Expmseye] = Magcal(x,'眼睛');xEyeCorrected = (x-beye) * Aeye;(ax₁,ax2) = de.plotCalibrated (expMFSeye Aeye,贝耶,x, xEyeCorrected'眼睛');查看(AX1,[ -  1 0 0]);查看(AX2,[ -  1 0 0]);

硬铁补偿和轴缩放计算

对于许多应用,将椭球矩阵视为对角线矩阵是足够的。几何上,这意味着未凝晶磁力计数据的椭圆体近似以使其与坐标系轴和距原点偏移的中心对齐的半X。虽然这不太可能是椭圆体的实际特性,但它将校正方程减少到每轴的单个乘法和单减。

[Adiag,BDIAG,EXPMFSDIAG] = MAGCAL(X,'诊断');xdiagrcortect =(X-BDIAG)* ADIAG;[AX1,AX2] = de.plotcalibrated(Adiag,Bdiag,Expmfsdiag,x,xdiagritect,......'诊断');

全硬柔软的铁补偿

强迫玛卡用于解决任意椭圆体并产生密集,对称的功能一种矩阵,将函数调用为:

[a,b] = magcal(x,'ysm');

汽车适合

'眼睛''诊断','ysm'标志应仔细使用,并检查输出值。在某些情况下,高阶可能存在足够的数据('诊断''ysm')可以使用更简单的方式找到适合和更好的校正参数一种矩阵。这'汽车'拟合选项是默认的,处理这种情况。

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

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

使用'汽车'FIT选项避免此问题并找到更简单的问题一种矩阵是真实的,对称和正定的。打电话玛卡'汽车'选项字符串与在没有任何选项字符串的情况下调用的相同。

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

比较使用结果'汽车'钳工和不正确的,高阶钳工显示未检查返回的危险一种矩阵校正之前。

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

调用玛卡函数与'汽车'标志,这是默认的,会尝试所有可能性'眼睛''诊断''ysm'在寻找一种B.使残差最小,保持一种真实,并确保R.是正定且对称的。

结论

玛卡功能可以为校准参数提供校正磁力计中的硬质和软铁偏移。呼叫函数没有选项字符串,或等效'汽车'选项字符串,产生最合适的,涵盖大多数情况。