python - 如何使用 OMPython 在 Python 中调用 OpenModelica 模型?

标签 python modelica openmodelica

我有一个用 OMEdit 制作的 OpenModelica 模型。为了得到一个具体的例子,我设计了以下内容:

OpenModelica Model from OMEdit called myGain

现在我想在 Python 中运行模型。我可以使用 OMPython 来做到这一点。导入 OMPython 并加载文件后,我使用以下命令运行模拟:

result = OMPython.execute("simulate(myGain, numberOfIntervals=2, outputFormat=\"mat\")")

模拟现在运行,结果被写入文件。

现在我想运行相同的模型,但对常量 block 使用不同的参数。

我该怎么做?

由于参数已编译到模型中,因此应该无法更改它。所以我需要的是这样的模型:

myGain with a variable as parameter

是否可以从 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/

相关文章:

libraries - 如何在新包中使用现有库中的现有函数(数学)?

compiler-errors - Modelica.Fluid.Valves.Valve损坏的模型无法压缩?接收错误 “Function Utilities.regRoot2 not found in scope <X>”

modelica - Openmodelica 是否会扩充方程以获得确定的系统?

modelica - 将外部生成的 C 代码嵌入 OpenModelica 模型中

Python os.forkpty 为什么我不能让它工作

connector - 实现非常简单的质量流量源时遇到问题

python - 如何在 python 中使用复杂的 SQL 脚本

modelica - 如何在 Modelica 中表示非数字

python - 这种链式比较真的可以像 PyCharm 声称的那样简化吗?

python - 将 Mezzanine 集成到现有 Django 项目中