磁强计沿传感器的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。纠正未校准数据计算
在这里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.
。
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
功能可以给出校准参数,以纠正磁力计中的硬和软铁偏移。调用没有选项字符串的函数,或等价地“汽车”
选项字符串,产生最佳适合,并涵盖大多数情况。