首页 > 解决方案 > Simulink 模型中的 FMU 无法处理输入?

问题描述

我一直在研究一种将模型从 Simulink 导出到 FMU 的方法,当我们有一个不那么错误的版本时,我们将把它开源。我和一位同事终于得到了一个工作版本,并从一个 zip 文件中提取了我们的第一个 FMU。

事实证明,我们一定是在程序中做错了什么。我们的 FMU 工作正常,除了输入。所有输入似乎都不起作用。这已经过多次测试,例如不断退出,这是可行的,而且我还测试了由我们的其他非开源软件制成的工作 FMU,并且它们可以正常工作。我似乎无法找到他们与我们 FMU 的不同之处。

如果有人想要测试 FMU 的来源,这里是一个保管箱链接。该模型很简单,一个输入直接流向输出,一个输出从常数馈送。目前,我可以读取一个获得常量的输出,但不能读取输入。它始终为 0。dropbox 文件夹包括从模型生成的 zip 文件、model.slx 文件、生成的 FMU 以及包含 FMU 内所有内容的文件夹。我知道我们还没有包括 FMU 中的所有资源,但是当我们发现 FMU 的问题时,我会解决这个问题。源代码存在于 zip 中,因此没有遗漏任何内容。

如果任何有 FMI 经验的人以前遇到过这个问题,或者可能知道我们可能做错了什么,如果你能分享你的经验,我会非常感激。

标签: fmi

解决方案


我通过更改 FMUSDK fmuTemplate.c 文件来调用函数并处理我自己的输入和输出来解决我的问题。


推荐阅读