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
4 changed files with 79 additions and 44 deletions
Showing only changes of commit 72b5ff1040 - Show all commits

View File

@ -179,32 +179,32 @@ class MontrealCustomCatalog(Catalog):
_names = {'archetypes': [], 'systems': [], 'generation_equipments': [], 'distribution_equipments': [], _names = {'archetypes': [], 'systems': [], 'generation_equipments': [], 'distribution_equipments': [],
'emission_equipments': []} 'emission_equipments': []}
for archetype in self._content.archetypes: for archetype in self._content.archetypes:
_names['archetypes'].append(archetype.manufacturer) _names['archetypes'].append(archetype.name)
for system in self._content.systems: for system in self._content.systems:
_names['systems'].append(system.manufacturer) _names['systems'].append(system.name)
for equipment in self._content.generation_equipments: for equipment in self._content.generation_equipments:
_names['generation_equipments'].append(equipment.manufacturer) _names['generation_equipments'].append(equipment.name)
for equipment in self._content.distribution_equipments: for equipment in self._content.distribution_equipments:
_names['distribution_equipments'].append(equipment.manufacturer) _names['distribution_equipments'].append(equipment.name)
for equipment in self._content.emission_equipments: for equipment in self._content.emission_equipments:
_names['emission_equipments'].append(equipment.manufacturer) _names['emission_equipments'].append(equipment.name)
else: else:
_names = {category: []} _names = {category: []}
if category.lower() == 'archetypes': if category.lower() == 'archetypes':
for archetype in self._content.archetypes: for archetype in self._content.archetypes:
_names[category].append(archetype.manufacturer) _names[category].append(archetype.name)
elif category.lower() == 'systems': elif category.lower() == 'systems':
for system in self._content.systems: for system in self._content.systems:
_names[category].append(system.manufacturer) _names[category].append(system.name)
elif category.lower() == 'generation_equipments': elif category.lower() == 'generation_equipments':
for system in self._content.generation_equipments: for system in self._content.generation_equipments:
_names[category].append(system.manufacturer) _names[category].append(system.name)
elif category.lower() == 'distribution_equipments': elif category.lower() == 'distribution_equipments':
for system in self._content.distribution_equipments: for system in self._content.distribution_equipments:
_names[category].append(system.manufacturer) _names[category].append(system.name)
elif category.lower() == 'emission_equipments': elif category.lower() == 'emission_equipments':
for system in self._content.emission_equipments: for system in self._content.emission_equipments:
_names[category].append(system.manufacturer) _names[category].append(system.name)
else: else:
raise ValueError(f'Unknown category [{category}]') raise ValueError(f'Unknown category [{category}]')
return _names return _names
@ -234,18 +234,18 @@ class MontrealCustomCatalog(Catalog):
:parm: entry name :parm: entry name
""" """
for entry in self._content.archetypes: for entry in self._content.archetypes:
if entry.manufacturer.lower() == name.lower(): if entry.name.lower() == name.lower():
return entry return entry
for entry in self._content.systems: for entry in self._content.systems:
if entry.manufacturer.lower() == name.lower(): if entry.name.lower() == name.lower():
return entry return entry
for entry in self._content.generation_equipments: for entry in self._content.generation_equipments:
if entry.manufacturer.lower() == name.lower(): if entry.name.lower() == name.lower():
return entry return entry
for entry in self._content.distribution_equipments: for entry in self._content.distribution_equipments:
if entry.manufacturer.lower() == name.lower(): if entry.name.lower() == name.lower():
return entry return entry
for entry in self._content.emission_equipments: for entry in self._content.emission_equipments:
if entry.manufacturer.lower() == name.lower(): if entry.name.lower() == name.lower():
return entry return entry
raise IndexError(f"{name} doesn't exists in the catalog") raise IndexError(f"{name} doesn't exists in the catalog")

View File

@ -29,7 +29,7 @@ class NorthAmericaEnergySystemCatalog(Catalog):
""" """
def __init__(self, path): def __init__(self, path):
path = str(path / 'Tools4CitiesESMF.xml') path = str(path / 'north_america_components.xml')
with open(path, 'r', encoding='utf-8') as xml: with open(path, 'r', encoding='utf-8') as xml:
self._archetypes = xmltodict.parse(xml.read(), force_list=['photovoltaicModules']) self._archetypes = xmltodict.parse(xml.read(), force_list=['photovoltaicModules'])
self._generation_components = self._load_generation_components() self._generation_components = self._load_generation_components()

View File

@ -1,44 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<encomp:EnergySystemCatalog xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:encomp="https://www.hft-stuttgart.de/energycomponents"> <EnergySystemComponentCatalog>
<energycomponent> <medias>
<media media_id="1" media_name="Water" density="981.0" heatCapacity="4180.0" evaporationTemperature="100.0"/> <media media_id="1" media_name="Water" density="981.0" heatCapacity="4180.0" evaporationTemperature="100.0"/>
<boilers generation_id="2" name="Natural-Gas Boiler" modelName="ALP080B" manufacturer="Alpine" installedThermalPower="21.0" modulationRange="0.88" nominalEfficiency="0.95" combi="true" fuel="natural gas"/> </medias>
<boilers generation_id="3" name="Natural-Gas Boiler" modelName="ALP105B" manufacturer="Alpine" installedThermalPower="28.0" modulationRange="0.88" nominalEfficiency="0.95" combi="true" fuel="natural gas"/> <energy_generation_components>
<boilers generation_id="4" 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="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="5" 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="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="6" 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="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="7" 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="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="8" name="Natural-Gas Boiler" modelName="ASPN-085" manufacturer="Aspen" installedThermalPower="23.15" modulationRange="0.97" nominalEfficiency="0.96" 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="9" name="Natural-Gas Boiler" modelName="ASPN-110" manufacturer="Aspen" installedThermalPower="30.19" modulationRange="0.96" nominalEfficiency="0.96" 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="10" 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="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="11" 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="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="12" name="Natural-Gas Boiler" modelName="K2WTC-180B" manufacturer="K2" installedThermalPower="49.5" modulationRange="0.96" nominalEfficiency="0.95" combi="true" 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"/>
<photovoltaicModules generation_id="13" 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"/> <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"/>
<heatPumps generation_id="14" 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"> <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"/> <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>
<heatPumps generation_id="15" 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"> <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"/> <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>
<heatPumps generation_id="1" 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"> <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"/> <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> </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="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="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="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="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"/> <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/> <powerStorages/>
<manufacturers manufacturer_id="1" name="Alpine" country="USA"/> <manufacturers manufacturer_id="1" name="reflex" product="Storage Tank"/>
<manufacturers manufacturer_id="2" name="Alta" country="USA"/> </energy_storage_components>
<manufacturers manufacturer_id="3" name="Aspen" country="USA"/> <materials>
<manufacturers manufacturer_id="4" name="K2" country="USA"/>
<manufacturers manufacturer_id="5" name="TRANE"/>
<manufacturers manufacturer_id="6" name="reflex"/>
<manufacturers manufacturer_id="7" name="Canadian Solar" country="Canada"/>
<materials material_id="1" name="Polyurethane" thermalConductivity="0.028"/> <materials material_id="1" name="Polyurethane" thermalConductivity="0.028"/>
<materials material_id="2" name="Steel" thermalConductivity="18.0"/> <materials material_id="2" name="Steel" thermalConductivity="18.0"/>
</energycomponent> </materials>
<energysystemconfiguration configurationName="PvHpBoiler"> <energysystemconfiguration configurationName="PvHpBoiler">
<components> <components>
<boilers modelName="virtualBoiler" description="template boiler north america" nominalEfficiency="0.95"/> <boilers modelName="virtualBoiler" description="template boiler north america" nominalEfficiency="0.95"/>
@ -64,5 +70,5 @@
<energydemand name="domesticHotWater"/> <energydemand name="domesticHotWater"/>
<energydemand name="electricity"/> <energydemand name="electricity"/>
<energydemand name="cooling"/> <energydemand name="cooling"/>
</encomp:EnergySystemCatalog> </EnergySystemComponentCatalog>

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<EnergySystemComponentCatalog>
<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>