我有一个用 OMEdit 制作的 OpenModelica 模型。为了得到一个具体的例子,我设计了以下内容:
现在我想在 Python 中运行模型。我可以使用 OMPython 来做到这一点。导入 OMPython 并加载文件后,我使用以下命令运行模拟:
result = OMPython.execute("simulate(myGain, numberOfIntervals=2, outputFormat=\"mat\")")
模拟现在运行,结果被写入文件。
现在我想运行相同的模型,但对常量 block 使用不同的参数。
我该怎么做?
由于参数已编译到模型中,因此应该无法更改它。所以我需要的是这样的模型:
是否可以从 Python 调用模型并将变量“a”设置为特定值?
使用命令 OMPython.execute("simulate(...)") 我可以指定一些环境变量,例如“numberOfIntervals”或“outputFormat”,但不能更多。
最佳答案
您可以向模拟命令发送更多标志。例如用于覆盖参数的 simflags。参见 https://openmodelica.org/index.php/forum/topic?id=1011了解一些细节。
您还可以使用 buildModel(...)
命令后跟 system("./ModelName -overrideFile ...")
来避免重新翻译和重新编译或使用一些次要的脚本并行参数扫描。如果您使用 Linux 或 OSX,调用 OMPython 来创建可执行文件然后自己调用它应该很容易。在 Windows 上,您需要设置一些环境变量才能使其按预期工作。
关于python - 如何使用 OMPython 在 Python 中调用 OpenModelica 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20966511/