基于仿真的汽车电子控制器软件开发方法研究

2017-03-29 12:13:48张万福黄影平
上海理工大学学报 2017年1期
关键词:电动车窗雨刮器车窗

张万福, 黄影平

(上海理工大学 光电信息与计算机工程学院.上海 200093)

基于仿真的汽车电子控制器软件开发方法研究

张万福, 黄影平

(上海理工大学 光电信息与计算机工程学院.上海 200093)

以车身控制系统中的车窗控制器和雨刮控制器为例,研究一种基于仿真及代码自动生成的汽车电子控制器软件的新型开发方法.利用Simulink/Stateflow建立汽车电子控制器算法模型,进行离线仿真验证和快速模型验证,然后通过RTW自动生成可执行的代码,最后可将自动生成的代码直接嵌入到控制器硬件中,实现了汽车电子控制系统的软件开发.通过与Simulink中仿真结果进行对比,验证了该方法的可行性和正确性.经过实践证明该开发模式可以大大缩短控制系统的开发周期,对于汽车电子系统的开发具有一定的实用价值.另外,在软件开发的各个阶段对设计功能进行测试验证,提高设计开发的正确性.

仿真; 汽车电子控制器; 自动代码生成

ScienceandTechnology,Shanghai200093,China)

1 汽车电子控制器开发现状

随着汽车电子系统的复杂程度以及在汽车中所占比重的不断增加,汽车电子控制器的开发测试成为新车开发的一个重要而复杂艰巨的任务.图1(a)是汽车电子系统开发的V模型,具体过程包括如下步骤:电子系统总体设计,电控单元功能设计,电控单元硬件和软件开发,电控单元测试,集成测试,系统测试,样车测试.传统的开发方法存在两方面的问题.一方面,在设计初始阶段,对系统功能指标要求依赖于文字描述,这种方法难以准确直观地描述子系统内部功能以及子系统之间的互相关联和影响,而且使用者对文字描述的理解往往不同.另一方面,对设计和开发的验证严重依赖于对实体器件的测试.传统的电控系统开发验证都是在一个实体的汽车电子系统验证平台上来进行的.它包含车内所有的电气排线和电控单元.其缺点是对设计和开发的验证必须等到所有的ECU、线缆、执行器、传感器等制造完成后才能开始,而且测试效率低下,测试覆盖范围有限.这样的方法由于不能早期发现研发中的问题,常常导致许多重复性的修改,增加了研发的费用和时间.

实时计算机仿真技术被用于模拟复杂的汽车电子系统,并在此基础上进行设计正确性及有效性的测试和验证[1-2].这种虚拟集成技术对汽车电子系统的开发有3方面的好处.a.可以模拟汽车的各种实际运行状况,建立一个虚拟的汽车电子平台,对其功能和子系统之间错综复杂的相互影响和关联进行

动态的测试.b.在ECU软件开发方面,用可执行的模型来描述系统功能、状态转换,减少文字叙述的含糊性,而且所开发的功能模型,可以直接用于自动生成代码,从而大大提高软件开发的效率[3-4].c.在设计验证和开发测试方面,汽车制造厂或供应商可以在研发不同阶段对正在开发的电子系统进行测试.例如,在研发的最初阶段,所有的电控单元处在用模型描述的功能设计阶段,称为模型在环(MIL),功能模型可以帮助设计人员进行设计有效性的测试;在电控单元软硬件开发阶段,模型被转换成代码在快速成型控制器上执行,称为软件在环(SIL),可以测试软件开发正确性;在集成测试阶段,部分ECU被制造出来,虚拟平台中对应的软件模型可以被取代,仿真系统可用于验证这部分器件的功能,包含部分硬件,称为硬件在环(HIL).图1(b)显示对应于传统V模型的模拟测试的3个阶段.

基于仿真的开发方法已经应用于一些汽车子系统的开发,例如,汽车发动机控制系统[5]、传动系统[6]、刹车系统[7]、车身控制[8].这些工作都是对汽车局部子系统的仿真和开发.文献[9]提出了利用仿真技术测试电控单元的在线诊断功能.文献[10]提出了建立汽车电子系统的整体模型,重点验证整车电子系统的集成性能.作者曾经成功地将仿真技术和机器视觉技术结合用于汽车信息系统和仪表系统的功能验证[11-12].本文以车身控制系统中的车窗控制和雨刮器控制为例,研究基于仿真的汽车电子控制器的开发过程.以MathWorks公司的Matlab软件作为主要的开发平台,利用它所提供的Simulink工具包建立相应的功能及控制模型,利用基于事件驱动的Stateflow模块构建控制算法模型,最后使用Real-Time Workshop 将模型编译成可直接嵌入到控制器的C代码,提高控制器的开发效率.另外,在开发的各个阶段对设计功能进行测试,提高设计开发的正确性.

图1 汽车电子系统V模型开发流程

2 功能介绍及模型开发

2.1 电动车窗功能及控制器模型介绍

电动车窗的主要功能如下:

a. 手动控制功能.每扇车门都可以手动控制车窗的升降,打开(关闭)车窗,可按住(拉起)相应车窗的开关键.

b. 自动控制功能.每扇车门都可以控制车窗的自动升降,自动打开(关闭)车窗,可按压(拉起)相应车窗的开关键小于1 s,车窗会启动自动打开(关闭)模式,停止自动打开(关闭)车窗,向上拉起(按压)车窗开关.

c. 自动避障功能.如果车窗在手动关闭或自动关闭的过程中遇到障碍物将会停住,然后向下倒退.若想关闭车窗应拿开障碍物,然后再次操作开关.因

此,在车窗完全关闭之前应检查车窗上乘客手和物件等是否移开.

控制器模型的开发主要采用基于事件驱动的Stateflow状态图进行模拟仿真.控制模块首先确认司机和乘客输入的有效性,判断车窗的位置是否达到了顶端或者底端,以及是否存在障碍物,将相应的输入信号传递给利用Stateflow状态图(statechart)建立的控制算法模型,输出控制命令.状态机包括电动车窗的基本状态:上升、自动上升、下降、自动下降、静止状态以及紧急状态.状态机仿真这些基本状态之间的状态切换以及驾驶员和乘客对电动车窗的优先级状态,同样也包括了在车窗上升过程中遇到障碍物的仿真.如图2所示,每一个方框代表电动车窗的一个状态.正常状态下,控制器处于无障碍物即safe状态;当控制器模型只接收到乘客下降的控制信号时,控制器首先进入乘客控制下降状态;100 ms过后如果还检测到乘客下降的控制信号,则进入乘客手动控制下降状态,否则进入乘客自动控制下降状态.在乘客或者司机控制模式时,如果遇到障碍物,控制器会自动进入紧急状态,将车窗下降.

图2 电动车窗控制模型

2.2 雨刮器系统的功能及控制模型器介绍

雨刮器的功能如图3(见下页)所示,点火开关在ON位置时雨刮器按规定模式进行操作.

a. MIST:要使雨刮器运转1次,移动控制杆到MIST位置并释放.如果保持控制杆在此位置,雨刮器持续运转.

b. OFF:雨刮器不工作.

c. INT:雨刮器按同样的刮水间隔时间间歇运转.要改变间歇时间设置,可以转动间歇时间调整钮B.

d. AUTO:雨传感器位于挡风玻璃上端,检测雨传感器降雨量并以适当间隔时间控制刮水周期.降雨量越多,雨刮器运转间歇时间越短.停雨时,雨刮器停止.要改变间歇时间设置,可以转动间歇时间调整钮B.

e. LO:雨刮器低速运转.

f. HI:雨刮器高速运转.

雨刮器模型(如图4所示,图中的每一个方框代表雨刮器所处的状态,控制器模型根据接收到的控制信号,对状态进行相应的切换,如控制器模型接收到高速模式信号,控制器进入高速模式状态,其他雨刮器控制模式同理)仿真了雨刮器的各种状态,随着输入信号的切换,雨刮器模型切换到对应的状态中.

状态机包括了雨刮器的基本状态:雨刮器高速状态、低速状态、间歇状态、点动状态、停止状态和自动状态.状态机仿真这些基本状态之间的状态切换,用于验证控制算法的有效性.

图3 雨刮器功能图

图4 雨刮器控制模型

3 实 验

3.1 仿真模型覆盖率的验证

3.1.1 电动车窗模型覆盖率验证

利用Matlab/Simulink提供的模型覆盖测试工具可以对汽车电动车窗模型测试序列覆盖率进行验证.模型测试案例通过每个条件分支到达相应状态的百分率就是模型的覆盖率,它有助于我们评估每一种状态,度量测试案例训练模型的程度.多个条件分支可以到达一个状态,例如,当100 ms之后或者到达顶端,可以从紧急状态切换到自由状态.要实现全覆盖,就要求测试案例的每一个分支都要验证true和false的情况.雨刮器模型覆盖率测试案例如图5所示.

在这个测试案例中,在步骤0,所有开关都是关闭的,然后定义了乘客手动上升信号、乘客自动上升信号、乘客手动下降信号、乘客自动下降信号,以及对应的驾驶员相应输入信号和障碍物信号.乘客和驾驶员输入信号中,1表示相应按钮按下,0表示相

图5 电动车窗测试信号序列

应按钮没有按下.在此建立的车窗运动模型的最高位置为0.4,将障碍物设置为1表示不存在障碍物,设置为0.3表示在车窗0.3位置存在障碍物.

生成测试和创建Simulink确认和验证覆盖报告的命令.

a. 创建一个保存覆盖结果的测试对象.

testObj1 =cvtest(′powerwindow01′,′first_test′,′load firsttest′)

b. 仿真系统65 s.

[dataObj1,T,X,Y]=cvsim(testObj1,[0 65])

c. 创建和打开一个包含覆盖数据的HTML报告.

cvhtml(′powerwindow01 report′,dataObj1)

报告中各个模块的判定结果如下:

“driver switch”和“passenger switch”模块的判定结果是覆盖75%,没有子模块.原因是输入信号序列中没有测试上升和下降同时成立的情况.“power window control system”覆盖结果96%.子模块“driver down”,“driver neutral”,“passenger down”,“passenger up”,“driver up”的覆盖情况分别为100%,95%,100%,100%,100%.执行模块“window system”覆盖100%,上升和下降的动作都覆盖到了.覆盖报告验证了测试序列案例较为完好地覆盖了绝大部分状态,能反映出各个状态的执行状况.

3.1.2 雨刮器模型覆盖率验证

雨刮器模型覆盖率测试案例如图6所示.

图6 雨刮器测试信号序列

这个测试案例分别测试了雨刮器的高速、低速、间歇、关闭、点动和自动的状态.生成的测试报告显示,所有的子状态的覆盖率均为100%,说明测试案例覆盖了雨刮器系统各个功能的状态验证.

3.2 代码生成

Real-Time Workshop 是一个基于Simulink的代码自动生成环境,能直接从Simulink的模块中产生优化的、可移植的和个性化的代码,并根据目标配置自动生成多种环境下的程序.利用它可加速仿真过程,生成可在不同的快速原型化实时环境或产品目标下运行的程序.

Simulink模型构建完成之后,利用Real-Time Workshop编译成C代码和普通的实时程序,可以验证模型的功能是否完善.步骤如下:

a. 设置程序参数.在生成代码之前,必须要对一些参数进行设置,如果采取系统默认的参数设置,在生成代码时将会出现错误,这里采用之前设置好的参数即可.

b. 生成C代码.在Simulink窗口中选择Simulink→Configuration Parameters命令,打开Simulink系统参数设置对话框,单击Real-Time Workshop,选中Generate HTML report 复选框,单击Build 按钮,即可生成C代码.也可以利用make_rtw命令执行代码生成.Build 命令调用目标文件grt.tlc,使用指定的模板文件grt_default_tmf来生成makefile,然后Real-Time Workshop 利用这个makefile来建立程序.

生成代码主要包括了以下头文件和源文件.

a. 算法函数源文件model.C,主要包括以下3个重要函数:(a) 初始化函数,model_initialize;(b) 算法运行函数,model_step;(c) 终止函数(一般为空),model_terminate.

b. 本函数所使用的函数和数据声明model_private.h.

c. 算法函数头文件model.h.

d. 参数结构体定义,当被调制成全局变量时不会生成model_data.C.

e. 数据和参数结构定义model_types.h.

4 仿真结果分析

4.1 电动车窗模型仿真与软件运行结果分析

Simulink模型构建完成之后,可以直接利用M脚本文件运行模型,记录模型运行时间,绘制出电动车窗位置图,运行结果如图7红线所示.图中,蓝线为预期结果,红线为仿真结果.可以看出电动车窗的运动轨迹与预期结果相同(图中将模型的仿真结果值减去了0.05,用于对比).

图7 电动车窗Simulink模型运行结果和代码生成程序运行结果对比

通过powerwindow01命令可以引导生成的实时程序的运行,在M脚本文件中引导程序运行,记录时间,读取生成的数据,与Simulink模型运行的结果以及期望的结果作比较.由运行结果图7绿色曲线所示,电动车窗运行的位置和Simulink模型运行的结果以及期望的结果相同,验证了生成代码的可靠性(图中将生成代码运行结果值加上了0.05).运行时间上,Simulink模型的运行时间大约为0.955 s,生成代码的运行时间大约为0.227 s,自动代码生成工具所产生的程序可以大幅提高Simulink模型运行的效率.

4.2 雨刮器系统模型仿真结果与分析

Simulink模型构建完成之后,可以直接利用M脚本文件运行模型,记录模型运行时间,绘制出雨刮器各个状态的运行结果.如图8红线所示,可以看出仿真的结果与预期结果相同.为了与预期结果对比,图8以高速模式为例,将模型仿真的结果增加0.2,exe程序运行结果增加0.4,雨刮器的其他控制模式的仿真验证结果同样与预期相同.

图8 雨刮器Simulink模型运行结果和代码生成程序运行结果对比

通过powerwindow01命令可以引导生成的实时程序的运行,在M脚本文件中引导程序运行,记录时间,读取生成的数据,与Simulink模型运行的结果以及期望的结果作比较.由运行结果图8绿色曲线所示,生成代码运行的结果和Simulink模型运行的结果以及期望的结果相同,验证了生成代码的可靠性.Simulink模型的运行时间大约为2.033 s,生成代码的运行时间大约是0.227 148 s.

5 结束语

通过电动车窗和雨刮系统两个实例介绍了基于仿真的汽车电子控制器软件的开发方法,在汽车电子控制器的开发阶段,采用建立模型及代码自动生成技术的方法,开发电控单元软件,是现阶段基于V模式汽车电子开发方法中重要的一个环节.实验表明产生的代码与模型运行结果一致,同时可以利用模型和产生的代码对设计进行验证.该方法可以提高汽车电子控制器软件的开发效率,提高设计的正确性.对于电子控制器外围环境的建模,比如机械系统和执行器的模拟还有待进一步的开发,从而完善电子系统的仿真建模.

[1] KENDALL I R,JONES R P.An investigation into the use of hardware-in-the-loop simulation testing for automotive electronic control systems[J].Control Engineering Practice,1999,7(11):1343-1356.

[2] 黄影平.基于模型的现代汽车电子系统开发和测试[J].汽车技术,2008(2):31-34.

[3] BEINE M,OTTERBACH R,JUNGMANN M.Development of safety-critical software using automatic code generation[C]∥2004 SAE World Congress.Detroit:SAE International,2004.[4] LIN A,TSAI G L,CHEN B C.Embedded systems development of an electric power assisted steering system using MATLAB/SIMULINK/Real-time workshop[C]∥2004 SAE World Congress.Detroit:SAE International,2004.

[5] LEE W,YOON M,SUNWOO M.A cost-and time-effective hardware-in-the-loop simulation platform for automotive engine control systems[J].Proceedings of the Institution of Mechanical Engineers,Part D:Journal of Automobile Engineering,2003,217(1):41-52.

[6] 张炳力,杜红亮,金朝勇,等.6AT控制器的快速控制原型及硬件在环仿真研究[J].汽车工程,2011,33(8):680-684.

[7] LEE S J,KIM Y J,PARK K,et al.Development of hardware-in-the-loop simulator and vehicle dynamic model for testing ABS[C]∥2003 SAE World Congress.Detroit:SAE International,2003.

[8] 杨国胜,贾天阳,王贺飞.基于标准架构及Simulink/Stateflow的车身控制器软件开发平台[J].汽车电器,2015(4):54-55,58.

[9] MOUZAKITIS A,COPP D,PARKER R,et al.Hardware-in-the-loop system for testing automotive ECU diagnostic software[J].Measurement and Control,2009,42(8):238-245.

[10] TSAMPARDOUKAS G,MOUZAKITIS A.Deployment of full vehicle simulator for electrical control system validation[C]∥Proceedings of UKACC International Conference on Control.Cardiff:IEEE,2012:551-556.

[11] HUANG Y P,MCMURRAN R,AMOR-SEGAN M,et al.Development of an automated testing system for vehicle infotainment system[J].The International Journal of Advanced Manufacturing Technology,2010,51(1/2/3/4):233-246.[12] HUANG Y P,MCMURRAN R,DHADYALLA G,et al.Model-based testing of a vehicle instrument cluster for design validation using machine vision[J].Measurement Science and Technology,2009,20(6):065502.

(编辑:丁红艺)

Development of Automotive Electronic Controller Software Based on Simulation Method

ZHANG Wanfu, HUANG Yingping

(SchoolofOptical-ElectricalandComputerEngineering,UniversityofShanghaifor

Taking the power window system and wiper control of an automobile as examples,a new-typed development method of the automotive electronic controller software was proposed,which incorporates the simulation and code generation techniques.The method employs the Simulink/Stateflow to establish controller algorithm models for offline simulation and fast verification,and generates an executable automotive code by RTW which can be directly embedded in the electric controller unit.The method was tested and verified to be feasible and accurate,by comparing with the simulation results of Simulink.It is proved that the development mode can greatly shorten the development cycle of the control system and has certain practical value for the development of automotive electronic control system.Moreover,the method allows validation testing being conducted in the early stage of development cycle.It greatly increases the correctness of the design and development.

simulation;automotiveelectroniccontroller;automotivecodegeneration

1007-6735(2017)01-0035-07

10.13255/j.cnki.jusst.2017.01.007

2016-06-29

国家自然科学基金资助项目(61374197);教育部博士点基金资助项目(20133120110006);上海科委科技创新行动计划资助项目(13510502600)

张万福(1990-),男,硕士研究生.研究方向:机器视觉检测和汽车电子仿真.E-mail:495775041@qq.com

黄影平(1966-),男,教授.研究方向:智能汽车障碍物探测和汽车电子仿真.E-mail:huangyingping@usst.edu.cn

U 463

A

猜你喜欢
电动车窗雨刮器车窗
左右摇摆
杂文选刊(2023年11期)2023-11-11 15:59:18
2013年宝马X1雨刮器故障
2011款保时捷卡宴车车窗玻璃升降电动机初始化操作方法
2010年大众甲壳虫雨刮器不工作
丰田卡罗拉车左后电动车窗玻璃升降异常
车窗不起雾
女士(2017年10期)2017-11-01 08:11:33
车窗拍摄器
重卡雨刮器淋雨试验台——车辆雨刮器性能检测设备的设计开发
雪佛兰科鲁兹右前车窗不能升降
电动车窗防夹设计