摘要:通过对Matlab编程实现计算机串口对ABS系统电控单元ECU的控制,将ABS系统采集到的试验数据实时传输到Matlab中,然后由Matlab进行实时分析处理和显示。该套方案实施容易,稳定可靠,为研究ABS系统的防抱死制动过程和控制逻辑提供了方便。
关键词: ABS ; Matlab;串口
0引言
目前,ABS实车试验数据的实时采集和处理一般由插在PC机扩展槽中的数据采集卡来完成,这种方法对汽车环境和车载电源有较严格的要求,需要对车辆进行一定的改造才能实施。本文介绍一种简易的ABS试验数据采集与处理的方法。
1 ABs数据采集与处理系统设计
ABS的各项测试数据主要有车轮速度和车身速度、瞬时车轮转速和时间、制动管路压强、制动力矩和汽车载荷等参数。由于价格和实际安装难易程度不同,目前,在车辆中一般只安装有轮速信号传感器和汽车减速度传感器。对这两种传感
器信号的采集方法可见参考文献[2 ,3 ]。本文主要讨论对这两种传感器采集得
系统电控单元ECU不断从车轮角速度传感器和汽车减速度传感器读入信号,一方面利用这些信号计算出车轮的角加、减速度和参考滑移率,然后与设定的门限值进行比较,从而控制电磁阀的输出;另一方面则将这些信号通过串口发送到ECU的串口和PC机串口互联,可以在对原ABS系统和车辆环境不做任何改动的前提下,实时采集与存储ABS内部运动过程。
2 Matlab对计算机串口的编程
Matlab是数学计算的强大工具,它以矩阵作为数据操作的基本单位,广泛应用在以矩阵运算为主要工作方式的数理统计、自动控制、数字信号处理、动态系统仿真等领域。Matlab便捷灵活、操作简单、处理功能强大,因而利用Matlab对采
集到的ABS试验数据进行分析处理是非常合适的CONTROL ENGINEERING China版权所有,关键问题是如何将数据从ECU传到计算机。
Matlab支持面向对象技术,用一个对象将计算机串口封装起来,只要创建串口对象,对串口对象操作就是对串口操作,非常方便。使用serial函数就可创建串口对象,串口对象有很多属性[4],通过定义串口对象的属性,能定义串口的通信模式CONTROL ENGINEERING China版权所有,从串口对象属性也能了解串口的状态。要想通过串口传输数据,必须先用fopen函数打开串口;数据传输结束后要用fclose。函数关闭串口。表1列出了常用的与串口操作有关的函数。
表1 Matlab串口函数介绍
_____________________________________________________
函数 说明
_____________________________________________________
serial 创建一个串口对象,格式:s = serial('coml' )
fopen 打开串口对象,格式:fope n( s)
fread 读取串口数据,格式: fread(s)
fclose 关闭串口对象,格式:fclose(s)
free 解除Matlab对串口对象的控制,使
serial 其他程序能对该串口进行读写操作
delete 删除对象swww.cechina.cn,格式:delete( s)
clear 从工作空间中删除对象swww.cechina.cn,格式:clear(s)
___________________________________________________
当建立了一个串口对象后,可以利用Matlab对其参数进行设置www.cechina.cn,包括对波特率、同步或异步读取方式、读取或写数据的等待时间等。本文以波特率的设置为例来说明串口参数的设置方法。
波特率的设置,一般有两种方法:(1)在创建串口对象时设定波特率:s=serial(`coml' ,'baudrate','9600'); (2)用set命令:set(swww.cechina.cn,'baudrate','9600')。
3 ABS系统数据采集与处理实例
3.1数据采集格式
ECU一次向Matlab传递8个变量的实时数据,每个变量占2个字节,其中高位字节在前,低位字节在后控制工程网版权所有,共16个字节。传递次序和变量名如表2所列。
表