0

我试图了解 get_fmu_state 方法如何联合仿真模式示例中的简单fmu上工作,例如使用 PyFMI(2.7.3)预先提供的 fmu 的弹跳球。我已经通过 miniconda 在 ubuntu-docker 上安装了它,并在收到错误时尝试执行以下命令。我知道这个 fmu 可能不支持该命令,但还有其他可能支持它的例子吗?

In [1]: from pyfmi import load_fmu

In [2]: fmu_model = load_fmu('/home/developer/miniconda3/envs/modelicagym/lib/ \
python3.8/site-packages/pyfmi/examples/files/FMUs/CS2.0/bouncingBall.fmu')

In [3]: fmu_model
Out [3]:<pyfmi.fmi.FMUModelCS2 at 0x55a515a1b180>

In [4]: fmu_model.get_fmu_state()
---------------------------------------------------------------------------
FMUException                              Traceback (most recent call last)
<ipython-input-9-580b849d2146> in <module>
----> 1 fmu_model.get_fmu_state()

src/pyfmi/fmi.pyx in pyfmi.fmi.FMUModelBase2.get_fmu_state()

FMUException: This FMU does not support get and set FMU-state

其余命令如 fmu_model.simulate()、fmu_model.initialize()、fmu_model.simualte() 可以正常工作,但 fmu_model.get_fmu_state() 没有。如果我在 ModelExchage 模式下使用 fmu,也会出现同样的错误。

4

1 回答 1

0

“获取 FMU 状态”功能的支持取决于创建 FMU 的导出工具。如果导出工具不支持此功能,那么恐怕导入工具(此处为 PyFMI)无能为力。

如果您需要此功能,则需要返回导出工具并确保它们包含此功能。

于 2020-08-23T19:34:30.830 回答