分享

重新认识一下MBD:MBD的实际应用

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

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

  • MBD的基本应用形式

  • 利用MBD开发产品软件

  • 利用MBD进行产品功能测试

  • 利用MBD做快速原型开发

  • 利用MBD做项目管理

  • MBD应用总结

1  MBD的基本应用形式

前文提到,MBD的核心模型由“控制器模型 + 执行器模型”组成,这是MBD的基础应用形式。

实际的MBD项目中,控制器模型可以由实际的控制器(或原型控制器)代替,组成“实际控制器 + 执行器模型”的形式。

或者执行器模型由实际的开发产品替换,组成“控制器模型 + 实际执行器”的形式。

或者模型只用于仿真模型进行分析和生成代码,功能开发和调试都由实际的对象来实现,组成“实际控制器+ 实际执行器”的形式。

Tips:上述的四种形式均没有提到“运行环境”或“环境模型”,这是因为执行器的运行环境应当和执行器保持一致,即:执行器为模型,则运行环境也为模型;执行器为实际对象,则运行环境也为实际环境。

更进一步,实际对象和仿真模型可以根据需要,灵活地混合同步使用。这样可以实现由模型探索和设计软件框架、控制算法和产品功能,再由实际对象来验证和测试模型的实际效果。如下图所示:

图片

MBD的不同组合形式

实际中往往都是同时使用不同的组合形式,这里我总结了以下几点。

2  利用MBD开发产品软件

这是MBD最基本的功能,一般是“控制器模型 + 执行器模型”或“实际控制器 +执行器模型”或“实际控制器 +实际执行器”的形式。autoMBD开源的项目“基于MBD开发FOC电机控制算法”就属于这种应用。

使用MBD开发控制软件,控制器模型成为主要的设计对象,而执行器模型可以适当简化。

控制器模型的设计主要包含软件框架模型设计、状态机设计、算法设计等,包括底层驱动、控制算法、数据处理等都可以实现。

我在GitHub上公开的基于MBD的电机控制项目,详细地展示了如何使用MBD开发永磁无刷电机控制软件,下图是开发的控制器模型和执行器模型:

图片

基于MBD开发永磁无刷电机控制软件

利用MBD开发控制软件时,经常使用到模型在环(Model In the Loop,MIL)、软件在环(SoftwareIn the Loop,SIL)和处理器在环(Processor In the Loop,PIL)。

这些在环测试都有一个共同的特点:被控对象(执行器)都是非实时的仿真模型。它们之间的区别就在于控制器的形式不同

  • MIL:其控制器是仿真模型,在Simulink中运行。

  • SIL:其控制器是控制器仿真模型生成的代码编译产生的可执行文件(.exe文件),在Windows环境下运行。

  • PIL:PIL相比SIL更进一步,将控制器仿真模型生成的代码编译生成二进制文件,并下载到目标MCU中运行。

被控对象(执行器模型)可以在Simulink中搭建,也可以使用其他建模软件。

例如开发无人机,可以使用Unity 3D、SolidWorks等3D建模软件,创建无人机模型,通过与Simulink联合仿真的方式来设计和开发无人机的控制算法。

3  利用MBD进行产品功能测试

这种应用最常见的便是硬件在环测试(Hardware In the Loop,HIL),它的MBD形式是“实际控制器 + 执行器模型”。

HIL已经有了一定的市场规模,在汽车行业广泛被使用。HIL是将被控对象(即执行器模型)进行建模,有时候还需要对环境进行建模,下载到实时操作系统中。运行被控对象和环境模型的设备一般被称为实时仿真机。

图片

Speedgoat不同规格的实时仿真机

HIL的目的是要测试的是控制器在不同条件下的功能是否完善,是否能应对极端工况,故障率是多少,稳定性有多高,等等。这些测试在汽车行业中是必不可少的。

要注意的是,HIL中的实际控制器是功能设计和电气电路都相对完整的ECU(Electronic Control Unit,ECU);而PIL中的实际控制器仅仅只是MCU而已。

为什么要使用HIL呢?因为HIL中的被控对象往往是复杂且成本高昂的,使用实际对象进行测试还有可能具有一定的危险性。

例如:整车控制单元(Vehicle Control Unit,VCU)的测试,他的控制对象是一辆整车。如果待测试的VCU功能不完善,很可能对整车造成不可逆的破坏。还有测试员也不是赛车手,他很难做到驾驶整车实现漂移、急转弯等工况,要做这些测试也是很危险的。

所以搭建一个整车模型,可以很方便的在实时仿真器中跑各种极端工况,从而实现对VCU进行有效的测试,这样的模型一般复杂程度都非常高。

在“2 利用MBD开发产品软件”中提到的MIL、SIL和PIL也能在一定程度上做产品功能测试。它们用于测试时,其目的是不一样的,这里总结如下:

  • MIL:由控制器仿真模型和执行器仿真模型完成的测试,该测试用于确定算法的可行性,还可以用于梳理项目的开发框架,是系统层面上的设计工作;MIL也是一种很好的学习算法的方式。

  • SIL:由控制器仿真模型生成的代码和执行器仿真模型完成的测试,该测试用于确定自动生成的代码是否能够正常工作,一般用于对生成的代码有特殊需要的测试场景,例如代码覆盖率、定点数、功能安全等。

  • PIL:由实际的控制器和执行器仿真模型完成的测试,在PIL测试中,算法软件等部分在MCU中运行,而控制对象在PC中运行。MCU通过串口通信与PC相连,实现数据的传输和交换。

根据实际情况,选择MIL、SIL、PIL或HIL可以达到不同的测试目的。

HIL的市场化程度很高,相应的公司和解决方案有非常多,更多信息可以参考“重新认识一下MBD:MBD的市场情况”。

4 利用MBD做快速原型开发

快速控制原型(Rapid Control Prototype,RCP)也是MBD的经典应用,它的MBD形式可以是“控制器模型 + 实际执行器”或者“实际控制器+ 实际执行器”。

这两种形式中,控制器都被称为是原型控制器;这两种形式也对应两种不同的原型控制器:

  • 如果原型控制器的运算能力强大,通过Simulink Real-Time可以直接在原型控制器中运行Simulink模型,产生控制信号来控制实际的被控对象(原型执行器),这种形式是“控制器模型+ 实际执行器”。

  • 如果原型控制器的运算能力不强,则可以使用Simulink的自动代码生成功能,将算法模型生成C代码,再下载到原型控制器中运行,这种形式是“实际控制器+ 实际执行器”。

Tips:Simulink Real-Time可以认为是Simulink设计的实时操作系统,该操作系统可以直接运行Simulink模型,而不需要转化为C代码。

RCP一般用于验证算法的可行性,开发原型机,探索产品的系统框架和功能需求,为后期的产品设计提供理论支持和参考设计。

RCP可以避免繁琐的代码编写和调试过程,专注于算法开发,专注于产品的系统设计和功能设计,专注于执行器的开发和迭代。

相比于利用MBD开发软件,RCP更加侧重于产品执行器的功能设计。控制器只需要使用现有的原型控制器即可。

因此RCP适合体量较小、易于打样的产品。在RCP的项目中,原型控制器一般具有丰富的接口和强大的外设,方便快速实现算法,同时也易于算法的更新迭代;执行器是可以通过3D打印、标准零件等快速组装和实现的原型执行器。

举一个例子。开源的无人机飞控原型机Pixhawk4,它内置了很多飞控所需要的传感器和接口,可以帮助开发者快速实现简单的飞控算法,而飞控算法则可以通过建模来设计、实现和自动生成代码。控制器和执行器(带螺旋桨的电机)可以轻松地购买和组装。

将原型控制器Pixhawk4、基于模型设计生成的飞控算法和原型无人机(无人机架、电机、螺旋桨有机)等适当组装开发,便实现了无人机的RCP的开发,如下图所示:

图片

无人机飞控原型机Pixhawk4

有的原型控制器会提供丰富的模型库(硬件支持包),集成在Simulink中。结合“2 利用MBD开发产品软件”中提到的方法,可以快速地开发控制算法,并轻易地部署到原型控制器中。

Tips:要注意RCP和HIL的区别。HIL本质上是一种测试方法,而RCP是一种具有探索性质的产品设计方法,RCP也非常适合用来个人学习和DIY。


5  利用MBD做项目管理

我们比较熟知的是,MBD的控制器模型是可以直接生成代码的,实际上MBD还可以生成需求报告和测试报告。

在MATLAB中,通过Simulink Requirements和Simulink Test这两个工具就可以实现这样的功能,如下图所示:

图片

Simulink Requirements和Simulink Test工具

Simulink Requirements和Simulink Test这两个工具可以将项目管理中的需求文档和测试文档与MBD模型关联起来,做到模型围绕需求搭建,测试围绕模型测试,实现基于模型的文档管理和追踪。

使用MBD做项目管理,在实际中是比较少被使用的,我对这部分的应用也了解的不多。刘杰教授在他出版的《基于模型的设计——MCU篇》中,对基于模型的需求管理和追踪有系统的讲解,感兴趣的读者可以参考这本书。

6  MBD应用总结

在实践中,不同MBD应用看起来差异很多,但始终离不开四种最基本的形式,即:

  • 控制器模型 + 执行器模型

  • 实际控制器 + 执行器模型

  • 控制器模型 + 实际执行器

  • 实际控制器 + 实际执行器

这里对这四种基本形式的应用进行简单的总结:

图片

MBD不同形式的应用总结

除了上述的应用,还有基于模型的项目管理。MBD的这种应用相对较少,我也不太熟悉,感兴趣的读者可以自行查找相关技术文章。


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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多