APP下载

基于MATLAB GUI的汽车动力性试验数据分析软件设计

2018-01-09王琳刘伟建裴永琪冯捷

汽车实用技术 2017年12期
关键词:动力性计算结果车速

王琳,刘伟建,裴永琪,冯捷

(陕西重型汽车有限公司,陕西 西安 710200)

基于MATLAB GUI的汽车动力性试验数据分析软件设计

王琳,刘伟建,裴永琪,冯捷

(陕西重型汽车有限公司,陕西 西安 710200)

文章对基于MATLAB GUI的汽车动力性软件开发特点进行了详细说明,并给出本课题主要流程图。从软件开发的流程、界面设计方法、回调函数编写、常用函数应用等方面介绍了汽车动力性实验数据分析软件开发的过程,给出了软件设计的界面,将软件计算结果与人工数据处理结果进行了比对,进行了差异分析和精确度校核。最后附上了试验结果记录表格,并对研究过程进行了总结,提出了可行的改进方法。汽车动力性试验数据分析软件的完成,极大提高试验数据的处理速度,达到了预期目标。

MATLAB;汽车动力性试验;GUI;界面设计;软件开发

前言

汽车的动力性是指汽车在良好的路面上直线行驶时由汽车受到的纵向外力决定的、所能达到的平均行驶速度。汽车的动力性是发动机和底盘传动系等总成及部件工作能力量化的体现。发动机和传动系固有的工作能力由设计者确定,由制造形成,而在使用过程中逐渐丧失。本文主要结合对某型号车的动力性试验,对试验数据进行分析处理,从直接档最低稳定车速、直接档加速、起步换挡加速、滑行试验(往、返)、最高车速等方面来评价汽车的动力性能,从而为汽车动力性的评价和改进提供可靠的依据。数据处理与分析依托于MATLAB/GUI编写的可视化人机交互界面,可以方便的进行数据读取、计算、图形生成、结果保存与图片保存,降低了后期试验数据处理难度,大大缩短了试验报告的书写难度,缩短研究周期,对于后续的研究工作提供了便利。

1 汽车动力性试验标准与方法

1.1 汽车滑行试验方法

数据校正方法:用实测初速度和实测滑行距离,按式(1)算出标准初速度V0=50km/h的滑行距离。

其中:S—初速度为50km/h时的滑行距离,m;a—计算系数,1/s2;

V0—实测滑行初速度 m/s2;b—常数,m2/s2(b=0.2;当车重≤40000N且滑行距离≤600m时,b=0.3);S’—实测滑行距离,m;C—常数,m2/s2(c=771.6)。

1.2 汽车加速性能试验方法

该方法适用于M类和N类汽车。数据处理:计算所有有效试验数据的算术平均值、标准偏差和变化系数(标准偏差/算术平均值)。

其中:μ为算术平均值;i为第i次试验;Ti为第i次试验数据;n为试验总次数;SD为标准偏差;k 为变化系数。

1.3 汽车最高车速试验方法

试验结果按式6计算:

其中:V—汽车最高车速,km/h;t—往返试验所测时间的算术平均值,s。

2 基于MATLAB/GUI的软件开发方法

图1 汽车动力性试验数据分析软件开发流程

MATLAB图形用户界面程序的前台界面由一系列交互组件组成,主要包括按钮、单选按钮、框架、复选框、文本标签、编辑文本框、滑动条、下拉菜单、列表框和双位按钮等。用户以某种方式选择或激活这些对象,通常引起动作或发生变化。最常见的激活方法是用鼠标或其他单击设备去控制屏幕上鼠标指针的运动。按下鼠标按钮,标志着对象的选择或其他动作。MATLAB把实现程序功能的内核代码和这些交互组件的鼠标或键盘事件关联起来,即通过设置这些交互组件的回调函数来完成特定交互事件下后台程序完成的功能。

图2 项目子程序编写流程

2.1 程序编写步骤

首先应实现数据文档的导入,并将导入的数据保存为数据库data文件,为后续计算程序提供调用数据的数据库。其次,根据国家标准的相关规定,编写数据算法,将数据进行有序的遍历,找到符合条件的数据点进行计算。最后,将计算结果保存并输出到GUI界面对应的文本框中,同时生成速度曲线、路程曲线图。考虑到具体的试验操作方法,试验项目的具体算法与国标的规定略有不同,应灵活调整,使计算方法最符合试验的具体情况。

图3 动力性主界面设计效果图

2.2 直接档最低稳定车速程序

在直接档最低稳定车速试验中,利用V-Box进行数据采集。将汽车挂入直接档,行驶稳定后,设为0时刻,行驶距离设为0,保持车辆匀速行驶。当行驶距离S等于100m时,记录下此时时间和车速。如此重复若干次,得到试验原始数据。导入试验数据,编写判定算法,判定行驶距离是否等于100m。将符合条件的点存入数据库等待调用,将不满足条件的点剔除。最低稳定车速计算结果如表1所示,表中同时列出了程序计算结果与人工计算结果。

表1 最低稳定车速试验结果

直接档最低稳定车速计算算法:

其中,V是直接档最低稳定车速,S代表路程为100m,Vi是路程为100m时对应的车速,n是符合条件的试验的次数。乘以3.6进行单位换算,将km/h换算为国际单位m/s。

由人工选点计算得到本次试验最低稳定车速为 37.42km/h,而程序计算得到最低稳定车速为 37.0737km/h,均符合国家标准规定的最低稳定车速小于等于40km/h。由于MATLAB编程采用全局数据遍历法,与人工数据处理结果相比,更加精确。

2.3 起步换挡加速程序

用MATLAB导入数据后,进行数据的有序遍历。运用一次for循环语句,依次遍历速度值为10-100km/h的点,正负误差控制在0.2之内。将顺序遍历后,符合条件的点求和、再求平均值,如此循环10次,并输出结果。根据国标的相关规定,还应该计算加速到100km/h过程中所用的时间(国标规定时间应小于等于60s)和加速至400m时所用的时间(国标规定时间应小于等于40s)。该计算过程仍采用数据的有选择遍历,寻找速度等于100km/h附近的点,正负误差控制在0.1。类似的,寻找位移等于400m附近的点,正负误差控制在0.2,将符合条件的点求和再求平均,并输出结果。

起步换挡加速试验计算结果如表2、表3所示。表2为程序计算结果,表3-3为人工计算结果。将表2,表3对比可得,由于程序采用全局遍历的算法,计算精度高于人工选点计算算法。MATLAB程序基于高效的科学计算算法,速度快,大大缩短试验后数据处理时间,为数据分析提供了高效的平台。

表2 起步换档加速0→100km/h试验结果(程序计算)

起步换挡加速曲线如图4,图5,图6所示。其中,图4,图5为Excel利用描点法绘制的加速时间曲线图与加速距离曲线图。图6为利用MATLAB/GUI编写程序的绘制图,即将所有试验数据进行遍历后,描点绘制出曲线图。由于Excel依赖于人工选取少数点进行描点绘图,而程序则是将所有符合点进行平滑曲线连接绘图,因此利用Excel进行绘图不仅耗时长,而且图形粗糙,精度低,而MATLAB/GUI程序绘图速度快,精度高,并支持图片的保存,利于数据图形的后续分析。

表3 起步换档加速0→100km/h试验结果(人工计算)

动力滑行试验。触发V-Box,记录车速减到0过程中,车速、位移、时间的一系列瞬时值。该试验需进行往返两次试验,得到两组数据。计算方法采用全局遍历求平均值的方法。导入数据到MATLAB,遍历,找到速度值为0的所有点,这些点对应的位移求和,再取平均值。将往、返两组试验所得平均位移相加求平均,根据国标的要求,应大于等于1200m。滑行试验程序计算结果如表4所示,人工计算结果如表5所示。

图4 0→100 km/h加速时间曲线图

图5 0→100 km/h加速 距离曲线图

图6 起步换挡加速曲线图

由上述计算结果对比可知,由于程序计算方法采用数据全局遍历,计算结果比人工计算更加精确,整体精度较高,且计算迅速便捷。

表4 滑行试验结果(程序计算)

表5 滑行试验结果(人工计算)

2.4 最高车速程序

数据采集器V-Box在汽车加速过程中,选定某一时刻,设为时间零点与位移零点。采集汽车在最高档加速过程中,加速至相对位移0点走过200m过程中,一系列时间点、瞬时速度点、瞬时位移点。

国家标准规定,在此过程中汽车的最高车速应大于等于125km/h。计算方法仍采用全局遍历法。首先将V-Box采集的数据导入到MATLAB,进行全局遍历,找到位移值为200m的点。将所有符合条件的点进行求和,然后用mean函数取平均值,得到最高车速平均值。程序计算得到的最高车速值为129.71km/h,由人工计算方法得到的最高车速值为 139.94 km/h。由于程序采用全局遍历法,因而计算精度高于人工计算法。并且其计算速度,可重复操作性均优于人工计算。

2.5 50km/h初速起步换挡加速程序编写

当试验车辆的行驶速度到达 50km/h时关闭发动机切断动力传递,开始无动力滑行试验。触发 V-Box,记录车速减到0过程中,车速、位移、时间的一系列瞬时值。该试验需进行往返两次试验,得到两组数据。计算方法采用全局遍历求平均值的方法。导入数据到MATLAB,遍历,找到速度值为0的所有点,这些点对应的位移求和,再取平均值。将往、返两组试验所得平均位移相加求平均,根据国标的要求,应大于等于1200m。滑行试验程序计算结果如表6所示,人工计算结果如表3-7所示。

表6 滑行试验结果(程序计算)

表7 滑行试验结果(人工计算)

由上述计算结果对比可知,由于程序计算方法采用数据全局遍历,计算结果比人工计算更加精确,整体精度较高,且计算迅速便捷。

3 函数使用

(1)数据导入函数:本软件的开发建立在试验的基础上,因此数据导入是软件开发过程首要的一步,也是非常重要的一步。数据的正确导入,保证了后续计算算法正确调用数据。考虑到人机交互性,应导入由用户指定路径名pathname下的文件名filename。本软件采用uigetfile函数导入数据。其语法格式为:uigetfile[FileName,PathName,FilterIndex]。本次试验中,V-Box采集的数据格式为.xls,相应的读数据函数为 xlsread,写数据函数为 xlswrite。实际上,数据格式可能变为.xlsx或.txt,uigetfile('*.xls')改为uigetfile('*.'),可显示某一路径下所有后缀的文件。相应读数据函数改为xlsxread,写数据函数改为xlsxwrite。MATLAB数据导入流程如图7所示。

为了更好的体现人机交互性,在数据导入程序中加入判断命令,判断用户是否选择了符合条件的文件。若没有正确选择或未进行文件选取,则弹出警告对话框。

(2)msgbox函数:是MATLAB中一个可实现弹出窗口的函数。在对话框中显示消息,等待用户单击按钮,并返回一个 integer告诉用户单击哪一个按钮。其语法格式为:msgbox(prompt,[buttons],[title],[helpfile],[context])。这种人机交互式的窗口极大的提高了软件的可操作性。msgbox在本软件中应用较多,常用于数据导入完成,数据计算完成,绘图完成等的说明。

图7 MATLAB数据导入流程

(3)size函数:可以返回数据的尺寸,语法格式为[m,n]= size(X),返回矩阵 X的尺寸信息,并存储在 m、n中。其中m中存储的是行数,n中存储的是列数。将数据导入MATLAB中时,size用于计算导入文件的数据矩阵,并将该数据矩阵暂时保存。

(4)mean函数:其语法格式为mean(A),是MATLAB中的求平均函数。可将不同维度矩阵中的元素求平均值。用mean函数求平均前不用sum求和。

(5)handle函数句柄:是包含了函数的路径、函数名、类型以及可能存在的重载方法。本课题中,所有输出到 GUI界面上的数据都使用了函数句柄。将MATLAB程序计算的结果输出到GUI界面对应的文本框中,实现了人机交互。另外,本课题中所有的清空的命令均使用了函数句柄,即:将所有GUI界面下的文本框设置为空。实际应用中,常将set与get函数与 handle配合使用。如:set(handles.edit23,'string','')。

(7)questdlg函数:button = questdlg('qstring') 显示一个模式的询问对话框,提示信息为'qstring'。该对话框有三个默认的按钮Yes、No和Cancel。如果用户按下三个按钮中任何一个,button返回被按下的按钮的名称。如果用户按下回车键,button被赋值'Yes'。'qstring'可以是一个元胞数组或字符串。本课题中,“数据保存”和“退出程序”使用了questdlg函数。语法格式为questdlg('qstring','title','str1','str2','str3',default)。

图8 msgbox函数

图9 questdlg函数

(8)printpreview函数:可以实现当前界面的打印,提供打印的相关选项修改、设置。printpreview界面如图10所示。

图10 printpreview应用实例

(9)放大、缩小函数:zoom on实现图形放大,zoom off实现图形缩小。本课题中,速度曲线和位移曲线均使用了该函数。

(10)grid on/off函数:绘图时,用于划分网格。

(11)close函数:用于关闭指定的GUI界面。

(12)plot函数:用于绘制线性二维图,语法格式为:plot(X,Y)。

(13)添加绘图标签:xlabel,ylabel分别用于添加X轴、Y轴方向的显示标签。该标签为字符串string。语法格式为xlabel(‘string’)。title函数为当前坐标系添加标题。语法格式:title(‘string’)。在当前坐标系上方居中输出标题'string',其中string是自定义的内容。本课题中速度曲线与位移曲线的绘制程序用到了上述函数。

4 总结

本文概括总结了汽车动力性试验数据分析软件的开发过程,从试验依据的标准、试验项目的确定、试验方法、试验数据的收集等方面论述了汽车动力性试验的过程,指出了传统手工进行数据筛选与结果分析的不足,即数据处理周期长,结果精确度较低,试验可重复性差,结论等待时间长。针对当前数据分析的现状,开发基于MATLAB GUI的汽车动力性试验数据分析软件,得出关于试验车辆较为准确和权威的评价结论。

[1] 陈垚光,毛涛涛,王正林,王玲. 精通 MATLAB GUI设计[M].2版.北京:电子工业出版社,2011.

[2] 陈荫三,余强. 汽车动力学[M].清华大学出版社,2009.

[3] 吴宪明. GB/T12534-1990,汽车道路试验方法通则[S].北京:国家技术监督局,1990.

[4] 余志生. 汽车理论[M].北京:机械工业出版社,2006.

Design of the Automobile Power Performance Test Data Analysis Software Based on Matlab GUI

Wang Lin, Liu Weijian, Pei Yongqi, Feng Jie
( Shaanxi Heavy Duty Automobile Co., Ltd, Shaanxi Xi'an 710200 )

Firstly, the paper showed the detailed explanations and flow charts of software development which are based on MATLAB GUI. Then it introduced the steps of software development, way of GUI design, callback functions compiling, and application of functions in common use. As follow showed the main GUI and compared results calculated by the program to that’s by hands. Then the paper analyzed the differences between the two ways above. The last chapter concluded the whole paper, and made some useful suggestions.Finally, the software development met with success while the speed of calculating experimental data is significantly improved as expected.

MATLAB; Car power test; GUI; Interface design; software development

CLC NO.: U467.4 Document Code: A Article ID: 1671-7988 (2017)12-197-05

U467.4 文献标识码:A 文章编号:1671-7988 (2017)12-197-05

10.16638/j.cnki.1671-7988.2017.12.066

王琳,就职于陕西重型汽车有限公司。

猜你喜欢

动力性计算结果车速
乘用车DCT车型的动力性提升分析与实施
元征X-431实测:2012年奔驰R300刷隐藏功能修改最高车速限制
基于多信号源融合的汽车车速信号处理及应用
具有家庭干预的HTV/AIDS模型动力性研究
2012款奔驰R300车修改最高车速限制
跑跑卡丁车
趣味选路
扇面等式
求离散型随机变量的分布列的几种思维方式
某小型电动清扫车动力系统的设计与仿真分析研究