Importación modelo Python a Modelica

12 views
Skip to first unread message

Noé Carnerero

unread,
Mar 5, 2024, 1:29:49 PMMar 5
to modelic...@googlegroups.com
Buenas tardes a todos, espero que estéis bien,

Os escribía porque para el Máster en Ingeniería Naval, junto con mi compañera y también parte de este grupo Elena Velázquez tenemos una asignatura en la que estamos colaborando con un proyecto de la UPM de una embarcación de competición a hidrógeno, Green Foiling Spain. En concreto estamos trabajando en el control de vuelo de la embarcación, y para ello, queremos usar Modelica como parte del proyecto para elaborar un modelo de comportamiento en los 6 grados de libertad de la embarcación para diseñar el controlador de la embarcación para calibrar el modelo de pruebas ya construido y realizar ensayos en canal para la embarcación real.

El caso es que el grupo ya tiene hecho un modelo de fuerzas 3D del buque realizado en Python bastante bien hecho, por lo que necesitamos un FMU que pueda conectar el modelo de fuerzas exportado desde Python a un bloque en Modelica para poder realizar un modelo de buque y control en OpenModelica y simular el comportamiento del buque en sus seis grados de libertad.

Si alguien tiene experiencia en conectar Python con Modelica, o si tiene alguna sugerencia de como hacerlo, estaríamos muy agradecidos en que lo compartiera, ya que la información disponible es algo confusa, ya que el camino inverso, pasar un modelo en Modelica a Python ya existen librerías que lo pueden hacer, pero para nuestro caso lo vemos más complicado.

Muchas gracias y un saludo,

Noé Carnerero

Basilio

unread,
Mar 5, 2024, 5:16:46 PMMar 5
to modelic...@googlegroups.com, Noé Carnerero
Buenas tardes Noé,

Hay una librería de Python para construir FMU con código de Python:

<https://pypi.org/project/pythonfmu/>

La verdad es que me parece apasionante el trabajo que hacéis en GFS y me gustaría ayudaros. Podemos hacer un Teams en una tarde y os echo una mano.

Saludos,
Basilio




--
Has recibido este mensaje porque estás suscrito al grupo "Spain Modelica User Group" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a modelica-spai...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/modelica-spain/CAB16Lvq14OWKMSy%3DoWeBtot6Jd_oh4kiy6RCoi-%3D5HAfA1M98w%40mail.gmail.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Lucia Royo

unread,
Mar 6, 2024, 1:49:37 AMMar 6
to Basilio, modelic...@googlegroups.com, Noé Carnerero
Buenos días Noé,

Nosotros, en Electroingenium, trabajamos mucho en la línea que comentas, hacemos las FMUs con OM y la ejecutamos con python dentro de un script general que coge datos en tiempo real del proceso (del SCADA, PLC, etc...), ejecuta la FMU (Normalmente usamos FMPy. Aquí te dejo algunos ejemplos que tiene la librería) y devolvemos de nuevo los resultados a una interfaz o al PLC/SCADA. Hemos trabajado en diversos proyectos de este tipo, en el sector de plantas de tratamiento de aguas, sector solar, ...
Échale un vistazo a esa librería y si tienes dudas puedes contactarnos a nuestros correos (lucia...@electroingenium.es y/o alejandro...@electroingenium.es).

Saludos,
Lucía.

Alejandro Labarías Quílez

unread,
Mar 6, 2024, 3:28:33 AMMar 6
to Lucia Royo, Basilio, modelic...@googlegroups.com, Noé Carnerero
Hola Noé,

Como comentan Basilio y Lucía para conectar Python y Modelica conozco:
  • FMPy (https://github.com/CATIA-Systems/FMPy): para ejecutar FMUs (tanto Model Exchange como CoSimulation) en Python.
  • PythonFMU (https://github.com/NTNU-IHB/PythonFMU): para exportar FMUs desde Python. La peculiaridad de esta librería es que solo permite exportar FMUs en formato CoSimulation y diría que en Open Modelica solo se pueden importar FMUs en formato Model Exchange.
  • UniFMU (https://github.com/INTO-CPS-Association/unifmu): también es para crear FMUs desde distintos lenguajes (Python por ejemplo), pero no he llegado a utilizarla y solo permite exportar como CoSimulation (al igual que PythonFMU). 
  • SimulatorToFMU (https://github.com/LBNL-ETA/SimulatorToFMU/tree/master): Lucía ha dado con esta librería que parece que permite exportar en formato Model Exchange, pero no hemos llegado a probarla. La probaremos y si logramos algo os decimos. También si dais con una solución nos gustaría conocerla, es un problema interesante. 
Cualquier cosa que queráis comentar contactadnos a los correos que ha indicado Lucía, que seguramente contestaremos antes. 

Un saludo, 
Alejandro





Basi PV

unread,
Mar 8, 2024, 10:34:57 AMMar 8
to Spain Modelica User Group
Así es, OMedit sólo importa FMU como Model Exchange. Es decir, solo puedes mezclar código Modelica y FMU con ese tipo. Existe OMSimulator, que combina FMU's co-simulation entre si usando el estándar SSP. La desventaja es que tienes que generar FMU's desde Modelica cada vez que los quieras usar, para desarrollar un modelo (ensayo-error) es muy tedioso.

Alejandro, muy interesante el SimulatorToFMU. Adjunto la guía de usuario. No lo he leído, le pegaré un vistazo a ver que es capaz de hacer.
userGuide.pdf
Reply all
Reply to author
Forward
0 new messages