gpt4 book ai didi

python - 使用 OMPython 在 OpenModelica 中进行参数扫描

转载 作者:行者123 更新时间:2023-12-04 07:39:03 25 4
gpt4 key购买 nike

我正在尝试使用 OMPython 在 OpenModelica 中运行参数扫描。假设我有一个属于库 my_library 的 Modelica 模型 my_model.mo。该模型有两个参数:a 和 b。
我使用以下代码成功地运行了单个参数运行:

from OMPython import OMCSessionZMQ
omc = OMCSessionZMQ()
omc.sendExpression('loadModel(my_library)')
omc.sendExpression('simulate(my_library.my_model, simflags="-overrideFile=parameter_sweep.txt", stopTime=86400)')
其中文件 parameter_sweep.txt 是:
a=5
b=6
现在的问题是:如何运行多个参数运行?我可以在代码中再添加一行,其中使用了带有一组新参数值的新 txt 文件 (parameter_sweep1.txt):
from OMPython import OMCSessionZMQ
omc = OMCSessionZMQ()
omc.sendExpression('loadModel(my_library)')
omc.sendExpression('simulate(my_library.my_model, simflags="-overrideFile=parameter_sweep.txt", stopTime=86400)')
omc.sendExpression('simulate(my_library.my_model, simflags="-overrideFile=parameter_sweep1.txt", stopTime=86400)')
不过,这种方式恐怕是需要重新编译的。有没有办法进行多次参数运行并避免重新编译?

最佳答案

使用 buildModel命令而不是 simulate然后使用诸如 subprocess 之类的库在 Python 中手动启动该过程。 .该命令很简单:

["./my_library.my_model", "-overrideFile=parameter_sweep.txt"]
(如果你使用 Windows,我相信你也需要更新你的 PATH 环境变量,以便找到使用的 DLL。如果你使用 Linux,它就可以工作。)

关于python - 使用 OMPython 在 OpenModelica 中进行参数扫描,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67582518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com