全文约2795字,你将看到以下内容:
MBD建模软件
基于MBD的硬件支持包
基于MBD的HIL解决方案
基于MBD的快速原型开发解决方案
基于MBD的项目管理解决方案
MBD解决方案总结
面讲了四种关于MBD的应用方式,在当前市场上,已经有丰富的解决方案帮助开发者实现这些应用场景。
这里简单的从公司和解决方案的角度介绍MBD的市场情况。
首先是支持自动生成代码的软件,主要有MATLAB、LabVIEW等。
这里特别要提一下国产软件MWorks,该软件作为对标MATLAB的系统仿真软件,是国产软件在该领域的一个突破。
MWorks提出了基于模型的系统工程(Model-Based Systems Engineering,MBSE),和MBD是一脉相承的,读者可以对MWorks关注一波。
MATLAB和MWorks
MATLAB等软件适合控制算法设计、软件框架设计(Stateflow)、数字信号处理仿真等,可以实现自动代码生成,包括控制器模型和执行器模型都可以实现。
不过执行器模型还可以用其他的建模软件,例如ANSYS、SolidWorks、Unity 3D、ADAMS等等。
这些软件可以搭建更加直观的3D模型,还能做运动学仿真,同时最重要的可以实现与MATLAB的联合仿真。
执行器建模软件
通过联合仿真,控制器模型可以在MATLAB中实现(也能生成代码),执行器模型使用更适合实际对象建模的软件,从而实现更加复杂的场景、更加精确的对象模型。
2 基于MBD的硬件支持包
MBD也受到各家芯片厂商的重视和追捧,主流的芯片厂商都开发了适用于自家芯片的MBD硬件支持包。
硬件支持包(Hardware Support Package)有一个特点,它高度依赖芯片的设计,所以每一款芯片都需要专门的硬件支持包,不同厂商的硬件支持包也互不通用。
硬件支持包会将芯片的各种外设封装成模块,使用的时候和Simulink中的其他模块没有什么区别。
通过这些模块,可以实现对芯片外设的配置和控制。硬件支持包一般用来解决底层驱动难以集成的问题(可参考《MBD概述 第02期:MBD的“禁区”——底层驱动》)。
使用硬件支持包可以实现软件算法、系统框架、底层驱动等全部的代码都由模型来生成,而不需要底层驱动的集成过程。
以NXP的硬件支持包MBDT(Model-Based Design Toolbox)为例,在MATLAB中安装好后,就可以在Simulink模型库中找到芯片相关的模型:
NXP的硬件支持包——MBDT
MATLAB中的硬件支持包
这里列出部分我收集到的,提供了硬件支持包的芯片厂商:
MCU厂商:恩智浦(NXP)、德州仪器(TI)、意法半导体(ST)、瑞萨(Renesas)、英飞凌(Infineon)、微芯半导体(Microchip)。
FPGA厂商:赛灵思(Xilinx)。
其他厂商:树莓派(Raspberry Pi)、Arduino、英特尔(Intel)、英伟达(NVIDIA)。
Tips:还有很多其他厂商这里没有列出来,以上这些厂商都是在MATLAB的附加功能(Add-Ons)中发布了相关硬件支持包的厂商。
autoMBD会以NXP的硬件支持包MBDT为重点,详细向读者介绍和展示MBD硬件支持包的使用方法。
autoMBD目前已经开源了基于MBDT支持包开发的永磁无刷电机控制算法模型,相关链接可以在公众号或“关于autoMBD”中找到。
3 基于MBD的HIL解决方案
HIL是MBD发展最为成熟的应用场景,它已经有了属于自己的技术体系和技术规范,几乎可以把HIL和MBD当作两个不同的技术区别看待了。由于HIL相关技术的成熟,已经催生了一个专门的岗位——HIL测试工程师。
HIL测试解决方案供应商主要有:
国际厂商:dSPACE、NI(National Instruments)、ETAS、IPG Automotive
国内厂商:意昂神州、经纬恒润、上海科梁
NI和dSPACE的HIL硬件平台
在实际中,为了适应各种测试设备、测试条件,以及便于数据采集和分析,HIL会花费大量的成本在“如何测试”上,建模只是其中的一个环节,甚至都不是主要环节。
但是HIL和MBD的思想是一致的,即通过创建模型,并围绕模型达到测试产品的目的。
MBD和HIL的目的是不一样的:MBD是为了分析和设计产品的系统、软件、功能;而HIL是测试和验证产品的方法,由于其成熟化,已经有了标准的规范和流程。
HIL还有一个特征——贵。一个完整的HIL解决方案(包括软件和硬件),价格从几十万到几百万的都很常见。这也预示着它不是普通人能玩的“玩具”,HIL面向的主要是汽车主机厂等企业,很多高校实验室也会基于HIL搭建试验平台。
作者不是HIL的专家,只能大概介绍一下HIL。HIL还涉及到很多非MBD的技术和内容,不能将MBD和HIL混为一谈。要想入门HIL,只学习MBD也是远不够的。
4 基于MBD的快速原型开发解决方案
市场上关于快速控制原型开发(RCP)的解决方案也比较丰富。从V型开发流程来看,RCP和HIL分别“V”的左侧和右侧:即RCP负责设计产品,HIL负责测试产品。
所以HIL的供应商(NI、dSPACE等)一般都会提供基于MBD的快速原型开发解决方案,组成完整的V型开发流程(详细的V流程介绍可以参考作者的其他文章)。
V型开发流程
不过这里要介绍的是专门设计RCP的公司——Speedgoat。Speedgoat有什么特殊的呢?它是唯一一家经过MATLAB认证的硬件公司,所以Speedgoat的产品和MATLAB/Simulink的兼容性和一致性做得比其他解决方案要好。
相比于HIL的解决方案,RCP的硬件要便宜一些,不过售价也要几千到几万块钱。
RPC的解决方案一般会提供类似MCU硬件支持包的模型库,这些模型库可以方便地实现各种算法,或者调用原型控制器的各种接口。
有的原型控制器中运行的是Simulink Real Time仿真模型,它不能直接控制被控对象(执行器),需要特定的通讯协议和IO采集板卡来传递和交换数据。
有的原型控制具有特定功能的接口和模块,适用于特定的场合,例如专用于电机控制算法开发的原型控制器。
这类原型控制器的通用性可能会差一些,但专用功能会更加强悍,适用于特定的开发场景。
研旭和SpeedgoatRCP解决方案
其实国内还有很多不太知名的小厂在开发RCP的解决方案,例如研旭、MangoTree等。感兴趣的可以去了解一下这些小众的RCP供应商。
5 基于MBD的项目管理解决方案
这种解决方案我了解到的没有很多,我知道的只有MATLAB有这样的解决方案提出,就是SimulinkRequirements和Simulink Test这两个工具。
上文中那些大型的HIL供应商可能也有类似的方案,感兴趣的可以自行了解。
Tips:我有试用过这两个工具,可能因为没有实际的项目,只是上手,体验很“苍白”,功能都用了一遍,但又不知道这些功能到底该怎么用。由于对这种MBD解决方案不是很了解,也就不在这里大放厥词了。
6 MBD解决方案总结
关于MBD的解决方案,可以总结以下几点:
首先,支持MBD的建模软件不多,影响最大的是MATLAB/Simulink,其开发公司MathWorks本身也是MBD技术的推动者。NI的LabVIEW也有广泛的应用,国产建模软件有MWorks。此外,很多可以实现动力学仿真的三维建模软件(Unity 3D、ADAMS),通过和算法建模软件联合仿真,也能用于MBD开发。
这里我想强调一下第三点,我认为这种基于芯片开发商硬件支持包的MBD解决方案,今后有巨大的发展潜力。
对于大多数的个人来说,甚至小的开发团队,使用硬件支持包的MBD开发方式是最方便、也是成本最低的。autoMBD主要也围绕这种MBD开发方式,分享相关技术文章。
联系客服