基于模型的设计思想

基于模型的设计(Model-Based Design,简称MBD)是一种数学及可视化的方法,可以用来处理复杂控制系统、信号处理及通讯系统的设计。基于模型的设计可以用在运动控制、工业设计、航天以及车辆应用中。基于模型的设计也是嵌入式系统设计的方法论。

基于模型的设计类似于基于组件的图形用户界面开发,可极大地提高开发的效率,并保证程序的健壮性。

简介

基于模型的设计是一种较有效率的设计方式,在支援开发过程(V模型)的同时,在设计过程中建立了沟通用的共同框架。若用这种方式设计控制系统,开发会分为以下四步骤:

  • 为受控体建模。
  • 配合受控体,分析及合成适合的控制器。
  • 针对控制器及受控体进行仿真。
  • 整合上述的步骤来布署控制器。

基于模型的设计和传统的设计方法论有很大的不同。设计者在使用基于模型的设计时,不需使用复杂的架构以及繁多的软件代码,只需利用基于模型的设计来定义系统模型,再配合连续及离散的架构方块来产生进阶的机能特性。使用仿真工具建立的模型可以进行快速应用程序开发、软件测试和验证。不但强化了测试以及验证的程序。有些情形下,可以将这个新的设计方法配合硬件在环的仿真,测试系统的动态效应,不但速度更快,也比传统的设计方法论更加有效率。

基于模型设计的步骤

基于模型设计的主要步骤如下:

  1. 受控体建模:受控体建模可以以资料驱动(data-driven)为基础,也可以依照首要原则(first principle)建模。资料驱动的建模会配合系统识别或是类似的技术。系统识别会先取得系统在真实世界中的输入输出资料,并进行处理,再配合数学算法来识别系统的模型。在系统识别后,就可以针对受控体设计适合的控制器。首要原则驱动的建模是先找到受控体的统御方程式,再创建方块图模型来实现上述的统御方程式。实体建模(physical modeling)就是一种首要原则驱动的驱动建模方式,模型中会包括许多互相连结的方块,对应实际受控体中的各个元件。
  2. 控制器分析及合成:会使用步骤1得到的数学模型来确认模型的动态特性,再依这些特性设计符合特性的控制器。
  3. 离线的仿真及实时仿真:会分析动态系统在复杂时变输入下的反应特性。这可以将受授体的简易线性非时变模型和控制器一起进行仿真,也可以用受授体的非线性模型和控制器进行仿真。仿真有助于找到规格、需求以及建模时的错误,而不是在之后实际设计控制器时才发现。实时仿真可以用步骤2的控制器进行代码自动生成(automatically generating code)来达到。代码可以布署在特殊的实时原型电脑中,这个电脑可以执行程式并且控制受控体的运作。假如无法取得受控体的原型,或是配合原型的测试有危险性或是太过昂贵,可以配合受控体模型进行自动代码生成。之后可以将代码布署到另一台电脑上,这台电脑和执行控制体的电脑相连。因此可以实时的测试控制器,不过控制的不是实际的受控体,而是实时仿真的受控体模型。
  4. 布署控制器:理想上让步骤2的控制器进行代码自动生成,即可布署控制器。不过一开始时,控制器在实际系统上的性能会和仿真时的性能不同,此时可以用迭代除错方式,分析实际系统上的结果,依分析结果更新控制器模型。配合基于模型设计的工具,可以在统一化可视环境下,进行上述的迭代除错。

优点

基于模型的设计相较于传统开发方式的优点有:

  • 基于模型的设计提供一个共同的开发环境,有助于不同的开发团队之间的一般性沟通、资料分析以及系统验证。
  • 工程师可以在系统设计早期定位出错误并且修正错误,此时系统修改造成的时间冲击及财务影响都是最小的。
  • 设计可以复用,有助于提升机能及衍生系统的扩充能力。

工具

支持MBD开发的工具主要有:

  • Matlab/Simulink

参考链接

  1. 基于模型的设计,by wikipedia.
  2. Simulink代码生成C/C++,by 小二黑.
  3. 基于模型设计——电力电子的利器,by 陈老四.