什么是基于模型设计(MBD)?

news2024/12/23 20:28:23

MBD(Model based Design)是什么?
随着嵌入式行业的快速发展,MBD作为解决专家紧缺、国内解决方案匮乏的新软件开发方式备受关注。 MBD是一种通过建模自动生成代码的(Auto-generation Code)开发方式。 可以说它与如何用传统的C/C++等计算机语言编写程序有很大的不同。

MBD 还允许工程师模拟和验证在开发过程早期的设计。 从模型自动生成结构化代码避免了由于手动编码而导致的错误。 通过仿真验证您的设计并使其实现自动化,可以确保您的整个系统在连接到嵌入式系统时将按预期运行。

通过想象著名的游戏模拟城市更容易理解 MBD。 为每个功能选择一个图形(模型),绘制(设计),并通过模拟(执行)检查结果。 如果执行结果不符合预期,则重复通过重新绘制模型来检查结果的过程。 所有这些都在 PC 上完成,在连接到真实系统之前检测和修复可能的错误,效率非常快。
<图1> Model Based Design循环程序
<图1> Model Based Design循环程序
MBD的优势
1、在系统开发的各个阶段不断的测试和验证,可以降低冗余实施的成本。
2. 系统算法的测试可以在建模和仿真阶段进行。
3. 利用已经设计好的功能模型。
4、可以降低实施阶段所需的成本(人力、时间)。
MBD的使用
基于模型的设计 (MBD) 使用最多的领域是汽车领域。 以汽车ECU开发为中心提出了基于模型设计的概念,许多汽车控制器正在扩展到基于MBD的SW开发。 因此,基于 MBD 的 SW 验证需求呈上升趋势,SureSoft 基于 ISO 26262 为基于 MBD 的 SW 提供静态和动态验证服务。

ISO 26262和MBD的关系
汽车领域功能安全的国际标准 ISO 26262 第 6 部分“软件级别的产品开发”中关于MBD 领域的验证。
ISO 26262 V模型和单元/集成测试中的动态/静态测试ISO 26262 V模型和单元/集成测试中的动态/静态测试
在这里插入图片描述
另一方面,MBD 的动态验证建议在单元/集成阶段执行基于需求和接口的验证,而不考虑代码或模型。

MBD验证工具
SureSoftTech 为模型的静态和动态测试开发并提供了各种测试工具。

1.模型静态验证工具 -Model Inspector
Model Inspector 支持 MISRA、Matworks 和 dSPACE 建模指南,并提供 SureSofttech 自己的建模指南。 它是一个模型静态验证自动化解决方案,根据这些准则对模型进行静态验证,检测违反规则(准则)的项目,分析质量指标,并自动生成报告。

2.模型动态验证工具-Controller Tester
用于执行基于自动代码的模型动态验证的工具 Controller Tester 是 SureSofttech 的自动化解决方案,可为在各种环境中开发的软件执行单元/集成验证。


MBD的未来
随着基于 MBD 的软件开发在 IT 行业的频率逐渐增加,模型验证过程正成为一个重要的部分。 特别是在汽车领域,在结构复杂的模型中,安全性很重要,定义了功能安全的国际标准 ISO 26262,以指定静态验证(例如检查模型是否符合准则)和动态验证(例如模型)模拟。
目前,SureSoft 已经建立了模型的静态/动态验证流程,并正在积极与 OEM 公司进行验证活动。 此外,SureSoft 还开发了测试自动化工具(MI、CT),以降低模型验证成本并提供高效的缺陷检测服务。

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

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

相关文章

CANoe-仿真总线上的红蓝线、“CANoe DEMO“ license下的软件限制

1、仿真总线上的红蓝线 最近有人问我一个问题,就是Simulation Setup界面下的仿真网络里,有两条线:红线、蓝线。它们表示什么意思呢? 有人可能首先想到:会不会是代表CAN总线的两条物理连线? 那LIN网络呢?LIN网络属于单条线,它在仿真网络里应该显示一条线咯? LIN总线也…

ThreadLocal 详解

ThreadLocal 详解 1. ThreadLocal简介 1.1 官方介绍 /*** This class provides thread-local variables. These variables differ from* their normal counterparts in that each thread that accesses one (via its* {code get} or {code set} method) has its own, indep…

【go语言http2.0代码实现】

go语言之http2.0Serverclient之前主要说的是基于http1.1的。然后因为http1.1存在的局限性&#xff0c;现在http2.0越来越流行&#xff0c;这里来根据go的源码来分析一下http2.0的实现。首先需要注意的是http2.0是在https的基础之上&#xff0c;因此推荐有https的基础或者看前面…

如何在Microsoft Teams中发布作业

之前我们介绍了在Microsoft Teams中收发批改作业的基础使用方法。今天我们会在“发布作业”这个方面上进行详细介绍。 首先我们进入Teams的“作业”点击“创建”。 选择“作业”。 可以通过“附加”的形式发布已创建的作业文件。 可以通过选择OneDrive的形式来选取里面的文件发…

BOSS直聘依然面临监管和估值过高的风险

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 BOSS直聘是中国重新开放和经济复苏的受益者 由于中国已经全面放开&#xff0c;所以&#xff0c;全球各地的分析师们正在上调对中国2023年经济增长的预测。 比如CNBC的文章就提到摩根士丹利&#xff08;MS&#xff09;的经…

Pandas 数据结构 - Series

前言Pandas Series 类似表格中的一个列&#xff08;column&#xff09;&#xff0c;类似于一维数组&#xff0c;可以保存任何数据类型。Series 由索引&#xff08;index&#xff09;和列组成&#xff0c;函数如下&#xff1a;pandas.Series( data, index, dtype, name, copy)参…

基于springboot,vue电影院售票系统

开发工具&#xff1a;IDEA服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8项目构建&#xff1a;maven数据库&#xff1a;mysql5.7系统用户前台和管理后台两部分&#xff0c;项目采用前后端分离前端技术&#xff1a;vue elementUI服务端技术&#xff1a;springbootmybatis项目功…

Java 线程的几种状态及其切换的条件

1.线程状态及其含义2.状态之间切换的条件1.线程状态及其含义 NEW(初始化): 表示创建了Thread对象,但是还没有调用start (也就是系统内核还是没有创建对应的PCB) RUNNABLE(运行): 表示可运行的.线程创建后,调用了start方法,等待CPU的调度或者正在CPU中运行. BLOCKED(阻塞): 表…

【白皮书】PROFIBUS网络诊断

PROFIBUS标准已有30多年的历史&#xff0c;如今已是一种成熟的数字现场总线技术。PROFIBUS通常用于工厂和过程自动化行业&#xff0c;也可用于食品、饮料或制药等混合行业。此外&#xff0c;其还适用于楼宇自动化和轨道交通等领域。可见&#xff0c;PROFIBUS是一种可服务于这些…

华为OD机试 - 信号发射和接收

题目描述 有一个二维的天线矩阵,每根天线可以向其他天线发射信号,也能接收其他天线的信号,为了简化起见,我们约定每根天线只能向东和向南发射信号,换言之,每根天线只能接收东向或南向的信号。 每根天线有自己的高度anth,每根天线的高度存储在一个二维数组中,各个天线…

第三方美颜sdk人脸识别的流程以及代码分析

小编曾经多次提到过人脸检测和人脸是被技术&#xff0c;那么这些算法在第三方美颜sdk中有用吗&#xff1f;答案是肯定的&#xff0c;不止有用&#xff0c;而且还非常重要。我们可以将人脸识别算法分为基础层算法与应用层算法&#xff0c;开头提到的人脸检测&#xff0c;实际上是…

Python程序设计-第1章Python程序基础

第1章Python程序基础一.预习笔记 1.1 Python简介&#xff1a; Python是一种面向对象的解释型计算机程序设计语言&#xff0c;由荷兰人Guido Van Rossum于1989年发明。Python的第一个公开发行版于1991年发行。 1.2 Python开发环境搭建&#xff1a; python解释器的安装&#…

2017 hypernetworks 笔记

HYPERNETWORKS 这篇文章来自谷歌的一篇文章 Introduction 这篇文章中提出了一种方法&#xff1a;使用一个小网络&#xff08;hypernetwork&#xff09;&#xff0c;小网络的作用是给一个larger network&#xff08;main network&#xff09;来生成权重&#xff0c;这个main ne…

结构型模式

1.代理模式 提供对象的替代品或其占位符。 代理控制着对于原对象的访问&#xff0c; 并允许在将请求提交给对象前后进行一些处理结构 抽象主题类&#xff1a;通过接口或抽象类声明真实主题和代理对象实现的业务方法真实主题类&#xff1a;实现抽象主题中的具体业务&#xff0c…

小程序API

小程序APIapi介绍api类型示例小程序api-网络请求示例合法域名npm基础应用核心步骤npm下载vant-weapp组件库核心步骤api介绍 小程序开发中&#xff0c;会使用到很多内置的功能&#xff0c;这些功能都被封装到小程序的api中了。比如 弹出提示框发送网络请求等上传文件、下载文件…

centos的官网下载和vm16虚拟机安装centos8【保姆级教程图解】

centos8的官网下载和vm16虚拟机安装centos8【保姆级图解】centos下载vm虚拟机安装centos可能出现的问题vcpu-0centos下载 centos官网&#xff1a;https://www.centos.org/ 进入官网后&#xff0c;点击Download 选择 Centos Stream 8 x86_64,并且点击进入 然后会出现国内的…

穿越寒冬 向新而行 | 智和信通2022年度年终总结大会圆满落幕

岁序更迭&#xff0c;新程再启&#xff0c;2022年在挑战与成就中谢幕。日迈月征&#xff0c;朝暮轮转&#xff0c;2023年在希望中启航。2023年1月13日&#xff0c;北京智和信通技术有限公司&#xff08;以下简称“智和信通”&#xff09;召开2022年度年终总结大会。会议全面总结…

Tp5 通过crontab 执行定时任务

声明&#xff1a;此处为ThInkCmf 为例&#xff1a;在主题中的command 中新建php文件如图在PHP文件中设置脚本名称及注释&#xff0c;并编写业务逻辑。protected $output ;/*** 作者&#xff1a;执着* 说明&#xff1a;定义脚本名称及添加注释* param setName:定义脚本名称* pa…

【Python百日进阶-数据分析】Day227 - plotly的子图

文章目录一、Plotly 图形工厂子图1.1 垂直图形工厂图表1.2 水平表格和图表1.3 垂直表格和图表二、表格和图表子图三、地理子图四、混合子图和 Plotly Express一、Plotly 图形工厂子图 Plotly 的 Python API 包含一个图形工厂模块&#xff0c;其中包含许多包装函数&#xff0c;…

可执行文件的装载

装载方式回顾一下操作系统的知识&#xff0c;程序执行的时候需要的指令和数级都必须在内存中时&#xff0c;程序才能正常运行&#xff0c;最简单的方式就是将指令和数级全部加载到内存中&#xff0c;这样肯定可以顺利执行&#xff0c;但这样的方式对内存大小来说是一个考验。因…