import dependencies
from IPython.display import display, HTML
from heat_pump import MEAWHeatPumpSystem
from heat_pump import EnergyEstimationM2
In deze notebook wordt het energieverbruik van het lucht/water-warmtepompsysteem geraamd m.b.v. de verfijnde binmethode. Een dag wordt opgedeeld in blokken van 0u00 tot 4u00, van 4u00 tot 8u00, ... en van 20u00 tot 24u00. Het computerprogramma zal voor elk blok van de dag nagaan hoeveel uren van het verwarmingsseizoen de buitentemperatuur in een bepaalde temperatuurbin vertoeft. In het blok tussen 4u00 en 8u00 en in het blok tussen 16u00 en 20u00 is SWW-bereiding actief (W55). In de overige blokken is enkel ruimteverwarming (vloerverwarming) actief (W35).
Alvorens de computer de energieverbruiken kan berekenen, dient eerst het warmtepompsysteem geconfigureerd. Er zijn twee configuraties:
Aan het computerprogramma moet dan ook nog duidelijk worden gemaakt welk warmtepompsysteem moet gebruikt worden voor een bepaalde periode van de dag.
Creatie en configuratie van het warmtepompsysteem W35
hp_system_W35 = MEAWHeatPumpSystem()
Definitie van de warmtebelastingskarakteristiek van het gebouw.
hp_system_W35.set_heat_load_line(
Q_cond_des=10.321, # kW
Q_vent_des=0.928, # kW
Q_dhw_des=0.0, # kW
T_outside_bal=16.0, # °C
T_outside_des=-8.0, # °C
T_room_des=20.385, # °C
eff_inst=0.9
)
Noteer dat voor de parameter Q_dhw_des
nul is ingevuld. De SWW-bereiding is uitgeschakeld en de watervertrektemperatuur is ingesteld op 35 °C voor de vloerverwarming.
Definitie van de verwarmingscapaciteitskarakteristiek van de warmtepomp.
De prestatietabel van de warmtepomp geldig bij een watervertrektemperatuur van 35 °C wordt in het computerprogramma geladen (het csv-bestand "hp_W35.csv").
hp_system_W35.set_heat_pump_performance(hp_data_path='../datafiles/hp_W35.csv')
Bivalentietemperatuur van het systeem gebouw + warmtepomp W35
hp_W35_bp = hp_system_W35.get_heat_pump_balance_point()
display(HTML(f"Bivalentiepunt W35 = <b>{hp_W35_bp:.1f}</b> °C"))
Diagram van de karakteristieken
graph = hp_system_W35.plot_characteristics(fig_size=(12, 6), dpi=96)
graph.show_graph()
Creatie en configuratie van het warmtepompsysteem W55
Op analoge wijze wordt het warmtepompsysteem met watervertrektemperatuur van 55 °C geconfigureerd in het computerprogramma.
hp_system_W55 = MEAWHeatPumpSystem()
hp_system_W55.set_heat_load_line(
Q_cond_des=10.321, # kW
Q_vent_des=0.928, # kW
Q_dhw_des=1.3, # kW
T_outside_bal=16.0, # °C
T_outside_des=-8.0, # °C
T_room_des=20.385, # °C
eff_inst=0.9
)
Noteer dat nu voor de parameter Q_dhw_des
1,3 kW is ingevuld. De SWW-bereiding is ingeschakeld en de watervertrektemperatuur is ingesteld op 55 °C t.b.v. de SWW-bereiding. Het vermogen 1,3 kW is het gemiddeld vermogen om 200 liter water te verwarmen van 10°C tot 55°C over 2 perioden van telkens 4 uren, nl. van 04u00 tot 08u00 en van 16u00 tot 20u00.
hp_system_W55.set_heat_pump_performance(hp_data_path='../datafiles/hp_W55.csv')
Bivalentietemperatuur van het systeem gebouw + warmtepomp W55
hp_W55_bp = hp_system_W55.get_heat_pump_balance_point()
display(HTML(f"Bivalentiepunt W55 = <b>{hp_W55_bp:.1f}</b> °C"))
Diagram van de karakteristieken
graph = hp_system_W55.plot_characteristics(fig_size=(12, 6), dpi=96)
graph.show_graph()
Het rekenobject dat de routines bevat om het energieverbruik te berekenen wordt in het computerprogramma aangemaakt en het hierboven geconfigureerde warmtepompsysteem hp_system_W35
wordt eerst aan het rekenobject doorgegeven.
eem2 = EnergyEstimationM2(default_hp_system=hp_system_W35)
Voor de dagblokken 04u00-08u00 en 16u00-20u00 wordt het warmtepompsysteem hp_system_W55
ingesteld.
eem2.configure_hp_system(hour_bin=(4, 8), hp_system=hp_system_W55)
eem2.configure_hp_system(hour_bin=(16, 20), hp_system=hp_system_W55)
Het rekenobject berekent de energiehoeveelheden in de loop van het verwarmingsseizoen (maanden januari, februari, maart, april, oktober, november en december) op basis van het databestand met de buitentemperaturen (het csv-bestand 'tmy_zedelgem.csv').**
eem2.make_energy_estimation(meteo_data_path='../datafiles/tmy_zedelgem.csv')
Totale thermische en elektrische energieverbruiken over een stookseizoen
ect = eem2.get_energy_consumption_totals()
display(HTML(
"<ul>"
f"<li>Thermische energiebehoefte voor ruimteverwarming en SWW-bereiding = <b>{ect['Q_e_hp']:.0f}</b> kWh</li>"
f"<li>Elektrisch verbruik van de warmtepomp = <b>{ect['W_e_hp']:.0f}</b> kWh</li>"
f"<li>Elektrisch verbruik van de bijverwarming = <b>{ect['Q_e_eh']:.0f}</b> kWh</li>"
"</ul>"
))
Staafdiagram met totale thermische en elektrische verbruiken over een stookseizoen
graph = eem2.plot_energy_consumption(fig_size=(10, 5), dpi=150)
graph.show_graph()
Bintabellen
1. Aantal uren van het stookseizoen dat de buitentemperatuur zich in een bepaalde temperatuurbin en periode van de dag bevindt
df_h_cnt = eem2.get_table('hour_cnt')
df_h_cnt['total hours'] = df_h_cnt.sum(axis=1)
display(HTML(df_h_cnt.to_html()))
Voorbeeld: Tussen de dagtijdstippen 0u00 en 4u00 bevinden zich 143 uren van het stookseizoen in de temperatuurbin (5°C, 7°C).
2. COP van de warmtepomp i.f.v. het moment van de dag en de buitentemperatuur
df_COP = eem2.get_table('COP')
display(HTML(df_COP.to_html()))
Noteer de variatie van de COP in verticale richting te wijten aan het feit dat de COP temperatuurafhankelijk is. Noteer dat in horizontale richting de COP alleen wijzigt in de dagperioden 04u00-8u00 en 16u00-20u00 wanneer SWW-bereiding is geactiveerd en de watervertrektemperatuur op 55°C is ingesteld.
3. Warmtebehoefte voor ruimteverwarming en SWW-bereiding (eenheid kWh) i.f.v. het moment van de dag en de buitentemperatuur
df_Q_e_load = eem2.get_table('Q_e_load')
display(HTML(df_Q_e_load.to_html()))
4. Geleverde thermische energie door de warmtepomp (eenheid kWh) i.f.v. het moment van de dag en de buitentemperatuur
df_Q_e_hp = eem2.get_table('Q_e_hp')
display(HTML(df_Q_e_hp.to_html()))
5. Opgenomen elektrische energie door de warmtepomp (eenheid kWh) i.f.v. het moment van de dag en de buitentemperatuur
df_W_e_hp = eem2.get_table('W_e_hp')
display(HTML(df_W_e_hp.to_html()))
6. Opgenomen elektrische energie door de bijverwarming (eenheid kWh) i.f.v. het moment van de dag en de buitentemperatuur
df_Q_e_eh = eem2.get_table('Q_e_eh')
display(HTML(df_Q_e_eh.to_html()))