我们热爱生命科学!-生物行

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

时间:2006-01-11 15:17来源:Internet 作者:bioguider 点击: 622次

[摘要]通过对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)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片