中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

  • 294查看
  • 0回复

[Simulink] MBD闲谈 第01期:认识一下MBD

[复制链接]


该用户从未签到

发表于 2-3-2024 09:52:18 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


全文约2020字,你将看到以下内容:


    MBD的基本概念

    MBD模型管理

    一些资源


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闲谈 第01期:认识一下MBDw1.jpg

MBD是怎么运作的 - From MathWorks

如果有了解过的人,可能更多看到的是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。

3 一些资源

我在研究生的时候就准备写一些关于MBD的文章,虽然一直在关注这项技术,也做过一些上手实操,但真正开始收集资料的时候,才发现MBD的相关内容是非常丰富的,我还需要更加全面系统的学习才能写出完备详细的技术文章。所以文章中难免有疏漏和错误,欢迎提出,一起交流学习。


快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 23-12-2024 03:31 , Processed in 0.221305 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.