ROBOT & AI

首页 | 新闻 | 产品 | 竞赛 | 学苑 | 读书 | 硬件 | 软件 | 智能 | 制作 | 项目 | 资源 | 论坛
 您的位置:首页 >> 软件 >> 机器人编程 >> 正文
站内搜索:   

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

来源:www.gjwtech.com  刘国福 字体:[ ]  2007-01-01

关键词:采集

[摘要] 通过对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 Matlabtransmits the measured data to Matlab real time.The analysis and process of the data is completed in Matlab.This approachwhich is stable and reliablecan be implemented easilyand 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)在创建串口对象时设定波特率:sserial(`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,纵坐标设为一11 :axis([ 0 ,1 000,一1 ,1 ]);做一个循环体,使得横坐标和纵坐标所对应的值不断的得到改变,并用set( h ,xdata ,x ,ydata) 对图形中的横坐标和纵坐标的值进行修改,这时再用drawnow命令将最新的设置写入图形句柄h所对应图形中,这样循环的不间断的修改两个坐标的值就可以 得到实时的动态图像了。

3.3
采集和处理实例

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

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

录入:master 点击:

[发表评论] [打印文章] [关闭窗口]  

原创文章属本站所有,转载请注明来源:Robotain.com  
相关文章

 网友评论(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

发表评论 昵称:

  

  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
最新推荐
热门文章
论坛精华
网站简介设为首页 加入收藏在线留言友情链接联系我们 - 广告服务 - 版权申明

Copyright © Robotain.com  all rights reserved  浙ICP备07003355号

版权所有 机器与智能网