一种试验场陀螺仪数据采集方法研究

2018-02-14 12:49张高巍张伟维
数字技术与应用 2018年10期
关键词:数据采集

张高巍 张伟维

摘要:本文针对挪威生产的STIM202高速率MEMS陀螺仪的数据采集方法进行了研究,采用一种新的LABVIEWE+MATLAB的混合编程方式,在LABVIEW中使用生产者与消费者循环,解决了高传输速率下一般采集方式中存在的缓冲区数据丢包问题,在MATLAB中进行批量数据运算,提高了效率,达到了数据采集中实时性和准确性的要求。该方法对其他的陀螺仪数据采集也适用,因此,为试验场下一步的惯性导航设备的数据采集提供了可行方法。

关键词:MEMS;LABVIEW;惯性器件;数据采集

中图分类号:TN967.1    文献标识码:A    文章编号:1007-9416(2018)10-0000-00

近年来,随着试验场试验项目的日益拓展,以及试验要求的不断提高,试验场测量指标随之增多,测量精度逐步提升。定位测量装备作为获取试验场第一手真值数据的主要手段,也需要不断创新,增加设备功能,提高技术指标,才能满足试验场不断发展的需要。目前,相较以往对试验场测量装备的需求,最明显的特征有两个,一是测量精度及实时性提高,二是增加了对角度(包括航向、俯仰及横滚角)精度的检验。为解决这两个问题,试验场测量设备由原来的单一GPS测量设备向卫星定位设备与惯性导航设备的组合定位方式转变是一条可行的捷径。

在惯性导航中,陀螺仪的数据采集问题是最基本也是最关键的问题,通常可用C语言、LABVIEWE语言及MATLAB等编程实现,但单一的编程解决方案不理想,本文中以一种MEMS陀螺仪的数据采集为例,采用LABVIEWE+MATLAB的混合编程方式,解决了单一编程中的诸多问题,提高数据采集效率,实现了快速、准确地采集数据。该方法也使用于其他陀螺仪的数据采集。

1 STIM202 MEMS陀螺仪简介

MEMS陀螺仪是随着MEMS技术的发展所出现的一类新型惯性器件[1]。具有体积小、成本低、重量轻、可靠性高等优点,受到国内外相关领域和部门的高度重视,很多国家都投入了大量的人力、物力、财力进行研究,近年来,随着MEMS应用的不断深入,其地位已经上升至一种战略高度,MEMS陀螺仪呈现出数字化、高传输速率等新的特点, STIM202就是其中的典型代表。STIM202 MEMS陀螺仪由挪威SENSONOR公司于2010年量产,是目前业界已知最高精度多轴MEMS陀螺,性价比优于同精度等级FOG光纤陀螺。

其主要技术指标为:(1)量程: 0~±400°/s;(2)零偏稳定性:<0.00014°/s;(3)全温偏差稳定性:<±0.008°/s;(4)冲击:1500g;(5)工作温度:-40℃ ~+50℃;(6)RS422数字输出,波特率为460800bps,采样频率为1KHz。

针对MEMS陀螺出现的新特点,传统的单循环采集方式显得力不从心,其准确性和实时性均得不到保证。主要表现在缓冲区数据丢包的问题上,本文针对这些问题,以STIM202为例,对其数据采集系统进行研究[2]。要对陀螺仪进行数据采集,必须解决两方面的问题:接口匹配和高速数据的实时处理。前者通过硬件方式来解决,后者通过软件来实现,其中包括对实时性和准确性问题的解决。

2 硬件实现

硬件由pc机作为上位机,陀螺仪作为测量仪器,硬件主要是完成接口匹配问题。由于STIM202采用的是RS422双工差分式传输,波特率为460800bps,计算机的RS232串口没有这么高的波特率。因此,采用传统的RS422/232转换器不能满足要求。而计算机的USB口支持高传输速率,因此硬件上采用TEK生产的UT805转换器,利用其自带的驱动,虚拟出一个串口,实现RS422信号的转换。

3 软件实现

软件采用LABVIEW+MATLAB混合式编程,由于LABVIEW对于一些需要进行大量数据运算处理的复杂应用以及某些复杂的控制算法显得有些力不从心。而MATLAB不能实现端口操作和实时控制,在界面方面也稍逊一筹。因此,将二者结合起来取长补短, 具有非常实用的价值[3]。本文针对高速率MEMS陀螺的特点,采用了生产者与消费者循环作为程序的基本框架,将数据的读取和处理分成兩个部分同时进行,这种方法与传统采集方法相比,具有执行效率高的特点,可以有效解决缓冲区的丢包问题。

3.1 软件流程

在LABVIEW中主要完成前面板搭建、串口配置、数据读取、存储和各种条件、循环的搭建工作,MATLAB主要完成数据解算、滤波、误差补偿、阈值解算、运动模式判别、角度解算等工作。其流程图如图1所示。

3.2 具体实现

3.2.1 数据的采集、存放和转换

LABVIEW中采集、存放数据主要运用了串口缓冲区、队列和数组来完成。串口采用LABVIEW中的VISA模块,缓冲区负责接收从陀螺仪传来的数据,并通过VISA读取函数将数据送入队列,队列起到了在高速率下按照顺序保存、传输数据的作用,按照先进先出的原则,通过元素出队列将数据送出,最后将数据送入MATLAB脚本进行处理。通过字符串至字节数组转换函数,将队列中的元素转换为十六进制数组,通过数组插入函数将一次循环中未处理完的数据插入到下一组数组的前面,保证了数组元素的连续性和准确性。

3.2.2 数据处理流程

采用生产者与消费者循环,该设计模式可以有多个并行循环, 每个循环以不同的速率执行任务。一个循环作为生产数据的循环, 其他循环作为消费数据的循环。生产数据的循环控制所有消费数据的循环,并且使用通信技术与它们进行通信[4]。本文的程序设计采用了2个循环,一部分是生产者循环,主要完成缓冲区数据的判断和读取、将数据送入队列,并通过循环移位寄存器将元素送到消费者循环中,另一部分是消费者循环,将队列中的数据取出,转换为数组,送入MATLAB脚本进行处理,并将最终的处理结果进行显示。

3.2.3 數据处理的准确性

采用生产者与消费者循环的最大好处是可以解决缓冲区的丢包问题。可以使数据按照接收的顺序进行处理,但是实时性不能保证,由于生产者循环和消费者循环同时执行,互不干涉,因此,在设计中将读取数据和处理数据这两件事情分开来同时进行,这样便大大提高了执行效率。对于高速率的MEMS陀螺来说,这点尤为重要。图2和图3分别为传统的未采用生产者与消费者循环的效果图和采用生产者与消费者循环的效果图[5]。

由STIM202 MEMS陀螺仪传到计算机串口中的数据,一帧12个字节,其中第11个字节表示采样时刻陀螺仪的状态,当状态字为00时,表明陀螺数据可用,因此,可以用状态字来进行准确性判断。在图2、3中,第一个图表表示解算出来的是MEMS陀螺仪的实时角速度信息,第二个图表表示状态字,如图2所示,当状态字不正确时,实时角速度的解算结果就会出现错误。在本设计中,有两个地方可能会造成陀螺仪数据的准确性出问题:第一个是缓冲区(见图2),在高速传输中,当数据的处理速度小于接收速度时,缓冲区中的数据达到最大值后会产生溢出,造成接收数据的不连续;另一个是队列(见图3所示),当消费者循环的处理速度低于生产者循环时,会使队列中的数据增多,当计算机的内存不够时,也会产生错误。在高速MEMS陀螺数据的采集中,实时性和准确性往往是相伴而生的,上面两方面的原因,就是由于实时性不好,引起了准确性的问题,这个问题可以通过读取队列和缓冲区中的数据个数来进行判断。

如图2所示,由于没有采用生产者与消费者循环,程序对于循环处理数据的时间远大于陀螺仪的传输间隔(1ms),因此缓冲区中的数据在不断增加,而队列中的数据基本不变,通过增大缓冲区的长度,可以延缓数据溢出的时间,但是不能从根本上解决问题,随着时间的推移,缓冲区还是会溢出,从而出现错误。

如图3所示,采用了生产者与消费者循环,可以看到缓冲区的字节数基本不变,但是随着时间的增长,队列中的字节数在不断增加,说明在消费者循环中的数据处理速度还是低于采样间隔时间(1ms),虽然不会出现错误,但是实时性不好,尤其是时间越长,陀螺状态改变时的检测时间就越长。

由此可见,采用生产者与消费者循环,可以解决缓冲区的丢包问题,从而达到解决数据准确性的目的,但是对于实时性,则无能为力。

3.2.4 数据处理的实时性

在消费者循环的程序中,调用MATLAB脚本、图表的显示占用了较多的时间,其它的指令运算的时间可以忽略不计。由于STIM202的速率是1000Hz,即每秒要在两个图表中显示1000个数据,这个对于LABVIEW来说是不能实现的[6]。因此,从图形的刷新频率入手,可以有效减少处理数据的时间,解决实时性的问题,在本程序中,将刷新频率降低一半,便可以得到很好的效果,如图4所示。

由图可见,随着时间的增长,缓冲区和队列中的数据基本不变,状态字的显示也正确,转动一下MEMS陀螺,其状态也会马上在实时角速度显示图表中显示出来,说明其实时性良好。

4 效果分析

针对高速率MEMS陀螺的采集来说,如何提高程序运行效率、缩短程序执行时间是最重要的,即要同时满足实时性和准确性的要求:在准确性方面,采用生产者与消费者循环,数据采集和数据处理同步进行,提高了执行效率;在实时性方面,采用了降低图表刷新频率的方法,减少了处理数据的时间,从而达到实时性的要求。

5 结语

本文针对当前MEMS陀螺仪出现的数字化、高传输速率的新特点,以STIM202为例,对其信息采集系统的设计做了介绍,采用LABVIEW+MATLAB混合编程的方式,通过采用生产者与消费者循环和降低刷新频率的方法,达到了采集中的实时性和准确性的要求。本方法不仅可以适用于高速率MEMS陀螺仪的数据采集,同样也适用于其他高速率的惯性器件的数据采集,因此,为试验场下一步的惯性器件数据采集提供了可行方法。

参考文献

[1] 刘俊,石云波,李杰.微惯性技术[M].北京:电子工业出版社,2005.

[2] 王维喜,李智.基于生产者_消费者设计模式的连续音频信号采集系统[J].现代电子技术,2009,(7):129-132.

[3] O.Tbata,T.Tsuchiya.RELIABILITY OF MEMS[M].南京:东南大学出版社,2009.

[4] 王禹林,熊振华,丁汉.LabVIEW与Matlab的无缝集成[J].计算机应用,2006,(3):695-698.

[5] 魏利.实时采集数据绘图及多种数据保存方式程序设计[J].电子测试,2008,(5):44-47.

[6] Bitter Rick, Mohiuddin Taqi, Naw rocki Matt. LabVIEW Advance Programming Techniques[M] . Boca Raton: CRC Press LLC, 2001

A Study on Data Acquisition Method of Gyro in Testing Groud

ZHANG Gao-wei1, ZHANG Wei-wei2

(1.Unit 91404 of the Chinese PLA, Qinhuangdao Hebei  066000;

2.Unit 92785 of the Chinese PLA, Qinhuangdao Hebei  066000)

Abstract: In this paper, the data acquisition method of STIM202 is studied, that is high-speed Micro-Electro-Mechanical gyroscope made in Norway. A new mixed programming method of LABVIEWE and MATLAB is adopted, The producer-consumer cycle is used in LABVIEW, which solves the problem of data loss in buffer in general acquisition mode under high transmission rate, The batch data operation improves the efficiency and achieves the requirements of real-time and accuracy in data acquisition. This method is also applicable to data acquisition of other gyroscopes. Therefore, it provides a practical method for data acquisition of inertial navigation equipment in the Testing Groud.

Key words: MEMS; LABVIEW; inertial device; data acquisition

猜你喜欢
数据采集
Web网络大数据分类系统的设计与改进
基于大型嵌入式系统的污水检测系统设计
基于开源系统的综合业务数据采集系统的开发研究