Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 18 additions & 10 deletions bes-rules/bes_rules/boundary_conditions/building.py
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,7 @@ def component_based_retrofit(building: Building, element_retrofit_stats: dict):
)


def get_nominal_supply_temperature(year_of_construction):
def get_nominal_supply_temperature(year_of_construction, use_ufh: bool = False):
"""
Sources:
https://www.ffe.de/projekte/waermepumpen-fahrplan-finanzielle-kipppunkte-zur-modernisierung-mit-waermepumpen-im-wohngebaeudebestand/
Expand All @@ -376,13 +376,19 @@ def get_nominal_supply_temperature(year_of_construction):
# n values as in BESMod / IBPSA.
# Recknagel would use 1.1 for UFH and 1.2 up to 1.3 for residential buildings.
# Konvektoren are not expected.
if year_of_construction < 1950:
return 90 + 273.15, 20, 1.24
if year_of_construction < 1980:
return 70 + 273.15, 15, 1.24
if year_of_construction < 2010:
return 55 + 273.15, 10, 1.24
return 35 + 273.15, 5, 1.1
if use_ufh:
if year_of_construction < 1990:
return 40 + 273.15, 10, 1.1
return 35 + 273.15, 5, 1.1
else:
if year_of_construction < 1950:
return 90 + 273.15, 20, 1.24
if year_of_construction < 1980:
return 70 + 273.15, 15, 1.24
if year_of_construction < 2010:
return 55 + 273.15, 10, 1.24
return 35 + 273.15, 5, 1.1



def get_supply_temperature_after_retrofit(
Expand Down Expand Up @@ -432,7 +438,8 @@ def get_retrofit_temperatures(
building_config: "BuildingConfig",
TOda_nominal: float,
TRoom_nominal: float,
retrofit_transfer_system_to_at_least: tuple = None
retrofit_transfer_system_to_at_least: tuple = None,
use_ufh: bool = False
):
"""
According to Lämmle et al. 2022, Chapter 4.1
Expand All @@ -445,7 +452,8 @@ def get_retrofit_temperatures(
If the retrofit or both supply temperature are lower than the given value, they are not used.
"""
THydNoRet, dTHydNoRet, n_heat_exponent = get_nominal_supply_temperature(
year_of_construction=building_config.year_of_construction
year_of_construction=building_config.year_of_construction,
use_ufh=use_ufh
)
building_config_without_retrofit = building_config.copy()
building_config_without_retrofit.construction_data = "tabula_de_standard"
Expand Down
13 changes: 8 additions & 5 deletions bes-rules/bes_rules/configs/inputs/building.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,8 @@ class BuildingConfig(BaseInputConfig):
description="If specified, the buildings supply and return temperature will be this tuple."
)
use_verboseEnergyBalance: bool = True
possibly_use_underfloor_heating: bool = True
possibly_use_underfloor_heating: bool = True # use UFH if supply temperature allows it
use_ufh: bool = False # always use UFH
method: Optional[str] = None
usage: Optional[str] = None
construction_type: Optional[str] = None
Expand Down Expand Up @@ -107,14 +108,16 @@ def get_modelica_modifier(self, input_config: "InputConfig"):
building_config=self,
TOda_nominal=input_config.weather.TOda_nominal,
TRoom_nominal=input_config.user.room_set_temperature,
retrofit_transfer_system_to_at_least=self.retrofit_transfer_system_to_at_least
retrofit_transfer_system_to_at_least=self.retrofit_transfer_system_to_at_least,
use_ufh=self.use_ufh
)
use_ufh = self.possibly_use_underfloor_heating and THydSupOld_design < 273.15 + 36
apply_ufh = ((self.possibly_use_underfloor_heating and THydSupOld_design < 273.15 + 36)
or self.use_ufh)

if use_ufh:
if apply_ufh:
transfer_system_type = (
"BESMod.Systems.Hydraulical.Transfer.UFHTransferSystem transfer(\n "
" nHeaTra=1.3, "
" nHeaTra=1.1, "
" redeclare BESMod.Systems.Hydraulical.Transfer.RecordsCollection.DefaultUFHData UFHParameters(T_floor=291.15), \n"
" redeclare BESMod.Systems.RecordsCollection.Movers.DPVar parPum)"
)
Expand Down