Auskühlung_Messung
Bibliotheken importieren
# Name des aktuellen Notebooks für die exportierten Datein
file_name = "Auskuehlung_Messung"
# Ordner auf dem Server (nach files/)
ftp_folder = 'Notebooks/Auswertung'
## Bibliotheken, Module und Text- bzw- Grafikformatierungen aus zentraler Datei laden
%run ../Template/libraries_and_styles.ipynb
from uncertainties import ufloat
from uncertainties.umath import *
from uncertainties import unumpy
## Warum auch immer muss rcParams.update() in eine eigene Zelle...
mpl.rcParams.update(params)
Daten Import
auskuehlung_t = pd.read_csv("auskuehlung_testo.csv", sep=";", decimal="," , thousands='.' ,encoding="cp1252") #09.02. - 11.02.
auskuehlung_t['Datum'] = pd.to_datetime(auskuehlung_t['Datum'],dayfirst=True)
auskuehlung_t.set_index(['Datum'], inplace=True)
auskuehlung_t = auskuehlung_t.resample('15s').fillna(method='ffill').interpolate()
auskuehlung_i = pd.read_csv("auskuehlung_ibms.csv", sep=";", decimal="," , thousands='.' ,encoding="cp1252") #09.02. - 11.02.
auskuehlung_i['Zeit'] = pd.to_datetime(auskuehlung_i['Zeit'],dayfirst=True)
auskuehlung_i.set_index(['Zeit'], inplace=True)
auskuehlung_i = auskuehlung_i.resample('15s').fillna(method='ffill').interpolate()
daten = pd.concat([auskuehlung_t['2019-02-08 13:00:00':'2019-02-11 08:30:00'], auskuehlung_i], axis=1, sort=False, join='inner')
daten.rename(columns={ daten.filter(regex='Zuluft Seminarraum 1.*').columns[0]: 'Seminarraum_1_Zuluft',
daten.filter(regex='VSR 1 Zuluft Seminarraum 2.*').columns[0]: 'Seminarraum_2_Zuluft',
daten.filter(regex='VSR 1 Zuluft Flur/Vorraum 3.*').columns[0]: 'Vorraum_3_Zuluft',
daten.filter(regex='Duschen-D Ablufttfeuchte.*').columns[0]: 'Duschen_Ablufttfeuchte',
daten.filter(regex='Duschen-D Ablufttemperaturfuehler.*').columns[0]: 'Duschen_Ablufttemperatur',
daten.filter(regex='Seminarraum 2 Raumtempertaturfuehler.*').columns[0]: 'Seminarraum_2_Raumtempertatur',
daten.filter(regex='Seminarraum 2 Raum-CO2-Fuehler.*').columns[0]: 'Seminarraum_2_CO2',
daten.filter(regex='Seminarraum 1 Raumtempertaturfuehler.*').columns[0]: 'Seminarraum_1_Raumtempertatur',
daten.filter(regex='Seminarraum 1 Raum-CO2-Fuehler.*').columns[0]: 'Seminarraum_1_CO2'},
inplace=True)
# display(daten.head())
HT-Wert Berechnung
Übersicht
## Messzeitraum
von = pd.to_datetime('2019-02-08 13:00:00')
bis = pd.to_datetime('2019-02-11 08:30:00')
fig, ax = plt.subplots()
color = [ colo('blau',1), colo('blau',1.7), colo('rot',1), colo('rot',1.7), colo('grün',1), colo('grün',1.7), colo('orange',1), colo('orange',1.7)]
daten[['Sem1_1','Sem1_2','Sem2_1','Sem2_2','Aussen']].plot(ax=ax,color=color,linewidth=0.5)
ax.set_ylabel(r'\textbf{Temperatur} (C)')
ax.set_ylim(3,23)
h0, l0 = ax.get_legend_handles_labels()
legend = plt.legend(h0, l0, ncol=3, loc=1)
set_legend_linewidth(legend)
# print(abs(von - bis).total_seconds() / 3600.0)
# print(daten[['Sem2_2','Aussen']].head(1))
# print(daten[['Sem2_2','Aussen']].tail(1))
# print(daten['Aussen'].head(1)[0])
# print(daten['Aussen'].mean())
Beispielrechnung
HT_Energiebedarfsrechnung = round(267.17 * 0.252,2) ## Umfassungsfläche * H'T
HT_Bauteilekatalog = 169.2
T_au = 7
T_in_Start = 19.8
T_in_Ende = 13.4
t = 67.5 # h
dT_in_Start = T_in_Start - T_au # K
dT_in_Ende = T_in_Ende - T_au # K
c_wirk = 8838 # Wh/K
HT = round( c_wirk * np.log(dT_in_Start/dT_in_Ende) / t ,2) # W/K
print_md(f'HT_gemessen: ${HT}~$W/K \nHT_Energiebedarfsrechnung: ${HT_Energiebedarfsrechnung}~$W/K<br>HT_Bauteilekatalog: ${HT_Bauteilekatalog}~$W/K')
HT_gemessen: $90.76~$W/K
HT_Energiebedarfsrechnung: $67.33~$W/K
HT_Bauteilekatalog: $169.2~$W/K
HT-Wert inkl. Unsicherheiten
Seminarraum 1
daten_sub = daten[von : bis]
# print(daten_sub.head())
uT_innen = 2
uT_außen = .4
t = abs(von - bis).total_seconds() / 3600.0 # h
T_au = ufloat(daten_sub['Aussen'].mean(),uT_außen)
T_in_Start = (ufloat(daten_sub['Sem1_1'].loc[von],uT_innen)+ufloat(daten_sub['Sem1_2'].loc[von],uT_innen))/2
T_in_Ende = (ufloat(daten_sub['Sem1_1'].loc[bis],uT_innen)+ufloat(daten_sub['Sem1_2'].loc[bis],uT_innen))/2
dT_in_Start = T_in_Start - T_au # K
dT_in_Ende = T_in_Ende - T_au # K
c_wirk = ufloat(8838,884) # Wh/K
dT_innen = dT_in_Start - dT_in_Ende
HT_1 = (c_wirk * unumpy.log(dT_in_Start/dT_in_Ende)) / t # W/K
print_md(f'Seminarraum 1 <br> HT-Wert: {round(HT_1.n,2)} +/- {round(HT_1.s,2)} W/K')
print(f'Dauer: {(t)} Stunden')
print(f'Temp. Außen Durschnitt: {T_au} °C')
print(f'Temp. innen Start: {T_in_Start} °C')
print(f'Temp. innen Ende: {T_in_Ende} °C')
print(f'Temp. Verlust: {dT_innen} °C')
Seminarraum 1
HT-Wert: 121.69 +/- 40.27 W/K
Dauer: 67.5 Stunden
Temp. Außen Durschnitt: 7.3+/-0.4 °C
Temp. innen Start: 20.6+/-1.4 °C
Temp. innen Ende: 12.6+/-1.4 °C
Temp. Verlust: 8.1+/-2.0 °C
Seminarraum 2
daten_sub = daten[von : bis]
# print(daten_sub.head())
uT_innen = 2
uT_außen = .4
t = abs(von - bis).total_seconds() / 3600.0 # h
T_au = ufloat(daten_sub['Aussen'].mean(),uT_außen)
T_in_Start = (ufloat(daten_sub['Sem2_1'].loc[von],uT_innen)+ufloat(daten_sub['Sem2_2'].loc[von],uT_innen))/2
T_in_Ende = (ufloat(daten_sub['Sem2_1'].loc[bis],uT_innen)+ufloat(daten_sub['Sem2_2'].loc[bis],uT_innen))/2
dT_in_Start = T_in_Start - T_au # K
dT_in_Ende = T_in_Ende - T_au # K
c_wirk = ufloat(8838,884) # Wh/K
dT_innen = dT_in_Start - dT_in_Ende
HT_2 = (c_wirk * unumpy.log(dT_in_Start/dT_in_Ende)) / t # W/K
print_md(f'Seminarraum 2 <br> HT-Wert: {round(HT_2.n,2)} +/- {round(HT_2.s,2)} W/K')
print(f'Dauer: {(t)} Stunden')
print(f'Temp. Außen Durschnitt: {T_au} °C')
print(f'Temp. innen Start: {T_in_Start} °C')
print(f'Temp. innen Ende: {T_in_Ende} °C')
print(f'Temp. Verlust: {dT_innen} °C')
Seminarraum 2
HT-Wert: 92.33 +/- 35.09 W/K
Dauer: 67.5 Stunden
Temp. Außen Durschnitt: 7.3+/-0.4 °C
Temp. innen Start: 19.8+/-1.4 °C
Temp. innen Ende: 13.4+/-1.4 °C
Temp. Verlust: 6.3+/-2.0 °C
Plot
daten_diff = daten.rolling(150, center=True).mean()
daten_diff['Sem1'] = (daten_diff['Sem1_2'] + daten_diff['Sem1_1'])/2
daten_diff['Sem2'] = (daten_diff['Sem2_2'] + daten_diff['Sem2_1'])/2
daten_diff['Sem_diff'] = (daten_diff['Sem1'] - daten_diff['Sem2'])
## Plot
fig, ax = plt.subplots(figsize=[5.9,2])
daten_diff['Sem1'].plot(ax=ax,color=colo('orange',1), linewidth=0.8, label="Seminarraum 1", x_compat=True)
daten_diff['Sem2'].plot(ax=ax,color=colo('violet',1), linewidth=0.8, label="Seminarraum 2", x_compat=True)
daten_diff['Aussen'].plot(ax=ax,color=colo('blau',1), linewidth=0.8, label="Außentemperatur", x_compat=True)
daten_diff['Sem_diff'].plot(ax=ax,color=colo('rot',1), linewidth=0.8, label="$\Delta$T(Sem1 - Sem2)", x_compat=True)
ax.axhline(0, linewidth=0.3,color='black')
# props = dict(edgecolor="black", linewidth=0.3, facecolor='white')
# ax.text(0.075, 0.30, '$\overline{H_{T}1}: '+str(int(HT_1.n))+'~\pm~'+str(int(HT_1.s))+'~$W/K', transform=ax.transAxes, fontsize=8, bbox=props)
# ax.text(0.075, 0.10, '$\overline{H_{T}2}: '+str(int(HT_2.n))+'~\pm~'+str(int(HT_2.s))+'~$W/K', transform=ax.transAxes, fontsize=8, bbox=props)
ax.set_ylim(-2,22)
ax.set_yticks([0,5,10,15,20])
ax.xaxis.set_major_locator(mdates.HourLocator([0]))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%d.%b'))
# ax.xaxis.set_minor_locator(mdates.HourLocator(byhour=range(24), interval=1))
plt.setp(ax.get_xticklabels(), rotation=0, ha="center", rotation_mode="anchor")
ax.set_ylabel(r'\textbf{Temperatur} ($^\circ$C)')
h0, l0 = ax.get_legend_handles_labels()
legend = plt.legend(h0, l0, ncol=2, loc=1)
set_legend_linewidth(legend)
ax.set(xlim=[pd.to_datetime("2019-02-08 14:00:00"),pd.to_datetime("2019-02-11 08:00:00")])
# plt.savefig(output_folder + '/' + file_name + '_gesamt.pdf')
[(737098.5833333334, 737101.3333333334)]
Plot ln
# daten_diff = daten.rolling(50, center=True).mean()
daten_diff['Sem1'] = (daten_diff['Sem1_2'] + daten_diff['Sem1_1'])/2
daten_diff['Sem2'] = (daten_diff['Sem2_2'] + daten_diff['Sem2_1'])/2
daten_diff['Sem_diff'] = (daten_diff['Sem1'] - daten_diff['Sem2'])
daten_diff['timecode'] = 0
for i in range(1, 16201):
daten_diff['timecode'].iloc[i] = i * (1/240)
HT2 = 92.33
T_start2 = 19.8
HT1 = 121.69
T_start1 = 20.6
T_außen = 7.3
t_code = daten_diff['timecode']
c = 8838.0
daten_diff['Sem1_ln'] = (T_start1 - T_außen) / 2.718281828**(HT1*t_code/c) + T_außen
daten_diff['Sem2_ln'] = (T_start2 - T_außen) / 2.718281828**(HT2*t_code/c) + T_außen
## Plot
fig, ax = plt.subplots(figsize=[5.9,2.5])
daten_diff['Sem1'].plot(ax=ax,color=colo('rot',1), linewidth=0.8, label="Seminarraum 1", x_compat=True)
daten_diff['Sem1_ln'].plot(ax=ax,color=colo('rot',1.5), linewidth=0.5, label="", x_compat=True)
daten_diff['Sem2'].plot(ax=ax,color=colo('blau',1), linewidth=0.8, label="Seminarraum 2", x_compat=True)
daten_diff['Sem2_ln'].plot(ax=ax,color=colo('blau',1.5), linewidth=0.5, label="", x_compat=True)
# daten_diff['Aussen'].plot(ax=ax,color=colo('blau',1), linewidth=0.8, label="Außentemperatur", x_compat=True)
# daten_diff['Sem_diff'].plot(ax=ax,color=colo('rot',1), linewidth=0.8, label="$\Delta$T(Sem1 - Sem2)", x_compat=True)
# ax.axhline(0, linewidth=0.3,color='black')
ax.set_ylim(12,21)
ax.set_yticks([12,16,20])
ax.xaxis.set_major_locator(mdates.HourLocator([0]))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%d.%b'))
# ax.xaxis.set_minor_locator(mdates.HourLocator(byhour=range(24), interval=1))
plt.setp(ax.get_xticklabels(), rotation=0, ha="center", rotation_mode="anchor")
ax.set_ylabel(r'\textbf{Temperatur} ($^\circ$C)')
h0, l0 = ax.get_legend_handles_labels()
legend = plt.legend(h0, l0, ncol=2, loc=1)
set_legend_linewidth(legend)
ax.set(xlim=[pd.to_datetime("2019-02-08 13:00:00"),pd.to_datetime("2019-02-11 08:24:00")])
# plt.savefig(output_folder + '/' + file_name + '_gesamt.pdf')
sem1_mess = round(daten_diff['Sem1']["2019-02-11 08:24:00"],2)
sem1_ln = round(daten_diff['Sem1_ln']["2019-02-11 08:24:00"],2)
sem2_mess = round(daten_diff['Sem2']["2019-02-11 08:24:00"],2)
sem2_ln = round(daten_diff['Sem2_ln']["2019-02-11 08:24:00"],2)
print_md(f'Innenraumendtemperatur')
print_md(f'Seminarraum 1 - gemessen: {sem1_mess} °C | berechnet: {sem1_ln} °C')
print_md(f'Seminarraum 2 - gemessen: {sem2_mess} °C | berechnet: {sem2_ln} °C')
Innenraumendtemperatur
Seminarraum 1 - gemessen: nan °C | berechnet: 12.56 °C
Seminarraum 2 - gemessen: nan °C | berechnet: 13.48 °C
Save & Upload
## Skriptlaufzeit Ende (Funktion in: libraries_and_styles.ipynb)
hours, minutes, seconds = laufzeit()
## Notebook speichern vor dem Upload (Funktion in: libraries_and_styles.ipynb)
save_notebook()
## Notebook als Markdown Datei mit eingebetten Grafiken speichern und auf den Server laden
%run ../Template/save_and_upload.ipynb Lueftung_aus monatlicher_Gasverbrauch
