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