本文介绍了一种基于Matlab的汽车防抱死制动系统(ABS)试验数据实时采集与处理方法。通过Matlab编程实现计算机串口对ABS电控单元(ECU)的控制,将ABS系统采集到的试验数据实时传输到Matlab中,并进行实时分析处理和显示。该方法实施容易、稳定可靠,为研究ABS系统的防抱死制动过程和控制逻辑提供了便利。
关键词: ABS;Matlab;串口
引言
目前,ABS实车试验数据的实时采集和处理通常由插在PC机扩展槽中的数据采集卡完成,这种方法对汽车环境和车载电源有较严格的要求,需要对车辆进行一定的改造。本文介绍一种简易的ABS试验数据采集与处理方法,无需对原车进行改动。
1. ABS数据采集与处理系统设计
ABS的各项测试数据主要包括车轮速度、车身速度、瞬时车轮转速和时间、制动管路压强、制动力矩和汽车载荷等参数。由于价格和安装难易程度不同,目前车辆中一般只安装轮速传感器和汽车减速度传感器。本文主要讨论对这两种传感器采集数据的实时传输与分析处理方法。系统电控单元ECU不断从车轮角速度传感器和减速度传感器读入信号,一方面计算车轮角加/减速度和参考滑移率,与设定门限值比较以控制电磁阀输出;另一方面将这些信号通过串口发送至PC机,实现实时采集与存储。
2. Matlab对计算机串口的编程
Matlab是数学计算的强大工具,以矩阵作为数据操作基本单位,广泛应用于数理统计、自动控制、数字信号处理等领域。利用Matlab对ABS试验数据进行分析处理非常合适,关键问题是如何将数据从ECU传输到计算机。Matlab支持面向对象技术,通过创建串口对象来操作串口。使用serial函数创建串口对象,通过定义属性设置通信模式。数据传输前需用fopen打开串口,结束后用fclose关闭。常用串口函数包括:serial(创建串口对象)、fopen(打开串口)、fread(读取数据)、fclose(关闭串口)、free(解除控制)、delete(删除对象)、clear(从工作空间删除)。
串口参数设置包括波特率、同步/异步读取方式、等待时间等。例如,设置波特率可在创建对象时指定:s = serial('com1', 'baudrate', '9600'); 或使用set命令:set(s, 'baudrate', '9600');
3. ABS系统数据采集与处理实例
3.1 数据采集格式
ECU一次向Matlab传递8个变量的实时数据,每个变量占2个字节(高位在前,低位在后),共16个字节。变量顺序为:减速度传感器信号高电平时间(Acc-high)、低电平时间(Acc-low)、估计车身减速度(Acc)、参考车速(Vref)、左前轮速(Zq)、左后轮速(Zh)、右前轮速(Yq)、右后轮速(Yh)。
3.2 Matlab实时作图
Matlab没有现成的实时绘图函数,但可通过以下方法实现:①建立图形句柄:h = plot(4,4,'*','EraseMode','xor'); ②设置坐标轴范围:axis([0,1000,-1,1]); ③循环更新数据:使用set(h,'xdata',x,'ydata',y)修改坐标值,并用drawnow命令更新图形,从而得到实时动态图像。
3.3 采集和处理实例
图2为某车型ABS实车试验数据,经采集、分析处理后由Matlab实时绘制。图2(a)为左前轮速和参考车速曲线,图2(b)为右后轮速和参考车速曲线,参考车速相同。左前轮经历3次ABS循环,右后轮2次。图2(c)为滑移率曲线,左前轮波动较大,右后轮(驱动轮)变化较小。图2(d)为车身减速度曲线,大部分时间减速度约为6.5 m/s²(0.66 g)。通过了解ABS内部动态过程,可有效解决系统问题,提高工作效率。
4. 结束语
本文提出的基于Matlab的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.