电子说
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的内容非常丰富,这里指的是很简单的概念。
具体而言,这四种在环测试的作用和实际应用情况如下:
2 MBD模型管理
这里引用一下MathWorks在Managing Model-Based Design一文中的一张图片来说明MBD是怎么运作的:
MBD是怎么运作的
如果有了解过的人,可能更多看到的是V型开发流程,关于V型开发流程以后细讲,这里主要在更高层面上讲一讲MBD是怎么运作的。
使用MBD方法开展项目开发,主要流程包含以下三点:
MBD有一个很显著的特点就是,可记录、可追踪的文本记录,因此需要专门的工具,例如Simulink Requirements工具(也有其他的一些第三方工具)。模型是基于需求创建,每一个需求都有对应的模型。同时在模型迭代中,都会生成相应的模型报告或者测试报告。因为所有的这些工作都是围绕模型展开的,所以被称为基于模型的设计。
以上这三点都包含了很丰富的内容,这里没有讲的很深入,因为如果只是文字描述的话,会很抽象。以后会结合实例,具体细致地讲各个环节应该做的工作。
实际上,从我的观点来看,MBD更像是一种项目管理方法,并不是开发方法。我们管理的对象是模型,对模型进行迭代和测试。而类似Simulink Requirements这样的工具也是一个管理工具。而在MBD之下,就是具体的开发方法了,即上述的MIL、HIL等。对工程师而言,更多使用到的是开发方法,所以提到MBD就和MIL、HIL这些等价起来。很多团队在实施MBD的时候,就不关心模型管理的问题,只是使用MIL、HIL等开发方法,这就可能导致最终的效果并没有很好,所以也就有老工程师不看好MBD。
全部0条评论
快来发表一下你的评论吧 !