Dies ist die Methode zum Verknüpfen von Modelica und Python, die in "Ich möchte einfach eine modellbasierte Entwicklungsumgebung erstellen" eingeführt wurde.
Der Zweck dieser Zeit besteht darin, die folgenden Operationen auszuführen.
Erstellen Sie eine Python-Ausführungsumgebung mit Anaconda als gekoppeltem Simulationsmaster. Da J Modelica, das später beschrieben wird, nur Python2 32bit unterstützt, verwendet Anaconda auch dasjenige, das es unterstützt. (Auch wenn bereits eine andere Python-Umgebung installiert ist, gibt es meines Erachtens kein Problem, wenn Sie sie zusätzlich installieren.)
Laden Sie die Version "Python 2.7 (32 Bit)" des Installationsprogramms von der folgenden Seite herunter. Download Anaconda Now! | Continuum
Führen Sie das heruntergeladene Installationsprogramm aus und fahren Sie mit den Standardeinstellungen fort. Setzen Sie den Installationsordner auf "C: \ Anaconda2".
Installieren Sie JModelica, um die Python-Module PyModelica und PyFMI zu verwenden.
Laden Sie das neueste Installationsprogramm von der folgenden Seite herunter. Download | JModelica.org
Wählen Sie bei der Installation des Python-Moduls das Installationsziel "C: \ Anaconda2" aus.
Dieses Mal verwenden wir "Modelica.Thermal.HeatTransfer.Exsamples.Motor", eingeführt in "Verwenden von OpenModelica unter Windows", das im Modelica-Format gespeichert ist. ..
Ich habe es in "Motor.mo" von "ozawaat / FMI_Motor" gespeichert. Verwenden Sie es daher bitte.
Speichern Sie Motor.mo
an einem geeigneten Ort.
Bearbeiten Sie Python in dem Ordner, in dem "Motor.mo" gespeichert ist. Verwenden Sie eine der folgenden Methoden, um Python zu starten.
Öffnen Sie IPython über [Windows-Markierung unten links auf dem Bildschirm] → [JModelica.org-1.17] und rufen Sie die Konsole auf.
`! Cd C: \ [Ordner, in dem Motor.mo gespeichert ist] \`
Geben Sie ein, um den Ordner zu verschieben.
Kopieren Sie "IPython.bat" von "C: \ JModelica.org-1.17" in denselben Ordner wie "Motor.mo". Doppelklicken Sie auf diese IPython.bat
, um IPython zu öffnen.
Speichern Sie die folgenden Dateien im selben Ordner wie "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')
Über die IPython-Konsole
run Motor_Compile.py
Wenn Sie eingeben, wird "Motor.mo" kompiliert, um "Motor.fmu" zu erstellen.
# Berechnen Sie die FMU in Python und zeigen Sie sie im Diagramm an
Speichern Sie die folgenden Dateien im selben Ordner wie "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()
Über die IPython-Konsole
run Motor.py
Wenn Sie eingeben, wird "Motor.fmu" in Python berechnet und die folgende Grafik wird angezeigt.
![Motor_plot.png](https://qiita-image-store.s3.amazonaws.com/0/139905/09bbad72-3ebb-a814-4ccb-a8a7bf229cfe.png)
Recommended Posts