final_energy_system_model #60

Merged
g_gutierrez merged 113 commits from final_energy_system_model into main 2024-03-14 09:13:21 -04:00
3 changed files with 340 additions and 235 deletions
Showing only changes of commit 072d2a6d9d - Show all commits

View File

@ -14,7 +14,7 @@ from hub.catalog_factories.data_models.energy_systems.content import Content
from hub.catalog_factories.data_models.energy_systems.generation_system import GenerationSystem
from hub.catalog_factories.data_models.energy_systems.pv_generation_system import PvGenerationSystem
from hub.catalog_factories.data_models.energy_systems.distribution_system import DistributionSystem
from hub.catalog_factories.data_models.energy_systems.emission_system import EnergyEmissionSystem
from hub.catalog_factories.data_models.energy_systems.emission_system import EmissionSystem
from hub.catalog_factories.data_models.energy_systems.energy_storage_system import EnergyStorageSystem
from hub.catalog_factories.data_models.energy_systems.performance_curves import PerformanceCurves
from hub.catalog_factories.data_models.energy_systems.archetype import Archetype
@ -29,11 +29,11 @@ class NorthAmericaEnergySystemCatalog(Catalog):
"""
def __init__(self, path):
path = str(path / 'north_america_components.xml')
path = str(path / 'north_america_systems.xml')
with open(path, 'r', encoding='utf-8') as xml:
self._archetypes = xmltodict.parse(xml.read(), force_list=['photovoltaicModules'])
self._generation_components = self._load_generation_components()
print(self._generation_components)
# self._generation_components = self._load_generation_components()
# print(self._generation_components)
self._storage_components = self._load_storage_components()
print(self._storage_components)
self._systems = self._load_systems()
@ -64,122 +64,126 @@ class NorthAmericaEnergySystemCatalog(Catalog):
# return system_configurations
def _load_generation_components(self):
generation_components = []
boilers = self._archetypes['encomp:EnergySystemCatalog']['energycomponent']['boilers']
heat_pumps = self._archetypes['encomp:EnergySystemCatalog']['energycomponent']['heatPumps']
photovoltaics = self._archetypes['encomp:EnergySystemCatalog']['energycomponent']['photovoltaicModules']
for boiler in boilers:
boiler_model_name = boiler['@modelName']
boiler_manufacturer = boiler['@manufacturer']
system_type = 'boiler'
boiler_fuel_type = boiler['@fuel']
boiler_nominal_thermal_output = float(boiler['@installedThermalPower'])
boiler_modulation_range = float(boiler['@modulationRange'])
boiler_heat_efficiency = float(boiler['@nominalEfficiency'])
boiler_component = GenerationSystem(boiler_model_name,
boiler_manufacturer,
system_type,
boiler_fuel_type,
boiler_nominal_thermal_output,
boiler_modulation_range,
None,
None,
boiler_heat_efficiency,
None,
None,
None,
None,
None,
None,
None,
None,
None)
generation_components.append(boiler_component)
for heat_pump in heat_pumps:
heat_pump_model_name = heat_pump['@modelName']
heat_pump_manufacturer = heat_pump['@manufacturer']
system_type = 'heat pump'
heat_pump_fuel_type = heat_pump['@fuel']
heat_pump_nominal_thermal_output = float(heat_pump['@installedThermalPower'])
heat_pump_modulation_range = float(heat_pump['@modulationRange'])
heat_pump_source_type = heat_pump['@heatSource']
heat_pump_supply_medium = heat_pump['@supply_medium']
heat_pump_nominal_cop = float(heat_pump['@nominalCOP'])
heat_pump_maximum_heating_temperature = float(heat_pump['@maxHeatingSupTemperature'])
heat_pump_minimum_heating_temperature = float(heat_pump['@minHeatingSupTemperature'])
heat_pump_maximum_cooling_temperature = float(heat_pump['@maxCoolingSupTemperature'])
heat_pump_minimum_cooling_temperature = float(heat_pump['@minCoolingSupTemperature'])
heat_pump_component = GenerationSystem(heat_pump_model_name,
heat_pump_manufacturer,
system_type,
heat_pump_fuel_type,
heat_pump_nominal_thermal_output,
heat_pump_modulation_range,
heat_pump_source_type,
heat_pump_supply_medium,
heat_pump_nominal_cop,
None,
None,
None,
None,
None,
heat_pump_maximum_heating_temperature,
heat_pump_minimum_heating_temperature,
heat_pump_maximum_cooling_temperature,
heat_pump_minimum_cooling_temperature)
generation_components.append(heat_pump_component)
for pv in photovoltaics:
nominal_ambient_temperature = float(pv['@nominalAmbientTemperature'])
nominal_cell_temperature = float(pv['@nominalCellTemperature'])
nominal_radiation = float(pv['@nominalRadiation'])
standard_test_condition_cell_temperature = float(pv['@STCCellTemperature'])
standard_test_condition_maximum_power = float(pv['@STCMaxPower'])
cell_temperature_coefficient = float(pv['@CellTemperatureCoefficient'])
width = float(pv['@width'])
height = float(pv['@height'])
pv_model_name = pv['@modelName']
pv_manufacturer = pv['@manufacturer']
pv_electricity_efficiency = pv['@nominalEfficiency']
pv_nominal_electricity_output = pv['@nominalPower']
pv_component = PvGenerationSystem(nominal_ambient_temperature,
nominal_cell_temperature,
nominal_radiation,
standard_test_condition_cell_temperature,
standard_test_condition_maximum_power,
cell_temperature_coefficient,
width,
height,
pv_model_name,
pv_manufacturer,
pv_electricity_efficiency,
pv_nominal_electricity_output)
generation_components.append(pv_component)
return generation_components
# def _load_generation_components(self):
# generation_components = []
# boilers = self._archetypes['encomp:EnergySystemCatalog']['energycomponent']['boilers']
# heat_pumps = self._archetypes['encomp:EnergySystemCatalog']['energycomponent']['heatPumps']
# photovoltaics = self._archetypes['encomp:EnergySystemCatalog']['energycomponent']['photovoltaicModules']
# for boiler in boilers:
# boiler_model_name = boiler['@modelName']
# boiler_manufacturer = boiler['@manufacturer']
# system_type = 'boiler'
# boiler_fuel_type = boiler['@fuel']
# boiler_nominal_thermal_output = float(boiler['@installedThermalPower'])
# boiler_modulation_range = float(boiler['@modulationRange'])
# boiler_heat_efficiency = float(boiler['@nominalEfficiency'])
#
# boiler_component = GenerationSystem(boiler_model_name,
# boiler_manufacturer,
# system_type,
# boiler_fuel_type,
# boiler_nominal_thermal_output,
# boiler_modulation_range,
# None,
# None,
# boiler_heat_efficiency,
# None,
# None,
# None,
# None,
# None,
# None,
# None,
# None,
# None)
# generation_components.append(boiler_component)
# for heat_pump in heat_pumps:
# heat_pump_model_name = heat_pump['@modelName']
# heat_pump_manufacturer = heat_pump['@manufacturer']
# system_type = 'heat pump'
# heat_pump_fuel_type = heat_pump['@fuel']
# heat_pump_nominal_thermal_output = float(heat_pump['@installedThermalPower'])
# heat_pump_modulation_range = float(heat_pump['@modulationRange'])
# heat_pump_source_type = heat_pump['@heatSource']
# heat_pump_supply_medium = heat_pump['@supply_medium']
# heat_pump_nominal_cop = float(heat_pump['@nominalCOP'])
# heat_pump_maximum_heating_temperature = float(heat_pump['@maxHeatingSupTemperature'])
# heat_pump_minimum_heating_temperature = float(heat_pump['@minHeatingSupTemperature'])
# heat_pump_maximum_cooling_temperature = float(heat_pump['@maxCoolingSupTemperature'])
# heat_pump_minimum_cooling_temperature = float(heat_pump['@minCoolingSupTemperature'])
#
# heat_pump_component = GenerationSystem(heat_pump_model_name,
# heat_pump_manufacturer,
# system_type,
# heat_pump_fuel_type,
# heat_pump_nominal_thermal_output,
# heat_pump_modulation_range,
# heat_pump_source_type,
# heat_pump_supply_medium,
# heat_pump_nominal_cop,
# None,
# None,
# None,
# None,
# None,
# heat_pump_maximum_heating_temperature,
# heat_pump_minimum_heating_temperature,
# heat_pump_maximum_cooling_temperature,
# heat_pump_minimum_cooling_temperature)
# generation_components.append(heat_pump_component)
# for pv in photovoltaics:
# nominal_ambient_temperature = float(pv['@nominalAmbientTemperature'])
# nominal_cell_temperature = float(pv['@nominalCellTemperature'])
# nominal_radiation = float(pv['@nominalRadiation'])
# standard_test_condition_cell_temperature = float(pv['@STCCellTemperature'])
# standard_test_condition_maximum_power = float(pv['@STCMaxPower'])
# cell_temperature_coefficient = float(pv['@CellTemperatureCoefficient'])
# width = float(pv['@width'])
# height = float(pv['@height'])
# pv_model_name = pv['@modelName']
# pv_manufacturer = pv['@manufacturer']
# pv_electricity_efficiency = pv['@nominalEfficiency']
# pv_nominal_electricity_output = pv['@nominalPower']
# pv_component = PvGenerationSystem(nominal_ambient_temperature,
# nominal_cell_temperature,
# nominal_radiation,
# standard_test_condition_cell_temperature,
# standard_test_condition_maximum_power,
# cell_temperature_coefficient,
# width,
# height,
# pv_model_name,
# pv_manufacturer,
# pv_electricity_efficiency,
# pv_nominal_electricity_output)
# generation_components.append(pv_component)
# return generation_components
def _load_storage_components(self):
storage_components = []
components = self._archetypes['encomp:EnergySystemCatalog']['energycomponent']['thermalStorages']
for component in components:
model_name = component['@modelName']
manufacturer = component['@manufacturer']
volume = component['@volume']
height = component['@height']
maximum_operating_temperature = component['@maxTemp']
thermal_storages = self._archetypes['EnergySystemCatalog']['energy_storage_components']['thermalStorages']
for tes in thermal_storages:
storage_id = tes['@storage_id']
name = tes['@name']
model_name = tes['@modelName']
manufacturer = tes['@manufacturer']
volume = tes['@volume']
height = tes['@height']
maximum_operating_temperature = tes['@maxTemp']
materials = self._load_materials()
material_name = component['@insulationMaterial']
insulation_material = self._search_material(materials, material_name)
material_name = component['@tankMaterial']
insulation_material_name = tes['@insulationMaterial']
insulation_material = self._search_material(materials, insulation_material_name)
material_name = tes['@tankMaterial']
tank_material = self._search_material(materials, material_name)
thickness = float(component['@insulationThickness']) / 100 # from cm to m
thickness = float(tes['@insulationThickness']) / 100 # from cm to m
insulation_layer = Layer(None, 'insulation', insulation_material, thickness)
thickness = float(component['@tankThickness']) / 100 # from cm to m
thickness = float(tes['@tankThickness']) / 100 # from cm to m
tank_layer = Layer(None, 'insulation', tank_material, thickness)
# the convention is from outside to inside
layers = [insulation_layer, tank_layer]
storage_component = EnergyStorageSystem(model_name,
storage_component = EnergyStorageSystem(storage_id,
name,
model_name,
manufacturer,
'thermal',
volume,
@ -194,32 +198,32 @@ class NorthAmericaEnergySystemCatalog(Catalog):
storage_components.append(storage_component)
return storage_components
def _load_systems(self):
systems = []
catalog_systems = self._archetypes['encomp:EnergySystemCatalog']['energysystemconfiguration']
for catalog_system in catalog_systems:
system_configuration = catalog_system['@configurationName']
demands = catalog_system['demands']
demand_types = []
for demand in demands:
name = demand['@name']
demand_types.append(name)
energy_system = System(None,
None,
system_configuration,
demand_types,
None,
None,
None,
None,
None,
None)
systems.append(energy_system)
return systems
# def _load_systems(self):
# systems = []
# catalog_systems = self._archetypes['encomp:EnergySystemCatalog']['energysystemconfiguration']
# for catalog_system in catalog_systems:
# system_configuration = catalog_system['@configurationName']
# demands = catalog_system['demands']
# demand_types = []
# for demand in demands:
# name = demand['@name']
# demand_types.append(name)
# energy_system = System(None,
# None,
# system_configuration,
# demand_types,
# None,
# None,
# None,
# None,
# None,
# None)
# systems.append(energy_system)
# return systems
def _load_materials(self):
materials = []
_materials = self._archetypes['encomp:EnergySystemCatalog']['energycomponent']['materials']
_materials = self._archetypes['EnergySystemCatalog']['materials']['material']
for _material in _materials:
name = _material['@name']
thermal_conductivity = _material['@thermalConductivity']

View File

@ -1,74 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<EnergySystemComponentCatalog>
<medias>
<media media_id="1" media_name="Water" density="981.0" heatCapacity="4180.0" evaporationTemperature="100.0"/>
</medias>
<energy_generation_components>
<boilers generation_id="1" name="Natural-Gas Boiler" modelName="ALP080B" manufacturer="Alpine" installedThermalPower="21.0" modulationRange="0.88" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
<boilers generation_id="2" name="Natural-Gas Boiler" modelName="ALP105B" manufacturer="Alpine" installedThermalPower="28.0" modulationRange="0.88" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
<boilers generation_id="3" name="Natural-Gas Boiler" modelName="ALP150B" manufacturer="Alpine" installedThermalPower="40.0" modulationRange="0.88" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
<boilers generation_id="4" name="Natural-Gas Boiler" modelName="ALP210B" manufacturer="Alpine" installedThermalPower="57.0" modulationRange="0.87" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
<boilers generation_id="5" name="Natural-Gas Boiler" modelName="ALTAC-136" manufacturer="Alta" installedThermalPower="33.0" modulationRange="0.95" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
<boilers generation_id="6" name="Natural-Gas Boiler" modelName="ALTA-120" manufacturer="Alta" installedThermalPower="33.0" modulationRange="0.95" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
<boilers generation_id="7" name="Natural-Gas Boiler" modelName="ASPN-085" manufacturer="Aspen" installedThermalPower="23.15" modulationRange="0.97" nominalEfficiency="0.96" fuel="natural gas"/>
<boilers generation_id="8" name="Natural-Gas Boiler" modelName="ASPN-110" manufacturer="Aspen" installedThermalPower="30.19" modulationRange="0.96" nominalEfficiency="0.96" fuel="natural gas"/>
<boilers generation_id="9" name="Natural-Gas Boiler" modelName="ASPNC-155" manufacturer="Aspen" installedThermalPower="42.5" modulationRange="0.96" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
<boilers generation_id="10" name="Natural-Gas Boiler" modelName="K2WTC-135B" manufacturer="K2" installedThermalPower="32.8" modulationRange="0.96" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
<boilers generation_id="11" name="Natural-Gas Boiler" modelName="K2WTC-180B" manufacturer="K2" installedThermalPower="49.5" modulationRange="0.96" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
<photovoltaicModules generation_id="12" name="Photovoltaic Module" modelName="445MS" manufacturer="Canadian Solar" nominalPower="334.0" nominalEfficiency="0.201" nominalRadiation="800.0" STCRadiation="1000.0" nominalCellTemperature="41.0" STCCellTemperature="26.0" nominalAmbientTemperature="20.0" STCMaxPower="445.0" CellTemperatureCoefficient="-0.0034" height="1.048" wgeneration_idth="2.01"/>
<heatPumps generation_id="13" name="Air-to-Water Heat Pump" modelName="CMAA 012" description="A second degree equation is used in form of A*T_source^2 + B*T_source + C*T_source*T_sup + D*T_sup + E*T_sup^2 + F" manufacturer="TRANE" installedThermalPower="51.7" modulationRange="0.0" fuel="Electricity" heatSource="Air" nominalCOP="3.32" maxHeatingSupTemperature="55.0" minHeatingSupTemperature="6.0" maxCoolingSupTemperature="30.0" minCoolingSupTemperature="11.0" supply_medium="water">
<coefficientOfPerformance xsi:type="encomp:SecondDegreePolynomialFunction" parameter="COP" parameterA="9.5E-4" parameterB="0.177" parameterC="-0.00242" parameterD="-0.155" parameterE="9.3E-4" parameterF="8.044"/>
</heatPumps>
<heatPumps generation_id="14" name="Air-to-Water Heat Pump" modelName="CMAA 70" description="A second degree equation is used in form of A*T_source^2 + B*T_source + C*T_source*T_sup + D*T_sup + E*T_sup^2 + F" manufacturer="TRANE" installedThermalPower="279.3" modulationRange="0.0" fuel="Electricity" heatSource="Air" nominalCOP="3.07" maxHeatingSupTemperature="55.0" minHeatingSupTemperature="6.0" maxCoolingSupTemperature="30.0" minCoolingSupTemperature="11.0" supply_medium="water">
<coefficientOfPerformance xsi:type="encomp:SecondDegreePolynomialFunction" parameter="COP" parameterA="0.0011" parameterB="0.207" parameterC="-0.00292" parameterD="-0.187" parameterE="0.00121" parameterF="8.95"/>
</heatPumps>
<heatPumps generation_id="15" name="Air-to-Water Heat Pump" modelName="CMAA 140" description="A second degree equation is used in form of A*T_source^2 + B*T_source + C*T_source*T_sup + D*T_sup + E*T_sup^2 + F" manufacturer="TRANE" installedThermalPower="279.3" modulationRange="0.0" fuel="Electricity" heatSource="Air" nominalCOP="3.46" maxHeatingSupTemperature="55.0" minHeatingSupTemperature="6.0" maxCoolingSupTemperature="30.0" minCoolingSupTemperature="11.0" supply_medium="water">
<coefficientOfPerformance xsi:type="encomp:SecondDegreePolynomialFunction" parameter="COP" parameterA="0.00109" parameterB="0.209" parameterC="-0.00291" parameterD="-0.172" parameterE="0.00102" parameterF="8.95"/>
</heatPumps>
<manufacturers manufacturer_id="1" name="Alpine" country="USA" product="Natural Gas Boiler"/>
<manufacturers manufacturer_id="2" name="Alta" country="USA" product="Natural Gas Boiler"/>
<manufacturers manufacturer_id="3" name="Aspen" country="USA" product="Natural Gas Boiler"/>
<manufacturers manufacturer_id="4" name="K2" country="USA" product="Natural Gas Boiler"/>
<manufacturers manufacturer_id="5" name="TRANE" product="Air-to-Water Heat Pump"/>
<manufacturers manufacturer_id="6" name="Canadian Solar" country="Canada" product="Photovoltaic Module"/>
</energy_generation_components>
<energy_storage_components>
<thermalStorages storage_id="1" name="Hot Water Storage Tank" modelName="HF 200" manufacturer="reflex" volume="0.5" maxTemp="95.0" insulationThickness="90.0" tankThickness="0" usesMedium="Water" insulationMaterial="Polyurethane" height="1.5" tankMaterial="Steel"/>
<thermalStorages storage_id="2" name="Hot Water Storage Tank" modelName="HF 300" manufacturer="reflex" volume="0.6" maxTemp="95.0" insulationThickness="90.0" tankThickness="0" usesMedium="Water" insulationMaterial="Polyurethane" height="1.3" tankMaterial="Steel"/>
<thermalStorages storage_id="3" name="Hot Water Storage Tank" modelName="HF 500" manufacturer="reflex" volume="0.5" maxTemp="95.0" insulationThickness="90.0" tankThickness="0" usesMedium="Water" insulationMaterial="Polyurethane" height="1.5" tankMaterial="Steel"/>
<thermalStorages storage_id="4" name="Hot Water Storage Tank" modelName="HF 200" manufacturer="reflex" volume="0.5" maxTemp="95.0" insulationThickness="90.0" tankThickness="0" usesMedium="Water" insulationMaterial="Polyurethane" height="1.5" tankMaterial="Steel"/>
<thermalStorages storage_id="5" name="Hot Water Storage Tank" modelName="HF 200" manufacturer="reflex" volume="0.5" maxTemp="95.0" insulationThickness="90.0" tankThickness="0" usesMedium="Water" insulationMaterial="Polyurethane" height="1.5" tankMaterial="Steel"/>
<powerStorages/>
<manufacturers manufacturer_id="1" name="reflex" product="Storage Tank"/>
</energy_storage_components>
<materials>
<materials material_id="1" name="Polyurethane" thermalConductivity="0.028"/>
<materials material_id="2" name="Steel" thermalConductivity="18.0"/>
</materials>
<energysystemconfiguration configurationName="PvHpBoiler">
<components>
<boilers modelName="virtualBoiler" description="template boiler north america" nominalEfficiency="0.95"/>
<photovoltaicModules modelName="virtualPv" nominalEfficiency="0.2" width="1.0" height="1.0"/>
<heatPumps modelName="virtualHp" fuel="Electricity" heatSource="Ground" nominalCOP="2.5" supply_medium="water"/>
</components>
<demands name="heating"/>
<demands name="electricity"/>
<demands name="domesticHotWater"/>
</energysystemconfiguration>
<energysystemconfiguration configurationName="hpTesBoiler">
<components>
<boilers modelName="virtualBoiler" description="template boiler north america" nominalEfficiency="0.95"/>
<thermalStorages modelName="HF 200" manufacturer="reflex" volume="0.5" maxTemp="95.0" insulationThickness="90.0" tankThickness="0" usesMedium="Water" insulationMaterial="Polyurethane" height="1.5" tankMaterial="Steel"/>
<heatPumps modelName="virtualHp" fuel="Electricity" heatSource="Ground" nominalCOP="2.5" supply_medium="water"/>
</components>
<demands name="heating"/>
<demands name="electricity"/>
<demands name="domesticHotWater"/>
</energysystemconfiguration>
<energysystemconfiguration configurationName="hpTes"/>
<energydemand name="heating"/>
<energydemand name="domesticHotWater"/>
<energydemand name="electricity"/>
<energydemand name="cooling"/>
</EnergySystemComponentCatalog>

View File

@ -1,29 +1,204 @@
<?xml version="1.0" encoding="UTF-8"?>
<EnergySystemComponentCatalog>
<energysystemconfiguration configurationName="PvHpBoiler">
<EnergySystemCatalog>
<medias>
<media media_id="1" media_name="Water" density="981.0" heatCapacity="4180.0" evaporationTemperature="100.0"/>
</medias>
<energy_generation_components>
<boilers generation_id="1" name="Natural-Gas Boiler" modelName="ALP080B" manufacturer="Alpine" installedThermalPower="21.0" modulationRange="0.88" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
<boilers generation_id="2" name="Natural-Gas Boiler" modelName="ALP105B" manufacturer="Alpine" installedThermalPower="28.0" modulationRange="0.88" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
<boilers generation_id="3" name="Natural-Gas Boiler" modelName="ALP150B" manufacturer="Alpine" installedThermalPower="40.0" modulationRange="0.88" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
<boilers generation_id="4" name="Natural-Gas Boiler" modelName="ALP210B" manufacturer="Alpine" installedThermalPower="57.0" modulationRange="0.87" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
<boilers generation_id="5" name="Natural-Gas Boiler" modelName="ALTAC-136" manufacturer="Alta" installedThermalPower="33.0" modulationRange="0.95" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
<boilers generation_id="6" name="Natural-Gas Boiler" modelName="ALTA-120" manufacturer="Alta" installedThermalPower="33.0" modulationRange="0.95" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
<boilers generation_id="7" name="Natural-Gas Boiler" modelName="ASPN-085" manufacturer="Aspen" installedThermalPower="23.15" modulationRange="0.97" nominalEfficiency="0.96" fuel="natural gas"/>
<boilers generation_id="8" name="Natural-Gas Boiler" modelName="ASPN-110" manufacturer="Aspen" installedThermalPower="30.19" modulationRange="0.96" nominalEfficiency="0.96" fuel="natural gas"/>
<boilers generation_id="9" name="Natural-Gas Boiler" modelName="ASPNC-155" manufacturer="Aspen" installedThermalPower="42.5" modulationRange="0.96" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
<boilers generation_id="10" name="Natural-Gas Boiler" modelName="K2WTC-135B" manufacturer="K2" installedThermalPower="32.8" modulationRange="0.96" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
<boilers generation_id="11" name="Natural-Gas Boiler" modelName="K2WTC-180B" manufacturer="K2" installedThermalPower="49.5" modulationRange="0.96" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
<photovoltaicModules generation_id="12" name="Photovoltaic Module" modelName="445MS" manufacturer="Canadian Solar" nominalPower="334.0" nominalEfficiency="0.201" nominalRadiation="800.0" STCRadiation="1000.0" nominalCellTemperature="41.0" STCCellTemperature="26.0" nominalAmbientTemperature="20.0" STCMaxPower="445.0" CellTemperatureCoefficient="-0.0034" height="1.048" width="2.01"/>
<heatPumps generation_id="13" name="Air-to-Water Heat Pump" modelName="CMAA 012" description="A second degree equation is used in form of A*T_source^2 + B*T_source + C*T_source*T_sup + D*T_sup + E*T_sup^2 + F" manufacturer="TRANE" installedThermalPower="51.7" modulationRange="0.0" fuel="Electricity" heatSource="Air" nominalCOP="3.32" maxHeatingSupTemperature="55.0" minHeatingSupTemperature="6.0" maxCoolingSupTemperature="30.0" minCoolingSupTemperature="11.0" supply_medium="water">
<performance_curve curve_type="second degree multivariable function">
<parameters>COP</parameters>
<parameters>source_temperature</parameters>
<parameters>supply_temperature</parameters>
<coefficients a="9.5E-4" b="0.177" c="-0.00242" d="-0.155" e="9.3E-4" f="8.044"/>
</performance_curve>
</heatPumps>
<heatPumps generation_id="14" name="Air-to-Water Heat Pump" modelName="CMAA 70" description="A second degree equation is used in form of A*T_source^2 + B*T_source + C*T_source*T_sup + D*T_sup + E*T_sup^2 + F" manufacturer="TRANE" installedThermalPower="279.3" modulationRange="0.0" fuel="Electricity" heatSource="Air" nominalCOP="3.07" maxHeatingSupTemperature="55.0" minHeatingSupTemperature="6.0" maxCoolingSupTemperature="30.0" minCoolingSupTemperature="11.0" supply_medium="water">
<performance_curve curve_type="second degree multivariable function">
<parameters>COP</parameters>
<parameters>source_temperature</parameters>
<parameters>supply_temperature</parameters>
<coefficients a="0.0011" b="0.207" c="-0.00292" d="-0.187" e="0.00121" f="8.95"/>
</performance_curve>
</heatPumps>
<heatPumps generation_id="15" name="Air-to-Water Heat Pump" modelName="CMAA 140" description="A second degree equation is used in form of A*T_source^2 + B*T_source + C*T_source*T_sup + D*T_sup + E*T_sup^2 + F" manufacturer="TRANE" installedThermalPower="279.3" modulationRange="0.0" fuel="Electricity" heatSource="Air" nominalCOP="3.46" maxHeatingSupTemperature="55.0" minHeatingSupTemperature="6.0" maxCoolingSupTemperature="30.0" minCoolingSupTemperature="11.0" supply_medium="water">
<performance_curve curve_type="second degree multivariable function">
<parameters>COP</parameters>
<parameters>source_temperature</parameters>
<parameters>supply_temperature</parameters>
<coefficients a="0.00109" b="0.209" c="-0.00291" d="-0.172" e="0.00102" f="8.95"/>
</performance_curve>
</heatPumps>
<templates generation_id="16" name="template Natural-Gas Boiler" nominalEfficiency="0.90"/>
<templates generation_id="17" name="template Electric Boiler" nominalEfficiency="0.95"/>
<templates generation_id="18" name="template Air-to-Water Heat Pump" fuel="Electricity" heatSource="Air" nominalCOP="3" supply_medium="water"/>
<templates generation_id="19" name="template Groundwater-to-Water Heat Pump" fuel="Electricity" heatSource="Ground" nominalCOP="3.5" supply_medium="water"/>
<templates generation_id="20" name="template Water-to-Water Heat Pump" fuel="Electricity" heatSource="Water" nominalCOP="3.5" supply_medium="water"/>
<templates generation_id="21" name="template Photovoltaic Module" nominalEfficiency="0.2" width="1.0" height="1.0"/>
<manufacturers manufacturer_id="1" name="Alpine" country="USA" product="Natural Gas Boiler"/>
<manufacturers manufacturer_id="2" name="Alta" country="USA" product="Natural Gas Boiler"/>
<manufacturers manufacturer_id="3" name="Aspen" country="USA" product="Natural Gas Boiler"/>
<manufacturers manufacturer_id="4" name="K2" country="USA" product="Natural Gas Boiler"/>
<manufacturers manufacturer_id="5" name="TRANE" product="Air-to-Water Heat Pump"/>
<manufacturers manufacturer_id="6" name="Canadian Solar" country="Canada" product="Photovoltaic Module"/>
</energy_generation_components>
<energy_storage_components>
<thermalStorages storage_id="1" name="Hot Water Storage Tank" modelName="HF 200" manufacturer="reflex" volume="0.5" maxTemp="95.0" insulationThickness="90.0" tankThickness="0" usesMedium="Water" insulationMaterial="Polyurethane" height="1.5" tankMaterial="Steel"/>
<thermalStorages storage_id="2" name="Hot Water Storage Tank" modelName="HF 300" manufacturer="reflex" volume="0.6" maxTemp="95.0" insulationThickness="90.0" tankThickness="0" usesMedium="Water" insulationMaterial="Polyurethane" height="1.3" tankMaterial="Steel"/>
<thermalStorages storage_id="3" name="Hot Water Storage Tank" modelName="HF 500" manufacturer="reflex" volume="0.5" maxTemp="95.0" insulationThickness="90.0" tankThickness="0" usesMedium="Water" insulationMaterial="Polyurethane" height="1.5" tankMaterial="Steel"/>
<thermalStorages storage_id="4" name="Hot Water Storage Tank" modelName="HF 200" manufacturer="reflex" volume="0.5" maxTemp="95.0" insulationThickness="90.0" tankThickness="0" usesMedium="Water" insulationMaterial="Polyurethane" height="1.5" tankMaterial="Steel"/>
<thermalStorages storage_id="5" name="Hot Water Storage Tank" modelName="HF 200" manufacturer="reflex" volume="0.5" maxTemp="95.0" insulationThickness="90.0" tankThickness="0" usesMedium="Water" insulationMaterial="Polyurethane" height="1.5" tankMaterial="Steel"/>
<templates storage_id="6" name="template Hot Water Storage Tank" maxTemp="95.0" insulationThickness="90.0" tankThickness="0" usesMedium="Water" insulationMaterial="Polyurethane" tankMaterial="Steel"/>
<powerStorages/>
<manufacturers manufacturer_id="1" name="reflex" product="Storage Tank"/>
</energy_storage_components>
<materials>
<material material_id="1" name="Polyurethane" thermalConductivity="0.028"/>
<material material_id="2" name="Steel" thermalConductivity="18.0"/>
</materials>
<systems>
<system id="1">
<name>Air Source Heat Pump with Natural Gas Boiler and thermal storage</name>
<demands>
<demand_id>1</demand_id>
<demand_id>2</demand_id>
</demands>
<components>
<boilers modelName="virtualBoiler" description="template boiler north america" nominalEfficiency="0.95"/>
<photovoltaicModules modelName="virtualPv" nominalEfficiency="0.2" width="1.0" height="1.0"/>
<heatPumps modelName="virtualHp" fuel="Electricity" heatSource="Ground" nominalCOP="2.5" supply_medium="water"/>
<generation_id>16</generation_id>
<generation_id>18</generation_id>
<storage_id>6</storage_id>
</components>
<demands name="heating"/>
<demands name="electricity"/>
<demands name="domesticHotWater"/>
</energysystemconfiguration>
<energysystemconfiguration configurationName="hpTesBoiler">
</system>
<system id="2">
<name>Air Source Heat Pump with Electrical Boiler and thermal storage</name>
<demands>
<demand_id>1</demand_id>
<demand_id>2</demand_id>
</demands>
<components>
<boilers modelName="virtualBoiler" description="template boiler north america" nominalEfficiency="0.95"/>
<thermalStorages modelName="HF 200" manufacturer="reflex" volume="0.5" maxTemp="95.0" insulationThickness="90.0" tankThickness="0" usesMedium="Water" insulationMaterial="Polyurethane" height="1.5" tankMaterial="Steel"/>
<heatPumps modelName="virtualHp" fuel="Electricity" heatSource="Ground" nominalCOP="2.5" supply_medium="water"/>
<generation_id>17</generation_id>
<generation_id>18</generation_id>
<storage_id>6</storage_id>
</components>
<demands name="heating"/>
<demands name="electricity"/>
<demands name="domesticHotWater"/>
</energysystemconfiguration>
<energysystemconfiguration configurationName="hpTes"/>
<energydemand name="heating"/>
<energydemand name="domesticHotWater"/>
<energydemand name="electricity"/>
<energydemand name="cooling"/>
</EnergySystemComponentCatalog>
</system>
<system id="3">
<name>Ground Source Heat Pump with Natural Gas Boiler and thermal storage</name>
<demands>
<demand_id>1</demand_id>
<demand_id>2</demand_id>
</demands>
<components>
<generation_id>16</generation_id>
<generation_id>19</generation_id>
<storage_id>6</storage_id>
</components>
</system>
<system id="4">
<name>Ground Source Heat Pump with Electrical Boiler and thermal storage</name>
<demands>
<demand_id>1</demand_id>
<demand_id>2</demand_id>
</demands>
<components>
<generation_id>17</generation_id>
<generation_id>19</generation_id>
<storage_id>6</storage_id>
</components>
</system>
<system id="5">
<name>Water Source Heat Pump with Natural Gas Boiler and thermal storage</name>
<demands>
<demand_id>1</demand_id>
<demand_id>2</demand_id>
</demands>
<components>
<generation_id>16</generation_id>
<generation_id>20</generation_id>
<storage_id>6</storage_id>
</components>
</system>
<system id="6">
<name>Water Source Heat Pump with Electrical Boiler and thermal storage</name>
<demands>
<demand_id>1</demand_id>
<demand_id>2</demand_id>
</demands>
<components>
<generation_id>17</generation_id>
<generation_id>20</generation_id>
<storage_id>6</storage_id>
</components>
</system>
<system id="7">
<name>Photovoltaic System</name>
<demands>
<demand_id>3</demand_id>
</demands>
<components>
<generation_id>21</generation_id>
</components>
</system>
</systems>
<system_archetypes>
<system_archetype id="1">
<name>PV+ASHP+GasBoiler+TES</name>
<systems>
<system_id>7</system_id>
<system_id>1</system_id>
</systems>
</system_archetype>
<system_archetype id="2">
<name>PV+ASHP+ElectricBoiler+TES</name>
<systems>
<system_id>7</system_id>
<system_id>2</system_id>
</systems>
</system_archetype>
<system_archetype id="3">
<name>PV+GSHP+GasBoiler+TES</name>
<systems>
<system_id>7</system_id>
<system_id>3</system_id>
</systems>
</system_archetype>
<system_archetype id="4">
<name>PV+GSHP+ElectricBoiler+TES</name>
<systems>
<system_id>7</system_id>
<system_id>4</system_id>
</systems>
</system_archetype>
<system_archetype id="5">
<name>PV+WSHP+GasBoiler+TES</name>
<systems>
<system_id>7</system_id>
<system_id>5</system_id>
</systems>
</system_archetype>
<system_archetype id="6">
<name>PV+WSHP+ElectricBoiler+TES</name>
<systems>
<system_id>7</system_id>
<system_id>6</system_id>
</systems>
</system_archetype>
</system_archetypes>
<energy_demands>
<demand demand_id="1" name="heating"/>
<demand demand_id="2" name="domesticHotWater"/>
<demand demand_id="3" name="electricity"/>
<demand demand_id="4" name="cooling"/>
</energy_demands>
</EnergySystemCatalog>