特种物品储运记录仪的设计与研究

2015-04-12 00:00:00张海宁王博
现代电子技术 2015年3期

摘 要: 特殊物品储运记录仪是能够对车辆行驶速度、路线进行记录存储,并通过惯性器件自主导航的智能装置。以往的储运设备只能粗略记录物品受冲击力的状况,针对这一问题,提出一种基于惯性导航系统的储运记录仪。实验结果表明,设计的基于MEMS器件的捷联式惯性导航系统能够输出满足要求的载体瞬时速度、加速度、姿态、位置等,可以明显加强危险品、敏感材料的运输监控力度。

关键词: 惯性导航; MEMS; 四元数法; 初始对准

中图分类号: TN965.7⁃34 文献标识码: A 文章编号: 1004⁃373X(2015)03⁃0131⁃04

Design and realization of transportation recorder for special goods

ZHANG Hai⁃ning, WANG Bo

(School of Electronics and Information Engineering, Xi’an Technological University, Xi’an 710032, China)

Abstract: In The special goods transportation recorder is an intelligent device which can record the vehicle speed and route, and realize autonomous navigation by inertial devices. The available transportation equipments can only make a rough record on the state when the goods is impacted. A transportation recorder based on inertial navigation system is proposed in this paper to solve this problem. The experimental results show that the designed SINS (strap down inertial navigation system) based on MEMS is able to output instantaneous velocity, acceleration, attitude, position, etc. It can significantly strengthen the monitoring of dangerous goods transportation.

Keywords: inertial navigation; MEMS; quaternion algorithm; initial alignment

0 引 言

本文首先根据四元数姿态角更新算法,求解惯性导航的姿态角,将MEMS器件的输出结果经过滤波后进行比力变换与积分,求得位置参数。基于ARM处理器,本文描述了惯性导航系统的硬件设计方法,设计了基于ITG⁃3200陀螺仪、ADXL345加速度计、HMC5843电子罗盘的外围电路。在导航软件设计方面,采用了嵌入式Linux操作系统,详细描述了MEMS器件数据采集,导航计算,位置信息输出任务的设计方法。

1 导航系统硬件部分

1.1 导航处理器

主处理器承担着大量数据运算以及实时处理的任务,它的选型尤为重要。本文采用韩国三星公司32位的RISC微处理器[1]S3C2440作为主处理器。S3C2440微处理器是一款由Samsung公司为手持设备设计的低功耗、高集成度的基于ARM920T核的微处理器。它适用于多种领域,比如嵌入控制、消费教育类多媒体、DSP和移动式应用等。

S3C2440微处理器基于ARM920T内核的,0.13 μm CMOS标准单元和存储单元复合体。它功耗小,简单,稳定的设计非常适合用于对电源要求较高的产品上。 它采用了新的总线构架(AMBA),提供了杰出的特性。因为其内核为32 b的先进处理器,ARM920T 实现了哈佛缓存体系构架,主频可达到400 MHz。基于以上原因,S3C2440微处理器可承担传感器数据采集,导航数据运算,数据保存的任务。

1.2 MEMS器件选择与外围电路

惯性测量组合[2](Inertial Measurement Unit,IMU)是惯性导航的硬件基础。一般包含三轴正交的陀螺仪和三轴正交的加速度计,分别用来测量运载体的三自由度角运动和三自由度线加速度。在MEMS传感器中,目前已经研究成熟的产品有压力、力矩、加速度、流量、磁场、温度等。本文选择MEMS加速度计、陀螺仪和电子罗盘。

MPU⁃6050对陀螺仪和加速度计分别采用了3个16位的ADC,为了精确跟踪快速和慢速的运动,传感器测量范围可控,为±250 (°)/s,±500 (°)/s,±1 000 (°)/s,加速度可测范围为±16 g。

图1 陀螺仪电路图

电子罗盘是通过地磁场来确定方向的传感器。霍尼韦尔公司的数字罗盘芯片HMC5843可测出三个轴向的地磁强度信息,进而可以计算出运动物体从北方算起的航向角。

1.3 硬件总体设计

所选用的运动传感器MPU⁃6050和数字罗盘HMC5843均可挂接在S3C2440C处理器的I2C总线上,无需复杂的信号调理电路,其结构图[3]如图2所示。

图2 系统总体结构图

2 导航算法

2.1 捷联惯导系统的基本原理

捷联式惯性导航系统(SINS)是指惯性传感器没有经过物理平台进行载体角运动的隔离,而是直接将陀螺仪和加速度计安装在载体上,采用计算机导航平台完成制导,其系统原理图如图3所示。

陀螺仪测得的角加速度是载体坐标系相对导航坐标系转动的加速度在载体坐标系三轴上的投影[ωbnb。]加速度计测得的数据是根据载体坐标系相对惯性坐标系运动加速度在载体坐标系三轴上的投影[fbib。]捷联式惯导中的导航计算是在导航坐标系中完成[ωbin]的,因此,需要将惯性元件在载体坐标系中的测量值转换到惯性坐标系中。这种转换需要捷联矩阵完成。捷联矩阵通过数学平台计算得到的,具体方法是利用陀螺仪值,减去导航计算机计算出的导航坐标系相对于惯性坐标系转动的角速度在载体坐标系中的投影[ωbin,]得到载体坐标系相对于导航坐标系转动的角速度在载体坐标系中的投影,进而得出姿态矩阵,得到姿态矩阵后,就可以把加速度计输出的载体的比力信息转换到导航坐标系轴向,方便展开后续计算。

2.2 四元数基本理论

姿态解算[4]属于惯性导航的核心部分。如果姿态解算能够实时地反应出车辆的状态,那么对于速度位置测算而言就相对比较容易。姿态转化有很多种表示方法,例如欧拉角法、方向余弦矩阵法、四元数法、旋转矢量法等。本文采用的是应用广泛的四元数法,而旋转矢量法则是一种基于四元数法的改进四元数法。

四元数本是用于描述四维空间向量的一种方法,对于他的线性变换也就是在四维空间中的拉伸和旋转,显而易见,我们用四元数的向量乘法来表示三维空间中的旋转是绰绰有余的。

根据欧拉定理,作定点旋转运动的刚体内存在惟一固定的转轴[U,]围绕该转轴以惟一确定的转角[ϕ,]使得刚体由坐标系[a]旋转到坐标系[b,]设[u]为单位矢量,[ξ]是围绕[U]的转角,定义四元数为:

x2.4 系统仿真

捷联惯性导航[6]系统的研究、设计、分析可以先采取计算机仿真的方法进行验证。这样做的目的是排除硬件系统本身的误差对算法的验证造成的干扰。这些误差的存在不利于对捷联惯性导航系统及其核心捷联算法的调试和分析。为此,在本文提出的惯性导航研究中,先进行仿真。

本文利用Matlab/GUI工具箱存储车辆运行中产生的各项数据,对四元数算法以及速度求解过程进行仿真,为后面软硬件设计提供坚实的基础。

Matlab是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。

本文将加速度计和陀螺仪输出的数据由单片机采集,通过串口发送给PC机。Matlab将这些数据以txt文件的形式记录并存储下来。仿真的结果与真实的行驶轨迹相比较,从而判断数学模型的合理性以及算法的正确性。

惯性导航系统是一种航位推算系统[7],运行时需要标定10个初始条件:2个初始位置坐标,2个初始速度坐标,3个平台失准角,3个平台失准角速度。微分方程的解和初始条件紧密相关,惯性导航的精度和初始条件的准确性更是密不可分。因此,必须明确标定加速度计测量轴相对重力加速度矢量的方向和真北方向,以及运载体的初始位置和初始速度。

表1 惯性导航初始值设定

[初始高度 /m\加速度常量 /(m/s)\自转角速度 /(rad/s)\0\9.780 327\7.292 115×10-5\地球长轴 /m\地球扁率\载体初始速度 /(m/s)\6 378 137\[1298.257]\0\]

3 软件设计

根据嵌入式软件的开发特点,首先完成引导程序设计[8]、操作系统内核移植以及根文件系统制作三个步骤。内核的大小对目标系统的稳定性和运行效率有着至关重要的作用。内核的裁剪需要针对目标硬件系统。针对导航硬件系统,内核支持:ARM处理器、Frame Buffer设备、ext2文件系统、串口设备等。对于可能用到的功能或各有侧重的相似功能可设置成加载模块。

在创建了rootfs目录[9]后,在该目录下按照文件系统的组织结构建立子目录。通过busybox的配置,在bin目录下实现了shell命令和支持库,并配置后续所需的文件编辑、数据压缩等工具。在完成对配置文件的修改后,通过mkcramfs工具来制作cramfs根文件系统。

在应用程序看来,硬件设备只是一个设备文件,应用程序可以如同操作普通文件一样对硬件进行操作。它的功能是对设备初始化,把数据从内核传送到硬件并读取硬件数据;读取程序传送给设备文件的数据并回传程序请求的数据。

根据上面的电气连接关系可以看出,要想操作MCU⁃6050,必须要做两方面的驱动。

(1) S3C2440中I2C控制器的驱动,有了这部分驱动,才可以操作控制器来产生I2C的时序信号,来发送数据和接收数据。

(2) MCU⁃6050的驱动,有了这部分驱动,才能使用控制器正确操作芯片,从而读取和存放数据。

在Linux系统中,对上述第(1)的实现称为I2C总线驱动[10],对第(2)的实现称作I2C设备驱动[7]。一般来说,如果CPU中集成了I2C控制器并且Linux内核支持这个CPU,那么总线驱动方面不用另做改动,内核已经完成了这部分的功能。但如果CPU中没有I2C控制器而是外接,那么就需要自己实现总线驱动。本文选用的S3C2440微处理器具有I2C控制器,所以只需编写MCU⁃6050的驱动程序即可。利用Qt制作操作界面,选择轨迹显示选项,输入当地经纬度参数,即可显示出行驶轨迹,完成导航任务。如图4所示。

4 结 语

本文在三星S3C2440 ARM9处理器的基础上,分别采用MPU⁃6050、电子罗盘HMC5843设计了捷联式惯性导航硬件系统。结合惯性导航算法,在Matlab中建立了数学模型,并进行了车辆的运行轨迹仿真。同时将仿真轨迹与事先设定的行驶轨迹函数相比较,得出了导航算法可行的结论。软件方面给出了嵌入式Linux操作系统移植的过程以及设备驱动开发的过程。32位的ARM9处理器极高的运算速度完全符合导航算法大运算量的需求,ARM9丰富的接口特性使得本文设计的导航系统可方便地移植到其他平台上,进而参与组合导航的使用。

参考文献

[1] 徐望,黄浩,刘勇,等.某型方位旋转平台惯导系统转速模型分析与验证[J].海军航空工程学院学报,2014(4):319⁃322.

[2] 刘宇,陈志兴,宋娟.基于STM32的惯性导航系统软硬件设计[J].科技视界,2014,22(13):102⁃104.

[3] 马霞,杜增,李渝.惯性导航的误差建模与仿真研究[J].中国电子科学研究院学报,2014,10(1):97⁃100.

[4] 周红进,钟云海,易成涛.MEMS惯性导航传感器[J].舰船科学技术,2014,13(1):115⁃121.

[5] 张树侠,孙静.捷联式惯性导航系统[M].北京:电子工业出版社,2010.

[6] 高钟毓.惯性导航系统技术[M].北京:清华大学出版社,2012.

[7] 李文亮.四元数矩阵[M].长沙:国防科技大学出版社,2010.

[8] 孙枫,袁赣南,张晓红.组合导航系统[M].哈尔滨:哈尔滨工程大学出版社,2012.

[9] 刘峥嵘.嵌入式Linux应用开发详解[M].北京:机械工业出版社,2011.

[10] 袁太生,张素琴.嵌入式环境下Linux移植问题的探讨[J].计算机应用研究,2013,13(8):333⁃334.