一款具有倾斜补偿功能的三轴磁阻电子罗盘设计

发布者:咖啡狐狸最新更新时间:2021-06-11 来源: eepw关键字:MSP430 手机看文章 扫描二维码
随时随地手机看文章

  摘要:设计了一款具有倾斜补偿功能的三轴磁阻电子罗盘,并对样机系统做了误差补偿。本系统以磁阻传感器HMC1043和MEMS加速度传感器ADXL203为信号采集模块,以MSP430F149单片机为信号处理模块,分别获取、处理磁场和重力加速度信息,井通过液晶显示模块LCM6432ZK显示载体的航向角和姿态角。结合经典的椭圓假设法和傅里叶级数模型,对系统的误差进行补偿。实验结果表明,设计的磁阻电子罗盘实现了集成化和智能化,能实时显示载体的航向角和姿态角,航向误差可稳定在±0.6°以内。


  引言

  电子罗盘是利用地磁场来实现定向功能的装置,已广泛应用于各种导航定位系统。单片机技术的广泛应用,结合利用先进加工工艺生产的磁阻传感器,为导航系统的数字化提供了有利的帮助,是未来电子罗盘的发展方向。因自身的误差及环境磁场的影响,电子罗盘的航向测量精度不高。参考文献提出的24位置最小二乘罗差补偿法虽然精度高,但不能自动补偿;参考文献的最佳椭圆假设补偿法误差可达到±1°。本文基于磁阻传感器HMC1043和MEMS加速度传感器ADXL203研制了一款电子罗盘样机,经过数据预处理和算法补偿后的罗盘系统航向角精度可以稳定在±0.6°以内,该罗盘结构简单,体积小,重量轻,有较好的应用前景。


  1 系统结构及硬件组成

  本文研制的电子罗盘框图如图1所示。

  

 

  该系统基于磁阻效应,根据磁场大小确定方向,三轴磁阻传感器HMC1043感测载体坐标系下地球磁场X、Y、Z轴的分量Ux1、Uy1、Uz1。ME MS加速度计ADXL203通过感知地球重力加速度在其测量轴上的分量大小而确定俯仰角φ和翻滚角θ,根据理论公式——式(1)可求得折算到地平坐标系中相同航向下地磁场在X轴和Y轴的分量Hx和Hy,则航向角φ可根据式(2)求得。

  

 

  磁阻传感器输出信号采用高精度仪器放大器AD623进行放大;由芯片IRF7509及其外围电路将控制器产生的矩形脉冲转换成大电流脉冲,使磁阻传感器置位/复位,以消除磁阻传感器的偏置和放大器的失调及漂移;主控制器采用德州仪器公司的超低功耗的16位单片机MSP430 F149,信号经主控制器处理后送LCD显示航向角和姿态角,亦可实现D/A转换和串口输出。


  2 电子罗盘误差补偿

  电子罗盘利用地球磁场确定载体的航向,而地球磁场强度仅有0.5~0.6 gauss,极易受到外界磁场环境的影响,又由于传感器本身在制造、安装过程中不可避免地会存在一些误差,磁阻电子罗盘的误差不可避免,从而影响到精度。有资料表明:当车辆沿一座钢铁桥梁直行时,角速率陀螺指示的航向变化很小,而电子罗盘指示的航向变化幅度超过100°。修正这些误差仅仅通过硬件措施不能很好地解决,还必须借助有效的软件补偿方法才能完成。


  本文软件方面采用中值滤波算法对数据进行预处理,从而保证A/D采样的稳定性;根据经典椭圆假设理论,将椭圆中心移至原点,将Y轴作为基准对X轴进行校正,在此基础上再对罗差构造数学模型,采用最小二乘法求取罗差补偿系数对罗差进行补偿。


  2.1 原点校正原理

  根据Michel Moulin等人提出的椭圆假设,在用于地面车辆时,罗盘系统的误差形成过程可认为是传感器测出的水平面上两个磁场分量的合成向量顶点在平面上由一个圆变成了一个椭圆的过程,其逆过程就是基于椭圆假设的误差补偿过程。该方法虽然易于实现自动补偿和校准,但是样机用该方法实验测得系统精度仅为±2°。本文首先采用该方法将椭圆中心移至原点,然后将Y轴作为基准对X轴进行校正,在此基础上再构建罗差模型进行补偿校正。


  首先,将椭圆中心移到原点。将罗盘水平旋转一周采样,采样的X、Y轴的最大、最小值分别记作Xmax、Xmin、Ymax、Ymin,可根据式(3)~(6)求得X、Y轴的输出中点Xo、Yo和输出范围Xrang、Yrang:

  

 

  

 

  根据椭圆假设,可认为椭圆是由X、Y轴灵敏度不同造成,同时根据样机的实际运行情况可知,Y轴的输出范围比X轴大,所以可将Y轴定为基准1,继而用式(9)对X轴灵敏度进行校正。


  式(8)、(9)即为经过椭圆原点校正后的X、Y轴输出。此时解算出的航向角误差如图2所示。

  

 

  2.2 罗差校正原理

  罗差是利用地球磁场测量航向时电子罗盘系统所特有的一种误差,也是对精度影响最大的一种误差。罗差是由磁阻传感器周围的铁磁材料影响而产生的航向误差,可以分为硬磁材料引起的罗差和软磁材料引起的罗差。


  根据参考文献介绍的基于最小二乘24位置罗差补偿法,可得由硬磁材料和软磁材料引起的总罗差为:

  △φ=A+Bsinφ+Ccosφ+Dsin(2φ)+Ecos(2φ) (10)

  式中,A、B、C、D、E为罗差补偿系数,则消除罗差后的罗盘航向角φc为:

  φc=φ-△φ (11)

  根据最小二乘原理求取最小二乘解。

  5项罗差校正公式,即式(10)实现了对圆周误差、半圆误差和象限误差的补偿,但传感器不对称误差并未得到补偿。经过对误差特性曲线的分析,是3倍角罗差项分量偏大所致,为提高精度,增加3倍角罗差项,构成7项罗差校正公式,即:

△φ=A+Bsinφ+Ccosφ+Dsin(2φ)+Ecos(2φ)+Fsin(3φ)+Gsin(3φ) (12)


  实验表明,增加3倍角罗差项可提高精度,但效果有限,且会增加单片机系统负担,故最终选择5项罗差校正公式进行罗差校正。


  样机在0~360°范围内,每隔15°对共24个实验点进行测试,得到24组采样数据,进行罗差修正。对基于椭圆假设原点修正后的X、Y轴采样数据,采用基于最小二乘24位置罗差补偿法,样机运行一周得到最终航向角的误差如图3所示。

  

 

  由图2、3可知,经过基于椭圆假设原点校正后的航向角误差可控制在±3°以内,在此基础上对校正后的X轴、Y轴采样数据,采用基于最小二乘24位置罗差补偿法,航向角误差可稳定在±0.6°,可见该误差补偿方法效果较好,同时因该方法利用的是现场的采样数据,实时性也较好。


  结语

  本设计的电子罗盘样机采用三轴磁阻传感器HMC1043和MEMS加速度计ADXL203研制而成,系统成本低,体积小,功耗低。利用地球磁场测量航向,易受外界磁场干扰,结合经典的椭圆假设法和基于最小二乘24位置罗差补偿法,提出一种新的补偿方法对误差进行修正。实验证明,该误差补偿算法在不用额外增加硬件复杂度和软件计算量的前提下,能有效地将航向角误差稳定在±0.6°,补偿效果良好,精度较高。需要指出的是,该补偿算法的误差补偿结果是在水平状态下得出的,当俯仰角或翻滚角较大时,修正后的航向角误差会增大,如何更好地解决这一问题是今后工作的方向。

关键字:MSP430 引用地址:一款具有倾斜补偿功能的三轴磁阻电子罗盘设计

上一篇:MSP430F5438A RAM操作实验
下一篇:MSP430f5438的IO操作实验

推荐阅读最新更新时间:2024-11-08 12:58

STM32硬件乘法器——另与MSP430硬件乘法器区别
用过MSP430的人都知道,它是带有硬件乘法器的,可以设计进行简单的FFT计算,但是它是单独的模块,需要写入两个乘数,然后再到结果中取结果。而我们大多数时候根本就没必要去这么做,就当做51一样,软解乘法,很耗费时间。这2个MCU没有把乘法器内嵌到MCU内核MUL指令中。 而STM32包括各种使用Coretex M内核的处理器时真实的把硬件乘法器关联到MUL中了,所以你就和平时一样写乘法程序计算,实际上就是在调用乘法器。令人高兴的是,STM32能够进行单周期的乘除法,所以比软解乘除法要快几十倍呢。
[单片机]
MSP430单片机的中断系统(1)
简介: 主要内容有: ·中断分类 ·非可屏蔽中断 ·中断处理 ·外部中断 ·程序中如何使用中断 1中断的分类 1.1 什么是中断 在我们学习中断的知识之前,我们要做的第一件事就是,知道中断是什么东西,他是来做什么的,也就是什么是中断。 中断是暂停CPU正在运行的程序,转去执行相应的中断服务程序,完毕后返回被中断的程序继续运行的现象和技术。 正如这幅CPU执行流程图,在无中断时,是顺序执行,而在有中断时,会在发生中断时,转去执行中断服务程序,当执行完中断服务程序的时候再返回现场继续执行原程序。 1.2中断优先级 我们现在看到的这张图是MSP430单片机的中断优先级顺序图。 中断优先级由引起
[单片机]
<font color='red'>MSP430</font>单片机的中断系统(1)
uC/OS-II的任务切换机理及中断调度优化
引 言   在嵌入式操作系统领域,由Jean J. Labrosse开发的μC/OS,由于开放源代码和强大而稳定的功能,曾经一度在嵌入式系统领域引起强烈反响。而其本人也早已成为了嵌入式系统会议(美国)的顾问委员会的成员。   不管是对于初学者,还是有经验的工程师,μC/OS开放源代码的方式使其不但知其然,还知其所以然。通过对于系统内部结构的深入了解,能更加方便地进行开发和调试;并且在这种条件下,完全可以按照设计要求进行合理的裁减、扩充、配置和移植。通常,购买RTOS往往需要一大笔资金,使得一般的学习者望而却步;而μC/OS对于学校研究完全免费,只有在应用于盈利项目时才需要支付少量的版权费,特别适合一般使用者的学习、研究和开发。
[嵌入式]
msp430 io口的配置和使用
一 I/O的简介 1、各种复用和各种设置(可以作为简单IO功能也可以作各种第二功能;可控制为输入、输出、接上拉电阻、接下拉电阻、接受中断等各种情况); 2、IO口常用寄存器有:PXDIR、PXIN、PXOUT、PXREN、PXSEL、PXDS;其中,X可以是1~8,也可以是A~D,因为P1、P2可以合称为PA。例如(PAREN=0x0480)就等价于(P2REN=0x04、P1REN=0x80)。 IO口中断相关寄存器:PXIV、PXIFGX、PXIE、PXIES;由于IO中断仅存在于P1口和P2口,因此X只能为1或2,而且不可以为A。 3、msp430f5529.h中定义了BIT0~BITF,方便用户进行位操作。例如要设置P1
[单片机]
msp430F149单片机的flash读写程序
//基于msp430F149单片机的flash读写,记录430的运行状态, //实现在复位和掉电的情况下,恢复原始运行状态。 #include msp430x14x.h #include function.h unsigned char value1=0; // 待写入段A的值 unsigned char *data =(unsigned char *)0x4080; // 段A的头指针 void write_SegA (unsigned char value1) { char *Flash_ptr; // Flash pointer Fl
[单片机]
MSP430单片机对诺基亚5110液晶显示的驱动
本程序采用的是八路 ADC 单次采集的模式,根据配置,在单次的模式下转换完成后ADC12SC会自动复位,因此需要在循环中进行ADC12CTL0 |= ADC12SC;操作,而如果配置成连续采集的模式,只需要在程序开始将ADC12SC置位一次就可以,但是就需要注意当进入中断后如果不手动禁止中断会一直停留在循环中,因此在采集到需要的数据后需要将ADC关闭或者中断使能禁止才能重新回到主函数,这一点需要注意。 八路单次采集的程序如下: 八路AD多路单次采集诺基亚5110液晶显示 采集模式:多路单次 #include #include“LCD5110.h” #defineuintunsignedint #defineucharunsig
[单片机]
<font color='red'>MSP430</font>单片机对诺基亚5110液晶显示的驱动
MSP430F448单片机为核心的简易交流数字电压表系统设计
MSP430F44x系列是TI公司推出的一款超低功耗的16位单片机,其运算速度快而且体积小。片内集成了8路12位A/D、串行通信接口、看门狗定时器、比较器、硬件乘法器等外围设备模块,从而降低了应用电路的复杂程度,提高了系统的可靠性。该芯片可以工作于2.5 V和3.3 V两种电压下,并且可以处于休眠状态,此时的频率只有32768 Hz,功耗非常低,环境温度范围为-40~+125℃。这些优点非常适合设计便携式,且要求长时间连续工作,环境温度变化宽的智能仪器仪表设备。MSP430F44x系列单片机具有其他单片机无法比拟的优点,用其来实现交流电压的测量是一种很好的设计方案。 1 系统总体方案设计 本系统主要由以下4大模块组成:中央处理
[单片机]
以<font color='red'>MSP430</font>F448单片机为核心的简易交流数字电压表系统设计
MSP430 CCS printf_suppor
在CCS新建工程后默认是 printf_support=minimal 然后弄一个printf,sprintf就会编译报错 Description Resource Path Location Type #2631 Conversion f not allowed in printf_support=minimal mode hello.c /app line 189 C/C++ Problem 需在要Properties- Build- MSP430 Complier- summary of flags set中修改 printf_support=full 编译就可以了
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved