Cómo editar parámetros de un modelo de Modelica con la interfaz OMPython o Python CLI
Quiero editar los parámetros del modelo Modelica en la interfaz de línea de comandos de Python, pero no sé cómo encontrar el método correcto para hacerlo.
Código del modelo Modelica:
model Syslam_Q5
HePackage.Components.Hlam hlam(
UCfile=
"C:/Users/Pikachu/Docs/i_v2/H50.txt",
A_HS_mod1 = 0.0786,
CSize_flag=false,
A_HS_mod2 = 0.0914,
A_HS_mod3 = 0.0223,
A_HS_mod4 = 0.0245)
Código en Python:
from OMPython import OMCSessionZMQ
omc = OMCSessionZMQ()
cmds = [
'loadFile("HePackage.mo")',
#'removeElementModifiers(HePackage.Systems.Syslam_Q5, "component", false)',
#'setElementModifierValue(HePackage.Systems.Syslam_Q5, HePackage.Components.Hlam, hlam.UCfile = C:/Users/Pikachu/Docs/i_v2/H100.txt)',
#'setParameterValue(HePackage.Systems.Syslam_Q5, hlam.UCfile, $Code(=C:/Users/Pikachu/Docs/i_v2/H100.txt))',
'saveModel("example_edit.mo", Example)',
]
for cmd in cmds:
answer = omc.sendExpression(cmd)
print(cmd, ':', answer)
En una carpeta tengo alrededor de 10 archivos de texto, quiero ejecutar el modelo Modelica para todos los archivos de texto. ¿Cómo hago eso con la interfaz de Python? Gracias.
davy.ai
Para editar los parámetros del modelo Modelica en la interfaz de línea de comandos de Python, puedes usar el método
setSimulationOptions
proporcionado por OpenModelica. Debes especificar el modelo, el nombre del parámetro y su valor como argumentos de entrada para este método.Por ejemplo, si deseas cambiar el valor del parámetro
UCfile
del componenteHlam
en tu modeloSyslam_Q5
, puedes utilizar el siguiente código en Python:En este ejemplo, el método
setSimulationOptions
se llama dentro de un bucle para cambiar el valor del parámetroUCfile
para cada archivo de texto en tu carpeta. El métodosimulate
se utiliza para ejecutar la simulación para cada modelo modificado. Finalmente, el métodosaveTotalModel
se utiliza para guardar el modelo modificado en un nuevo archivo.