资讯详情

倾斜补偿的电子罗盘(3):椭球拟合,磁传感器软磁干扰和硬磁干扰的9参数校准

电子罗盘(3)倾斜补偿:9参数校准椭球拟合、磁传感器软磁干扰和硬磁干扰

背景

前面提到了磁传感器的误差来源,并介绍了消除硬磁干扰的三个参数校准。倾斜补偿电子罗盘(2):磁传感器的误差来源、硬磁干扰校准(3个参数)和实验验证

硬磁干扰的影响相当于零偏差,导致数据点所在球面平移。软磁干扰会导致球面变成椭球,如下图所示:

Layout Recommendations for PCBs Using a Magnetometer Sensor (nxp.com.cn)

image-20220504215132492

同样,在获得磁传感器读数后,需要通过校准来消除软磁和硬磁干扰的影响,然后使用校准数据来实现电子罗盘功能 电子罗盘(1)倾斜补偿:地磁场、磁传感器、倾斜补偿

使用电子罗盘时的校准流程:

  1. 任意旋转,尽可能包含多个方向,使拟合更准确(例如,手机指南针应用程序,有时需要旋转手机几次才能继续使用,这可能是原因吗?
  2. 根据拟合结果计算获得的数据 W ? 1 \mathbf{W}^{-1} W?1和 V \mathbf{V} V
  3. 对于新获得的读数 h \mathbf{h} h,用 h 0 = W ? 1 ( h ? V ) \mathbf{h_0} = \mathbf{W^{-1}}(\mathbf{h}-\mathbf{V}) h0=W?1(h?V)校准,然后基于 h 0 \mathbf{h_0} h0​可以使用倾斜补偿来获得方位

本文介绍计算 W − 1 \mathbf{W}^{-1} W−1和 V \mathbf{V} V的过程,并用样机做了校准+倾斜补偿的测试。

这里只是跟着参考资料操作了拟合的每个步骤,但是对于椭球拟合部分具体的原理其实不太理解(好久没接触线代了),不过看起来效果还不错。

椭球拟合

椭球的表达式

首先,椭球面表达式: h 0 T h 0 = [ W − 1 ( h − V ) ] T W − 1 ( h − V ) = B 2 \mathbf{h_0^T}\mathbf{h_0} = [\mathbf{W}^{-1}(\mathbf{h}-\mathbf{V})]^T\mathbf{W}^{-1}(\mathbf{h}-\mathbf{V})=B^2 h0T​h0​=[W−1(h−V)]TW−1(h−V)=B2 其中, W − 1 \mathbf{W}^{-1} W−1是对称矩阵。

展开后: h T ( W − 1 ) T W − 1 h − 2 h T ( W − 1 ) T W − 1 V + V T ( W − 1 ) T W − 1 V − B 2 = 0 → h T M h + 2 h T n + d = 0 \mathbf{h}^T(\mathbf{W}^{-1})^{T}\mathbf{W}^{-1}\mathbf{h}-2\mathbf{h}^T(\mathbf{W}^{-1})^{T}\mathbf{W}^{-1}\mathbf{V} +\mathbf{V}^T(\mathbf{W}^{-1})^{T}\mathbf{W}^{-1}\mathbf{V}-B^2=0 \\ \rightarrow \mathbf{h}^T\mathbf{M}\mathbf{h}+2\mathbf{h}^T\mathbf{n}+d=0 hT(W−1)TW−1h−2hT(W−1)TW−1V+VT(W−1)TW−1V−B2=0→hTMh+2hTn+d=0 其中, M = ( W − 1 ) T W − 1 = ( W − 1 ) 2 n = − M V d = V T M V − B 2 \mathbf{M} = (\mathbf{W}^{-1})^{T}\mathbf{W}^{-1} = (\mathbf{W}^{-1})^2 \\ \mathbf{n} = -\mathbf{M} \mathbf{V} \\ d = \mathbf{V}^T\mathbf{M}\mathbf{V}-B^2 M=(W−1)TW−1=(W−1)2n=−MVd=VTMV−B2 同时,用xyz表示: a x 2 + b y 2 + c z 2 + 2 f y z + 2 g x z + 2 h x y + 2 p x + 2 q y + 2 r z + d = v T x = 0 , v = [ a b c f g h p q r d ] T x = [ x 2 y 2 z 2 2 y z 2 x z 2 x y 2 x 2 y 2 z 1 ] T ax^2+by^2+cz^2+2fyz+2gxz+2hxy+2px+2qy+2rz+d=\mathbf{v}^T\mathbf{x}=0, \\ \mathbf{v} = \left[ \begin{matrix} a &b &c &f &g &h &p &q &r &d \end{matrix} \right]^T \\ \mathbf{x} = \left[ \begin{matrix} x^2 &y^2 &z^2 &2yz &2xz &2xy &2x &2y &2z &1 \end{matrix} \right]^T ax2+by2+cz2+2fyz+2gxz+2hxy+2px+2qy+2rz+d=vTx=0,v=[a​b​c​f​g​h​p​q​r​d​]Tx=[x2​y2​z2​2yz​2xz​2xy​2x​2y​2z​1​]T 则系数的对应关系为: M = [ a h g h b f g f c ] , n = [ p q r ] \mathbf{M} = \left[ \begin{matrix} a &h &g\\ h &b &f\\ g &f &c \end{matrix} \right], \mathbf{n} = \left[ \begin{matrix} p \\ q \\ r \end{matrix} \right] M=⎣⎡​ahg​hbf​gfc​⎦⎤​,n=⎣⎡​pqr​⎦⎤​

椭球拟合实际上就是要获得 v \mathbf{v} v的10个系数。

简单验证系数的对应关系:

拟合过程

此处只介绍计算过程,也是基于最小二乘法,详见参考资料。

  1. 使用m组测量数据构建10*m矩阵 D = [ x 1 , x 2 , . . . , x m ] \mathbf{D}=[\mathbf{x_1},\mathbf{x_2},...,\mathbf{x_m}] D=[x1​,x2​,...,xm​]。根据我们选用的模型, a x 2 + b y 2 + c z 2 + 2 f y z + 2 g x z + 2 h x y + 2 p x + 2 q y + 2 r z + d = v T x = 0 ax^2+by^2+cz^2+2fyz+2gxz+2hxy+2px+2qy+2rz+d=\mathbf{v}^T\mathbf{x}=0 ax2+by

    标签: nb地磁传感器两轴磁传感器s21血氧传感器

    锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台