潘盛辉,何润东,韩峻峰,孟德良,董胜利
(1.广西工学院电子信息与控制工程系,柳州545006;2.广西机电职业技术学院)
汽车的二自由度横摆角速度与侧向加速度这两个参数对汽车的稳定性分析具有重要作用,是汽车主动安全的重要组成部分,可以通过预测与实测两种方式获得。为了得到更真实的数据,本文设计了基于ARM微控制器和ADIS16355传感器的数据采集系统,通过实车测试得到了汽车的横摆角速度与侧向加速度的数据,分析了干扰源,并且对数据采用卡尔曼滤波方法进行处理。
ADIS16355传感器装在接近汽车的中心位置上(接近汽车的质心位置),建立汽车的三维坐标系如图1所示。
汽车X、Y、Z三个方向的旋转角速度与加速度可通过ADIS16355传感器测得,测得的数据通过ADC转换成数字信号,然后通过SPI串行通信协议把采集到的数据传送到控制器中,这里只取侧向加速度与横摆角速度这两个信息量。采用的控制器是Philips公司生产的ARM7处理器LPC2119。数据采集系统工作原理如图2所示。
图1 汽车三维坐标系
图2 数据采集系统工作原理
ARM是指精简指令集的微处理器,具有高性能、廉价、低耗能的特点,在各个领域得到了广泛的应用。该系统采用的是ARM7系列的LPC2119微控制器[1]。LPC2119是基于一个支持实时仿真和跟踪的16/32位ARM7TDMI-S内核的微控制器,并带有128KB的高速Flash存储器;指令支持32位的ARM模式与16位的Thumb模式:128位宽度的存储器接口和独特的加速结构使32位代码的ARM方式能够在最大时钟速率下运行;对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30%,而性能的损失却很小。LPC2119具有非常小的64脚封装、极低的功耗、多个32位定时器、4路10位ADC、2路CAN总线、PWM通道、46个GPIO以及多达9个外部中断,功耗低,性能强大,特别适用于汽车、工业控制应用以及医疗系统和容错维护总线。由于内置了宽范围的串行通信接口,也非常适合于通信网关、协议转换器以及其他各种类型的应用。
ADIS16355传感器集成了三轴加速度传感器和三轴陀螺仪传感器[2],具有体积小、功能强、功耗低等特性。它主要由以下模块组成:陀螺仪、加速度传感器、A/D转换器、数字校准以及SPI协议转换模块。在三维直角坐标系X、Y、Z中,陀螺仪与加速度传感器首先感应到物体的运动,分别测得运动物体X、Y、Z三个方向的旋转角速度与加速度,三个方向旋转角速度的测量范围分别为±75°/s、±150°/s、±300°/s,加速度的测量范围都为±10g,有效数据位都为14位。它具有很高的分辨率[3],其中旋转角速度的最低分辨率为0.073 26,三个方向的加速度的分辨率为2.255mg,基本能满足用户的需求。它的工作电压为5V,直接输出16位的数字信号,通过SPI通信协议传送。ADIS16355的结构框图如图3所示。
图3 ADIS16355传感器结构框图
SPI协议是Motorola公司制定的全双工串行通信协议[3],具有传送速度快、协议简单的特点。通信只需要四根线,即SCK(时钟)、SSEL(从机选择)、MISO(主入从出)、MOSI(主出从入);最高传送速率可以达到系统工作频率的1/8,并且已经得到了广泛的应用。ADIS16355也是通过SPI协议来传送[3]。首先把LPC2119中集成的SIP控制器设置为主机,把传感器的SPI接口设置为从机,把它们的接线对应连接起来从机选择端,在通信过程中要使它一直保持低电平,处于有效状态;然后,通过主控制器把需要采集信号的地址发送到从控制器中。SPI时序图如图4所示。
图4 SPI时序图
由于传感器ADIS16355输出的数据是16位的,所以传送数据也是以16为周期。最高位代表读写控制位,如果为0代表向传感器中写入命令,为1则代表从传感器中读出当前状态;次高位为0,紧接着的6位代表对应寄存器的地址,最后面8位不关心。注意,在这个地址下读出来的数据是对应上一个地址的数据;与此同时从控制器把对应的采集到的16位数据发送到主机中去。
该系统针对汽车二自由度的数据采集,而汽车二自由度是指汽车横摆角速度与侧向加速度,所以利用ADIS16355传感器采集这两个数据。由ADIS16355的说明书可知,反映横摆角速度的寄存器的地址为0x08或0x09,而侧向加速度对应的寄存器地址为0x0A或0x0B,要想得到汽车横摆角速度与侧向加速度,按照时序读出相应寄存器地址的数据即可。其工作流程如图5所示。
图5 ARM读取ADIS16355流程图
通过串口可以读取Y轴的侧向加速度与X轴的横摆角速度,如表1所列。
然而汽车运行中不可避免会受到其他因素的干扰,采集到的数据可能存在一定程度上的失真性,因此需要找出干扰源的类型,从而选择适当的方法把杂波滤掉,得到相对准确的数据。为此设计汽车怠速与正常运行两种模式。汽车在怠速状态下,由于汽车是相对静止状态,理论上测到的汽车横摆角速度与侧向加速度为0,然而由于存在其他的干扰因素,因而实际测得的数据并不为0。通过对测试数据的分析可以得到干扰源的类型,从而根据干扰类型而设计出相应的滤波方式。下面分别就汽车的怠速模式与正常运行模式两种运动方式具体分析。
汽车怠速模式是指发动机处于启动状态,但是汽车处于停止不前的状态,可以测得相应的数据。这里以汽车的横摆角速度数据进行分析,取了2 500个采样点,利用数据的统计特性对数据分别求均值、协方差与功率谱密度,求得的均值为-7.7682e-005,近似为0。为了直观,把采集到的源数据、协方差与功率谱密度通过MATLAB[4]作图的方式显示出来,如图6所示。
由图可知,自相关函数只有在横坐标为0时候才有取值,功率谱密度分布比较均匀,而且采集到的数据均值近似为0,这与高斯白噪声的统计特性相似,因而断定干扰源类型为高斯白噪声。
图6 横摆角速度、自相关函数与功率谱密度波形图
图7 汽车侧向加速度与横摆角速度波形图
图8 断点功能测试图
汽车正常运行模式是汽车匀速行驶在水平、干燥、水泥路面上,测得此时的汽车横摆角速度与侧向加速度。从传感器采集到的数据不可避免地受到干扰源的影响,由上面给出的结论可知干扰源类型为白噪声。卡尔曼滤波前的数据与滤波后的数据如图7所示。卡尔曼滤波对 白噪声具有很好的滤波能力[5],它的滤波原理是最小均差原理,并且当前的数据只与前一个数据有关,数据存储量小,有利于计算机求解,所以选用卡尔曼滤波方式对采集到的数据进行滤波,从而得到相对准确的数据。这里采集了10 000个数据点。
由图7可以看到,通过卡尔曼滤波后,曲线更加平滑,有效地剔除了杂波,从而为控制系统提供更准确的数据。
本文采用ARM微控制器和ADIS16355传感器设计了一种数据采集系统,不但能够采集汽车的横摆角速度与侧向加速度两个参数,而且用卡尔曼滤波方式对采集到的数据滤掉了杂波,使得到的数据更为准确。经分析表明,该设计方案是可行的。这种数据采集系统在汽车主动安全方面有很好的应用价值,能为汽车稳定性分析供准确的数据。
[1]周立功.ARM微控制器基础与实践[M].北京航空航天大学出版社,2005:161-168,223-225.
[2]王建东,刘云辉,樊玮虹,等.MEM传感器的惯性测量模块的设计与初始校准[J].传感器与微系统,2006,25(10):82-85.
[3]ADI.Tri-Axis Inertial Sensor AD IS16355数据手册,2007.
[4]刘保柱,苏彦华,张宏.MATLAB 7.0从入门到精通[M].北京:人民邮电出版社,2010.
[5]付梦印,邓志红,闫莉萍.Kalman滤波理论及其在导航系统中的应用[M].北京:科学出版社,2010.