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采样会被忽略,直接使用执行器模型返回的数据;在执行器模型中,往往也会采用简化的电机模型。
这种简化不会影响算法实现、软件框架或执行器的功能设计。
-
控制器
+关注
关注
112文章
16191浏览量
177350 -
电池管理系统
+关注
关注
41文章
495浏览量
33298 -
信号处理器
+关注
关注
1文章
251浏览量
25249 -
MBD
+关注
关注
0文章
24浏览量
8939 -
FOC算法
+关注
关注
1文章
16浏览量
9655
发布评论请先 登录
相关推荐
评论