基于MEMS传感器的可校准电子罗盘实验设计
2022-02-06应亚萍倪佳乐张逸宁徐浩东
应亚萍,王 洁,倪佳乐,张逸宁,徐浩东
(浙江工业大学 之江学院,浙江 绍兴 312030)
0 引 言
地球有一个自然磁场,人们可以通过磁传感器测量得到当地的磁场信息,通过地磁场矢量来计算获得载体的偏航角,从而确定方向信息。在20世纪初,科学家发明了机械罗盘,由于材料、工艺和工作原理等方面的限制,这种罗盘的抗振动和抗冲击能力较低,之后由电子罗盘替代了机械罗盘。随着传感器技术和集成电路技术的飞速发展,微机电系统(Micro Electro Mechaical System,MEMS)传感器应运而生。MEMS传感器是融合微电子和微机械加工技术设计的传感器,能完成传统传感器所不能实现的一些功能,具有体积小、重量轻、灵敏度高、成本低、功耗小和易于智能化等特点。MEMS传感器取代传统传感器,使得电子罗盘的性能和参数都得到了较大的改善。电子罗盘作为平板电脑、智能手机和无人驾驶飞行器(Unmanned Air Vehides,UAVs)等产品的基本配置,市场应用前景广阔。因此基于MEMS传感器的电子罗盘的研究具有现实意义和实用价值
1 电子罗盘的测量原理
1.1 地磁测量基本原理
地球像1块条形磁铁,在周围形成地磁场。由于地理位置的不同,地磁场的强度也不同[1-3]。地球磁场可以通过如图1所示的模型模拟表示,该模型以条形磁铁的形式从磁南指向磁北。地磁极不与地理磁极重叠,它们之间有1个角度叫做磁偏角α。地磁场矢量在1个固定的位置上可以被分解为2个平行于该位置水平面的水平磁分量Hx和Hy以及1个垂直于该位置水平面的竖直磁分量Hz,因此如果把电子罗盘放置在平行于当地水平面的平面上,则磁力计的3个轴输出刚好对应这3个分量,而地球磁场在地理坐标系中可以被分解为总是指向磁北极的水平分量H0和垂直于地球表面的垂直分量Hg[2]。地磁场H在XY水平面内的分解示意如图2所示。磁方位角的定义是在地理坐标系中载体向前方向的X轴投影和磁北方向之间的夹角大小。若地理坐标系和载体坐标系相重合,那么由磁力计输出地球磁场在载体坐标系上的Y轴和X轴磁场分量Hy和Hx,由此可推出在理想情况下,水平面内的航向角计算公式为
图2 地磁场H在XY水平面上分解图
然而,较为常见的情况是载体处在三维空间中,载体坐标系不平行于地理坐标系[2]。如果地理坐标系和载体坐标系如图3所示,载体坐标系的坐标原点是载体的重心,沿着水平垂直轴向前方向是X轴的正方向,沿着水平轴向右方向是Y轴正方向,向下垂直于水平面的方向是Z轴正方向[2]。地理坐标系的原点是地球球体的中心,沿着北极方向的是X轴正方向,沿着地理东的方向的是Y轴正方向,垂直于向下的XY轴平面的方向则是Z轴正方向,同时两个坐标系都符合右手定则[2]。载体坐标系在运动中不断发生变化,导致传感器数据相对于地理坐标系连续变化。姿态角就是载体坐标系X、Y、Z轴与地理坐标系X、Y、Z轴之间的3个夹角[2]:即横滚角γ、俯仰角θ和航向角φ。俯仰角θ定义为载体前进方向与其在水平面投影的夹角;横滚角γ定义为罗盘平面上与前进方向垂直的方向与其在水平面投影的夹角。
图3 坐标系与相关角度示意图
1.2 航向姿态解算方法
对载体进行分析如图4所示,东北天坐标系即OXnYnZn为载体所在的地理坐标系,磁传感器连接到载体,载体坐标系为OXbYbZb,同时地理坐标系的原点与载体坐标系的原点相重合。那么这2个坐标系每个轴之间的夹角就是载体的姿态角,即航向角φ,横滚角γ和俯仰角θ。
图4 载体分析图
地磁传感器测出地磁场在载体坐标系3个轴的磁场矢量为Xb、Yb、Zb,后将3轴磁矢量通过欧拉角旋转矩阵可求得地理坐标系上的3轴地磁分量为
式中:X1、Y1、Z1为地磁场磁场强度投影到地理坐标系的值。
则有
知道地磁场在地理坐标系的磁场分量,即可计算得到磁航向角为
横滚角和俯仰角通过求解载体坐标系中3轴重力加速度分量得到。静止时,地球重力加速度大小就是加速度计3轴输出值的平方和。因此,如果加速度传感器的3轴输出为(gx,gy,gz),重力加速度在地理坐标系上的3轴分量为(0,0,g),则可以得到关系式
由上述矩阵可解算出
进而可得
然而,得到的方位角是载体相对于磁北极的角度。由于地理北极和地磁北极之间存在磁偏角α,而实际的方位角是载体相对于地理北极的方位角,因此航向角计算公式为φm=φ+α。需要注意的是,每个地方的磁偏角不是同一大小,可以根据国际地磁参考场来得到各个地方的磁偏角数值。
2 电子罗盘误差分析及校准方法
2.1 误差来源
通过测量地球磁场矢量来计算磁北方向与载体前进方向之间的角度是电子罗盘测量航向角的原理,但如果周围有磁性材料,磁传感器测量地球磁场的方向和大小就会产生误差,这种磁干扰引起的磁传感器测量误差被称为罗盘误差。硬磁干扰和软磁干扰都会产生这种磁干扰[2]。
(1)硬磁干扰。主要是由永久磁铁等其他硬磁材料产生的相对于地磁传感器的固定大小和方向的磁场干扰,所以3轴磁传感器除了检测到的地磁场外,还在3轴增加了1个固定大小和方向的磁场。对罗盘来说,磁传感器的输出应该是平面上的1个圆,但是由于受到这种硬磁干扰的影响,相当于磁传感器的输出圆心偏离了原点[1]。
(2)软磁干扰。主要是由于罗盘里的一些软磁材料被地磁场磁化产生,从而影响了磁力计的输出。软磁材料磁化后产生磁场导致磁力计检测到的磁场方向和大小随外界磁场的变化而变化,这种干扰不仅会影响磁力计检测到的磁场的磁场方向,而且还会严重影响检测到磁场的大小[3]。所以软磁干扰补偿较为困难,一般在这个干扰的影响下,磁传感器的输出会变成椭圆形
2.2 基于椭圆拟合的罗差补偿方法
罗盘软硬磁干扰可以被椭圆拟合补偿方法校正补偿。硬磁干扰会使得磁传感器3轴产生偏移量。磁传感器的偏移量Xoff、Yoff、Zoff可采用以下方法计算,把罗盘上磁传感器的XY轴平面放置在平行于水平面的平面上,匀速旋转罗盘1周,采集磁传感器的输出值并计算出磁力计X轴和Y轴的最大最小值Xmax、Ymax、Xmin、Ymin;之后将罗盘竖起,使得磁力计的XZ轴平面平行于水平面,再次匀速旋转1周,采集磁力计的输出值并计算Z轴的最大最小值,记为Zmax和Zmin[4,5]。地磁传感器的三轴偏移量为
而软磁干扰的影响会不断影响磁力计的输出,使得磁力计的输出由1个球变成1个椭球,可以引入3个标定因数Kx,Ky和Kz来将椭圆拟合成圆形。标定因数计算所需参数与计算偏移量所需参数相同,也需要磁力计3轴的最大最小值,将X轴设为标准轴,设定X轴的标定因数Kx=1,可求得3个标定因数Kx,Ky和Kz为
在得到磁力计3轴偏移量和3个标定因子后,可以通过标定因子的比例关系式将椭圆拟合成1个圆,圆心通过偏移量被移到原点,磁力计的输出值变为Hx1,Hy1,Hz1,可以以求得其数值大小为
3 电子罗盘的系统设计
3.1 罗盘系统设计概述
本设计基于MEMS传感器开发,其系统总体框架如图5所示。系统硬件主要包括微控制单元(Micro Controller Unit,MCU)、三轴MEMS地磁传感器、三轴加速度传感器以及有机发光二极管(Organic Light-Emitting Diode,OLED)显示屏。加速度传感器采集重力加速度矢量G在载体坐标系上的3个加速度分量Gx、Gy、Gz,通过I2C通信传输给MCU进行处理滤波,俯仰角θ和翻滚角γ通过加速度传感器测量得到的地球重力加速度矢量带入公式解算出来。3轴地磁传感器采集地磁场矢量M在载体坐标系上的3个磁分量Mx、My、Mz也通过I2C送入MCU。MCU根据滤波后的加速度传感器数据计算得到俯仰角和横滚角以及通过椭圆拟合补偿和标定误差处理后的地磁传感器3轴磁分量Mx、My、Mz,经过公式进行倾角补偿和航向角解算,得到稳定的姿态角数据。
图5 电子罗盘的系统框架
3.2 电子罗盘的硬件设计
传感器的性能与罗盘性能密切相关。本设计选择Bosch公司的BMA456加速度传感器和AKM公司的AK09918C磁传感器。这2款都是MEMS传感器。BMA456具有16位高精度ADC,其噪声为120 μg/Hz,温度偏移系数为 ±0.3 mg/K,尺寸为 2.0×2.0×0.65 mm3,封装形式为栅格阵列封装(Land Grid Array,LGA),易于整合到可穿戴设备中。AK09918C是1款采用霍尔传感器技术的可检测三轴磁感应强度的单芯片,采用0.8×0.8×0.5 mm3晶圆片级芯片规模封装(Water Level Chip Scale Packaging,WLCSP)形式,内置 16 位高精度ADC和高性能数字处理功能。BMA456加速度计在8 g量程下的灵敏度为4096 LSB/g,AK0991C磁力计的灵敏度为 0.15 µT/LSB[2]。
单片机采用STM32F103,将传感器采集的数据滤波处理后进行姿态解算,并将解算后的数据发送给OLED模块显示。
3.3 电子罗盘的软件设计
由于电子罗盘在使用过程中受环境因素的影响较严重,必须在使用前对本进行校准补偿。该设计中罗盘的参数补偿是基于椭球拟合方法。罗盘的工作模式分为正常工作模式和校准模式,其工作过程如下:在上电后电子罗盘会默认进入正常工作模式,其内部的MCU先完成一些外设资源的初始化、MEMS传感器的初始化以及OLED屏的初始化,再读取片内F LASH,得到9个校准参数,即3轴加速度偏移值(Gxoff、Gyoff、Gzoff)、地磁传感器3轴的标定因数(Kx、Ky、Kz)、地磁传感器三轴的偏移值(Mxoff、Myoff、Mzoff),然后MCU采集传感器的原始数据,将数据滤波后进行姿态解算得到姿态角和航向角。当按下按键,系统程序就会进入校准模式。罗盘先校准加速度传感器,通过加速度计持续采集一段时间的3轴加速度数据,实时比较每次发送给MCU的数据,得到加速度计XYZ轴的最大最小值,然后经过计算得到每个轴的偏移值,接着校准磁力计。磁力计先收集XY轴最大最小值,完成后将罗盘绕X轴旋转90°,收集Z轴最大最小值,然后计算每个轴的偏移值,并在校准完成后保存9个新的补偿参数到片内FLASH中,程序自动返回到正常工作模式。
系统软件的流程如图6所示。
图6 软件流程
3.4 MEMS传感器电子罗盘样机实验结果
电子罗盘的数据处理采用滑动窗口滤波算法,罗差补偿校准采用基于椭圆拟合法,即在0°~360°,每隔45°等间隔共8个试验点进行误差测试。程序运行后,通过OLED显示屏记录电子罗盘在经过误差校准补偿之后的水平和30°倾角的倾斜状态下的输出点。测试实验的数据如表1所示。
表1 实验结果 单位:°
通过实验验证本文设计的罗盘在被软件校准补偿后可达到±2°的精度和1°的分辨率,可以测量0°~360°范围的航向角,验证了本文提出的基于椭圆拟合的校准补偿算法能够很好地对倾角及罗差进行补偿。
4 结 论
通过对罗盘导航原理和误差分析,实现了基于MEMS传感器、可在三维空间中测量航向角、并具有校准补偿功能的电子罗盘。实验测试表明,所设计的电子罗盘能够实现姿态角的实时显示,提出的基于椭圆拟合补偿的标定方法有效,被软件校准补偿后可达到±2°的精度。该方法简单快速,通过选择高精度传感器就可以改善罗盘的测量精度,对未来要求的小体积、低功耗及高精度电子罗盘设计具有参考价值。