首页   个人简历  发表论文  个人书稿 行通讯   VC/C编程 机器人控制 MATLAB
 

一种基于Matlab的ABS试验数据实时采集与处理方法

 刘国福(长沙国防科技大学长沙410073)

[摘要]通过对Matlab编程实现计算机串口对ABS系统电控单元ECU的控制,将ABS系统采集到的试验数据实时传输到Matlab中,然后由Matlab进行实时分析处理和显示。该套方案实施容易,稳定可靠,为研究ABS系统的防抱死制动过程和控制逻辑提供了方便。

关键词: ABS ; Matlab;串口

Abstract :The electrical control unit(ECU) of ABS controlled by computer serial port,which is realized by programming Matlab,transmits the measured data to Matlab real time.The analysis and process of the data is completed in Matlab.This approach,which is stable and reliable,can be implemented easily,and is convenient of the study of brake process and control logic of ABS.
Keywords: ABS;Matlab;serial port

 

 

0引言


目前,ABS实车试验数据的实时采集和处理一般由插在PC机扩展槽中的数据采集卡来完成,这种方法对汽车环境和车载电源有较严格的要求,需要对车辆进行一定的改造才能实施。本文介绍一种简易的ABS试验数据采集与处理的方法。

1 ABs数据采集与处理系统设计

ABS的各项测试数据主要有车轮速度和车身速度、瞬时车轮转速和时间、制动管路压强、制动力矩和汽车载荷等参数。由于价格和实际安装难易程度不同,目前,在车辆中一般只安装有轮速信号传感器和汽车减速度传感器。对这两种传感
器信号的采集方法可见参考文献[2 ,3 ]。本文主要讨论对这两种传感器采集得到的数据进行实时传输与分析处理的方法。ABS数据采集与处理系统的原理框图如图1所示。
系统电控单元ECU不断从车轮角速度传感器和汽车减速度传感器读入信号,一方面利用这些信号计算出车轮的角加、减速度和参考滑移率,然后与设定的门限值进行比较,从而控制电磁阀的输出;另一方面则将这些信号通过串口发送到ECU的串口和PC机串口互联,可以在对原ABS系统和车辆环境不做任何改动的前提下,实时采集与存储ABS内部运动过程。

图1 ABS数据采集与处理系统原理图(点击可看图)

2 Matlab对计算机串口的编程

Matlab是数学计算的强大工具,它以矩阵作为数据操作的基本单位,广泛应用在以矩阵运算为主要工作方式的数理统计、自动控制、数字信号处理、动态系统仿真等领域。Matlab便捷灵活、操作简单、处理功能强大,因而利用Matlab对采
集到的ABS试验数据进行分析处理是非常合适的,关键问题是如何将数据从ECU传到计算机。
Matlab支持面向对象技术,用一个对象将计算机串口封装起来,只要创建串口对象,对串口对象操作就是对串口操作,非常方便。使用serial函数就可创建串口对象,串口对象有很多属性[4],通过定义串口对象的属性,能定义串口的通信模式,从串口对象属性也能了解串口的状态。要想通过串口传输数据,必须先用fopen函数打开串口;数据传输结束后要用fclose。函数关闭串口。表1列出了常用的与串口操作有关的函数。

          表1 Matlab串口函数介绍

_____________________________________________________
函数     说明

_____________________________________________________
serial 创建一个串口对象,格式:s = serial('coml' )
fopen  打开串口对象,格式:fope n( s)
fread  读取串口数据,格式: fread(s)
fclose 关闭串口对象,格式:fclose(s)
free   解除Matlab对串口对象的控制,使
serial 其他程序能对该串口进行读写操作
delete 删除对象s,格式:delete( s)
clear  从工作空间中删除对象s,格式:clear(s)
___________________________________________________

当建立了一个串口对象后,可以利用Matlab对其参数进行设置,包括对波特率、同步或异步读取方式、读取或写数据的等待时间等。本文以波特率的设置为例来说明串口参数的设置方法。
波特率的设置,一般有两种方法:(1)在创建串口对象时设定波特率:s=serial(`coml' ,'baudrate','9600'); (2)用set命令:set(s,'baudrate','9600')。

3 ABS系统数据采集与处理实例

3.1数据采集格式

ECU一次向Matlab传递8个变量的实时数据,每个变量占2个字节,其中高位字节在前,低位字节在后,共16个字节。传递次序和变量名如表2所列。

         表2传递的8个变量的顺序和变量名

_____________________________________________________
  变量名      说明

_____________________________________________________
1 Acc-high   减速度传感器信号的高电平时间
2 Acc-low    减速度传感器信号的低电平时间
3 Acc        估计的车身减速度
4 Vref       参考车速
5 Zq         左前轮速
6 Zh         左后轮速
7 Yq         右前轮速
8 Yh         右后轮速
_____________________________________________________


3.2 Matlab实时作图


在课题的研究过程中,需要了解ABS各参数信号的实时变化情况,这就需要对数据进行实时的可视化处理。
Matlab没有提供现成的函数来绘制实时的图形,但是我们可以用以下方法来实现实时的可视化处理。Matlab中有一个drawnow的函数,它可将用户最后的设置补充到图形窗口中,所以可以用它来实现实时作图:①建立一个图形句柄h:h=plot(4 ,4 , * , Erase mode ,xor);②修改图形的坐标轴的示数范围,使其满足作图的需要,如将横坐标设为。一1 000,纵坐标设为一1一1 :axis([ 0 ,1 000,一1 ,1 ]);③做一个循环体,使得横坐标和纵坐标所对应的值不断的得到改变,并用set( h ,xdata ,x ,ydata) 对图形中的横坐标和纵坐标的值进行修改,这时再用drawnow命令将最新的设置写入图形句柄h所对应图形中,这样循环的不间断的修改两个坐标的值就可以得到实时的动态图像了。

3.3采集和处理实例

图2所示为某车型的ABS实车试验数据,它是经采集、分析处理后由Matlab软件实时绘制而成的,限于篇幅只给出了部分曲线。图2( a)是左前轮速和参考车速曲线,图2(13)是右后轮速和参考车速曲线,两个图中的参考车速是相同的。从图2中可以看出参考车速的计算是比较准确的,的,左前轮经历了3次ABS循环,而右后轮只有2次。图2(c)给出了两个轮子的滑移率随时间变化的曲线。可以看到左前轮的滑移率波动比较大,右后轮由于是驱动轮,滑移率变化比较小。图2 ( d)是车身减速度随时间的变化曲线,大部分时间里汽车减速度约为6.5m/SZ,即0 .66 g左右。
从上面的讨论可知,由于了解到了ABS内部的动态过程,就容易对ABS系统过程中出现的问题提出有效的解决方法,提高了工作效率。

 

           图2某车型的ABS实车试验数据(点击可看图)

4结束语


本文提出的基于Matlab的ABS系统实车试验数据实时采集和分析处理方法成本低、可靠性高、实施容易,对ABS的开发和研究提供了很多方便。对ABS系统更多参数的采集和处理工作,笔者正在进一步探索。


参考文献
1夏群生,刘训忠.ABS数据采集与算法仿真软件开发. 汽车电器,1999(3) :1一3
2刘国福.基于PXAS30的ABS轮速信号采集技术的研 究.汽车科技,2003(4) 40一42
3程军,徐光辉,崔继波.一种新型的车辆速度和加速度 测量方法.汽车研究与开发,1999(3) :41一43
4李炎新.用MATLAB实现高速数据采集自动化.测控技术,2002(11):9一10

 
 
 

新书:串口通信编程实践

 
 
 

转载本站原版内容,请注明作者并说明来自http://www.gjwtech.com   龚建伟技术主页

EMAIL