Optimierung der Simulationskurve
Verfasst: Freitag 25. Januar 2019, 15:00
Liebe Forumsmitglieder,
Ich habe eine kurze Simualtion zur Wärmeentwicklung in einem Batteriegehäuse verfasst.
Die Simualtion ergänzt einen praktisch durchgeführten Versuch zum gleichen Thema.
Letztendlich gibt mir die Simulation eine Temperaturkurve aus. Zu dem gleichen Sachverhalt
habe ich eine gemessene Temperaturkurve. Simulations- und Messkurve unterscheiden sich
aber voneinander.
(Hier jetzt das Problem)
Die Simulation soll also dahingehend optmiert werden, dass die Simulationskurve
der Messkurve möglichst gleich wird. Als Parameter gibt es in der Simulation dazu zwei Werte die
variiert werden können. Kennt jemand ein entsprechendes Tool zur Optimierung, oder hat ein
ähnliches Problem schoneinmal gelöst?
Vielen Dank
Im folgenden einfach mal der Quelltext (falls jemand merkt er möchte das Programm durchlaufen
lassen, kann ich die nötige Exceltablle schicken)
#Import libraries
import pandas
import numpy as np
import matplotlib.pyplot as plt
##################################################################
#Data
##################################################################
print('Neuer Durchlauf')
### import exel Datas/ Messreihen ###############################
data = pandas.read_csv('MessreihenzusammenfassungAufwaermungPython.csv', header=0, usecols=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], sep=';', decimal=',' )
######################################################################
# Parameter und Kennwerte
######################################################################
### Heat Conductance #########################
kpp=0.22 #heat conductance of Polyprobylen ISO22007 [W/mK]
#https://www.kern.de/de/technisches-date ... h?n=1502_1
kfil=0.3 #heat conductance of 3d printing filament(Bio-Polymer Lignin) [W/mK]
#https://www.extrudr.com/de/produkte/cat ... atur_2286/
#Muss noch recheriert werden
kalu=160. #heat conductance of extruded aluminum (AlMgSio,5) [W/mK]
#Formeln und Tabellen Bauphysik, 4. Auflage S.37
kbat=0.5 #Wärmeleitfähigkeit der Batterie/ Sand [W/mK]
#Formeln und Tabellen Bauphysik, 4. Auflage S.36
### heat capacity ###################################
cppp= 1.70 #heat capacicty of Polyprobylen ISO22007 [J/kgK]
#https://www.kern.de/de/technisches-date ... h?n=1502_1
cpfil= 1.5 #heat capacicty of 3d printing filament (Bio-Polymer Lignin) [J/kgK]
#https://www.extrudr.com/de/produkte/cat ... atur_2286/
#
cpalu=879. # heat capacity of extruded aluminum (AlMgSio,5) [J/kgK]
# https://norel.de/norel/downloads/3rippenkk.pdf
cpbat=1000. # Wärmespeicherkapaziztät der Batterie/ Sandstein [J/kgK]
#835 #https://de.wikibooks.org/wiki/Tabellens ... t%C3%A4ten
#Formeln und Tabellen Bauphysik, 4. Auflage S.36
### Mass ###########################################
mbat= 25. # Batteriemasse/ Sandmasse [kg]
### Heat Transfer Coefficient 3d Gehäuse ######################
hfili=5 # Wärmedurchgangsk. im Gehäuseinneren [W/m²K]
# VDI Wärmeatlas, Auflage 1988
hfila=5 # Wärmedurchgangsk.außerhalb des Gehäuses [W/m²K]
# VDI Wärmeatlas, Auflage 1988
### Thickness ###########################################
dsand=0.22/2 #Dicke der Sandschicht (aus der Mitte der Batterie) [m]
dalu= 2./1000 #Wandstärke Aluminiumgehäuse [m]
dfil=2.5/1000 #Wandstärke 3d Gehäuse [m]
### Oberflächen ########################################################
Abat= 2*(0.222*0.22+0.22*0.3+0.222*0.3) #7/8, Oberfläche der Alubatterie [m²]
Afil= 0.68 #Oberfläche des 3d geruckten Gehäuses aus Fusion 360 [m²]
##################################################################
#Calculation
##################################################################
####################################################################
print('1: Versuch 3d Gehäuse Pv=130W und 30°C')
####################################################################
Pel130=131 #Verlustleistung bei 50 A Entladestrom [W], gemessene Verlustleistung des Veruchs
Ta1=data.values[0,1]+273.15 # Umgebungstemperatur bzw. Batterieinnentemp. im Versuch [K]
Tb0=Ta1
Ta=273.15+30
Rges=(dsand/kbat)+(dalu/kalu)+(1/hfili)+(dfil/kfil)+(1/hfila) # Wärmewiederstand vom Batterieinnerin bis zum Zwischenraum von Batterie und Gehäuse[m²K/W]
#initial values
i=1
n=810
ts=10 # length of time steps [s]
Tb=np.zeros(n+1)
Tb[0]=Tb0
thetab=np.zeros(n+1)
thetab[0]=Tb[0]-273.15
while i<=n:
#if i>=68: #Zeitpunkt der Entladung
# Pel130=0
Tb=Tb[i-1]+((Pel130-(Afil/Rges)*(Tb[i-1]-Ta))*(ts/(cpbat*mbat)))
thetab=Tb-273.15
i = 1+i
plt.plot(np.linspace(0,n+1,n+1), data.values[0:n+1,1], '.r', label='Tbat_Mess')
plt.plot(np.linspace(0,n+1,n+1), thetab, '.b', label='Tbat_Sim')
plt.ylabel('Temperatur in °C')
plt.xlabel ('Zeit in 10 sek. schritten')
plt.axvline(68*6, color='k', linestyle='--', label='Entladung' )
plt.axhline(60, color='k', linestyle='-.', label='Temperaturobergrenze' )
plt.legend(loc='best')
plt.suptitle('3d Gehäuse Pv=130W und 30°C')
plt.savefig('Erw._3dG. Pv=130W und 30°C.png')
plt.show()
Ich habe eine kurze Simualtion zur Wärmeentwicklung in einem Batteriegehäuse verfasst.
Die Simualtion ergänzt einen praktisch durchgeführten Versuch zum gleichen Thema.
Letztendlich gibt mir die Simulation eine Temperaturkurve aus. Zu dem gleichen Sachverhalt
habe ich eine gemessene Temperaturkurve. Simulations- und Messkurve unterscheiden sich
aber voneinander.
(Hier jetzt das Problem)
Die Simulation soll also dahingehend optmiert werden, dass die Simulationskurve
der Messkurve möglichst gleich wird. Als Parameter gibt es in der Simulation dazu zwei Werte die
variiert werden können. Kennt jemand ein entsprechendes Tool zur Optimierung, oder hat ein
ähnliches Problem schoneinmal gelöst?
Vielen Dank
Im folgenden einfach mal der Quelltext (falls jemand merkt er möchte das Programm durchlaufen
lassen, kann ich die nötige Exceltablle schicken)
#Import libraries
import pandas
import numpy as np
import matplotlib.pyplot as plt
##################################################################
#Data
##################################################################
print('Neuer Durchlauf')
### import exel Datas/ Messreihen ###############################
data = pandas.read_csv('MessreihenzusammenfassungAufwaermungPython.csv', header=0, usecols=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], sep=';', decimal=',' )
######################################################################
# Parameter und Kennwerte
######################################################################
### Heat Conductance #########################
kpp=0.22 #heat conductance of Polyprobylen ISO22007 [W/mK]
#https://www.kern.de/de/technisches-date ... h?n=1502_1
kfil=0.3 #heat conductance of 3d printing filament(Bio-Polymer Lignin) [W/mK]
#https://www.extrudr.com/de/produkte/cat ... atur_2286/
#Muss noch recheriert werden
kalu=160. #heat conductance of extruded aluminum (AlMgSio,5) [W/mK]
#Formeln und Tabellen Bauphysik, 4. Auflage S.37
kbat=0.5 #Wärmeleitfähigkeit der Batterie/ Sand [W/mK]
#Formeln und Tabellen Bauphysik, 4. Auflage S.36
### heat capacity ###################################
cppp= 1.70 #heat capacicty of Polyprobylen ISO22007 [J/kgK]
#https://www.kern.de/de/technisches-date ... h?n=1502_1
cpfil= 1.5 #heat capacicty of 3d printing filament (Bio-Polymer Lignin) [J/kgK]
#https://www.extrudr.com/de/produkte/cat ... atur_2286/
#
cpalu=879. # heat capacity of extruded aluminum (AlMgSio,5) [J/kgK]
# https://norel.de/norel/downloads/3rippenkk.pdf
cpbat=1000. # Wärmespeicherkapaziztät der Batterie/ Sandstein [J/kgK]
#835 #https://de.wikibooks.org/wiki/Tabellens ... t%C3%A4ten
#Formeln und Tabellen Bauphysik, 4. Auflage S.36
### Mass ###########################################
mbat= 25. # Batteriemasse/ Sandmasse [kg]
### Heat Transfer Coefficient 3d Gehäuse ######################
hfili=5 # Wärmedurchgangsk. im Gehäuseinneren [W/m²K]
# VDI Wärmeatlas, Auflage 1988
hfila=5 # Wärmedurchgangsk.außerhalb des Gehäuses [W/m²K]
# VDI Wärmeatlas, Auflage 1988
### Thickness ###########################################
dsand=0.22/2 #Dicke der Sandschicht (aus der Mitte der Batterie) [m]
dalu= 2./1000 #Wandstärke Aluminiumgehäuse [m]
dfil=2.5/1000 #Wandstärke 3d Gehäuse [m]
### Oberflächen ########################################################
Abat= 2*(0.222*0.22+0.22*0.3+0.222*0.3) #7/8, Oberfläche der Alubatterie [m²]
Afil= 0.68 #Oberfläche des 3d geruckten Gehäuses aus Fusion 360 [m²]
##################################################################
#Calculation
##################################################################
####################################################################
print('1: Versuch 3d Gehäuse Pv=130W und 30°C')
####################################################################
Pel130=131 #Verlustleistung bei 50 A Entladestrom [W], gemessene Verlustleistung des Veruchs
Ta1=data.values[0,1]+273.15 # Umgebungstemperatur bzw. Batterieinnentemp. im Versuch [K]
Tb0=Ta1
Ta=273.15+30
Rges=(dsand/kbat)+(dalu/kalu)+(1/hfili)+(dfil/kfil)+(1/hfila) # Wärmewiederstand vom Batterieinnerin bis zum Zwischenraum von Batterie und Gehäuse[m²K/W]
#initial values
i=1
n=810
ts=10 # length of time steps [s]
Tb=np.zeros(n+1)
Tb[0]=Tb0
thetab=np.zeros(n+1)
thetab[0]=Tb[0]-273.15
while i<=n:
#if i>=68: #Zeitpunkt der Entladung
# Pel130=0
Tb=Tb[i-1]+((Pel130-(Afil/Rges)*(Tb[i-1]-Ta))*(ts/(cpbat*mbat)))
thetab=Tb-273.15
i = 1+i
plt.plot(np.linspace(0,n+1,n+1), data.values[0:n+1,1], '.r', label='Tbat_Mess')
plt.plot(np.linspace(0,n+1,n+1), thetab, '.b', label='Tbat_Sim')
plt.ylabel('Temperatur in °C')
plt.xlabel ('Zeit in 10 sek. schritten')
plt.axvline(68*6, color='k', linestyle='--', label='Entladung' )
plt.axhline(60, color='k', linestyle='-.', label='Temperaturobergrenze' )
plt.legend(loc='best')
plt.suptitle('3d Gehäuse Pv=130W und 30°C')
plt.savefig('Erw._3dG. Pv=130W und 30°C.png')
plt.show()