基于V模式的整车控制系统开发及模型单元测试

2012-10-29 03:00张曼雪董婷婷郭永斌金启前赵福全
汽车工程学报 2012年6期
关键词:单元测试测试用例限值

田 真,张曼雪,董婷婷,郭永斌,金启前,赵福全

(吉利汽车研究院,浙江,杭州 311228)

传统的开发模式存在很多缺点,如开发人员间信息交流以文档为基础、代码手写、修订错误较困难且代价较大。为了提高产品开发的效率,同时也减轻工程师的工作量,整车控制系统开发提出了V模式的开发流程。该流程的主要特点是开发、编程和测试,总是在同一环境下工作,整个开发过程都可以得到验证。使用该模式可以加速和简化开发流程,实时修订开发过程中出现的错误。

模型单元测试在V模式的最初阶段,对各个模块的功能进行验证。本文对某新能源车型整车控制系统仿真模型的核心功能模块进行分析,同时分析测试方法,并根据测试用例,对模块功能进行单元测试及验证。

1 基于V模式的控制系统开发流程[1]

整车控制系统的V模式开发流程,主要包括控制方案的设计、离线仿真、快速控制原型、产品代码生成、硬件在环仿真测试和标定,如图1所示。

1.1 离线仿真阶段

(1)建立对象数学模型。

(2)设计控制方案。

(3)以Matlab[2]为平台建立模型并进行仿真分析。

1.2 快速控制原型阶段

(1)保留需要下载到dSPACE中的模块。

(2)用硬件接口关系代替原来的逻辑连接。

(3)对I/O进行配置。

1.3 代码生成阶段

(1)自动生成代码。

(2)自动下载到整车控制器硬件系统中。

1.4 硬件在环(HIL)仿真

硬件在环(Hardware-in-loop,HIL)即指由硬件控制器与模拟器之间形成一个以数据、信号进行交流的闭环测试系统。通过虚拟的整车驾驶环境的建立,与实际的控制器硬件之间建立循环系统,测试该控制器在虚拟环境下的各种功能。

1.5 标定

基于CAN总线的标定协议(CAN Calibration Protocol,CCP)是一个连接开发工具和ECU的软件接口协议,该协议定义了模块标定、数据采集和存取flash中运行数据的方法,在电池管理系统中,可以利用CCP实现以下功能。

(1)实时在线测试。

(2)各传感器检测和标定。

(3)报警或出错值的调整。

(4)程序下载。

2 模型单元测试

单元测试的对象是模型的最小单位——模块。单元测试应对模块中所有的功能设置测试用例,对覆盖度不足的测试用例进行补充及测试,校核单元测试结果,评估测试结果的正确性。通过单元测试用例,可以保证所建模型功能达到预期的运行结果。

以整车的转矩管理模块为例,其功能是将转矩分配给发动机、发电机和电动机[3],对于纯电动车型,此模块决定如何对电机的转矩输出进行分配。因此有关的转矩管理器子模块决定了整车转矩的分布,细分为运行模式判定、转矩输出管理等子模块。单元测试针对最低层次的细分功能模块进行测试及功能验证。

本文以转矩管理模块中的TED子模块为例,进行单元测试的举例说明。TED为纯电动模式转矩模块,其功能目标为以下两点。

(1)如果纯电动(state Electric Drive)使能,驱动电机为唯一车辆驱动装置。

(2)发动机和ISG电机转矩目标值为0,驱动目标转矩发送至驱动电机控制-IPU。

在图7所示的子模块中,根据车轮处转矩需求计算驱动电机转矩值,同时转矩的变化斜率受到限制。转矩上升与下降的斜率限值对称,在相应map中定义并可标定。电机转矩限值可设为系统峰值限值或持续运行限值,并受限于加速踏板传感器限制的车轮处转矩需求值。

单元测试框架如图8所示,包括测试信号输入(simulate Input)、TED功能模块(TST_TED_tqStateEdrive)、结果比较(compare Signals)和输出信号确认(verify Signals)模块。

(1)simulate Input模块说明

simulate Input模块输入包含2组测试信号:Test Signals_R001/2,分别对应2组测试用例。通过switch中testcase选择按照哪组测试用例进行测试。2组测试用例的输入(testSig_Bus)均包含相同名称的信号,并且信号分为两部分,即包含所有的TED模块的输入信号和输出目标信号。其中模块的输入信号部分输入至TED功能模块中作为功能模块的输入信号。

(2)TED功能模块说明

此模块应用了“模型引用”,对TED单元进行测试。“模型引用”方法适于独立地进行单元测试。此模块的输出信号,即对应于输入信号的功能模块输出结果,输入至下一模块进行结果对比分析。

(3)compare Signals模块说明

此模块为2个测试用例输出结果的对比分析模块,对testSig_Bus中设定的输出目标结果与模型实际测试输出结果进行对比,以测试模型单元的输出是否符合预定的结果。

(4)verify Signals模块说明

此模块对测试过程进行确认,如果测试未通过则该模块报错,出错原因可能是模块本身有误或测试用例设置不当,需要测试工程师排查错误。

2.1 TED-testcase 1结果分析

测试目标:驱动电机转矩需求输出正确。

模型输出的驱动电机转矩需求值符合系统限值。当ted_bEmotSysPeakLimAcv_C(电机系统峰值限值标志位)标定为0时,驱动电机转矩限定在scm_tqEmotNormLL(驱动电机转矩下限)~scm_tqEmotNormUL(驱动电机转矩上限)之内;当标定为1时,驱动电机转矩限定在scm_tqEmotPeakLL(驱动电机峰值转矩下限)~ scm_tqEmotPeakUL(驱动电机峰值转矩上限)之内。此外,转矩变化的斜率受限,斜率限值取决于前一个循环步长下由TMO(转矩输出管理)模块输出的电机转矩需求的绝对值和车速。上升和下降斜率相等。根据模块的功能定义,通过设定合适的模块输入值并进行仿真,监控模型输出结果的状态并与期望的结果进行对比。

测试用例设置:

ted_bEmotSysPeakLimAcv_C(电机系统峰值限值标志位)设置为0,scm_tqEmotNormLL(电机转矩下限),scm_tqEmotNormUL(电机转矩上限)分别设为50 N·m、-50 N·m。

其余与本测试无关,可设为1。

输出目标值(驱动电机转矩需求)设定如下。

测试过程:运行模型,对结果的目标期望值(testSig_Bus-test-Sig_ted_tqEmotReq)与模型输出值[testResult_Bus-ted_tqEmot Req(驱动电机需求转矩)]进行对比,当模型测试的输出值符合设定的期望结果值时,输出result值恒为1;当模型测试的输出值不符合设定的期望结果值时,输出result值在0.5 s时从1变至0;在模型中对assertion模块进行设置,信号验证模型中的声明模块,判断输入信号是否为0,如果输入信号全为非0值,该模块不动作,当测试未通过时,即对应用例端口为0时,则中断模拟并显示错误信息。如图11所示,测试通过。

2.2 TED-testcase 2测试分析

TED-Testcase2的基本信息如下。

测试目标:正确确定驱动电机转矩限值,即来自DTR模型的转矩上下限值dtr_tqWhlByAccPSenUL(车轮处转矩上限)、dtr_tqWhlByAccPSenLL(车轮处转矩下限)需转化为驱动电机转矩限值,并且电机转矩的限值在系统限值scm_tqEmotPeakLL(驱动电机峰值转矩下限)~scm_tqEmotPeakUL(驱动电机峰值转矩上限)、scm_tqEmotNormLL(驱动电机正常转矩下限)~scm_tqEmotNormUL(驱动电机转矩上限)之内。当ted_bEmotSysPeakLimAcv_C(电机系统峰值限值标志位)标定为0时,驱动电机转矩限定在scm_tqEmotNormLL~scm_tqEmotNormUL之内。

测试过程:对结果的目标期望值(test Sig_Bus-testSig_ted_tqEmotULtestSigted_TqEmotLL)分别与模型测试输出(testResult_Bus-ted_tqEmotUL、ted_tqEmotLL)进行对比, 当对应值分别相等时,输出result值恒为1,测试通过,否则测试未通过。在verify Signals模块中对assertion模块进行设置,当测试未通过时,则中断模拟并显示错误信息。

测试用例设置:设置的输入参数数值如图12所示,设置最大最小驱动电机限值、加速踏板最大最小转矩需求和传动比,其余数值对testcase2无影响,故可设置为1。

测试结果:测试结果如图14所示,来自于DTR模型的转矩上下限值 dtr_tqWhlByAccPSenUL、dtr_tqWhlByAcc-PSenLL(车轮处转矩)转化为驱动电机转矩限值为-100~25N·m,系统限值scm_tqEmotNormLL(驱动电机正常转矩下限)~scm_tq-EmotNormUL(驱动电机正常转矩上限)为-50~50N·m,因此期望的上下限值testSig_ted_tqEmotUL(TED模块输出的电机转矩上限)、testSig_ted_tqEmotLL(TED输出的驱动电机转矩下限)输出结果设定为-50~25N·m。经测试,模型测试输出结果ted_tqEmotUL、ted_tqEmotLL与期望值相等,因此测试结果为1,测试通过。

上面两个测试用例覆盖需要测试的需求测试点,可以对模块功能进行验证。

表1 文中缩写定义表

3 结论

本文结合纯电动车的实例对基于V模式的开发流程进行了介绍,验证了采用基于V模式的开发方式可以提高整车控制器的开发效率,同时减轻了工程师的工作量,并且保证了产品的稳定性和有效性。

单元测试在模型建立及仿真阶段,通过测试对整车性能进行分析验证,保证所建模型功能达到预期的运行结果以及下个阶段的工作能够顺利进行。

[1]戴海峰,魏学哲,孙泽昌. V -模式及其在现代汽车电子系统开发中的应用[J].机电一体化,2006(6):20-24.Dai Haifeng,Wei Xuezhe,Sun Zechang.V-mode and Its Application in Development of Modern Automabile Electronics Systems[J]. Mechatronics,2006(6):20-24. (in Chinese)

[2]张志涌.精通MATLAB 6.5版[M].北京:北京航空航天大学出版社,2003.Zhang Zhiyong. MATLAB 6.5[M]. Beijing:Beihang University Press,2003. (in Chinese)

[3]EHSANI M,Gao Yimin,EMADI A.现代电动汽车、混合动力电动汽车和燃料电池车——基本原理、理论和设计[M].北京:机械工业出版社,2010.EHSANI M,Gao Yimin,EMADI A. Modern Electric,Hybrid Electric Vehcles and Fuel Cell Vehicles—Basic Principles,Theory and Design[M]Beijing:China Machine Press,2010. (in Chinese)

猜你喜欢
单元测试测试用例限值
基于相似性的CITCP强化学习奖励策略①
链接:新GB1589出台后 货车尺寸限值有这些变化
2017年北京将实施“世界最严”锅炉排放标准
北京Ⅵ阶段重型发动机排放测试方法及限值对比分析
《轻型商用车辆燃料消耗量限值》强制性国家标准发布
一年级上册第五单元测试
一年级上册一、二单元测试
测试工时受限的测试策略研究
第五单元测试卷
第六单元测试卷