来自 Simulink 模型的 FMU 无法处理输入?

FMU from Simulink model can't handle inputs?

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

事实证明,我们一定是在程序中做错了什么。我们的 FMU 工作正常,除了输入。 None 的输入似乎有效。这已经过多次测试,比如不断进行输出,这很有效,而且我还测试了由我们其他非开源软件制作的工作 FMU,它们可以工作。我只是找不到他们的 FMU 和我们的 FMU 有什么不同。

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

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

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