diff --git a/hub/catalog_factories/data_models/energy_systems/non_pv_generation_system.py b/hub/catalog_factories/data_models/energy_systems/non_pv_generation_system.py
index a33490d4..5b203d01 100644
--- a/hub/catalog_factories/data_models/energy_systems/non_pv_generation_system.py
+++ b/hub/catalog_factories/data_models/energy_systems/non_pv_generation_system.py
@@ -25,7 +25,7 @@ class NonPvGenerationSystem(GenerationSystem):
maximum_cooling_supply_temperature=None, minimum_cooling_supply_temperature=None, heat_output_curve=None,
heat_fuel_consumption_curve=None, heat_efficiency_curve=None, cooling_output_curve=None,
cooling_fuel_consumption_curve=None, cooling_efficiency_curve=None,
- distribution_systems=None, energy_storage_systems=None):
+ distribution_systems=None, energy_storage_systems=None, dual_supply_capability=False):
super().__init__(system_id=system_id, name=name, model_name=model_name, manufacturer=manufacturer, fuel_type=fuel_type,
distribution_systems=distribution_systems, energy_storage_systems=energy_storage_systems)
self._system_type = system_type
@@ -53,6 +53,7 @@ class NonPvGenerationSystem(GenerationSystem):
self._cooling_output_curve = cooling_output_curve
self._cooling_fuel_consumption_curve = cooling_fuel_consumption_curve
self._cooling_efficiency_curve = cooling_efficiency_curve
+ self._dual_supply_capability = dual_supply_capability
@property
def system_type(self):
@@ -254,6 +255,14 @@ class NonPvGenerationSystem(GenerationSystem):
"""
return self._cooling_efficiency_curve
+ @property
+ def dual_supply_capability(self):
+ """
+ Get dual supply capability
+ :return: bool
+ """
+ return self._dual_supply_capability
+
def to_dictionary(self):
"""Class content to dictionary"""
_distribution_systems = [_distribution_system.to_dictionary() for _distribution_system in
@@ -294,7 +303,8 @@ class NonPvGenerationSystem(GenerationSystem):
'cooling fuel consumption curve': self.cooling_fuel_consumption_curve,
'cooling efficiency curve': self.cooling_efficiency_curve,
'distribution systems connected': _distribution_systems,
- 'storage systems connected': _energy_storage_systems
+ 'storage systems connected': _energy_storage_systems,
+ 'dual supply capability': self.dual_supply_capability
}
}
return content
diff --git a/hub/catalog_factories/energy_systems/north_america_energy_system_catalog.py b/hub/catalog_factories/energy_systems/north_america_energy_system_catalog.py
index 6ba78dfb..fed83211 100644
--- a/hub/catalog_factories/energy_systems/north_america_energy_system_catalog.py
+++ b/hub/catalog_factories/energy_systems/north_america_energy_system_catalog.py
@@ -56,6 +56,9 @@ class NorthAmericaEnergySystemCatalog(Catalog):
boiler_maximum_heat_output = float(boiler['@maximumHeatOutput'])
boiler_minimum_heat_output = float(boiler['@minimumHeatOutput'])
boiler_heat_efficiency = float(boiler['@nominalEfficiency'])
+ dual_supply = False
+ if '@dual_supply' in boiler.keys() and boiler['@dual_supply'] == 'True':
+ dual_supply = True
boiler_component = NonPvGenerationSystem(boiler_id,
name=name,
system_type=system_type,
@@ -65,7 +68,8 @@ class NorthAmericaEnergySystemCatalog(Catalog):
nominal_heat_output=boiler_nominal_thermal_output,
maximum_heat_output=boiler_maximum_heat_output,
minimum_heat_output=boiler_minimum_heat_output,
- heat_efficiency=boiler_heat_efficiency)
+ heat_efficiency=boiler_heat_efficiency,
+ dual_supply_capability=dual_supply)
generation_components.append(boiler_component)
for heat_pump in heat_pumps:
heat_pump_id = heat_pump['@generation_id']
@@ -89,6 +93,9 @@ class NorthAmericaEnergySystemCatalog(Catalog):
parameters = heat_pump['performance_curve']['parameters']
coefficients = list(heat_pump['performance_curve']['coefficients'].values())
cop_curve = PerformanceCurves(cop_curve_type, dependant_variable, parameters, coefficients)
+ dual_supply = False
+ if '@dual_supply' in heat_pump.keys() and heat_pump['@dual_supply'] == 'True':
+ dual_supply = True
heat_pump_component = NonPvGenerationSystem(heat_pump_id,
name=name,
@@ -106,7 +113,8 @@ class NorthAmericaEnergySystemCatalog(Catalog):
minimum_heat_supply_temperature=heat_pump_minimum_heat_supply_temperature,
maximum_cooling_supply_temperature=heat_pump_maximum_cooling_supply_temperature,
minimum_cooling_supply_temperature=heat_pump_minimum_cooling_supply_temperature,
- heat_efficiency_curve=cop_curve)
+ heat_efficiency_curve=cop_curve,
+ dual_supply_capability=dual_supply)
generation_components.append(heat_pump_component)
for pv in photovoltaics:
pv_id = pv['@generation_id']
@@ -143,6 +151,8 @@ class NorthAmericaEnergySystemCatalog(Catalog):
for template in templates:
system_id = template['@generation_id']
system_name = template['@name']
+ if '@dual_supply' in template.keys() and template['@dual_supply'] == 'True':
+ dual_supply = True
if 'storage_id' in template.keys():
storage_component = template['storage_id']
storage_systems = self._search_storage_equipment(self._load_storage_components(), storage_component)
@@ -158,7 +168,8 @@ class NorthAmericaEnergySystemCatalog(Catalog):
system_type=system_type,
fuel_type=fuel_type,
heat_efficiency=heat_efficiency,
- energy_storage_systems=energy_storage_system)
+ energy_storage_systems=energy_storage_system,
+ dual_supply_capability=dual_supply)
generation_components.append(boiler_template)
elif "Heat Pump" in system_name:
system_type = 'heat pump'
@@ -173,7 +184,8 @@ class NorthAmericaEnergySystemCatalog(Catalog):
supply_medium=supply_medium,
fuel_type=fuel_type,
heat_efficiency=heat_efficiency,
- energy_storage_systems=energy_storage_system)
+ energy_storage_systems=energy_storage_system,
+ dual_supply_capability=dual_supply)
generation_components.append(heat_pump_template)
else:
electricity_efficiency = float(template['@nominalEfficiency'])
diff --git a/hub/data/energy_systems/north_america_systems.xml b/hub/data/energy_systems/north_america_systems.xml
index f7c9eb3a..9ce9a4fe 100644
--- a/hub/data/energy_systems/north_america_systems.xml
+++ b/hub/data/energy_systems/north_america_systems.xml
@@ -17,7 +17,7 @@
-
+
COP
source_temperature
@@ -25,7 +25,7 @@
-
+
COP
source_temperature
@@ -33,7 +33,7 @@
-
+
COP
source_temperature
@@ -47,20 +47,20 @@
6
-
+
6
-
+
6
-
+
6
-
-
-
+
+
+