主要内容

磁强计校准

磁力计沿着传感器检测磁场强度的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 = imuSensor (“accel-mag”);(~ x) = imu (acc, av, q);scatter3 (x (: 1) x (:, 2), x (:, 3));轴平等的标题(“理想的磁强计数据”);

硬铁的影响

噪声源和制造缺陷降低磁强计的测量。其中最引人注目的是硬铁效果。硬铁影响固定干扰磁噪声来源。通常,这些来自其他金属物体与磁力仪在电路板上。硬铁影响转移的理想球体的起源。

imu.Magnetometer。ConstantBias = 10 40 [2];(~ 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);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(取向)^ {T} =β\ ^ 2 $ $

在这个方程式中R是一个3×3的矩阵,b是一个1×3向量定义椭球中心,x是一个1×3向量未校准的磁强计测量,β\美元是一个标量表示磁场强度。上面的方程是二次曲线的一般形式。对于一个椭球体,R必须正定。的magcal函数使用多种解决方案,基于不同的假设R。在magcal函数,R可以认为是单位矩阵,对角矩阵,对称矩阵。

magcal函数产生修正系数进行测量,躺在一个偏移量椭球和转换他们躺在一个理想的范围,集中在原点。的magcal函数返回一个3×3真正的矩阵一个和一个1×3向量b。正确的未校准的数据计算

$ $ m =(取向)$ $

在这里x是1×3批未校准的磁强计测量和是1×3组修正磁强计测量,躺在一个球体。矩阵一个行列式为1的矩阵的平方根R。此外,一个相同的形式吗R:身份、对角线或对称矩阵。因为这些矩阵不能传授一个旋转,这个矩阵一个期间不会旋转磁强计数据修正。

magcal函数也返回第三输出磁场强度β\美元。您可以使用设置的磁场强度ExpectedMagneticFieldStrength的属性ahrsfilter

使用magcal函数

使用magcal函数来确定正确校准参数,嘈杂的磁强计的数据。创建嘈杂的磁强计数据通过设置NoiseDensity财产的磁强计财产的imuSensor。使用旋转和拉伸磁场的变量模拟软铁的影响。

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);xCorrected =(取向)*;

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

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

magcal函数使用一个解决各种各样的残余误差降到最低。剩余误差之间的距离之和的校准数据和一个球体半径expMFS

$ $ E = \压裂{1}{2β\ ^ 2}\√6{\压裂{\ |和|(取向)| | ^ 2 -β\ ^ 2}{N}} $ $

r =总和(xCorrected。^ 2, 2)——expMFS。^ 2;E =√r。”* r / N) / (2 * expMFS。^ 2);流(的残差修正数据:% .2f \ n \ n ',E);
残余误差纠正数据:0.01

您可以运行解决个人如果只有一些缺陷需要改正或实现一个简单的修正计算。

只要抵销计算

许多MEMS磁力计寄存器内的传感器,可以用来弥补硬铁抵消。实际上,上面的方程(取向)的部分发生在传感器。当只有一个铁硬抵消补偿是必要的,一个矩阵有效成为单位矩阵。光是努力确定铁校正,magcal函数可以调用:

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

硬铁补偿和轴比例计算

对于许多应用程序,将椭球矩阵是一个对角矩阵是充分的。几何,这意味着未校准的磁强计数据是近似椭球semiaxes与坐标系的轴和中心偏移量从原点。虽然这是不太可能的实际特点椭球,它减少了校正方程一个乘法和单减去每轴。

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

硬和软铁补偿

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

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

汽车适合

“眼睛”,“诊断接头”,“符号”旗帜应该使用仔细检查和输出值。在某些情况下,可能会有高阶数据不足(“诊断接头”“符号”),一套更好的校正参数可以使用更简单的找到一个矩阵。的“汽车”合适的选项,该选项是默认的,处理这种情况。

考虑数据不足的情况下使用高阶健康。

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

没有足够的数据分布在椭球体的表面,找到一个合适的校准参数的“诊断接头”选择。结果,Apoor矩阵是复杂的。

disp (Apoor)
0.0000 + 0.4722我0.0000 + 0.0000 0.0000 0.0000我0.0000 + 0.0000 + 0.0000 + 0.5981我0.0000 + 0.0000 0.0000 + 0.0000 0.0000 3.5407 + 0.0000 + 0.0000我

使用“汽车”适合选择避免了这个问题,发现一个更简单的一个矩阵,是真实的,对称、正定。调用magcal“汽车”选项字符串调用一样没有任何选项字符串。

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

比较使用的结果“汽车”健康和不正确的,高阶钳工不检查返回的危险一个矩阵之前纠正数据。

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

调用magcal函数与“汽车”国旗,是默认,将尝试所有的可能性“眼睛”,“诊断接头”“符号”寻找一个b最小化残差,保持一个真实的,并确保R正定对称。

结论

magcal函数可以给正确的校准参数软硬铁补偿磁强计。调用的函数没有选项字符串,或等价“汽车”选项字符串,生产最适合和覆盖大多数情况下。