赵伊齐,张引,申成刚,王严
基于Prescan的智能驾驶辅助系统在环研究
赵伊齐,张引,申成刚,王严
(华晨汽车工程研究院,辽宁 沈阳 110141)
为在短时间内完成大量验证高级驾驶辅助系统的产品性能,利用Prescan对控制器进行软件在环研究。首先对产品的性能及功能规范提出开发需求,作为测试依据;利用仿真软件Prescan完成测试场景及动力学模型的搭建;运用Matlab/Simulink实现自动化测试。结果表明,利用Prescan进行软件在环测试,可缩短开发周期,减少开发成本,有效提高产品性能。
高级驾驶员辅助系统;软件在环;自动化测试
高级驾驶员辅助系统(以下简称ADAS)是一项提高安全系数的主动安全技术,其主要通过传感器完成对周围信号的采集、CAN等通讯系统完成相关信号的传递。最后将信号传送给整车控制器,使驾驶员能够在最快时间内察觉可能发生的情况。
目前,很多在研究高级驾驶员辅助系统设计环节中引入在环仿真测试,主要有模型在环(Model in the loop,以下简称MIL)、软件在环(Software in the loop,以下简称SIL)及硬件在环(Hardware in the loop,以下简称HIL)。MIL主要验证控制模型,其控制算法模型是否准确实现功能要求;SIL旨在通过PC验证代码实现的功能是否实现功能需求;HIL是将被控对象模型放在模拟整车环境下进行测试。SIL可实现被控模型算法的在线或离线仿真,减少实际代码的调试,从而降低成本[1]。
本文利用Prescan对控制器软件进行软件在环测试,将对产品提出的功能需求以及安全需求作为测试用例并作为仿真测试依据,利用Prescan完成测试场景以及传感器模型的搭建;将模型代码以S function的形式进行封装并通过simu -link进行比较;最后基于Matlab完成M文件的编写,实现控制器软件的自动化测试。
当前ECU开发流程一般是工程师根据控制目标开发控制模型,由控制模型生成控制代码(或者手工编写控制代码),将代码导入ECU硬件然后通过模型仿真被控对象及系统环境进行硬件在环测试(HIL)。软件在环仿真(SIL)测试可通过特定的控制软件设置ECU的相关信号代替HIL中的硬件,并将待测ECU代码信息集成配置为虚拟ECU,通过运行虚拟控制器中的I/O模型和系统环境中的车辆模型来模拟控制器所需的各种传感器信号,并接收虚拟ECU发出的控制信号及台架传感器的信号。从而与被测ECU的代码信息和系统环境模型连接。最终实现闭环仿真,完成对控制系统进行测试验证。
由于目前许多汽车公司已经从传统的开发模式转移到V形开发模型(如图1),以减少重复的代码编制和实车试验[2]。在V形开发模式下,通过SIL平台一方面可在开发过程中更早介入,确保前期开发过程中通过对嵌入式软件的测试及时发现存在的问题,以提高整改效率从而大幅节约ECU功能开发成本和周期;另一方面,由于SIL测试采用纯软件仿真的手段,无需真实车辆及HIL台架测试。可在开发和测试过程中灵活使用,因而软件在环测试系统正在成为一种理想的功能测试工具。
图1 V形开发模型
Prescan是一款用于高级驾驶员辅助系统和主动安全系统开发验证的仿真软件,支持基于摄像头、雷达、激光雷达等多种应用功能的开发应用。包含场景搭建、传感器建模、开发控制算法以及运行仿真(如图2)。其中场景搭建可利用prescan自带软件库对道路、交通使用者、环境模型以及天气光照等车辆周边环境因素的搭建(如图2);实现高级驾驶员辅助系统的前提即为可实时获取周边交通以及环境信息,Prescan可通过模拟传感器并保证与真实传感器功能一致。传感器建模主要是针对摄像头、雷达/毫米波雷达以及车联网短程通讯传感器的模型仿真,根据ECU软件提供的传感器类型可运用Prescan对摄像头和雷达进行不同程度上的仿真。
开发控制算法即通过仿真平台(Matlab/Simulink),可引入编程工具开发的算法代码。本文利用控制器软件算法作为输入端接收传感器模型输入的传感器信号,经过算法计算作为输出端发送请求指令给车辆动力学模型[3]。动力学通过接收的请求指令做出响应形成驾驶场景,形成一个闭合的在环测试,从而达到验证控制器算法的目的,即为软件在环测试。动力学模型可在Prescan自带demo基础上通过更改模型参数(主要指底盘、传动系统和发动机,具体可参考图3)或者直接通过第三方仿真软件直接插入得到理想动力学模型[4]。
图2 运行仿真
图3 动力学模型
基于SIL平台,测试人员可根据不同的功能需求实现以下测试:
(1)手工测试
手工测试也称交互式测试。通常利用SIL系统配置相应的仿真面板GUI,从而直接控制变量输入,并通过仿真面板的控界面直接观察输出量的变化是否符合要求[5]。Prescan仿真软件提供多种GUI单元。用户可以通过简单的拖放操作来创建及调试GUI(如图4)。
图4 手工测试
手工测试操作具有较好的问题处理能力,能通过人为的逻辑判断校验当前步骤的功能实现正确与否。
(2)自动化测试
在仿真平台Prescan基础上利用Matlab编写脚本文件M.驱动仿真,通过配置完成代码覆盖率程度测试[6]。在不同SIL系统中,虽然配套使用的应用软件不同,但均可通过编写并运行脚本实现自动测试的目的。通常,不同的测试平台需要准备不同的测试脚本,测试脚本可随时修改调用以方便执行测试。脚本编辑完成后,SIL可对控制器实现自动测试,并在自动测试完成后由应用软件自动生成相应的测试报告,下图为不同传感器扫描范围所得到结果[7]。
控制器功能测试需进行回归测试和重复测试,为节约测试成本以及提高测试效率。大部分功能测试建议采用自动测试来完成。下图5即为驾驶辅助系统在Prescan完成自动化测试所得到的结果。
图5 驾驶辅助系统自动化测试结果
本文基于MATLAB和Simulink平台完成自动化测试,SIL的具体测试流程如下:
3.2.1 测试计划
系统开发工程师对产品分别提出性能及功能上的需求,供应商根据需求制定软件版本释放计划,SIL测试人员根据软件释放计划和功能集成情况制定相应测试计划及方案[8]。
3.2.2 测试需求
根据SIL测试计划制定测试需求,主要包括:测试样件需求、工具需求和文件需求。
(1)测试样件需求:根据开发工程师提出的产品需求,提供相应的控制器算法、对应接口及软件版本号;
(2)工具需求:根据SIL测试的搭建需求制定工具需求列表;
(3)文件需求:整车模型参数(底盘、传动以及发动机相关参数)及产品性能规范。
3.2.3 接收测试文件
测试人员在每一轮软件释放时间节点接收测试软件,若测试软件无更新,则开发工程师需要提前告知测试人员并不用再重新提交。测试人员需要对接收的测试软件进行登记并管理[9]。
3.2.4 执行测试
SIL测试包括及用户功能测试、回归测试。用户功能测试主要针对控制器的功能进行测试;回归测试主要是验证上一轮测试或更早之前发现的问题是否被解决;
(1)测试人员按照每一轮软件释放的SIL测试计划和测试目标执行测试任务;
(2)根据SIL测试任务筛选测试用例;
(3)SIL场景搭建;
1)将测试用例提出的测试前提作为环境搭建依据;
2)完成虚拟道路、交通设施等元素的搭建;
3)完成虚拟传感器及车辆动力学模型建模;
4)修改动力学参数或利用动力学工具,利用外部接口,进行模型载入[10]。
(4)利用脚本驱动仿真,通过配置或者软件编写自动化测试模块,执行自动化测试;
(5)编写脚本文件,自动生成测试报告,报告应包含以下内容:
a)本轮SIL测试的时间计划概况;
b)本轮SIL测试软件的版本概况;
c)本轮SIL测试的目标;
d)本轮SIL集成测试的结果;
e)本轮SIL集成测试的问题概况。
每轮测试阶段完成后,都需要提交本轮SIL测试报告。
3.2.5 分析测试结果
测试工程师应按照测试用例执行测试,做好每一条测试结果记录,将测试用例给定的期望结果与测试结果进行对比,通过记为“OK”,未通过记为“NO”并描述实际测试结果,当前SIL状态或者样件状态无法满足测试的记录为“NP”(Not Possible)。对于测试出的问题,测试人员需要按照模板编写问题报告提交给问题管理工程师。
本文利用仿真软件Prescan完成高级驾驶辅助系统的软件在环测试,通过模拟雷达、摄像头传感器完成对周围环境的监测;通过MATLAB/SIMULINK完成模型的仿真以及自动化测试运行的脚本文件。结果表明:在给定的条件下进行仿真,利用仿真软件完成的软件在环测试与实际测试结果基本相同,很大程度缩短开发成本、缩短开发周期。达到理想效果。
[1] 周云山,钟勇,汽车电子控制技术[M].北京,机械工业出版社,2008: 207-216.
[2] 单忠伟,宋珂,章桐.符合AUTOSAR规范的汽车软件开发工具链及其应用流程[J].机电一,2018,24(3):47-52,64. DOI:10.16413/j. cnki.issn.1007-080x.2018.03.008.
[3] 彭亿强,基于模型的汽车电控电源仿真测试技术研究[J],中国测试技术,2006,32(6);15-19.
[4] 赵垚森,朱勇,徐小东.基于Simulink的汽车ABS仿真分析[J].机电工程,2018,35(12):1357-1360. DOI:10.3969/j.issn. 1001-4551.2018. 12.020.
[5] 李波,黄新静.MATLAB软件算法在层次分析法中的应用[J].自动化技术与应用,2018,37(12):35-38,54.
[6] ShengliWei,ZhileiSong,Chongrong Wu, et al.Study of dual closed- loop control strategyof exhaust gas recirculation for diesel engines [J].Energy Sources, Part A: Recovery,Utilization, andEnvironmental Effects,2019,41(11):1380-1390.DOI:10.1080/15567036.2018.15485 16.
[7] WangNa,WangSiyuan, PengZhen, et al.Braking control performances of a disk-type magneto-rheological brake viahardware-in-the-loop simulation[J].Journal of IntelligentMaterial Systemsand Structures, 2018,29(20):3937-3948.DOI:10.1177/1045389X18800395.
[8] 胡远志,吕章洁,刘西.基于PreScan的AEB系统纵向避撞算法及仿真验证[J].汽车安全与节能,2017,8(2):136-142. DOI:10.3969/j.issn. 1674-8484.2017.02.004.
[9] 葛如海,储亚婷,谢永东, 等.基于Prescan的换道预警规则研究[J].重庆交通大学学报(自),2016,35(1):172-176. DOI:10.3969/j.issn. 1674-0696.2016.01.33.
[10] KwangkookLee,KwangkookLee,MijinJeong, et al.Software-In-the- Loop based Modeling and Simulation of Unmanned Semi-submersi -ble Vehicle for Performance Verification of Autonomous Navigation [J].IOP Conference Series: Materials Science and Engineering, 2017, 280(1):012042(7pp). DOI:10.1088/1757-899X/280/1/012042.
Research on the loop of Advanced driver assistance systembased on Prescan
Zhao Yiqi, Zhang Yin, Shen Chenggang, Wang Yan
( Brilliance Auto R&D Center, Liaoning Shenyang 110141 )
In order to complete a large number of product performance verification of advanced driving assistance system in a short time, Prescan was used to study the controller software in the loop.Firstly, the development requirements of product performance and functional specifications are proposed as the test basis.The simulation software Prescan was used to build the test scene and dynamic model.Matlab/Simulink for automated testing.The results show that using Prescan can shorten the development cycle, reduce the development cost and improve the product performance.
Driving assistance system;Software in the loop;Testautomation
U467
A
1671-7988(2019)09-47-04
U467
A
1671-7988(2019)09-47-04
赵伊齐,工程师,就职于华晨汽车工程研究院,从事自动驾驶系统软件测试工作。
*国家重点研发计划(2016YFB0101107)资助。
10.16638/j.cnki.1671-7988.2019.09.014