Скомпилировать модель в FMU в (с открытым исходным кодом и в пакетном режиме)

Давным-давно я использовал JModelica/pymodelica для компиляции моделей modelica в FMU с помощью простого скрипта Python. Теперь я узнал, что JModelica прекращена как проект с открытым исходным кодом. (Библиотеки для запуска FMU, похоже, были разделены на новые проекты с открытым исходным кодом, но я не нашел компилятора.)

Есть ли альтернатива, которая является современной, открытой и столь же простой?

Скрипт, который у меня есть в прошлом, следующий, и я надеюсь найти что-то, что позволит мне обновить его до Python3 и продолжить с того места, на котором я остановился много лет назад.

      #! /local/opt/modelica/bin/jm_python.sh
# Import the compiler function
from pymodelica import compile_fmu

import optparse
parser = optparse.OptionParser()
(options,args) = parser.parse_args()

# Specify Modelica model and model file (.mo or .mop)
mo_file = args[0]
model_name = mo_file.split(".")[0]
print mo_file, model_name

# Compile the model and save the return argument, which is the file name of the FMU
my_fmu = compile_fmu(model_name, mo_file, target='cs')

1 ответ

Осталась единственная альтернатива с открытым исходным кодом - OpenModelica. Конечно, JModelica все еще присутствует в некоторых форках github, но я не уверен, что он все еще обновляется и поддерживается.

Вы можете попробовать использовать OpenModelica и OMPython. https://www.openmodelica.org/doc/OpenModelicaUsersGuide/latest/ompython.html

См. Также:https://www.openmodelica.org/forum/default-topic/3121-compile-cosimulation-fmu-via-ompython-api-call

Я предполагаю, что для создания FMU это будет примерно так:

      from OMPython import OMCSessionZMQ
omc = OMCSessionZMQ()
model_path=omc.sendExpression("getInstallationDirectoryPath()") + "/share/doc/omc/testmodels/"
from OMPython import ModelicaSystem
mod=ModelicaSystem(model_path + "BouncingBall.mo","BouncingBall")
ffmu = mod.convertMo2Fmu()
Другие вопросы по тегам