- Index
- » Users
- » Sylvain Girard
- » Profile
Posts
Posts
Trying to load an FMU compiled by omc (OpenModelica's compiler) provoke a nasty crash under IPython.
Running
import pyfmi
pyfmi.load_fmu("path/to/fmu")
makes IPython crash with message
JSON object expected ',' or '}', got: "lineEnd":67,"colSta
Aborted (core dumped)
I tried both IPython 5.4 and 4.2, for Python 2.7.13 (Anaconda 64-bit) on Ubuntu 16.04.
An example FMU for reproducing the bug can be found here:
https://trac.fmi-standard.org/browser/b … ontrol.fmu
This seems to be specific to OpenModelica as a JModelica compiled FMU (https://trac.fmi-standard.org/browser/b … ature.fmu) does not trigger the error.
Both FMUs pass the FMU compliance check.
Do you have any idea about the problem's root and how to solve it?
I already experienced segfaults with older version of OpenModelica, as mentionned here: http://www.jmodelica.org/27816. They were however rare enough to be only a nuisance, not a show stopper.
A training on how to combine Modelica and Python to perform numerical simulation experiments will be held in Paris (in french…) by Phimeca, on November 30th.
Please contact Sylvain Girard (girard@phimeca.com) for further informations, or read below (if you can read french).
Expériences numériques sur des modèles de système 0D/1D avec Modelica et Python
═══════════════════════════════════════════════════════════════════════════════
*Modelica* est un langage libre pour programmer des modèles physiques
sous forme de systèmes algébriques d'*équations différentielles*
([http://book.xogeny.com/front/intro/]). Les équations s'écrivent pour
ainsi dire en langage (mathématique) naturel. Grâce à l'approche
acausale, la mise en équations et leur résolution numérique sont deux
problèmes complètement distincts, le second étant pour l'essentiel
pris en charge par des outils, dont le logiciel libre OpenModelica
([https://www.openmodelica.org/]). Le paradigme d'objets de Modelica
est mis a profit pour constuire des bibliothèques de modules
réutilisables et combinables, permettant même la construction de
modèles exclusivement depuis une interface graphique !
Des développements récents, en particulier la *norme FMI* (/functional
mock-up interface/, [http://fmi-standard.org/]) et les outils
associés, permettent d'appliquer à ces modèles numériques toutes la
panoplie d'algorithmes mathématiques disponibles notamment dans
l'univers *Python*.
Cette formation offre un panorama des outils disponibles pour réaliser
des plans d'expérience de simulations avec des modèles écrits en
Modelica, ainsi que pour utiliser des programmes Python à l'intérieur
de modèles Modelica. Une connaissance préalable de l'un ou l'autre des
langages Modelica et Python est préférable, mais pas indispensable.
Informations pratiques
──────────────────────
• Acceuil : 9h30
• Fin : 17h30
• Lieu : Phimeca Engineering, 18 boulevard de Reuilly, 75012, Paris
• Tarif : 850 € (400 € pour les étudiants).
Les inscriptions se font par courriel à `girard@phimeca.com'. Ne
tardez pas : le nombre de places disponibles est restreint pour
garantir l'interactivité de la séance.
Programme
─────────
Modelisation des systèmes avec Modelica
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌
• Qu'est-ce que la « modelisation système » ?
• Pourquoi choisir Modelica?
• Les outils pour Modelica
⁃ Dymola
⁃ OpenModelica
⁃ Outils additionnels
• ⌨ `Installation d'OpenModelica'
Pourquoi compléter Modelica avec un langage procédural ?
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌
• Pilotage
• Réaliser un plan d'expérience pour
⁃ l'optimisation,
⁃ l'estimation de paramètres et le calage,
⁃ l'analyse de sensibilité,
⁃ la propagation d'incertitudes…
• La norme FMI (/functional mockup-up interface/) : des boîtes
noires standardisées pour les modèles numériques
• Inclusion
⁃ Utiliser des bibliothèques d'algorithmes mathématiques dans des
modèles Modelica
• Efficacité calculatoire
• Gestion commode des données externes
• /software in the loop/, émulateur de modèles numériques coûteux
• Pourquoi choisir Python?
⁃ Polyvalence, facilité d'usage, communauté
⁃ L'API C/Python, et autres ponts
⁃ Python et la norme FMI: `PyFMI'
Piloter des modèles Modelica avec Python
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌
• Interface de données d'entrée–sortie
• Piloter des FMU avec le module Python `PyFMI'
• ⌨ `Estimation de paramètre et propagation d'incertitude avec un
modèle d'épidémie'
Inclure du code Python dans des modèles Modelica
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌
• Le mot-clef Modelica `external' : inclusion de code C ou Fortran
• Brancher Python sur le connecteur C
• ⌨ `Inclusion d'un modèle réduit en Python d'un simulateur coûteux
dans un modèle Modelica'
Thank you. The same goes here; the following command succeed:
Code:
translateModelFMU(className, version="2.0", fmuType="me_cs", platforms={"static"})
Unfortunately I still get
Code:
FMUException: Error loading the binary. Could not load the DLL: libSimulationRuntimeC.so: cannot open shared object file: No such file or directory
when trying to load it with PyFmi on a machine without OpenModlica installed.
Is “platforms={"static"} ” an argument to be passed to translateModelFMU? In seems to fail in OMShell-terminal
Code:
>>> translateModelFMU(className=className, version="2.0", fmuType="me_cs", platforms={"static"})
>>> getErrorString()
"[<interactive>:1:1-1:0:writable] Error: Class translateModelFMU not found in scope <global scope> (looking for a function or record).
"
By the way, omc --version returns
Code:
OpenModelica 1.12.0~dev-450-gdeecfb
and I use Ubuntu.
Thank you very much, this sounds good.
Could you expand a little on what you mean by “use the static target of the FMU”
For now I am simply using omc's command
Code:
translateModelFMU(className=className, version="2.0", fmuType="me_cs")
Simulating FMU created with OpenModlica requires to install OpenModelica.
Trying to load an FMU produced with OpenModelica with PyFmi on a machine that has not OpenModelica installed on raised the following error:
Code:
pyfmi.fmi.FMUException: Error loading the binary. Could not load the DLL: libSimulationRuntimeC.so: cannot open shared object file: No such file or directory
Is it possible to produce standalone a FMU by including all required component such as libSimulationRuntimeC.so?
Hello,
How can we set the initial values of a large number of variables with OpenModelica in order to ease initialization? In Dymola, it is possible to load a “.mos” script file like this
initialized(true);
variable_a=12.34;
variable_b=9.0;
variable_c=77.31;
Is it possible to process such files in OMEdit? With a scripting command in OMShell?
Kind regards
- Index
- » Users
- » Sylvain Girard
- » Profile