来自 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 文件来调用函数并改为处理我自己的输入和输出来解决我的问题。
我一直在研究一种将模型从 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 文件来调用函数并改为处理我自己的输入和输出来解决我的问题。