磁力计沿传感器的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
功能可用于确定磁力计校准参数,该参数考虑了硬性和柔软的铁效应。未校准的磁力计数据可以被建模为躺在具有方程的椭圆体上
在这个方程式中R是一个3 × 3矩阵,b是一个1 × 3的矢量,它定义了椭球中心,x是一个1×3的未校准磁力计测量矢量,和是标量,指示磁场强度。上述等式是圆锥的一般形式。对于椭球,R必须是积极的。的magcal
功能使用各种求解器,基于不同的假设R.在magcal
函数,R可以假设是单位矩阵、对角矩阵或对称矩阵。
的magcal
函数产生校正系数,测量位于偏移椭球面上的测量值,并将其转换为位于以原点为中心的理想球面上的测量值。的magcal
函数返回一个3×3真实矩阵一个和一个1-by-3矢量b.纠正未校准数据计算
在这里x1 × 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.
.
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
使用“汽车”
Fit选项避免了这个问题,并找到了一个更简单的一个
实数、对称、正定的矩阵。调用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
功能可以提供校正参数,以校正磁力计中的硬铁和软铁偏移量。调用没有选项字符串的函数,或等效的“汽车”
选项字符串,产生最佳适合并涵盖大多数情况。