0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

初识MBD及MBD模型管理

冬至子 来源:autoMBD 作者:autoMBD 2023-07-13 09:16 次阅读

1 初识MBD

基于模型的设计( Model-Based Design,MBD )是一种围绕模型搭建展开的一种项目开发方法。这种方法可以避免繁琐的代码编写和调试过程,可以极大的提高项目开发效率。并且从模型的角度入门汽车电子,对新手来说更加友好,学习容易,上手非常快。

网络中检索MBD相关信息,有很多相关的技术博客和帖子,但有很多老工程师并不看好MBD。在实际中,也是大公司大项目用得多,小公司或者小项目很少使用MBD开发方法。MBD应用最为广泛的领域应属汽车电子领域了,有很多相关的产品和工具链,以后会单独讲讲MBD的相关产品和公司。

还有一种很有意思的现象,那就是有的工程师使用的是MBD开发方法的一部分,比如使用HIL( Hardware In the Loop )进行项目功能测试,但代码编写和调试依然是人工编写。当然,严格来说HIL是可以从MBD独立出来的,使用HIL不意味着就一定是MBD。

还有一种较为常见的开发方式,叫做快速开发原型( Rapid Control Prototyping,RCP )。RCP和MBD刚好相反,HIL是将控制对象进行建模,下载到实时操作系统中,控制器使用的是实际的控制器(HIL测试后会成为产品的控制器);而RCP开发过程中,控制器是原型控制器,控制对象一般是实际受控对象(也可以是仿真对象),原型控制器和最终的产品是两个东西,所以RCP只能用于验证软件算法,达不到产品级的验证。

提到HIL,就不免联系到SIL( Simulation In the Loop )、PIL( Processor In the Loop )和MIL( Model In the Loop ),这三种在环测试就和MBD有较强的联系了。如果在项目中使用到了这四种测试方法(包括HIL)中的一种或多种,同时还使用到代码自动生成(Code Generation),那么就可以认为使用的是MBD。当然,严格的来说,MBD的内容非常丰富,这里指的是很简单的概念。

具体而言,这四种在环测试的作用和实际应用情况如下:

  • SIL:该测试用于确定自动生成的代码是否能够正常工作,如果目标代码需要进行定点处理,SIL将起到非常重要的作用。此外我,生成的代码甚至有的还能保证满足功能安全要求(例如ISO26262)。如果是只涉及到浮点运算,SIL和PIL的作用显得很近似,这种情况下就没有单独进行SIL的必要了;
  • PIL:该测试用于确定处理器是否能够满足算力要求和数据精度,但实际项目中,前期的芯片选型阶段就会充分考虑算力和精度,而且一些经验也能判断出处理器算力和精度是否满足要求;
  • MIL:该测试用于确定算法的可行性,实际上算法不可行也就没有项目的确立,MIL最大的作用还是梳理项目的开发框架,是系统层面上的设计工作,还可以对不熟悉的领域或者相关知识进行学习;
  • HIL:该测试用于确定控制器是否能正常工程,控制对象一般是仿真模型,但是是跑在实时操作系统中的。如果受控对象并不复杂,也可以用真实的受控对象进行HIL测试。

2 MBD模型管理

这里引用一下MathWorks在Managing Model-Based Design一文中的一张图片来说明MBD是怎么运作的:

图片

MBD是怎么运作的

如果有了解过的人,可能更多看到的是V型开发流程,关于V型开发流程以后细讲,这里主要在更高层面上讲一讲MBD是怎么运作的。

使用MBD方法开展项目开发,主要流程包含以下三点:

  • 输入:MBD的输入是需求(requirements or Specifications)和已有的或公开的研究成果(Research);
  • 模型迭代:这是MBD的核心,也是高效实现MBD的关键,模型迭代就涉及到上述的MIL、SIL、PIL、HIL和RCP,这些都不是必须的,根据项目的实际情况进行相应的测试即可;
  • 输出:即自动生成的代码、模型报告、测试报告,以及验证报告。

MBD有一个很显著的特点就是,可记录、可追踪的文本记录,因此需要专门的工具,例如Simulink Requirements工具(也有其他的一些第三方工具)。模型是基于需求创建,每一个需求都有对应的模型。同时在模型迭代中,都会生成相应的模型报告或者测试报告。因为所有的这些工作都是围绕模型展开的,所以被称为基于模型的设计。

以上这三点都包含了很丰富的内容,这里没有讲的很深入,因为如果只是文字描述的话,会很抽象。以后会结合实例,具体细致地讲各个环节应该做的工作。

实际上,从我的观点来看,MBD更像是一种项目管理方法,并不是开发方法。我们管理的对象是模型,对模型进行迭代和测试。而类似Simulink Requirements这样的工具也是一个管理工具。而在MBD之下,就是具体的开发方法了,即上述的MIL、HIL等。对工程师而言,更多使用到的是开发方法,所以提到MBD就和MIL、HIL这些等价起来。很多团队在实施MBD的时候,就不关心模型管理的问题,只是使用MIL、HIL等开发方法,这就可能导致最终的效果并没有很好,所以也就有老工程师不看好MBD。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16191

    浏览量

    177350
  • 汽车电子
    +关注

    关注

    3024

    文章

    7865

    浏览量

    166463
  • MBD
    MBD
    +关注

    关注

    0

    文章

    24

    浏览量

    8939
  • RCP
    RCP
    +关注

    关注

    0

    文章

    26

    浏览量

    9022
  • simulink仿真
    +关注

    关注

    0

    文章

    75

    浏览量

    8556
收藏 人收藏

    评论

    相关推荐

    MBD(基于模型设计)讲义 全英文

    一个关于MBD的讲义,不过是全英文的,主要是国内做这个方面的太少,资料都较少
    发表于 07-07 18:01

    基于模型的设计(MBD)的深入讨论

    讨论1:2016-6-14-基于模型的设计(MBD)_讨论1主要论述了MBD的自动生成代码的可用性,以及自动生成代买与手写代码的效率讨论2:2016-6-14-基于模型的设计(
    发表于 06-14 18:30

    MBD设计模式

    机器人开发设计MBD设计模式(机器人开发,控制系统开发)掌握基于模型设计的六轴机械臂控制系统的开发方法掌握六轴机械臂的知识和控制器的软硬件实现MBD设计模式(机器人开发,控制系统开发)MBD
    发表于 06-28 12:29

    使用MBD进行stm32开发

    MBD学习之路1——使用MBD进行stm32开发准备工作准备工作
    发表于 08-17 07:55

    MBD有哪几种设计模式?

    MBD有哪几种设计模式?
    发表于 10-13 06:35

    如何在MBD中实现DAC?

    我正在使用 NXP S32k148 工具箱,我想在我想使用数模转换器(即 DAC)的地方构建模型。那么我可以在这里使用哪个工具箱?或者如何在 MBD 中实现 DAC(数模转换器)。
    发表于 04-07 12:50

    如何在s32k mbd中使用计时器?

    我想在 s32k mbd 中使用计时器,我必须在其中计算将轴原始值转换为陀螺仪角度的时间。我如何在 mbd 中使用它?
    发表于 04-10 09:39

    基于MBD测试

    趁着还没发霉,把以前的知识在总结总结。本篇是基于MBD测试系列文章的第一篇,也不知道能写多少,且写且看吧。 01概述 在基于模型MBD)开发的软件 中经常会涉及到MIL/SIL/PIL和HIL测试
    的头像 发表于 10-23 11:25 2848次阅读
    基于<b class='flag-5'>MBD</b>测试

    MBD模型设计的CAN通信步骤和方法

    本篇笔记主要记录基于MBD模型设计的CAN通信步骤和方法。前期工具箱的安装不在本文档讨论范围内。
    的头像 发表于 01-20 12:00 1152次阅读
    <b class='flag-5'>MBD</b><b class='flag-5'>模型</b>设计的CAN通信步骤和方法

    MBD模型设计的PWM输出步骤和方法

    本篇笔记主要记录基于MBD模型设计的PWM输出步骤和方法。前期工具箱的安装不在本文档讨论范围内。
    的头像 发表于 01-20 14:48 1432次阅读
    <b class='flag-5'>MBD</b><b class='flag-5'>模型</b>设计的PWM输出步骤和方法

    基于MBD模型设计的CAN通信步骤和方法

    本篇笔记主要记录基于MBD模型设计的CAN通信步骤和方法。前期工具箱的安装不在本文档讨论范围内。
    的头像 发表于 04-20 14:18 901次阅读
    基于<b class='flag-5'>MBD</b><b class='flag-5'>模型</b>设计的CAN通信步骤和方法

    基于MBD模型设计的PWM输出步骤和方法

    本篇笔记主要记录基于MBD模型设计的PWM输出步骤和方法。前期工具箱的安装不在本文档讨论范围内。
    的头像 发表于 04-20 14:19 998次阅读
    基于<b class='flag-5'>MBD</b><b class='flag-5'>模型</b>设计的PWM输出步骤和方法

    MBD的界限和范围

    基于模型的设计(Model-Based Design,MBD)是一种围绕模型来展开的项目开发方法,其开发理念越来越受到关注。
    的头像 发表于 07-13 14:38 1392次阅读
    <b class='flag-5'>MBD</b>的界限和范围

    构建MBD仿真模型和状态机

    MBD(Model-Based Design,基于模型的设计)是通过模型生成代码的,所有我们有必要弄清楚模型仿真与实际应用之间的区别。
    的头像 发表于 07-14 16:15 1228次阅读
    构建<b class='flag-5'>MBD</b>仿真<b class='flag-5'>模型</b>和状态机

    SOLIDWORKS 2024新功能——MBD

    SOLIDWORKS MBD是大家比较熟悉的解决方案了,在2024版本MBD的功能也做了很棒的提升。下面由众联亿诚为大家简单介绍一下。
    的头像 发表于 02-02 15:13 650次阅读
    SOLIDWORKS 2024新功能——<b class='flag-5'>MBD</b>