基于模型的设计(MBD)在汽车ECU软件开发中的实践

news2025/1/8 6:08:48

基于模型的设计(Model-based Design,以下简称MBD)是一种围绕模型展开的项目开发方法,指对开发对象或者项目产品进行精确建模,项目的需求分析、功能设计、系统框架、代码生成、测试验证等开发环节都在模型的基础上展开。本文将讨论如何应用MBD实现汽车ECU软件的自主开发。

01.整车厂当下困境

整车厂对发动机控制的研究和原型设计从未停歇,但从未开发过产品化的大型ECU嵌入式控制系统和软件。

在传统的开发方式中,由于缺少对目标对象的建模,每一次项目推进都严重依赖于上阶段开发工作的完成情况,一旦前期设计存在缺陷,就会导致较高的后期修改与完善成本。此外,如果某项需求发生变化,开发团队就不得不重新编码和构建整个系统,从而导致项目延迟数日乃至数周。

除了流程上存在缺陷,传统开发没有中心模型,对前期的系统框架设计依赖度极高,需要拥有十分丰富开发经验的工程师提前布局。

在当前激烈的竞争环境下,汽车行业正在加速产业和技术更迭,整车厂对大型ECU嵌入式控制系统和软件的需求迫在眉睫,而使用传统的开发方式需要招聘、培训工程师来进行开发和测试工作,耗时较久,无法在计划时间内投入生产。MBD无疑是整车厂的最优选,但如何选择一套应用MBD、以模型为核心,且能处理从需求、设计、代码生成到测试的开发工具则成了难题。

02.如何应用MBD

汽车工程师团队在着手开发基于MBD的乘用车ECU软件时,首先需要根据系统需求构建架构模型,随后才能从中衍生设计出所需的仿真模型。

此类高级低保真度模型包含将要在ECU和被控对象(指发动机及其工作环境)中运行的控制软件。由于MBD的核心模型及基础应用形式为“模型控制器+执行器模型”,因此步骤上,团队首先需要通过在各类场景下进行高级模型仿真来执行初始系统和集成测试,用以验证模型是否正确表示了系统及系统是否对输入信号做出了预期内的适当响应;验证完成后,团队需要向模型中增加细节,并对照技术规范不断测试和验证系统级行为。如果系统规模过于庞大、结构也较为复杂,团队可安排工程师独立开发和测试各组件,但组件仍需在全系统仿真中频繁测试。

在针对系统及其工作环境建立起详细模型后,理想状态下,团队可基于控制算法模型自动生成代码来进行软件测试和验证。在硬件在环测试完成后,便可将所生成的代码下载至生产硬件,以便在实际车辆中进行测试。

03.ModelCoder

由迪捷软件自主研发的建模仿真与代码生成软件ModelCoder,便是完全以模型为核心、能够完美解决整车厂当前难题的国产软件。汽车工程师团队可利用ModelCoder开发和建立发动机控制算法模型,完成大量基于模型的设计和验证,并自动生成可信的ECU产品代码,实现汽车ECU软件的设计、开发、测试及验证。

▲ModelCoder界面图

应用ModelCoder带来的好处有:

1. 开发时间缩短。应用ModelCoder的全新ECU软件开发及验证将比应用传统开发方式的预期计划节省相当一部分时间。应用MBD,在ModelCoder工程师的辅助支持下,整车厂工程师的培训时间也将大大缩短。此外,ModelCoder生成的代码直接符合汽车工业软件可靠性联合会所制定的MISRA标准,能够显著降低整车厂为实现高质量软件所需的成本。

2. 集成测试时间缩短。由于开发阶段全过程都在ModelCoder中完成,因此可实现持续测试和验证,在集成测试前便可发现传统开发方式下可能存在的20%以上的缺陷。

3. 应用MBD,汽车工程师团队可借助Modelcoder实现模型复用,显著提升设计效率和质量,模型复用率超60%,ECU软件开发周期缩短50%。ModelCoder的具象化不仅体现在项目形态上,项目的代码生成及后续测试都可直接由模型生成和实现,加快产品功能迭代速度。

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

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

相关文章

如何用策略模式,优化你代码里的的if-else?

最近有一个学妹在跟我沟通如何有效的去避免代码中一长串的if else判断或者switch条件判断?针对更多的回答就是合理的去使用设计来规避这个问题。 在设计模式中,可以使用工厂模式或者策略模式来处理这类问题,之前已经分享了工厂模式&#xff…

Hadoop集群中HDFS的API测试案例以及MapReduce的多种提交Job方式案例

这两个案例默认是hadoop集群环境已经搭建好以及IDEA环境也已经配置好 1、HDFS客户端测试案例 1.1、pom依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www…

Java使用ftl模板文件生成Word,以及Word转换图片或Pdf工具类

Java使用ftl模板文件生成Word 一、写在前面 最近在项目中使用打印功能&#xff0c;发现这个功能我已经写过多次了&#xff0c;下面这个文章的发步日期在2020年&#xff0c;不得不感慨时间之快啊。 https://blog.csdn.net/weixin_43238452/article/details/109636200?spm1001…

this关键字,是如何把你难倒的?

作为一名实战前端工程师&#xff0c;在jq时代&#xff0c;是经常被this关键字难倒的。几年前每次我意识到程序出现问题的时候&#xff0c;都本能反应是自己的this没有绑定好&#xff0c;于是重新绑定一下&#xff0c;就能解决了。但是他确实一直为难着我。 转眼到了2022年底&a…

图解LeetCode——1780. 判断一个数字是否可以表示成三的幂的和(难度:中等)

一、题目 给你一个整数 n &#xff0c;如果你可以将 n 表示成若干个不同的三的幂之和&#xff0c;请你返回 true &#xff0c;否则请返回 false 。 对于一个整数 y &#xff0c;如果存在整数 x 满足 y 3^x &#xff0c;我们称这个整数 y 是三的幂。 二、示例 2.1> 示例…

SpringBoot面试杀手锏——自动配置原理

引言 不论在工作中&#xff0c;亦或是求职面试&#xff0c;Spring Boot已经成为我们必知必会的技能项。除了某些老旧的政府项目或金融项目持有观望态度外&#xff0c;如今的各行各业都在飞速的拥抱这个已经不是很新的Spring启动框架。 当然&#xff0c;作为Spring Boot的精髓…

凌恩客户文章|JCR 一区:多组学联合分析揭示PCOS真元凶

期刊&#xff1a;Journal of Ovarian Research 影响因子&#xff1a;5.506 发表时间&#xff1a;2022年10月 客户单位&#xff1a;汕头大学医学院第一附属医院鄞国书课题组 一、研究背景 多囊卵巢综合征(PCOS)是导致育龄妇女不孕的最常见内分泌疾病…

MyBatis二 MyBatis常见面试题

一 MyBatis是什么&#xff1f; MyBatis是一款优秀的持久层框架&#xff0c;一个半ORM &#xff08;对象关系映射&#xff09;框架&#xff0c;它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XM…

postman+newman+jenkins持续集成

今天为大家带来的是postmannewmanjenkins进行API接口测试的持续集成: 一. postman测试实战 postman测试API接口是通过JavaScript脚本完成测试中的功能, 在请求发起前后实现测试操作. 常用功能: 请求前脚本(pre-request scripts)设置请求前置操作如设置变量等 请求后在tests…

UE多实例云渲染之Nginx代理

Nginx的Https代理 我们实现UE像素流时大部分使用的是http协议&#xff0c;但是某些时候前端由于某些功能问题需要使用https的协议(如前端调用本地摄像头&#xff09;需要使用https协议。如果此时在内部使用http请求就会被block掉。其中一种简单的方案就是通过修改浏览器的安全…

SOLID设计原则

1. SRP单一职责原则 任何一个软件模块都应该有且仅有一个被修改的原因。 反例是一个类的三个方法给三个部门提供服务&#xff0c;而这三个方法有一些公共子方法&#xff0c;很有可能因为A部门的代码变更改动&#xff0c;导致B、C部门调用的方法出现意料之外的结果。 2. OCP开…

nginx请求转发webSocket

原由 1.我有一个socket服务&#xff0c;用ip访问是成功的&#xff0c;但是老板说用这个不行&#xff0c;要用nginx请求转发&#xff0c;转发内网地址到某个域名 2.但是我改成了指定域名后失败&#xff0c;因为我没有配置nginx.conf 3.接下来一起学习下&#xff0c;怎么在ngin…

华硕电脑怎么录屏?华硕电脑录屏功能在哪?简单实用教程来了

​有很多小伙伴对如何录制华硕电脑的屏幕知识和信息知之甚少。现在大家都想多了解一些关于华硕电脑怎么录屏的相关知识和信息。所以今天小编收集了一些关于如何录制华硕电脑屏幕的知识和信息&#xff0c;与大家分享。 华硕电脑怎么录屏方法一&#xff1a;使用Windows自带的录屏…

day45 PHP反序列化POP链构造魔术方法原生类

前言 #知识点&#xff1a; 1、什么是反序列化操作&#xff1f;-格式转换 2、为什么会出现安全漏洞&#xff1f;-魔术方法 3、反序列化漏洞如何发现&#xff1f; -对象逻辑 4、反序列化漏洞如何利用&#xff1f;-POP链构造 补充&#xff1a;反序列化利用大概分类三类 -魔…

重磅来袭!共600页,又一分牛逼的Python文档面世!

前言 本文是为了帮大家快速学习 Python 中知识点&#xff0c;这套资料涵盖了诸多学习内容&#xff1a;面试题&#xff0c;教材视频&#xff0c;实战资料&#xff0c;电子书籍。 相信可以帮助大家在最短的时间内&#xff0c;能达到事半功倍效果&#xff0c;用来复习也是非常不…

150行代码写个低配版WPS?:手把手教你实现+附完整源码

前言&#xff1a;通过一个简单实例来实现Java的GUI编程&#xff0c;对于新手较为友好&#xff0c;且有一定的实用性&#xff0c;正在学习Java的同学看过来&#xff01;&#xff01;包教包会&#xff0c;如有疑问欢迎私信询问&#xff01; 目录 实例展示 一、GUI编程基本概念 …

java面向对象----抽象类 接口

目录 抽象类与抽象方法 概念 抽象类应用 接 口 概念 接口的特点&#xff1a; 接口应用举例 Java 8中关于接口的改进 内部类 如何声明局部内部类 局部内部类的特点 匿名内部类 总结 抽象类与抽象方法 概念 随着继承层次中一个个新子类的定义&#xff0c;类变得越…

机器学习之多元线性回归

1、多元线性回归模型&#xff1a;定义&#xff1a;具有多个特征的线性回归模型 多元线性回归模型&#xff0c;见下图&#xff1a; 多元线性回归总结&#xff08;参数、模型、损失函数、梯度下降算法&#xff09;见下图&#xff1a;【注意&#xff1a;梯度下降算法每次都是同时…

Vue2中过滤器的用法详解

目录 一、过滤器的概念 二、过滤器的使用位置 三、过滤器的分类 1、全局过滤器 2、本地过滤器 四、过滤器应用实例 1、使用过滤器实现省略号 2、使用过滤器处理时间戳 五、Vue3中已废弃过滤器 过滤器是vue中的一个特性&#xff0c;作用是用于对文本进行格式化的作用。…

动态与静态获取元素

&#x1f335;知识点简介 静态获取&#xff08;querySelectorAll&#xff09;时&#xff0c;选出的所有元素的数组&#xff0c;不会随着文档操作而改变&#xff1b; 动态获取&#xff08;getElementById&#xff09;时&#xff0c;选出的所有元素的数组&#xff0c;会随着文档的…