In [1]:
import dependencies
from IPython.display import display, HTML
from heat_pump import MEAWHeatPumpSystem
from heat_pump import EnergyEstimationM2

RAMING VAN HET ENERGIEVERBRUIK VAN EEN LUCHT/WATER-WARMTEPOMPSYSTEEM MET DE VERFIJNDE BIN-METHODE

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:

  • het warmtepompsysteem bij een watervertrektemperatuur van 35 °C (W35)
  • het warmtepompsysteem bij een watervertrektemperatuur van 55 °C (W55)

Aan het computerprogramma moet dan ook nog duidelijk worden gemaakt welk warmtepompsysteem moet gebruikt worden voor een bepaalde periode van de dag.

1. Configuratie van het warmtepompsysteem met watervertrektemperatuur 35 °C (W35)

Creatie en configuratie van het warmtepompsysteem W35

In [2]:
hp_system_W35 = MEAWHeatPumpSystem()

Definitie van de warmtebelastingskarakteristiek van het gebouw.

In [3]:
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").

In [4]:
hp_system_W35.set_heat_pump_performance(hp_data_path='../datafiles/hp_W35.csv')

Bivalentietemperatuur van het systeem gebouw + warmtepomp W35

In [5]:
hp_W35_bp = hp_system_W35.get_heat_pump_balance_point()
display(HTML(f"Bivalentiepunt W35 = <b>{hp_W35_bp:.1f}</b> °C"))
Bivalentiepunt W35 = -1.3 °C

Diagram van de karakteristieken

In [6]:
graph = hp_system_W35.plot_characteristics(fig_size=(12, 6), dpi=96)
graph.show_graph()

2. Configuratie van het warmtepompsysteem met watervertrektemperatuur 55 °C (W55)

Creatie en configuratie van het warmtepompsysteem W55

Op analoge wijze wordt het warmtepompsysteem met watervertrektemperatuur van 55 °C geconfigureerd in het computerprogramma.

In [7]:
hp_system_W55 = MEAWHeatPumpSystem()
In [8]:
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.

In [9]:
hp_system_W55.set_heat_pump_performance(hp_data_path='../datafiles/hp_W55.csv')

Bivalentietemperatuur van het systeem gebouw + warmtepomp W55

In [10]:
hp_W55_bp = hp_system_W55.get_heat_pump_balance_point()
display(HTML(f"Bivalentiepunt W55 = <b>{hp_W55_bp:.1f}</b> °C"))
Bivalentiepunt W55 = 3.7 °C

Diagram van de karakteristieken

In [11]:
graph = hp_system_W55.plot_characteristics(fig_size=(12, 6), dpi=96)
graph.show_graph()

3. Raming van het energieverbruik

Configuratie van het rekenobject en de berekeningen laten uitvoeren

Het rekenobject dat de routines bevat om het energieverbruik te berekenen wordt in het computerprogramma aangemaakt en het hierboven geconfigureerde warmtepompsysteem hp_system_W35wordt eerst aan het rekenobject doorgegeven.

In [12]:
eem2 = EnergyEstimationM2(default_hp_system=hp_system_W35)

Voor de dagblokken 04u00-08u00 en 16u00-20u00 wordt het warmtepompsysteem hp_system_W55 ingesteld.

In [13]:
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').**

In [14]:
eem2.make_energy_estimation(meteo_data_path='../datafiles/tmy_zedelgem.csv')

Resultaten opvragen

Totale thermische en elektrische energieverbruiken over een stookseizoen

In [15]:
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>"
))
  • Thermische energiebehoefte voor ruimteverwarming en SWW-bereiding = 20540 kWh
  • Elektrisch verbruik van de warmtepomp = 7261 kWh
  • Elektrisch verbruik van de bijverwarming = 601 kWh

Staafdiagram met totale thermische en elektrische verbruiken over een stookseizoen

In [16]:
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

In [17]:
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()))
(0, 4) (4, 8) (8, 12) (12, 16) (16, 20) (20, 24) total hours
(-9.0, -7.0) 0.0 0.0 0.0 0.0 0.0 0.0 0.0
(-7.0, -5.0) 2.0 2.0 0.0 0.0 0.0 0.0 4.0
(-5.0, -3.0) 14.0 27.0 2.0 0.0 5.0 15.0 63.0
(-3.0, -1.0) 56.0 47.0 17.0 0.0 19.0 29.0 168.0
(-1.0, 1.0) 70.0 53.0 31.0 28.0 35.0 59.0 276.0
(1.0, 3.0) 75.0 71.0 47.0 26.0 52.0 66.0 337.0
(3.0, 5.0) 125.0 129.0 85.0 61.0 84.0 111.0 595.0
(5.0, 7.0) 143.0 144.0 93.0 102.0 129.0 155.0 766.0
(7.0, 9.0) 78.0 97.0 152.0 124.0 152.0 121.0 724.0
(9.0, 11.0) 124.0 116.0 159.0 186.0 156.0 117.0 858.0
(11.0, 13.0) 99.0 105.0 113.0 111.0 92.0 86.0 606.0
(13.0, 15.0) 31.0 31.0 97.0 117.0 81.0 56.0 413.0
(15.0, 17.0) 31.0 25.0 31.0 66.0 29.0 30.0 212.0

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

In [18]:
df_COP = eem2.get_table('COP')
display(HTML(df_COP.to_html()))
(0, 4) (4, 8) (8, 12) (12, 16) (16, 20) (20, 24)
(-9.0, -7.0) 2.451533 1.667220 2.451533 2.451533 1.667220 2.451533
(-7.0, -5.0) 2.549376 1.692762 2.549376 2.549376 1.692762 2.549376
(-5.0, -3.0) 2.678672 1.727718 2.678672 2.678672 1.727718 2.678672
(-3.0, -1.0) 2.821514 1.765620 2.821514 2.821514 1.765620 2.821514
(-1.0, 1.0) 2.960000 1.800000 2.960000 2.960000 1.800000 2.960000
(1.0, 3.0) 3.131064 1.866412 3.131064 3.131064 1.866412 3.131064
(3.0, 5.0) 3.419074 2.031802 3.419074 3.419074 2.031802 3.419074
(5.0, 7.0) 3.764171 2.246865 3.764171 3.764171 2.246865 3.764171
(7.0, 9.0) 4.097449 2.455098 4.097449 4.097449 2.455098 4.097449
(9.0, 11.0) 4.350000 2.600000 4.350000 4.350000 2.600000 4.350000
(11.0, 13.0) 4.550000 2.690000 4.550000 4.550000 2.690000 4.550000
(13.0, 15.0) 4.760000 2.790000 4.760000 4.760000 2.790000 4.760000
(15.0, 17.0) 4.980000 2.890000 4.980000 4.980000 2.890000 4.980000

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

In [19]:
df_Q_e_load = eem2.get_table('Q_e_load')
display(HTML(df_Q_e_load.to_html()))
(0, 4) (4, 8) (8, 12) (12, 16) (16, 20) (20, 24)
(-9.0, -7.0) 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
(-7.0, -5.0) 19.374709 22.263598 0.000000 0.000000 0.000000 0.000000
(-5.0, -3.0) 123.293602 276.780518 17.613372 0.000000 51.255651 132.100288
(-3.0, -1.0) 443.856967 440.411700 134.742293 0.000000 178.038772 229.854501
(-1.0, 1.0) 493.174407 449.959035 218.405809 197.269763 297.142759 415.675572
(1.0, 3.0) 462.351007 540.247842 289.739964 160.281682 395.674476 406.868886
(3.0, 5.0) 660.501439 867.970818 449.140978 322.324702 565.190300 586.525277
(5.0, 7.0) 629.678038 842.081381 409.510892 449.140978 754.364570 682.518153
(7.0, 9.0) 274.768598 481.810522 535.446500 436.811618 755.002055 426.243595
(9.0, 11.0) 327.608714 474.028223 420.078915 491.413070 637.486231 309.114673
(11.0, 13.0) 174.372380 336.607069 199.031100 195.508426 294.931908 151.474997
(13.0, 15.0) 27.300726 72.078504 85.424853 103.038224 188.334155 49.317441
(15.0, 17.0) 0.000000 36.111111 0.000000 0.000000 41.888889 0.000000

4. Geleverde thermische energie door de warmtepomp (eenheid kWh) i.f.v. het moment van de dag en de buitentemperatuur

In [20]:
df_Q_e_hp = eem2.get_table('Q_e_hp')
display(HTML(df_Q_e_hp.to_html()))
(0, 4) (4, 8) (8, 12) (12, 16) (16, 20) (20, 24)
(-9.0, -7.0) 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
(-7.0, -5.0) 14.905277 13.954300 0.000000 0.000000 0.000000 0.000000
(-5.0, -3.0) 105.286934 187.174541 15.040991 0.000000 34.661952 112.807429
(-3.0, -1.0) 424.561526 323.659766 128.884749 0.000000 130.841182 219.862219
(-1.0, 1.0) 493.174407 362.520000 218.405809 197.269763 239.400000 415.675572
(1.0, 3.0) 462.351007 483.854676 289.739964 160.281682 354.372439 406.868886
(3.0, 5.0) 660.501439 867.970818 449.140978 322.324702 565.190300 586.525277
(5.0, 7.0) 629.678038 842.081381 409.510892 449.140978 754.364570 682.518153
(7.0, 9.0) 274.768598 481.810522 535.446500 436.811618 755.002055 426.243595
(9.0, 11.0) 327.608714 474.028223 420.078915 491.413070 637.486231 309.114673
(11.0, 13.0) 174.372380 336.607069 199.031100 195.508426 294.931908 151.474997
(13.0, 15.0) 27.300726 72.078504 85.424853 103.038224 188.334155 49.317441
(15.0, 17.0) 0.000000 36.111111 0.000000 0.000000 41.888889 0.000000

5. Opgenomen elektrische energie door de warmtepomp (eenheid kWh) i.f.v. het moment van de dag en de buitentemperatuur

In [21]:
df_W_e_hp = eem2.get_table('W_e_hp')
display(HTML(df_W_e_hp.to_html()))
(0, 4) (4, 8) (8, 12) (12, 16) (16, 20) (20, 24)
(-9.0, -7.0) 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
(-7.0, -5.0) 5.846637 8.243508 0.000000 0.000000 0.000000 0.000000
(-5.0, -3.0) 39.305653 108.336254 5.615093 0.000000 20.062269 42.113200
(-3.0, -1.0) 150.472940 183.312226 45.679285 0.000000 74.104942 77.923487
(-1.0, 1.0) 166.612975 201.400000 73.785746 66.645190 133.000000 140.430936
(1.0, 3.0) 147.665797 259.243274 92.537233 51.190809 189.868313 129.945901
(3.0, 5.0) 193.181404 427.192526 131.363355 94.272525 278.171878 171.545087
(5.0, 7.0) 167.281990 374.780570 108.791784 119.320021 335.740927 181.319640
(7.0, 9.0) 67.058455 196.248988 130.678015 106.605749 307.524187 104.026577
(9.0, 11.0) 75.312348 182.318547 96.569865 112.968522 245.187012 71.060844
(11.0, 13.0) 38.323600 125.132740 43.743099 42.968885 109.640115 33.291208
(13.0, 15.0) 5.735447 25.834589 17.946398 21.646686 67.503281 10.360807
(15.0, 17.0) 0.000000 12.495194 0.000000 0.000000 14.494425 0.000000

6. Opgenomen elektrische energie door de bijverwarming (eenheid kWh) i.f.v. het moment van de dag en de buitentemperatuur

In [22]:
df_Q_e_eh = eem2.get_table('Q_e_eh')
display(HTML(df_Q_e_eh.to_html()))
(0, 4) (4, 8) (8, 12) (12, 16) (16, 20) (20, 24)
(-9.0, -7.0) 0.000000 0.000000 0.000000 0.0 0.000000 0.000000
(-7.0, -5.0) 4.469431 8.309298 0.000000 0.0 0.000000 0.000000
(-5.0, -3.0) 18.006668 89.605976 2.572381 0.0 16.593699 19.292859
(-3.0, -1.0) 19.295441 116.751935 5.857544 0.0 47.197591 9.992282
(-1.0, 1.0) 0.000000 87.439035 0.000000 0.0 57.742759 0.000000
(1.0, 3.0) 0.000000 56.393166 0.000000 0.0 41.302037 0.000000
(3.0, 5.0) 0.000000 0.000000 0.000000 0.0 0.000000 0.000000
(5.0, 7.0) 0.000000 0.000000 0.000000 0.0 0.000000 0.000000
(7.0, 9.0) 0.000000 0.000000 0.000000 0.0 0.000000 0.000000
(9.0, 11.0) 0.000000 0.000000 0.000000 0.0 0.000000 0.000000
(11.0, 13.0) 0.000000 0.000000 0.000000 0.0 0.000000 0.000000
(13.0, 15.0) 0.000000 0.000000 0.000000 0.0 0.000000 0.000000
(15.0, 17.0) 0.000000 0.000000 0.000000 0.0 0.000000 0.000000
In [ ]: