无法在pyfmi库中运行fmu.get_fmu_state()

时间:2020-08-22 17:42:08

标签: openmodelica fmi jmodelica pyfmi

我试图了解方法get_fmu_state在简单的fmu in cosimulation模式示例下如何工作,例如使用预先提供的fmu的PyFMIs(2.7.3)弹跳球。我已经通过ubuntu-docker上的miniconda安装了它,并在收到错误消息时尝试执行以下命令。我知道这个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,则会发生相同的错误。

1 个答案:

答案 0 :(得分:0)

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

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