C'est la méthode de liaison de Modelica et Python présentée dans "Je veux créer facilement un environnement de développement basé sur un modèle".
Le but de ce temps est d'effectuer les opérations suivantes.
Créez un environnement d'exécution Python avec Anaconda en tant que maître de simulation couplé. Puisque J Modelica décrit plus tard ne prend en charge que Python2 32 bits, Anaconda utilise également celui qui le prend en charge. (Même si un autre environnement Python est déjà installé, je pense qu'il n'y a pas de problème si vous l'installez en plus.)
Téléchargez la version "Python 2.7 version (32 bits)" du programme d'installation à partir de la page suivante. Download Anaconda Now! | Continuum
Exécutez le programme d'installation téléchargé et procédez aux valeurs par défaut. Définissez le dossier d'installation sur C: \ Anaconda2
.
Installez JModelica pour utiliser les modules Python PyModelica et PyFMI.
Téléchargez le dernier programme d'installation à partir de la page ci-dessous. Download | JModelica.org
Lors de l'installation du module Python, sélectionnez la destination d'installation sur C: \ Anaconda2
.
Cette fois, nous utiliserons le Modelica.Thermal.HeatTransfer.Exsamples.Motor
introduit dans" Utilisation d'OpenModelica sous Windows "enregistré au format Modelica. ..
Je l'ai sauvegardé dans Motor.mo
de" ozawaat / FMI_Motor ", veuillez donc l'utiliser.
Enregistrez Motor.mo
dans un emplacement approprié.
Manipulez Python dans le dossier où Motor.mo
est stocké. Utilisez l'une des méthodes suivantes pour démarrer Python.
Ouvrez IPython depuis [marque Windows en bas à gauche de l'écran] → [JModelica.org-1.17] et accédez à la console.
`! Cd C: \ [dossier dans lequel Motor.mo est stocké] \`
Entrez pour déplacer le dossier.
Copiez ʻIPython.bat de
C: \ JModelica.org-1.17dans le même dossier que
Motor.mo. Double-cliquez sur ce ʻIPython.bat
pour ouvrir IPython.
Enregistrez les fichiers suivants dans le même dossier que Motor.mo
.
Motor_Compile.py
from pymodelica import compile_fmu
model_name = 'Motor'
mo_file = 'Motor.mo'
my_fmu = compile_fmu(model_name, mo_file, target='cs')
Depuis la console IPython
run Motor_Compile.py
Si vous entrez, `Motor.mo` est compilé pour créer` Motor.fmu`.
# Calculez la FMU en Python et affichez-la sur le graphique
Enregistrez les fichiers suivants dans le même dossier que `Motor.mo`.
#### **`Motor.py`**
```python
import matplotlib.pyplot as plt
from pyfmi import load_fmu
model = load_fmu('Motor.fmu')
opts = model.simulate_options()
opts["ncp"] = 1000
res = model.simulate(final_time=100000, options=opts)
T1 = res['Twinding.T']
T2 = res['Tcore.T']
t = res['time']
plt.plot(t, T1, label="Twinding.T")
plt.plot(t, T2, label="Tcore.T")
plt.legend(loc='best')
plt.xlabel('time [sec]')
plt.ylabel('Temperature [K]')
plt.show()
Depuis la console IPython
run Motor.py
Si vous entrez, `Motor.fmu` sera calculé sur Python et le graphique ci-dessous sera affiché.
![Motor_plot.png](https://qiita-image-store.s3.amazonaws.com/0/139905/09bbad72-3ebb-a814-4ccb-a8a7bf229cfe.png)
Recommended Posts