磁罗盘

来源:互联网 发布:淘宝店招的尺寸 编辑:程序博客网 时间:2024/04/29 03:54

地磁的北极在地理的南极的附近
地磁的南极在地理的北极的附近
磁体的同名磁极相斥,异名磁极相吸
所以指南针的北极总是指着地理的北极(地磁的南极)


1、红色指针指向北面,白色指针指向南面。在表盘上“北”用字母N表示,南用字母“S”表示。
  2、指南针又称指北针,主要组成部分是一根装在 轴上的磁针,磁针在天然地磁场的作用下可以自由转动并保持在磁子午线的切线方向上,磁针的北极指向地理的北极,利用这一性能可以辨别方向。常用于航海、大 地测量、旅行及军事等方面。物理上指示方向的指南针的发明由三部曲组成:司南、磁针和罗盘。他们均属于中国的发明。

磁罗盘

        电子罗盘是一种重要的导航工具,能实时提供移动物体的航向和姿态。

        要实现电子罗盘功能,需要一个检测磁场的三轴磁力传感器和一个三轴加速度传感器。随着微机械工艺的成熟,意法半导体推出将三轴磁力计和三轴加速计集成在一个封装里的二合一传感器模块LSM303DLH,方便用户在短时间内设计出成本低、性能高的电子罗盘。本文以LSM303DLH为例讨论该器件的工作原理、技术参数和电子罗盘的实现方法。

1.    地磁场和航向角的背景知识

  地球的磁场象一个条形磁体一样由磁北极指向磁南极。在磁极点处磁场和当地的水平面垂直,在赤道磁场和当地的水平面平行,所以在北半球磁 场方向倾斜指向地面。用来衡量磁感应强度大小的单位是Tesla或者Gauss1Tesla=10000Gauss。随着地理位置的不同,通常地磁场的强度是0.4-0.6 Gauss。需要注意的是,磁北极和地理上的北极并不重合,通常他们之间有11度左右的夹角。

  地磁场是一个矢量,对于一个固定的地点来说,这个矢量可以被分解为两个与当地水平面平行的分量和一个与当地水平面垂直的分量。如果保持电子罗盘和当地的水平面平行,那么罗盘中磁力计的三个轴就和这三个分量对应起来,如图所示。

     地磁场矢量分解示意图

  实际上对水平方向的两个分量来说,他们的矢量和总是指向磁北的。罗盘中的航向角(Azimuth)就是当前方向和磁北的夹角。由于罗盘保持水平,只需要用磁力计水平方向两轴(通常为X轴和Y轴)的检测数据就可以用式1计算出航向角。当罗盘水平旋转的时候,航向角在0°- 360°之间变化。

2ST集成磁力计和加速计的传感器模块LSM303DLH

2.1  磁力计工作原理

  在LSM303DLH中磁力计采用各向异性磁滞电阻(Anisotropic Magneto-Resistance)材料来检测空间中磁感应强度的大小。这种具有晶体结构的合金材料对外界的磁场很敏感,磁场的强弱变化会导致AMR自身电阻值发生变化。

  在制造过程中,将一个强磁场加在AMR上使其在某一方向上磁化,建立起一个主磁域,与主磁域垂直的轴被称为该AMR的敏感轴,如图3所示。为了使测量结果以线性的方式变化,AMR材料上的金属导线呈45°角倾斜排列,电流从这些导线上流过,如图4所示。由初始的强磁场在AMR材料上建立起来的主磁域和电流的方向有45°的夹角。

               AMR材料示意图

      45º角排列的导线

   当有外界磁场Ha时,AMR上主磁域方向就会发生变化而不再是初始的方向了,那么磁场方向和电流的夹角θ也会发生变化,如图5所示。对于AMR材料来说,θ角的变化会引起AMR自身阻值的变化,并且呈线性关系,如图6所示。

                     磁场方向和电流方向的夹角

      θ-R特性曲线

  ST利用惠斯通电桥检测AMR阻值的变化,如图7所示。R1/R2/R3/R4是初始状态相同的AMR电阻,但是R1/R2R3/R4具有相反的磁化特性。当检测到外界磁场的时候,R1/R2阻值增加∆RR3/R4减少∆R。这样在没有外界磁场的情况下,电桥的输出为零;而在有外界磁场时电桥的输出为一个微小的电压∆V

              惠斯通电桥

  当R1=R2=R3=R4=R,在外界磁场的作用下电阻变化为∆R时,电桥输出?V正比于?R。这就是磁力计的工作原理。

2.2 置位/复位(Set/Reset)电路

  由于受到外界环境的影响,LSM303DLHAMR上的主磁域方向不会永久保持不变。LSM303DLH内置有置位/复位电路,通过内部的金属线圈周期性的产生电流脉冲,恢复初始的主磁域,如图8所示。需要注意的是,置位脉冲和复位脉冲产生的效果是一样的,只是方向不同而已。

      LSM303DLH置位/复位电路

置位/复位电路给LSM303DLH带来很多优点:

1    即使遇到外界强磁场的干扰,在干扰消失后LSM303DLH也能恢复正常工作而不需要用户再次进行校正。

2    即使长时间工作也能保持初始磁化方向实现精确测量,不会因为芯片温度变化或内部噪音增大而影响测量精度。

3    消除由于温漂引起的电桥偏差。

2.3  LSM303DLH的性能参数

  LSM303DLH集成三轴磁力计和三轴加速计,采用数字接口。磁力计的测量范围从1.3 Gauss8.1 Gauss共分7档,用户可以自由选择。并且在20 Gauss以内的磁场环境下都能够保持一致的测量效果和相同的敏感度。它的分辨率可以达到8 mGauss并且内部采用12ADC,以保证对磁场强度的精确测量。和采用霍尔效应原理的磁力计相比,LSM303DLH的功耗低,精度高,线性度好,并且不需要温度补偿。

  LSM303DLH具有自动检测功能。当控制寄存器A被置位时,芯片内部的自测电路会产生一个约为地磁场大小的激励信号并输出。用户可以通过输出数据来判断芯片是否正常工作。

3.ST电子罗盘方案介绍

  处理器通过磁场数据计算出方位角,通过重力数据进行倾斜补偿。这样处理后输出的方位角不受电子罗盘空间姿态的影响。

  对于便携式设备而言,器件的功耗非常重要,直接影响其待机的时间。LSM303DLH可以分别对磁力计和加速计的供电模式进行控制,使其进入睡眠 或 低功耗模式。并且用户可自行调整磁力计和加速计的数据更新频率,以调整功耗水平。在磁力计数据更新频率为7.5Hz、加速计数据更新频率为50Hz时,消耗电流典型值为0.83mA。在待机模式时,消耗电流小于3uA

4.铁磁场干扰及校准

  电子指南针主要是通过感知地球磁场的存在来计算磁北极的方向。然而由于地球磁场在一般情况下只有微弱的0.5高斯,而一个普通的手机喇叭当相距2厘米时仍会有大约4高斯的磁场,一个手机马达在相距2厘米时会有大约6高斯的磁场,这一特点使得针对电子设备表面地球磁场的测量很容易受到电子设备本身的干扰。

    磁场干扰是指由于具有磁性物质或者可以影响局部磁场强度的物质存在,使得磁传感器所放置位置上的地球磁场发生了偏差。如图11所示,在磁传感器的XYZ 坐标系中,绿色的圆表示地球磁场矢量绕z轴圆周转动过程中在XY平面内的投影轨迹,在没有外界任何磁场干扰的情况下,此轨迹将会是一个标准的以O(0,0)为中心的圆(xx 转动的相对性,当转动传感器时,传感器与地磁在水平面上的投影产生了相对位移———相当于将传感器固定,而去转动地磁的投影,这时地磁的投影在XY轴上的分解量,就组成了一个圆;  当有干扰时,相当于先将坐标系中心移动到干扰向量的顶点,然后将该顶点作为新的中心,去转动坐标系或者地磁的投影;  当去形成球形时,相当于在各个方向去进行转动)。当存在外界磁场干扰的情况时,测量得到的磁场强度矢量α将为该点地球磁场β与干扰磁场γ的矢量和。记作:

                  图 11  磁传感器XY坐标以及磁力线投影轨迹

  一般可以认为,干扰磁场γ在该点可以视为一个恒定的矢量。有很多因素可以造成磁场的干扰,如摆放在电路板上的马达和喇叭,还有含有铁镍钴等金属的材料如屏蔽罩,螺丝、电阻、LCD背板以及外壳等等。同样根据安培定律有电流通过的导线也会产生磁场。

  为了校准这些来自电路板的磁场干扰,主要的工作就是通过计算将γ求出。

4.1 平面校准方法

  针对XY轴的校准,将配备有磁传感器的设备在XY平面内自转,如图11,等价于将地球磁场矢量绕着过点O(γx,γy)垂直于XY平面的法线旋转(运动的相对性),而红色的圆为磁场矢量在旋转过程中在XY平面内投影的轨迹。这可以找到圆心的位置为((Xmax + Xmin)/2,  (Ymax + Ymin)/2).  同样将设备在XZ平面内旋转可以得到地球磁场在XZ平面上的轨迹圆,这可以求出三维空间中的磁场干扰矢量 伽马γ(γx, γy, γz).  ★▫★▫★


4.2 立体8字校准方法

  一般情况下,当带有传感器的设备在空中各个方向旋转时,测量值组成的空间几何结构实际上是一个圆球,所有的采样点都落在这个球的表面上,如图所示,这一点同两维平面内投影得到的圆类似。


       地球磁场空间旋转后在传感器空间坐标内得到球体

  这种情况下,可以通过足够的样本点求出圆心O(γx, γy, γz), 即固定磁场干扰矢量的大小及方向。公式如下:


  8字校准法要求用户使用需要校准的设备在空中做8字晃动,原则上尽量多的让设备法线方向指向空间的所有8个象限,如图所示。

   设备的空中8字校准示意图

5.倾斜补偿及航偏角计算


  经过校准后电子指南针在水平面上已经可以正常使用了。但是更多的时候设备并不是保持水平的,通常它和水平面都有一个夹角。这个夹角会影响航向角的精度,需要通过加速度传感器进行倾斜补偿。

  对于一个物体在空中的姿态,导航系统里早已有定义,Android中也采用了这个定义。Pitch(Φ)定义为x轴和水平面的夹角, 图示方向为正方向;Roll(θ)定义为y轴和水平面的夹角,图示方向为正方向。由Pitch角引起的航向角的误差如图18所示。可以看出,在x轴方向10度的倾斜角就可以引起航向角最大7-8度的误差。


  Pitch角引起的航向角误差

  设备在空中的倾斜姿态如图所示,通过3轴加速度传感器检测出三个轴上重力加速度的分量,再计算出PitchRoll

   设备在空中的倾斜姿态

   可以将磁力计测得的三轴数据(XMYM ZM)通过PitchRoll转化为计算航向角需要的HyHx,之后再计算出航向角(将载体坐标系上的磁力计数据,转回到NED坐标系,获得NED坐标系下,对应的 Hx 和 Hy 的值)。


6Android平台指南针的实现


  在当前流行的android 手机中,很多都配备有指南针的功能。为了实现这一功能,只需要配备有ST提供的二合一传感模块LSM303DLHST 提供整套解决方案。Android中的软件实现可以由以下框图表示:

其中包括:

BSP Reference

Linux Kernel Driver (LSM303DLH_ACC + LSM303DLH_MAG)

HAL Library(Sensors_lsm303dlh + Liblsm303DLH) for sensors.default.so

经过library 的计算,上层的应用可以很轻松的运用由Android定义由Library提供的航偏角信息进行应用程序的编写。



自我检测  SELF TEST OPERATION   

判断输出是否正确?

 To check the HMC5883L  for proper operation, a self test feature in incorporated in which the sensor offset straps are excited to create a nominal field strength (bias field) to be measured.

        Then, by placing the mode register into single-measurement mode (0x01), two data acquisition cycles will be made on each magnetic vector. The first acquisition will be a set pulse followed shortly by measurement data of the external field. The second acquisition will have the offset strap excited (about 10 mA) in the positive bias mode for X, Y, and Z axes to create about a ±1.1 gauss self test field plus the external field. The first acquisition values  will be subtracted from the second acquisition, and the net measurement will be placed into the data output registers. 

 Since self test adds ~1.1 Gauss additional field to the existing field strength, using a reduced gain setting prevents sensor from being saturated and data registers overflowed. For example, if the configuration register B is set to 0x60  (Gain=3), values around +766 LSB  (1.16 Ga * 660 LSB/Ga) will be placed in the X and Y data output registers and around +713 (1.08 Ga * 660 LSB/Ga) will be placed in Z data output register. To leave the self test mode, change MS1 and MS0 bit of the configuration register A back to 00 (Normal Measurement Mode), e.g. 0x10.   

比例因子校准  SCALE FACTOR CALIBRATION

补偿?

 Using the self test method described above,  the user can scale sensors’ sensitivity  to match each other.  Since placing device in positive bias mode  (or alternatively negative bias mode) applies a known artificial field on all three axes, the resulting ADC measurements in data output registers can be used to scale the sensors. For example, if the expected self test value for X-axis  is 766 and the actual value  is 750 then a scale factor of (766/750) should be multiplied to all future readings of X-axis. Doing so for all three axes will ensure their sensitivity are well matched.                                                      温漂

 The built-in self test can also be used to periodically compensate the scaling errors due to temperature variations. A compensation factor can be found by comparing the self test outputs with the ones obtained at a known temperature. For example, if the self test output is 750 at room temperature and 700 at the current temperature then a compensation factor of (750/700) should be applied to all current magnetic readings. A temperature sensor is not required using this method.

简单的修正模型

       如果磁力计在含有附加的局部磁场的环境中进行操作,磁力计的输出做附加的修正将是必要的。

一.

       修正的输出可以根据下面的方法来计算:     

   1)在磁场干扰的条件下进行,数据收集设备被旋转360° 

   2)数据进行分析,以产生  偏差的偏移  和  灵敏度的比例因子,以补偿所述干扰。

例子:

从数据中发现的XY磁强计的最大输出:

      Xmin = -0.284gauss                           Xmax = +0.402gauss

      Ymin = -0.322gauss                          Ymax  = +0.246gauss

从中可以看出X轴的数据具有更大的变化量,设置其比例系数为1;若果设置  Y  的比例系数为1,那么相对的 X 的测量值,就要被按系数缩小,那样分辨率就低了 xxx。

    Xs = 1

再计算其它比例系数:

                                                          Xmax - Xmin

                                                Ys = ————————

                                                          Ymax - Ymin

对于偏置补偿:

                        Xb = Xs[1/2(Xmax - Xmin) Xmax ]

                        Yb = Ys[1/2(Ymax - Ymin) - Ymax ]

正确的输出:

                      Xout = Xin*Xs + Xb   ;如果这里是减,那么上边大括号里的两项,需要调换位置。

                      Yout = Yin*Ys + Yb    ;因为这里是加号,所以上边是减max

.

    1)水平匀速旋转,收集XY轴数据

    2)转动器材90度(Z轴)匀速转动以收集Z轴数据

Xoffset = Xmax + Xmin/2

Yoffset = Ymax + Ymin/2

Zoffset = Zmax + Zmin/2

      将磁力计读到的裸值减去offset,得到用做角度计算的Heading

Xh = X - Xoffset

Yh = Y - Yoffset

Zh = Z - Zoffset

       水平测试,得到的方位角 = arctanYH/XH;非水平测试,需要使用加速计进行倾角补偿,先计算出翻滚角Roll和俯仰角Pitch,然后计算Heading值:

XH = x*cos(P)+Y*sin(R)*sin(P)-Z*cos(R)*sin(p)

YH = Y*cos(R)+Z*sin(R)

 













0 0
原创粉丝点击