人在仿真软件万博1manbetx

万博1manbetxSimulink &基于模型的设计

万博1manbetxSimulink和功能模型接口标准

今天,我想介绍一下目前的支持状态万博1manbetx功能模型单元在仿真软件(FMU万博1manbetx)。

背景

从FMI标准网站来看,FMI是:

功能模型接口(FMI)是一个独立于工具的标准,使用xml文件和编译的c代码的组合,支持模型交换和动态模型的联合仿真。万博1manbetx

这个标准在过去几年中越来越受欢迎,我们在Simulink中添加了对FMUs导入和导出的支持。万博1manbetx万博1manbetx

免责声明:FMI标准是Simulink和其他工具之间进行联合仿真的众多选项之一。万博1manbetx与大多数标准一样,它也有一组约束条件。如果你的需求不符合这些限制条件,你想要更多的灵活性,我建议你写一个S-Function,就像我在这篇文章中描述的:联合仿真的外部应用程序通信.使用S-Function,你可以完全控制联合模拟界面。

FMU进口

在R2017b,FMU阻止了。该模块支持FMI标准1万博1manbetx.0和2.0,在联合仿真模式(其中FMU包含它自己的本地求解器)和模型交换模式(其中FMU状态由Simulink求解器集成)。万博1manbetx

FMU块

我建议大家看看FMU进口一节来开始。

FMU进口增强

在R2018a中,我们对FMU块添加了两个显著增强。第一个是数值补偿

联合模拟FMUs通常表示连续现象,但它们的界面必须是离散的,这可能会带来数值误差。为了减少这些误差,数值补偿可以有所帮助。当一个端口启用了数值补偿,你会看到下面的图标旁边:

数值补偿

对FMU块的第二个增强是它现在可以在不同的内核上运行.可以想象,如果正确地进行组件化,可以显著提高性能。

需要注意的是,这两个特性也可以用于手写的C-Mex S-Functions。如果您想为第三方工具编写一个联合模拟接口,而不需要通过FMU标准,请记住这一点!

将模型导出为工具耦合的FMU

在R2018b中,我们增加了另一个方向的万博1manbetx支持。现在可以将模型导出为工具耦合的FMU并将其包含在其他工具中。

首先,您的Simulink模型万博1manbetx必须位于Simulink项目中。在共享菜单中,你会注意到一个新的FMU条目:

分享FMU

注意,应该配置Simulin万博1manbetxk项目来加载和放置模型需要的所有东西。这通常是通过项目完成的启动任务

使用导出的工具耦合FMU

要使用FMU,您需要一个专用的MATLAB会话。为此,你有两个选择。

第一种选择是手动启动MATLAB并执行shareMATLABForFMUCoSim.当使用FMU的其他工具开始执行时,您应该看到Simulink项目和模型打开并启动。万博1manbetx

第二种选择是从操作系统启动一个专用的MATLAB会话,以便在后台运行。在Windows操作系统上,您可以从DOS提示符执行批处理文件,根据需要启动尽可能多的专用MATLAB会话。看到的文档获取此批处理文件的位置和语法。

调试技巧

在Simulink中导入FMU之前,我建议通过万博1manbetxFMU合规检查,以确保FMU有效。

如果您在使用另一个工具中从Simulink导出的FMU时遇到问题,我建议首先尝试使用FMU import万博1manbetx块在单独的MATLAB会话中导入它。在块中,打开调试以获得尽可能多的信息:

调试FMU

如果您选择将调试日志发送到“Display”,如上图所示,信息将显示在Simulink诊断查看器中。万博1manbetx

现在轮到你了

您是否使用FMU技术与不同的工具进行联合模拟?请在下面的评论中告诉我们。

|

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。