虚拟 ECU 实践:汽车发动机控制器仿真
虚拟化技术使得在 Windows PC 上对汽车 ECU(Electronic Control Unit,电子控制器单元)进行闭环仿真成为可能,能有效改善 ECU 开发过程。一些开发任务得以从道路、测试平台和 HIL(Hardware in the Loop,硬件在环)转移到 PC 上,缩短开发时间和成本。
▲汽车系统模型测试现状
由在本文中,我们将主要介绍虚拟化技术在 ECU 开发中的实现,其中的技术挑战在于:如何用合理的方式将 ECU 任务和基本软件移植到 Windows PC 上,以便关键的开发任务可以在 PC 上执行,而不需要访问真实的硬件(如车辆原型、测试平台或 HIL 设施)。
01.仿真加速软件开发
传统汽车软件开发的流程一般为:功能开发团队使用基于模型的工具链开发 ECU 模型,生成 C 代码,然后针对目标处理器进行代码编译,并使用测试平台,HIL 系统和道路测试来测试和验证生成的 ECU,进而将结果反馈至开发人员,结束开发周期。该过程存在的主要缺点有:1、迭代时间长;2、受原型车和测试设备的限制——硬件资源昂贵且稀缺。
为开发团队提供虚拟 ECU 可解决上述问题:开发人员可在 PC 机上对软件进行模拟、校准和测量,缩短开发周期,减少对稀缺资源和实际硬件的严重依赖;同时,通过虚拟 ECU,开发人员可随时观察和修改内存变量甚至硬件状态,极大提升工作效率。
▲传统 ECU 开发 vs 虚拟 ECU 开发
虚拟 ECU 可应用以下场景:测量和标定、单元测试、持续集成、协同仿真、总线仿真。
▲基于虚拟 ECU 的应用场景
在 PC 上设置虚拟 ECU 主要有两种选择:
1、使用芯片模拟重新托管本机二进制代码。基于模拟 ECU 处理器的指令集,本机 ECU 代码(二进制)在 PC 上执行,无需访问 C 代码。
2、重新定位 C 代码。编译 ECU 的 C 代码,以便在 Windows PC 上执行——需要访问 C 代码来构建 Windows 可执行文件或 DLL(Dynamic Link Library,动态链接文件)。
本文将主要介绍如何通过第一种方式设置虚拟 ECU。
02.基于 SkyEye 的虚拟 ECU 方案
为支持构建数字仿真目标系统,运行实际项目的可执行文件,需要设计通用的仿真平台软件,灵活构建不同的 ECU 仿真目标系统,提供工程配置管理,方便工程师进行项目用例的配置和管理。
SkyEye,中文全称天目全数字实时仿真软件,是基于可视化建模的硬件行为级仿真平台,支持用户通过拖拽的方式对硬件进行行为级别的仿真和建模。SkyEye 作为一款指令集仿真器,其仿真对象是物理芯片。
SkyEye 采用“面向对象”的设计思想,通过将虚拟的目标系统上的所有组件都设计为独立的模块,支持手动修改和界面图形拖拽方式来快速生成虚拟目标系统的“硬件配置文件”,从而快速构建虚拟目标系统,达到加载和运行二进制目标程序进行仿真测试的目的。
基于 SkyEye 的虚拟 ECU 整体架构主要包含:SkyEye 全数字仿真平台、虚拟 ECU、标定软件、IDE 开发工具、脚本模块、MATLAB 模型以及 CAN 总线等模块,各个模块间通过虚拟软总线进行连接。
▲基于 SkyEye 的虚拟 ECU 整体架构
基于 SkyEye 的虚拟 ECU 可将开发任务从路测和台架转移至 Windows/Linux PC 上,以实现 ECU 软件的高效在环(SIL)开发。工程师可构建高度仿真真实控制器的虚拟 ECU 以加载运行真实 ECU 中的目标二进制文件。
同时,SkyEye 虚拟 ECU 构建了一个强大的实验环境,通过多领域分布式协同仿真平台 DigiThread,可以与多种工具(包括通过标准化 FMI 接口运行的 MATLAB/Simulink 等)的仿真模型(如电源模型、电机模型等)进行数据交互,实现对物理系统行为的模拟和复制。在构建物理样机或进行台架测试之前,工程师可基于虚拟 ECU 对系统设计提前进行验证,以最大限度地减少对实验室样机和工作设备的需求。
此外,虚拟 ECU 系统的复制比真实硬件系统容易得多,其配置可快速复制拓展,成本较低,每个工程师都可拥有一个开发环境,避免占用稀缺资源(如 HIL 台架测试)——更多的工程师可从中受益,项目研发周期亦可大幅缩短。
03.某发动机控制器仿真案例
使用仿真建模的方法,可以使基于 INCA 的发动机控制单元(ECU)标定、测量和诊断事半功倍。
在实际场景中进行测试,需根据具体的测试要求和标定项目进行设置和调试,同时也需要对测试数据进行分析和评估,以确保测试结果的准确性和可靠性。
▲真实 ECU 标定测试图
该过程中,存在以下问题:
1、实验环境限制:硬件标定需要使用实际的测试设备和实验车辆进行标定,因此需要考虑测试设备和实验车辆的可用性、实验场地和环境等因素,实验环境的限制可能会影响标定结果的精度和可靠性;
2、试验成本高:硬件标定需要使用实际测试设备和实验车辆,包括 INCA 硬件本身的试验成本,人力、物力和时间成本较高;
3、难以覆盖所有测试情况:硬件标定需要使用实际的测试设备和实验车辆进行标定,可能难以覆盖所有的测试情况,特别是在测试较为复杂的场景时,可能需要更多的测试车辆和测试设备来进行标定,试验成本和难度增加。
解决方案:
使用 SkyEye 模拟真实控制器中的所用芯片,运行真实的 ECU 软件,并建立虚拟 CAN Bus 和 INCA 上位机的连接,可高效解决标定场景中遇到的上述问题。
▲虚拟 ECU 标定测试图
同时,为解决仿真系统中发动机物理模型的问题,多领域分布式协同仿真平台 DigiThread 提供了一套通用的 API 机制,可支持包括 Simulink、MATLAB 等各类虚拟模型的挂载。将 Simulink 生成的发动机模型和 ECU 软件建立连接,即可满足对于汽车领域各类系统半闭环仿真的需求。
本案例中,数据均由 INCA 上位机提供,标定工程师无需关心除标定工作以外的硬件连接关系,在实验室中即可轻松完成标定工作。
评论