APP下载

一种基于陀螺仪与电子罗盘的海洋浮标云台稳定系统

2015-05-29林志王小英

电脑知识与技术 2015年10期
关键词:陀螺仪

林志 王小英

摘要:针对海洋浮标在海洋环境中多摆动的问题,设计了一种基于陀螺仪与电子罗盘模块的海洋浮标云台稳定系统,解决了单一传感器采集数据精度较低的问题;针对垂直方向单陀螺仪采集角度数据过程中累计误差逐渐增大的问题,提出采用加速计来采集角度数据。实验分析结果表明,采用加速计采集角度的测量角度基本稳定在±1°内。

关键词:稳定平台;加速计;陀螺仪;加速度积分;三角函数角度计算

中图分类号:TP273 文献标识码:A 文章编号:1009-3044(2015)10-0210-03

1 概述

海洋浮标是世界各国监测海洋水文气象信息的重要工具,它具有全天候、长期连续、定点监测的特点,因而得到各国的广泛应用。海洋浮标通过在其上安装各种信息采集设备来定点采集位置处的水文气象信息[1-3]。但由于海洋环境中海浪、海风的作用明显使得海洋浮标处于摆动状态,采集设备无法稳定的采集水文气象信息。为解决这一问题,设计了一种基于陀螺仪与电子罗盘的稳定平台应用于海洋浮标上,能够为采集设备提供稳定的采集环境。系统采用陀螺仪模块和指南针罗盘模块组成的姿态信息采集模块与云台摄像机相结合,来完成稳定控制系统的搭建。

陀螺仪模块和指南针罗盘模块组成的姿态信息采集模块拥有小体积、低功耗及低成本的特点,整个系统的开发成本得到了降低。随着MEMS的发展,陀螺仪传感器精度不断提高.陀螺仪对角度的获取,文献[4]中采用对角速度的积分实现。但存在单次采集时间过长以及漂移误差使得测量中存在着累加误差的问题。相对于高端陀螺仪类的姿态采集器件本身0.5°/hr的误差,MEMS陀螺仪的精度无法达到此级别,在低成本模块下更需要选择合适的方式来采集云台的姿态信息,以缩小数据的误差,达到性能提升的目的。

2 系统硬件设计

海洋浮标云台稳定系统总体框图如图1所示。在云台的姿态发生改变时,通过固定在云台底座上的GY-521和GY-271模块分别获取云台在垂直方向上的加速度分量和水平方向上的磁场变化信息。OK6410开发平台读取姿态模块内采集的原始数据,经算法对原始数据进行处理、转化得到云台实际的航向角和俯仰角的数值,并将所得角度数值转化为相对应的云台控制指令,最后将云台控制指令以VISCA协议(或PELCO协议)的形式传送到云台。云台采取与指令相对应的运动从而使平台处于稳定状态。

OK6410开发板基于三星公司的16/32位RSIC微处理器S3C6410的一款开发平台,S3C6410是基于ARM1176JZF-S内核的低功耗、高性能、高性价比的RSIC处理器。在OK6410开发板上集成了多种接口以方便开发过程中的数据传输工作。

GY-521陀螺仪模块集成了MPU6050芯片和I2C通信端口线路。MPU6050是由InvenSense公司推出的整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速度计之间的轴差问题,减少了大量的包装空间。MPU6050的角速度全格感测范围为±250、±500、±1000与±2000°/sec (dps),可准确追踪快速与慢速动作。

GY-271指南针罗盘模块集成了HMC5883L芯片和I2C通信端口线路。HMC5883L是由Honeywell公司推出的一种表面贴装的高集成模块,并带有数字接口的弱磁传感器芯片。HMC5883L包括最先进的高分辨率HMC118X系列磁阻传感器,并附带Honeywell专利的集成电路能使得罗盘精度控制在1°~2°内。

系统的硬件体积小、功耗低、性能好、价格也相对便宜,能够有效的降低云台控制系统的体积、功耗和成本。

3 系统软件设计

系统采用基于Linux的嵌入式平台来完成整个软件环境的搭建。程序的编译运行通过交叉编译的方式实现。PC机作为上位机,在其上安装Ubuntu14系统,并在系统内安装arm-linux-gcc4.4.1版本编译器。源代码经编译器编译后,通过超级终端将其传送至Qtopia2.2.0开发板平台。

系统由初始化模块、宏定义模块、I2C定义模块、数据读取模块、数据处理模块和通信模块构成,主要完成对端口的初始化、姿态采集模块的数据读取、数据处理、角度转化为云台控制指令以及云台通信的任务,如图2所示。

程序的中对数据的采集、处理以及与云台的通信工作如下伪代码所述。

begin

初始化程序;

打开端口读取姿态模块内数据;

while 能够读取数据

将数据转化实际偏转角度;

将角度转化为云台指令;

输送指令到云台;

end while

输出“端口打开错误”;

由于姿态采集模块中的数据为16位的数值,在实际的读取中一次只能读取8位,因而需要对采集的数据进行高低位的合成,可通过如下函数进行数据合成,实现16位数据的读取工作。

int GetData(unsigned char REG_Address)

{ char H,L;

short int b;

H=mpuread(REG_Address);

L=mpuread(REG_Address+1);

b=(H<<8)+L;

return b; }

云台通过对Buffer数组赋予不同的值,并将其送入云台的端口来实现对云台的上、下、左、右等控制。

unsigned char Buffer0[16] = { 0x80, 0x30, 0x01, 0xff }; //云台初始化指令

unsigned char Buffer1[16] = { 0x81, 0x01, 0x06, 0x01, 0x18, 0x14, 0x01, 0x03, 0xff }; //云台向左运动指令

unsigned char Buffer2[16] = { 0x81, 0x01, 0x06, 0x01, 0x18, 0x14, 0x02, 0x03, 0xff }; //云台向右运动指令

unsigned char Buffer3[16] = { 0x81, 0x01, 0x06, 0x01, 0x18, 0x14, 0x03, 0x01, 0xff }; //云台向上运动指令

unsigned char Buffer4[16] = { 0x81, 0x01, 0x06, 0x01, 0x18, 0x14, 0x03, 0x02, 0xff }; //云台向下运动指令

unsigned char Buffer5[16] = { 0x81, 0x01, 0x06, 0x01, 0x18, 0x14, 0x03, 0x03, 0xff }; //云台停止运动指令

角度控制以选取垂直方向的角度指令为例,控制过程中以俯仰角的变化来选择控制指令,基本过程可简述如下:

if 云台底座俯仰角在增大 THEN

begin

采集俯仰角变化数据;

将采集数据转化为角度;

向云台发送减小相同大小俯仰角的指令;

end

else /*云台底座俯仰角在减小*/

begin

采集俯仰角变化数据;

采集数据转化为角度;

向云台发送减小相同大小俯仰角的指令;

end

4 实验分析

MEMS陀螺仪本身采集的角速度数据误差可控制在0.5%内,但其采用对单位时间内的角速度不断累加的方式来实现角度的计算工作。随着时间的推移陀螺仪温度漂移等外在因素的存在将引起数据采集过程中数据出现偏差,进而在积分累加过程中出现累加误差[5]。加速计在采集数据上本身存在着精度的误差,但对于角度的计算是通过对实时采集的加速度数据进行三角函数的转换获得角度,具有实时更新的特点。

4.1 角速度积分法

实验中选择对俯仰角进行采集,陀螺仪通过对角速度的积分[6]来获取,采用积分法来获得角度值时,设陀螺仪采集的角速度为Ω(t),陀螺仪工作时间为t1到t2,在此时间内的角度变化值即俯仰角(∠α),通过公式(1)进行积分[8]计算,便可获得角度的数值。实际算法中采用公式(2),在极短的时间内的角速度与时间的乘积即Ω(t)*△t的数值进行累加来获得角度的数值。

[∠α=t1t2Ω(t)dt] (1)

[∠α=limλ→0Ω(τi)Δti] (2)

实验中对陀螺仪处于0°状态时进行数据采集并绘制成图,如图3所示。理想状态下的模型得出的数据应是过原点的一条直线,而在实际的实验中所得数据在原点上下小范围内摆动的角度。

实际测试时,让陀螺仪处于静止状态,运行积分算法程序并记录输出数据,对数据进行绘图处理得到如图4所示的输出角度图形。

在采样个数为1000个,采集时间为20s左右的情况下角度的累加误差在不断的增加,由初始的0.02°到达0.12°,并且随着时间的推移,角度的偏移量将继续加大。

结果表明对陀螺仪的角速度进行积分计算获得角度的方式,静止状态时由于受到陀螺仪本身的零漂以及温漂引起的误差使得累加误差随着时间的推移不断增大,不适合长时间的采集。

4.2 三角函数法

加速计是对加速度进行三角函数的变换来获得俯仰角数值。如图5所示,加速计可以采集ax、az的数据。ax、az数值为重力加速度g分量的加速度值[9],二者在位置上是两个相互垂直的加速度,相加得到重力加速度g。因而可以得到公式(3)的三角函数关系,根据反三角函数的知识,采用公式(4)的方式求得倾角α的值,便是所要得到的俯仰角(∠α)。

实际的数据采集中,选择随机的角度进行测试,图6是采集到的部分角度数据图形,其角度值在43.9°左右。

从图6中可以看出,输出角度的偏差在±1°内,并不会随着时间的推移产生累加误差。对采集数据的方差和均方根值进行计算,结果为0.001444和0.030407。可见采集的数据基本反映了俯仰角的实际数值,该方式可以实现对俯仰角的测量工作。

相对陀螺仪角速度积分方式在长时间积分后产生大的累加误差,加速计采用加速度实时分量的值来获得角度,在较长时间内能够保证采集角度的精确性。

5 结论

本文介绍了一种基于陀螺仪与电子罗盘的海洋浮标云台稳定系统,在分析对俯仰角测量方式的选择时,通过比较陀螺仪和加速计二者采集数据的适用性来选择更合适的方案以完成角度的测量工作。设计总体上达到了对稳定性的需求。与现有的高端稳定器相比,采用价格低廉的陀螺仪模块和指南针罗盘模块的结合,使得整个系统的成本得到大幅降低。相比高端稳定平台万元的价格,该系统所采用模块均为百元内,因而在性价比方面有着巨大的优势。

由于本设计采用的模块本身采集数据的精度没有达到高端使用的光纤陀螺仪0.5°/hr的水平,因而在实际的使用中,如对采集的角度信息有更高的精度要求时,可以通过其他的姿态传感器来与其结合,相互修正以获得更加精确的数值。

参考文献:

[1] 戴洪磊,牟乃夏,等. 我国海洋浮标发展现状及趋势[J]. 气象水文海洋仪器, 2014(2):119-125.

[2] 许富祥. 海洋浮标网对我国海洋预报的作用[J]. 海洋开发, 1987(4):31-33.

[3] 赵聪娇,周燕. 国内海洋浮标监测系统研究概况[J]. 海洋开发与管理, 2011(11):13-18.

[4] 应科炜,吴文贡等. ADXRS角速度检测陀螺仪原理及应用[J].传感器世界, 2006(1):41-44.

[5] 陈旭光,杨平,陈意. MENS陀螺仪零位误差分析与处理[J]. 传感技术学报, 2012(5):628-632.

[6] 吴冬冬. 基于MENS陀螺仪姿态检测系统研制[D]. 浙江:浙江理工大学, 2014.

[7] 杨晔,陈馨,张桂才. 基于角速率积分法的光纤陀螺仪标度因数不对称度测量方法[J]. 中国惯性技术学报, 2012(2):342-347.

[8] 罗威等. 定积分计算中的若干技巧[J].沈阳师范大学学报, 2010(28):165-168.

[9] 苏君,王占平. 基于MENS加速度传感器的倾角仪设计方法[J]. 实验科学与技术, 2006(12):112-114.

猜你喜欢

陀螺仪
基于Allan方差分析的陀螺仪漂移误差辨识与仿真复现
基于EMD的MEMS陀螺仪随机漂移分析方法
基于陀螺仪输出误差观测的冗余INS标定方法
一种单目相机/三轴陀螺仪/里程计紧组合导航算法
硅微阵列陀螺仪的模态分析与实验
我国著名陀螺仪专家——林士谔
陀螺仪故障数据检测的神经网络算法
“蓝天王国”奇遇记(十一)——陀螺仪
基于匀速率26位置法的iIMU-FSAS光纤陀螺仪标定
微机械陀螺仪概述和发展