虚拟ECU实践:汽车发动机控制器仿真

news2024/11/23 18:59:12

虚拟化技术使得在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上位机提供,标定工程师无需关心除标定工作以外的硬件连接关系,在实验室中即可轻松完成标定工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/628404.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python入门教程+项目实战-13.3节-集合的快速查找

目录 13.3.1 键的输出顺序 13.4.2 键的数据类型 13.4.3 集合的快速查找 13.4.4 知识要点 13.4.5 系统学习python 13.3.1 键的输出顺序 集合类型的底层实现基于哈希表,键的输出顺序取决于键在哈希表中的存储顺序。 对哈希表结构不是很熟悉的同学,可…

【DBA生存之四大守则---读书笔记】

👈【上一篇】 💖The Begin💖点点关注,收藏不迷路💖 【下一篇】👉 🔻《Oracle 数据库性能优化》一书的序言中提到: 兴趣勤奋坚持方法成功 很遗憾我不能给以上公式画上“”,但是无…

Coggle 30 Days of ML 打卡任务一

Coggle 30 Days of ML 打卡任务一 任务一:两个赛题数据可视化 难度/分值:低/1 打卡内容: 参赛选手名称:AppleDoctor完成日期:2023.6.6任务完成情况: 使用的编程语言:Python实现的功能&#…

八大排序算法

八大排序算法 是指常用的八种排序算法,它们包括: 冒泡排序(Bubble Sort):通过不断交换相邻元素的位置,将最大(或最小)的元素逐渐"冒泡"到最后(或最前&#xf…

【技术分享】华为防火墙双机热备

组网需求 如图所示,两台FW旁挂在数据中心的核心交换机侧,保证数据中心网络安全。通过核心交换机的流量都会被引流到旁挂的FW上进行安全检测,引流的方式为静态路由方式。企业希望两台FW以主备备份方式工作。正常情况下,流量通过FW_…

android 如何分析应用的内存(五)

android 如何分析应用的内存(五) 接上文 lldb的工具篇的GUI部分。分成两部分: vscode 的LLDBas的LLDB 接下来是as的LLDB as的LLDB 为了进行LLDB的调试,需要对as进行配置,事实上,每一个在AS中编辑的应…

充电桩检测仪表TK4860E交流充电桩检定装置

波形失真度测量:具备电压电流波形失真度测量功能。 时钟校验功能:实时时钟显示,可完成充电桩的时钟时刻误差测试。 温湿度测量(选配件):可选配蓝牙温湿度计,通过蓝牙连接平板电脑,…

properties、yaml作为配置文件的特点

说明:在软件开发中,经常需要把一些配置写在文件中,如数据库配置、MyBatis配置等。这样,后续如果数据库参数有改动,就可以避免直接对代码做修改,只要修改配置文件中关于数据库的配置。关于配置文件的选择&am…

数据分析师,如何写好分析报告来体现数据价值

对数据敏感 数据分析,从名字中就能看出来,数据是数据分析师实际工作中的核心。 对数据敏感是对数据分析师的要求,也是数据分析师在日常工作中培养出来的独特技能,相对于其他岗位的员工,他们会更容易眼发现数据信息中…

SPC Control Chart Tools for .Net Crack

.Net 的 SPC 控制图工具 版本 3.1 具有集成表格支持、频率直方图、Cpk 和 Ppk 统计和缩放功能的 X-Bar R Chart 添加变量控制图(X-Bar R、X-Bar Sigma、Individual Range、Median Range、EWMA、MA、MAMR、MAMS 和 CuSum 图)、属性控制图(p-…

【第三章:链路层】

目录 知识框架No.0 引言No.1 功能零、基本功能概念一、封装成帧1、字符计数法2、字符填充法3、零比特填充法4、违规编码法 二、透明传输三、差错控制1、位错1.1、奇偶校验码1.2、循环冗余码CRC2、帧错2.1、海明码 四、流量控制1、停止-等待协议2、滑动窗口协议2.1、后退N帧协议…

Mybatis 学习笔记总结

1.概念 2.开发环境搭建 2.1 开发环境 2.2 创建Maven工程 <!--junit测试--><dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope>&l…

【P56】JMeter 响应时间图(Response Time Graph)

文章目录 一、响应时间图&#xff08;Response Time Graph&#xff09;参数说明二、准备工作三、测试计划设计 一、响应时间图&#xff08;Response Time Graph&#xff09;参数说明 可以以图形的方式查看和分析各事务和取样器的响应时间 使用场景&#xff1a;用于评估测试结…

ASEMI代理英飞凌TLE4250-2G汽车级线性稳压器

编辑-Z TLE4250-2G参数描述&#xff1a; 型号&#xff1a;TLE4250-2G 输入电压VI&#xff1a;45V 输出电压VQ&#xff1a;40V 结点温度Tj&#xff1a;-40~ 150℃ 储存温度Tstg&#xff1a;-50~150℃ 输出电容器要求CQ&#xff1a;1F 连接到焊接点RthJSP&#xff1a;30K…

简单使用feign

feign是一款非常好用的&#xff0c;能直接把我们省去端口号的编写&#xff0c; 下面直接开始&#xff0c;需要有一定的SpringCloud的基础&#xff0c;不然可能看不明白&#xff0c;我这里很多都是关键步骤。敬请原谅。 首先我们需要引入feign的依赖 <!-- 引入openfiegn-->…

开发技术-使用 JDB 调试

Java 调试器&#xff08;JDB&#xff09;是 JDK 内置的命令行工具。从调试的指令和命令行接口两方面看的话&#xff0c;JDB 至少从概念上是 GNU 调试器&#xff08;GDB&#xff0c;受 Unix DB 的影响&#xff09;的继承者。 示例&#xff1a; public class SimpleDebugging {p…

C++ String类(上篇)

绪论 放弃时间的人&#xff0c;时间也会放弃他。——莎士比亚 &#xff1b; 本篇章是关于string类内一些函数的介绍以及使用方法&#xff0c;都是我们编程必须掌握的基础&#xff01; ​ 全文共7000字左右. 话不多说安全带系好&#xff0c;发车啦&#xff08;建议电脑观看&…

点亮创意灯,用Firefly Beta绘制生动有趣的成语故事!

1、打开链接&#xff1a; Adobe Firefly 2、点击generate按钮。 3、输入需要生成的成语描述&#xff0c;英文的。 比如我们要画守株待兔&#xff1a; An ancient Chinese farmer, lying under a big tree, waiting for a rabbit to run over 4、点击fresh按钮。 5、下载其…

(MIT6.045)自动机、可计算性和复杂性-图灵机

有穷自动机(FA)对有限存储量设备是比较好的模型&#xff0c;下推自动机对无限存储设备是较好的模型&#xff08;但是其存储只能用后进先出的栈模式来使用。&#xff09;这两个模型过于局限&#xff0c;不能作为通用模型。 图灵机 和FA相似&#xff0c;但是图灵机有无限的存储…

中央商务区对区域空间结构的影响机制

中央商务区&#xff08;CBD&#xff09;是经济发展到一定阶段后的必然产物&#xff0c;它已经成为城市或国家最重要的经济增长驱动器。中央商务区的形成过程本身即是区域空间结构的变化过程&#xff0c;经济活动在空间上的集聚与分散形成各类产业的集聚体&#xff0c;区域经济活…