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 37 additions and 15 deletions
Showing only changes of commit f976040f45 - Show all commits

View File

@ -25,7 +25,7 @@ class NonPvGenerationSystem(GenerationSystem):
maximum_cooling_supply_temperature=None, minimum_cooling_supply_temperature=None, heat_output_curve=None, 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, heat_fuel_consumption_curve=None, heat_efficiency_curve=None, cooling_output_curve=None,
cooling_fuel_consumption_curve=None, cooling_efficiency_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, 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) distribution_systems=distribution_systems, energy_storage_systems=energy_storage_systems)
self._system_type = system_type self._system_type = system_type
@ -53,6 +53,7 @@ class NonPvGenerationSystem(GenerationSystem):
self._cooling_output_curve = cooling_output_curve self._cooling_output_curve = cooling_output_curve
self._cooling_fuel_consumption_curve = cooling_fuel_consumption_curve self._cooling_fuel_consumption_curve = cooling_fuel_consumption_curve
self._cooling_efficiency_curve = cooling_efficiency_curve self._cooling_efficiency_curve = cooling_efficiency_curve
self._dual_supply_capability = dual_supply_capability
@property @property
def system_type(self): def system_type(self):
@ -254,6 +255,14 @@ class NonPvGenerationSystem(GenerationSystem):
""" """
return self._cooling_efficiency_curve 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): def to_dictionary(self):
"""Class content to dictionary""" """Class content to dictionary"""
_distribution_systems = [_distribution_system.to_dictionary() for _distribution_system in _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 fuel consumption curve': self.cooling_fuel_consumption_curve,
'cooling efficiency curve': self.cooling_efficiency_curve, 'cooling efficiency curve': self.cooling_efficiency_curve,
'distribution systems connected': _distribution_systems, '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 return content

View File

@ -56,6 +56,9 @@ class NorthAmericaEnergySystemCatalog(Catalog):
boiler_maximum_heat_output = float(boiler['@maximumHeatOutput']) boiler_maximum_heat_output = float(boiler['@maximumHeatOutput'])
boiler_minimum_heat_output = float(boiler['@minimumHeatOutput']) boiler_minimum_heat_output = float(boiler['@minimumHeatOutput'])
boiler_heat_efficiency = float(boiler['@nominalEfficiency']) 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, boiler_component = NonPvGenerationSystem(boiler_id,
name=name, name=name,
system_type=system_type, system_type=system_type,
@ -65,7 +68,8 @@ class NorthAmericaEnergySystemCatalog(Catalog):
nominal_heat_output=boiler_nominal_thermal_output, nominal_heat_output=boiler_nominal_thermal_output,
maximum_heat_output=boiler_maximum_heat_output, maximum_heat_output=boiler_maximum_heat_output,
minimum_heat_output=boiler_minimum_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) generation_components.append(boiler_component)
for heat_pump in heat_pumps: for heat_pump in heat_pumps:
heat_pump_id = heat_pump['@generation_id'] heat_pump_id = heat_pump['@generation_id']
@ -89,6 +93,9 @@ class NorthAmericaEnergySystemCatalog(Catalog):
parameters = heat_pump['performance_curve']['parameters'] parameters = heat_pump['performance_curve']['parameters']
coefficients = list(heat_pump['performance_curve']['coefficients'].values()) coefficients = list(heat_pump['performance_curve']['coefficients'].values())
cop_curve = PerformanceCurves(cop_curve_type, dependant_variable, parameters, coefficients) 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, heat_pump_component = NonPvGenerationSystem(heat_pump_id,
name=name, name=name,
@ -106,7 +113,8 @@ class NorthAmericaEnergySystemCatalog(Catalog):
minimum_heat_supply_temperature=heat_pump_minimum_heat_supply_temperature, minimum_heat_supply_temperature=heat_pump_minimum_heat_supply_temperature,
maximum_cooling_supply_temperature=heat_pump_maximum_cooling_supply_temperature, maximum_cooling_supply_temperature=heat_pump_maximum_cooling_supply_temperature,
minimum_cooling_supply_temperature=heat_pump_minimum_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) generation_components.append(heat_pump_component)
for pv in photovoltaics: for pv in photovoltaics:
pv_id = pv['@generation_id'] pv_id = pv['@generation_id']
@ -143,6 +151,8 @@ class NorthAmericaEnergySystemCatalog(Catalog):
for template in templates: for template in templates:
system_id = template['@generation_id'] system_id = template['@generation_id']
system_name = template['@name'] system_name = template['@name']
if '@dual_supply' in template.keys() and template['@dual_supply'] == 'True':
dual_supply = True
if 'storage_id' in template.keys(): if 'storage_id' in template.keys():
storage_component = template['storage_id'] storage_component = template['storage_id']
storage_systems = self._search_storage_equipment(self._load_storage_components(), storage_component) storage_systems = self._search_storage_equipment(self._load_storage_components(), storage_component)
@ -158,7 +168,8 @@ class NorthAmericaEnergySystemCatalog(Catalog):
system_type=system_type, system_type=system_type,
fuel_type=fuel_type, fuel_type=fuel_type,
heat_efficiency=heat_efficiency, 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) generation_components.append(boiler_template)
elif "Heat Pump" in system_name: elif "Heat Pump" in system_name:
system_type = 'heat pump' system_type = 'heat pump'
@ -173,7 +184,8 @@ class NorthAmericaEnergySystemCatalog(Catalog):
supply_medium=supply_medium, supply_medium=supply_medium,
fuel_type=fuel_type, fuel_type=fuel_type,
heat_efficiency=heat_efficiency, 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) generation_components.append(heat_pump_template)
else: else:
electricity_efficiency = float(template['@nominalEfficiency']) electricity_efficiency = float(template['@nominalEfficiency'])

View File

@ -17,7 +17,7 @@
<boilers generation_id="10" name="Natural-Gas Boiler" modelName="K2WTC-135B" manufacturer="K2" installedThermalPower="32.8" minimumHeatOutput="3.5" maximumHeatOutput="35.0" 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" minimumHeatOutput="3.5" maximumHeatOutput="35.0" 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" minimumHeatOutput="5.3" maximumHeatOutput="53.0" 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" minimumHeatOutput="5.3" maximumHeatOutput="53.0" 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"/> <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" minimumHeatOutput="0" maximumHeatOutput="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"> <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" minimumHeatOutput="0" maximumHeatOutput="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" dual_supply="False">
<performance_curve curve_type="second degree multivariable function"> <performance_curve curve_type="second degree multivariable function">
<dependant_variable>COP</dependant_variable> <dependant_variable>COP</dependant_variable>
<parameters>source_temperature</parameters> <parameters>source_temperature</parameters>
@ -25,7 +25,7 @@
<coefficients a="9.5E-4" b="0.177" c="-0.00242" d="-0.155" e="9.3E-4" f="8.044"/> <coefficients a="9.5E-4" b="0.177" c="-0.00242" d="-0.155" e="9.3E-4" f="8.044"/>
</performance_curve> </performance_curve>
</heatPumps> </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" minimumHeatOutput="0" maximumHeatOutput="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" minimumHeatOutput="0" maximumHeatOutput="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" dual_supply="False">
<performance_curve curve_type="second degree multivariable function"> <performance_curve curve_type="second degree multivariable function">
<dependant_variable>COP</dependant_variable> <dependant_variable>COP</dependant_variable>
<parameters>source_temperature</parameters> <parameters>source_temperature</parameters>
@ -33,7 +33,7 @@
<coefficients a="0.0011" b="0.207" c="-0.00292" d="-0.187" e="0.00121" f="8.95"/> <coefficients a="0.0011" b="0.207" c="-0.00292" d="-0.187" e="0.00121" f="8.95"/>
</performance_curve> </performance_curve>
</heatPumps> </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="557" minimumHeatOutput="0" maximumHeatOutput="557" 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="557" minimumHeatOutput="0" maximumHeatOutput="557" 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" dual_supply="False">
<performance_curve curve_type="second degree multivariable function"> <performance_curve curve_type="second degree multivariable function">
<dependant_variable>COP</dependant_variable> <dependant_variable>COP</dependant_variable>
<parameters>source_temperature</parameters> <parameters>source_temperature</parameters>
@ -47,20 +47,20 @@
<templateGenerationEquipments generation_id="17" name="template Electric Boiler" nominalEfficiency="0.95" fuel="electricity"> <templateGenerationEquipments generation_id="17" name="template Electric Boiler" nominalEfficiency="0.95" fuel="electricity">
<storage_id>6</storage_id> <storage_id>6</storage_id>
</templateGenerationEquipments> </templateGenerationEquipments>
<templateGenerationEquipments generation_id="18" name="template Air-to-Water Heat Pump" fuel="electricity" heatSource="Air" nominalCOP="3" supply_medium="water"> <templateGenerationEquipments generation_id="18" name="template Air-to-Water Heat Pump" fuel="electricity" heatSource="Air" nominalCOP="3" supply_medium="water" dual_supply="True">
<storage_id>6</storage_id> <storage_id>6</storage_id>
</templateGenerationEquipments> </templateGenerationEquipments>
<templateGenerationEquipments generation_id="19" name="template Groundwater-to-Water Heat Pump" fuel="electricity" heatSource="Ground" nominalCOP="3.5" supply_medium="water"> <templateGenerationEquipments generation_id="19" name="template Groundwater-to-Water Heat Pump" fuel="electricity" heatSource="Ground" nominalCOP="3.5" supply_medium="water" dual_supply="True">
<storage_id>6</storage_id> <storage_id>6</storage_id>
</templateGenerationEquipments> </templateGenerationEquipments>
<templateGenerationEquipments generation_id="20" name="template Water-to-Water Heat Pump" fuel="electricity" heatSource="Water" nominalCOP="3.5" supply_medium="water"> <templateGenerationEquipments generation_id="20" name="template Water-to-Water Heat Pump" fuel="electricity" heatSource="Water" nominalCOP="3.5" supply_medium="water" dual_supply="True">
<storage_id>6</storage_id> <storage_id>6</storage_id>
</templateGenerationEquipments> </templateGenerationEquipments>
<templateGenerationEquipments generation_id="21" name="template Natural-Gas Boiler" nominalEfficiency="0.90" fuel="natural gas"/> <templateGenerationEquipments generation_id="21" name="template Natural-Gas Boiler" nominalEfficiency="0.90" fuel="natural gas"/>
<templateGenerationEquipments generation_id="22" name="template Electric Boiler" nominalEfficiency="0.95" fuel="electricity"/> <templateGenerationEquipments generation_id="22" name="template Electric Boiler" nominalEfficiency="0.95" fuel="electricity"/>
<templateGenerationEquipments generation_id="23" name="template Air-to-Water Heat Pump" fuel="electricity" heatSource="Air" nominalCOP="3" supply_medium="water"/> <templateGenerationEquipments generation_id="23" name="template Air-to-Water Heat Pump" fuel="electricity" heatSource="Air" nominalCOP="3" supply_medium="water" dual_supply="True"/>
<templateGenerationEquipments generation_id="24" name="template Groundwater-to-Water Heat Pump" fuel="electricity" heatSource="Ground" nominalCOP="3.5" supply_medium="water"/> <templateGenerationEquipments generation_id="24" name="template Groundwater-to-Water Heat Pump" fuel="electricity" heatSource="Ground" nominalCOP="3.5" supply_medium="water" dual_supply="True"/>
<templateGenerationEquipments generation_id="25" name="template Water-to-Water Heat Pump" fuel="electricity" heatSource="Water" nominalCOP="3.5" supply_medium="water"/> <templateGenerationEquipments generation_id="25" name="template Water-to-Water Heat Pump" fuel="electricity" heatSource="Water" nominalCOP="3.5" supply_medium="water" dual_supply="True"/>
<templateGenerationEquipments generation_id="26" name="template Photovoltaic Module" nominalEfficiency="0.2" width="1.0" height="1.0"/> <templateGenerationEquipments generation_id="26" 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="1" name="Alpine" country="USA" product="Natural Gas Boiler"/>
<manufacturers manufacturer_id="2" name="Alta" country="USA" product="Natural Gas Boiler"/> <manufacturers manufacturer_id="2" name="Alta" country="USA" product="Natural Gas Boiler"/>