我正在尝试理解get_fmu_state方法是如何在一个简单的fmu in cosimulation模式示例上工作的,比如使用PyFMIs(2.7.3)预先提供的fmu的弹跳球。我已经在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,也会出现同样的错误。
发布于 2020-08-24 03:34:31
对“获取FMU状态”功能的支持取决于创建FMU的导出工具。如果导出工具不支持此功能,则导入工具(这里是PyFMI)恐怕无能为力。
如果您需要此功能,则需要返回到导出工具,并确保它们包含此功能。
https://stackoverflow.com/questions/63539250
复制相似问题