分享

重新认识一下MBD:MBD的基本介绍

 伊伊爸 2022-08-20 发布于湖北

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

什么是基于模型的设计

MBD的界限和范围

1  什么是基于模型的设计基于模型的设计(Model-Based Design,MBD)是一种围绕模型来展开的项目开发方法,其开发理念越来越受到关注。虽然,人的想象力是无穷的,但肉眼可见的模型往往更能让人理解和接受。简单的说,MBD就是对项目的开发对象或目标产品进行精确建模,项目的需求分析、功能设计、系统框架设计、代码生成、产品测试验证等开发环节,甚至项目流程管理、项目迭代开发管理、自动化文档管理等管理环节,部分或全部在所建模型的基础上展开的一种开发方式。在MBD开发中,模型是最终产品的高度数字化具现,而最终产品的主要组件或功能都基于搭建的模型进行设计和开发。

图片

基于模型的设计

作为对比,传统的开发方法是线性展开的。由于传统的开发中没有对开发对象进行建模,不能形成一个中心点,项目的每一次推进,必须保证前面阶段的开发工作已经验收完成。这种情况下,前期的设计缺陷如果没能及时发现,到了项目后期,其修复成本就会非常高。

图片

传统线性开发

此外,传统的开发方法由于没有中心模型,非常依赖前期的顶层设计和系统框架设计,这是抽象、不具体的任务,需要依赖以往的经验。

而MBD的具象化可不仅仅体现在产品形态上,产品的代码、产品的测试都是可以直接由模型生成和实现的,方便实现产品功能迭代。模型的具象化和可视化能大大提高开发者的效率。

2  MBD的界限和范围

对于初学者,弄清楚MBD的界限和范围(Scope)是有意义的,即要知道MBD能做什么,哪些不是MBD覆盖的内容。Tips:在项目中,Scope一词常用来描述一个事物能做什么,不能做什么,那些内容是属于它的,那些内容不属于它。但在中文语境没有一个含义接近的词语,因此这里的“界限和范围”使用的是Scope的直译。

从大的范围来说,MBD本质上属于嵌入式开发领域,但它不适用于所有的嵌入式项目。MBD适用于具有控制器(Controller)和执行器(Actuator)的嵌入式电控装置。

这些应用中一般具有特定的算法、信号处理、控制执行、通讯等组成要素。例如无人机、电机控制、电池管理系统、机器人等。如下图所示:

图片

MBD的界限和范围

Tips:不适合MBD的应用包括各种穿戴设备、影音设备等,因为它们并不适合建模,MBD也不适合桌面端的软件开发。

MBD支持的嵌入式软件开发,包括DSP、MCU、FPGA等不同的芯片。

由于作者能力有限,接触最多的是在MCU上的MBD开发,文章介绍的也以这种为主。不过不同芯片的MBD本质是相同的,它们更多的体现在工具链的使用是不同的。

MBD的核心——模型——便是对控制器和执行器进行的建模,有时候还包括执行器的运行环境,所建的模型可以称为控制器模型、执行器模型(被控对象模型)和环境模型。

控制器、执行器和运行环境之间,以及所建模型和被建模的实际对象之间的界限和范围,也需要有清晰的定义。

2.1 控制器、执行器和运行环境的界限

首先要弄清楚控制器和执行器的界限在哪里。

我认为可以以MCU为界限:在MCU中的所有操作都应属于控制器模型;在MCU以外的所有数字电路、功率电路、机械结构、电机等都应属于执行器模型。建模时可按照这个界限对控制器和执行器分别建模。

以基于MBD的电机控制开发为例,控制器模型包含ADC采样、信号处理、FOC算法等,执行器包含电源、逆变器、电机等。

控制器模型和执行器模型的作用是不一样的:前者搭建的是算法模型、软件框架模型等,它属于软件,可以生成代码。后者则是实际对象的数学模型(电机、整流电路、机械结构等),用于算法、功能的测试,是控制器的控制对象。

控制器模型和算法模型通过传感器信号和控制信号连接起来,如下图所示:

图片

控制器模型和执行器模型

控制器模型和执行器模型是相辅相成的,如果执行器增加、减少或改变了功能,控制器也会发生相应的改变。

相反,如果控制器中的算法得到了优化,也可以改进执行器的设计(例如改进电路、传感器的布置等)。

环境模型即执行器运行时所在的环境,是开发者不能控制的客观因素和变量。

一般情况下都可以不用考虑,但在一些特定的应用中,环境会影响控制器和执行器的设计,这时候就需要考虑搭建环境模型。

例如无人机,它的执行器包括电机、螺旋桨等,但环境因素也是影响飞控算法的重要因素,搭建模型时就需要考虑对环境建模。2.2 模型和实际对象的界限

其次要把握好仿真模型和实际对象之间的界限和范围。实际对象是具体的,仿真模型则是实际对象的数学描述,以电机为例:

图片

实际对象和仿真模型

控制器模型越准确,模型生成的代码在真正的MCU中运行时就越符合设计目标;执行器模型越准确,就可以对控制器算法、功能等进行更加全面的验证和测试。所以模型的准确性影响着MBD的实际效果。

但MBD不需要模型和实际对象保持完全一致,也不可能实现完全一致,模型所能覆盖的范围是实际对象的子集。

模型可以省略一些不重要的因素,保留核心功能、最能体现实际对象的特征进行建模。这样做是有意义的,它可以保证项目功能的开发以外,还能节约建模的时间。

例如,很多时候控制器模型中的ADC采样会被忽略,直接使用执行器模型返回的数据;在执行器模型中,往往也会采用简化的电机模型。

这种简化不会影响算法实现、软件框架或执行器的功能设计。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多