Modelica auselsen und plotten
Verfasst: Montag 4. März 2019, 11:21
Hallo zusammen,
ich hoffe ich bin im richtigen Forum, anderenfalls möchte ich um Entschuldigung bitten.
Ich möchte mit Python auf ein Model von Modelica zugreifen einen Paramter mit einer Schleife ändern und anschließend plotten. Hier mein Code:
Als Fehlermeldung bekomme ich "FileNotFoundError: [Errno 2] No such file or directory: '10/Parameterstudie_bef.mat'".
Meine Vermutung liegt also bei
Jedoch weis ich nicht was ich falsch mache, vielleicht kann mir jemand weiterhelfen.
Danke für eure Zeit.
Gruß
Max
ich hoffe ich bin im richtigen Forum, anderenfalls möchte ich um Entschuldigung bitten.
Ich möchte mit Python auf ein Model von Modelica zugreifen einen Paramter mit einer Schleife ändern und anschließend plotten. Hier mein Code:
Code: Alles auswählen
import os
import buildingspy.simulate.Simulator as si
import matplotlib as mpl
mpl.rcParams["text.latex.preamble"] = ["\\usepackage{siunitx}"]
mpl.rc('font',
family ='sans-serif',
serif = ['Computer Modern Roman'],
size = 11)
mpl.rc('text', usetex=True) # Damit werden alle strings mit LATEX compiliert
import matplotlib.pyplot as plt
from buildingspy.io.outputfile import Reader
#import numpy as np
#model = 'ZweiteHausaufgabe.HeizkoerperReglungEntwerfen' # Mode"
#path_M = "/home/pget2018-w5eg4b2cpx/Regler"
model = 'Hauptphase.Parameterstudie_bef'
path_M="/home/pget2018-w5eg4b2cpx/Schreibtisch/Hauptphase"
#/home/pget2018-w5eg4b2cpx/Schreibtisch/Hauptphase/Hauptphase/Parameterstudie_bef.mat
path=[]
res=[]
#Temperatur
T_start= 10
T_stop=10 #34
T_step=2
#relative Luftfeuchte
phi_start=0
phi_end=94
phi_step=94 #2
simulatingtime = 3600*24#*365
datenx = range(phi_start,phi_end+1,phi_step)
daten = range(T_start,T_stop+1,T_step)
anzahl= len(daten)
anzahlx=len(datenx)
plt.figure(figsize=(10,5))
def CaseStudy(s):
s.setStopTime(simulatingtime)
s.setTimeOut(simulatingtime)
s.showProgressBar(False)
s.printModelAndTime()
s.setSolver("dassl")
s.simulate()
for i in daten:
for j in datenx:
s=si.Simulator(model,"dymola",str(i), path_M)
s.addParameters({'T_AUL': i})
CaseStudy(s)
path.append(os.path.join(str(i), "Parameterstudie_bef.mat"))
for u in range(anzahl):
res = Reader(path[u], 'dymola')
res = Reader(path, "dymola")
time, y = res.values("V_AUL1.dp")
plt.plot(time/3600,y/1000,
label=str('10' + r' $\si{\celsius}$'))
plt.plot()
plt.xlabel(r'Zeit t / $\si{\hour}$')
plt.ylabel(r' Druck $\p $ / $ \si{\Pascal}$')
plt.grid(True)
plt.legend()
plt.savefig("Bef.svg")
plt.ylabel(r'Heizenergie E / $\si{\kilo\watt\hour}$')
plt.grid(True)
plt.legend()
plt.savefig("Parameterstudie.svg")
Meine Vermutung liegt also bei
Code: Alles auswählen
path.append(os.path.join(str(i), "Parameterstudie_bef.mat"))
Danke für eure Zeit.
Gruß
Max