modified energy_storage_system.py and energy_system_catalog.py generation_system.py

The xml data is modified
This commit is contained in:
Saeed Ranjbar 2023-08-15 14:49:17 -04:00
parent ccdc7a454d
commit 21ca1e1e28
4 changed files with 101 additions and 46 deletions

View File

@ -18,7 +18,7 @@ class EnergyStorageSystem:
""" """
def __init__(self, model_name, manufacturer, storage_type, volume, rated_output_power, def __init__(self, model_name, manufacturer, storage_type, volume, rated_output_power,
nominal_efficiency, battery_voltage, depth_of_discharge, self_discharge_rate, diameter, layers, nominal_efficiency, battery_voltage, depth_of_discharge, self_discharge_rate, height, layers,
maximum_operating_temperature): maximum_operating_temperature):
self._model_name = model_name self._model_name = model_name
self._manufacturer = manufacturer self._manufacturer = manufacturer
@ -29,7 +29,7 @@ class EnergyStorageSystem:
self._battery_voltage = battery_voltage self._battery_voltage = battery_voltage
self._depth_of_discharge = depth_of_discharge self._depth_of_discharge = depth_of_discharge
self._self_discharge_rate = self_discharge_rate self._self_discharge_rate = self_discharge_rate
self._diameter = diameter self._height = height
self._layers = layers self._layers = layers
self._maximum_operating_temperature = maximum_operating_temperature self._maximum_operating_temperature = maximum_operating_temperature
@ -106,12 +106,12 @@ class EnergyStorageSystem:
return self._self_discharge_rate return self._self_discharge_rate
@property @property
def diameter(self): def height(self):
""" """
Get the diameter of the storage system in meters Get the diameter of the storage system in meters
:return: float :return: float
""" """
return self._diameter return self._height
@property @property
def layers(self) -> [Layer]: def layers(self) -> [Layer]:
@ -143,7 +143,7 @@ class EnergyStorageSystem:
'battery voltage [V]': self.battery_voltage, 'battery voltage [V]': self.battery_voltage,
'depth of discharge': self.depth_of_discharge, 'depth of discharge': self.depth_of_discharge,
'self discharge rate': self.self_discharge_rate, 'self discharge rate': self.self_discharge_rate,
'diameter [m]': self.diameter, 'height [m]': self.height,
'layers': _layers, 'layers': _layers,
'maximum operating temperature [Celsius]': self.maximum_operating_temperature 'maximum operating temperature [Celsius]': self.maximum_operating_temperature
} }

View File

@ -16,8 +16,10 @@ class GenerationSystem:
""" """
def __init__(self, model_name, manufacturer, system_type, fuel_type, nominal_thermal_output, modulation_range, def __init__(self, model_name, manufacturer, system_type, fuel_type, nominal_thermal_output, modulation_range,
source_types, heat_efficiency, cooling_efficiency, electricity_efficiency, source_temperature, source_types, supply_medium, heat_efficiency, cooling_efficiency, electricity_efficiency,
source_mass_flow, nominal_electricity_output): source_temperature, source_mass_flow, nominal_electricity_output, maximum_heating_supply_temperature,
minimum_heating_supply_temperature, maximum_cooling_supply_temperature,
minimum_cooling_supply_temperature):
self._model_name = model_name self._model_name = model_name
self._manufacturer = manufacturer self._manufacturer = manufacturer
self._system_type = system_type self._system_type = system_type
@ -25,12 +27,17 @@ class GenerationSystem:
self._nominal_thermal_output = nominal_thermal_output self._nominal_thermal_output = nominal_thermal_output
self._modulation_range = modulation_range self._modulation_range = modulation_range
self._source_types = source_types self._source_types = source_types
self._supply_medium = supply_medium
self._heat_efficiency = heat_efficiency self._heat_efficiency = heat_efficiency
self._cooling_efficiency = cooling_efficiency self._cooling_efficiency = cooling_efficiency
self._electricity_efficiency = electricity_efficiency self._electricity_efficiency = electricity_efficiency
self._source_temperature = source_temperature self._source_temperature = source_temperature
self._source_mass_flow = source_mass_flow self._source_mass_flow = source_mass_flow
self._nominal_electricity_output = nominal_electricity_output self._nominal_electricity_output = nominal_electricity_output
self._maximum_heating_supply_temperature = maximum_heating_supply_temperature
self._minimum_heating_supply_temperature = minimum_heating_supply_temperature
self._maximum_cooling_supply_temperature = maximum_cooling_supply_temperature
self._minimum_cooling_supply_temperature = minimum_cooling_supply_temperature
@property @property
def model_name(self): def model_name(self):
@ -88,6 +95,14 @@ class GenerationSystem:
""" """
return self._source_types return self._source_types
@property
def supply_medium(self):
"""
Get the supply medium from ['air', 'water']
:return: string
"""
return self._supply_medium
@property @property
def heat_efficiency(self): def heat_efficiency(self):
""" """
@ -136,21 +151,59 @@ class GenerationSystem:
""" """
return self._nominal_electricity_output return self._nominal_electricity_output
@property
def maximum_heating_supply_temperature(self):
"""
Get the maximum heating supply temperature in degree Celsius
:return: float
"""
return self._minimum_heating_supply_temperature
@property
def minimum_heating_supply_temperature(self):
"""
Get the minimum heating supply temperature in degree Celsius
:return: float
"""
return self._minimum_heating_supply_temperature
@property
def maximum_cooling_supply_temperature(self):
"""
Get the maximum cooling supply temperature in degree Celsius
:return: float
"""
return self._maximum_cooling_supply_temperature
@property
def minimum_cooling_supply_temperature(self):
"""
Get the minimum cooling supply temperature in degree Celsius
:return: float
"""
return self._minimum_cooling_supply_temperature
def to_dictionary(self): def to_dictionary(self):
"""Class content to dictionary""" """Class content to dictionary"""
content = {'Energy Generation component': {'model name': self.model_name, content = {'Energy Generation component': {
'model name': self.model_name,
'manufacturer': self.manufacturer, 'manufacturer': self.manufacturer,
'type': self.system_type, 'type': self.system_type,
'fuel type': self.fuel_type, 'fuel type': self.fuel_type,
'nominal thermal output': self.nominal_thermal_output, 'nominal thermal output': self.nominal_thermal_output,
'modulation_range': self.modulation_range, 'modulation_range': self.modulation_range,
'source types': self.source_types, 'source types': self.source_types,
'supply medium': self.supply_medium,
'source temperature [Celsius]': self.source_temperature, 'source temperature [Celsius]': self.source_temperature,
'source mass flow [kg/s]': self.source_mass_flow, 'source mass flow [kg/s]': self.source_mass_flow,
'heat efficiency': self.heat_efficiency, 'heat efficiency': self.heat_efficiency,
'cooling efficiency': self.cooling_efficiency, 'cooling efficiency': self.cooling_efficiency,
'electricity efficiency': self.electricity_efficiency, 'electricity efficiency': self.electricity_efficiency,
'nominal power output [kW]': self.nominal_electricity_output, 'nominal power output [kW]': self.nominal_electricity_output,
'maximum heating supply temperature [Celsius]': self.maximum_heating_supply_temperature,
'minimum heating supply temperature [Celsius]': self.minimum_heating_supply_temperature,
'maximum cooling supply temperature [Celsius]': self.maximum_cooling_supply_temperature,
'minimum cooling supply temperature [Celsius]': self.minimum_cooling_supply_temperature
} }
} }
return content return content

View File

@ -1,5 +1,5 @@
""" """
Montreal custom energy systems catalog module Energy system catalog
SPDX - License - Identifier: LGPL - 3.0 - or -later SPDX - License - Identifier: LGPL - 3.0 - or -later
Copyright © 2022 Concordia CERC group Copyright © 2022 Concordia CERC group
Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca
@ -18,7 +18,7 @@ from hub.catalog_factories.data_models.energy_systems.performance_curves import
from hub.catalog_factories.data_models.energy_systems.archetype import Archetype from hub.catalog_factories.data_models.energy_systems.archetype import Archetype
class MontrealCustomCatalog(Catalog): class EnergySystem(Catalog):
""" """
Montreal custom energy systems catalog class Montreal custom energy systems catalog class
""" """

View File

@ -2,42 +2,44 @@
<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"> <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">
<energycomponent> <energycomponent>
<media name="Water" density="981.0" heatCapacity="4180.0" evaporationTemperature="100.0"/> <media name="Water" density="981.0" heatCapacity="4180.0" evaporationTemperature="100.0"/>
<boilers modelName="ALP080B" manufacturer="//@energycomponent.0/@manufacturers.0" installedThermalPower="21.0" modulationRange="0.88" nominalEfficiency="0.95" combi="true"/> <boilers modelName="ALP080B" manufacturer="Alpine" installedThermalPower="21.0" modulationRange="0.88" nominalEfficiency="0.95" combi="true"/>
<boilers modelName="ALP105B" manufacturer="//@energycomponent.0/@manufacturers.0" installedThermalPower="28.0" modulationRange="0.88" nominalEfficiency="0.95" combi="true"/> <boilers modelName="ALP105B" manufacturer="Alpine" installedThermalPower="28.0" modulationRange="0.88" nominalEfficiency="0.95" combi="true"/>
<boilers modelName="ALP150B" manufacturer="//@energycomponent.0/@manufacturers.0" installedThermalPower="40.0" modulationRange="0.88" nominalEfficiency="0.95" combi="true"/> <boilers modelName="ALP150B" manufacturer="Alpine" installedThermalPower="40.0" modulationRange="0.88" nominalEfficiency="0.95" combi="true"/>
<boilers modelName="ALP210B" manufacturer="//@energycomponent.0/@manufacturers.0" installedThermalPower="57.0" modulationRange="0.87" nominalEfficiency="0.95" combi="true"/> <boilers modelName="ALP210B" manufacturer="Alpine" installedThermalPower="57.0" modulationRange="0.87" nominalEfficiency="0.95" combi="true"/>
<boilers modelName="ALTAC-136" manufacturer="//@energycomponent.0/@manufacturers.1" installedThermalPower="33.0" modulationRange="0.95" nominalEfficiency="0.95" combi="true"/> <boilers modelName="ALTAC-136" manufacturer="Alta" installedThermalPower="33.0" modulationRange="0.95" nominalEfficiency="0.95" combi="true"/>
<boilers modelName="ALTAC-200" installedThermalPower="41.0" modulationRange="0.92" nominalEfficiency="0.95" combi="true"/> <boilers modelName="ALTA-120" manufacturer="Alta" installedThermalPower="33.0" modulationRange="0.95" nominalEfficiency="0.95" combi="true"/>
<boilers modelName="ALTA-120" manufacturer="//@energycomponent.0/@manufacturers.1" installedThermalPower="33.0" modulationRange="0.95" nominalEfficiency="0.95" combi="true"/> <boilers modelName="ASPN-085" manufacturer="Aspen" installedThermalPower="23.15" modulationRange="0.97" nominalEfficiency="0.96"/>
<boilers modelName="ASPN-085" manufacturer="//@energycomponent.0/@manufacturers.2" installedThermalPower="23.15" modulationRange="0.97" nominalEfficiency="0.96"/> <boilers modelName="ASPN-110" manufacturer="Aspen" installedThermalPower="30.19" modulationRange="0.96" nominalEfficiency="0.96"/>
<boilers modelName="ASPN-110" manufacturer="//@energycomponent.0/@manufacturers.2" installedThermalPower="30.19" modulationRange="0.96" nominalEfficiency="0.96"/> <boilers modelName="ASPNC-155" manufacturer="Aspen" installedThermalPower="42.5" modulationRange="0.96" nominalEfficiency="0.95" combi="true"/>
<boilers modelName="ASPNC-155" manufacturer="//@energycomponent.0/@manufacturers.2" installedThermalPower="42.5" modulationRange="0.96" nominalEfficiency="0.95" combi="true"/> <boilers modelName="K2WTC-135B" manufacturer="K2" installedThermalPower="32.8" modulationRange="0.96" nominalEfficiency="0.95" combi="true"/>
<boilers modelName="K2WTC-135B" manufacturer="//@energycomponent.0/@manufacturers.3" installedThermalPower="32.8" modulationRange="0.96" nominalEfficiency="0.95" combi="true"/> <boilers modelName="K2WTC-180B" manufacturer="K2" installedThermalPower="49.5" modulationRange="0.96" nominalEfficiency="0.95" combi="true"/>
<boilers modelName="K2WTC-180B" manufacturer="//@energycomponent.0/@manufacturers.3" installedThermalPower="49.5" modulationRange="0.96" nominalEfficiency="0.95" combi="true"/> <photovoltaicModules 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"/>
<heatPumps 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="//@energycomponent.0/@manufacturers.4" installedThermalPower="51.7" modulationRange="0.0" fuel="Electricity" nominalCOP="3.32" maxHeatingSupTemperature="55.0" minHeatingSupTemperature="6.0" maxCoolingSupTemperature="11.0" minCoolingSupTemperature="30.0"> <heatPumps 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 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="//@energycomponent.0/@manufacturers.4" installedThermalPower="279.3" modulationRange="0.0" fuel="Electricity" nominalCOP="3.07" maxHeatingSupTemperature="55.0" minHeatingSupTemperature="6.0" maxCoolingSupTemperature="11.0" minCoolingSupTemperature="30.0"> <heatPumps 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 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="//@energycomponent.0/@manufacturers.4" installedThermalPower="279.3" modulationRange="0.0" fuel="Electricity" nominalCOP="3.46" maxHeatingSupTemperature="55.0" minHeatingSupTemperature="6.0" maxCoolingSupTemperature="11.0" minCoolingSupTemperature="30.0"> <heatPumps 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>
<thermalStorages modelName="HF 200" manufacturer="//@energycomponent.0/@manufacturers.5" volume="0.5" maxTemp="95.0" insulationThickness="90.0" usesMedium="//@energycomponent.0/@media.0" insulationMaterial="//@energycomponent.0/@materials.0" height="1.5" tankMaterial="//@energycomponent.0/@materials.1"/> <thermalStorages modelName="HF 200" manufacturer="//@energycomponent.0/@manufacturers.5" volume="0.5" maxTemp="95.0" insulationThickness="90.0" usesMedium="Water" insulationMaterial="Polyurethane" height="1.5" tankMaterial="//@energycomponent.0/@materials.1"/>
<thermalStorages modelName="HF 300" manufacturer="//@energycomponent.0/@manufacturers.5" volume="0.6" maxTemp="95.0" insulationThickness="90.0" usesMedium="//@energycomponent.0/@media.0" insulationMaterial="//@energycomponent.0/@materials.0" height="1.3" tankMaterial="//@energycomponent.0/@materials.1"/> <thermalStorages modelName="HF 300" manufacturer="//@energycomponent.0/@manufacturers.5" volume="0.6" maxTemp="95.0" insulationThickness="90.0" usesMedium="Water" insulationMaterial="Polyurethane" height="1.3" tankMaterial="//@energycomponent.0/@materials.1"/>
<thermalStorages modelName="HF 500" manufacturer="//@energycomponent.0/@manufacturers.5" volume="0.5" maxTemp="95.0" insulationThickness="90.0" usesMedium="//@energycomponent.0/@media.0" insulationMaterial="//@energycomponent.0/@materials.0" height="1.5" tankMaterial="//@energycomponent.0/@materials.1"/> <thermalStorages modelName="HF 500" manufacturer="//@energycomponent.0/@manufacturers.5" volume="0.5" maxTemp="95.0" insulationThickness="90.0" usesMedium="Water" insulationMaterial="Polyurethane" height="1.5" tankMaterial="//@energycomponent.0/@materials.1"/>
<thermalStorages modelName="HF 200" manufacturer="//@energycomponent.0/@manufacturers.5" volume="0.5" maxTemp="95.0" insulationThickness="90.0" usesMedium="//@energycomponent.0/@media.0" insulationMaterial="//@energycomponent.0/@materials.0" height="1.5" tankMaterial="//@energycomponent.0/@materials.1"/> <thermalStorages modelName="HF 200" manufacturer="//@energycomponent.0/@manufacturers.5" volume="0.5" maxTemp="95.0" insulationThickness="90.0" usesMedium="Water" insulationMaterial="Polyurethane" height="1.5" tankMaterial="//@energycomponent.0/@materials.1"/>
<thermalStorages modelName="HF 200" manufacturer="//@energycomponent.0/@manufacturers.5" volume="0.5" maxTemp="95.0" insulationThickness="90.0" usesMedium="//@energycomponent.0/@media.0" insulationMaterial="//@energycomponent.0/@materials.0" height="1.5" tankMaterial="//@energycomponent.0/@materials.1"/> <thermalStorages modelName="HF 200" manufacturer="//@energycomponent.0/@manufacturers.5" volume="0.5" maxTemp="95.0" insulationThickness="90.0" usesMedium="Water" insulationMaterial="Polyurethane" height="1.5" tankMaterial="//@energycomponent.0/@materials.1"/>
<powerStorages/>
<manufacturers name="Alpine" country="USA"/> <manufacturers name="Alpine" country="USA"/>
<manufacturers name="Alta" country="USA"/> <manufacturers name="Alta" country="USA"/>
<manufacturers name="Aspen" country="USA"/> <manufacturers name="Aspen" country="USA"/>
<manufacturers name="K2" country="USA"/> <manufacturers name="K2" country="USA"/>
<manufacturers name="TRANE"/> <manufacturers name="TRANE"/>
<manufacturers name="reflex"/> <manufacturers name="reflex"/>
<manufacturers name="Canadian Solar" country="Canada"/>
<materials name="Polyurethane" thermalConductivity="0.028"/> <materials name="Polyurethane" thermalConductivity="0.028"/>
<materials name="Steel" thermalConductivity="18.0"/> <materials name="Polyurethane" thermalConductivity="18.0"/>
</energycomponent> </energycomponent>
<energysystemconfiguration configurationName="PvHpBoiler"/> <energysystemconfiguration configurationName="PvHpBoiler"/>
<energysystemconfiguration configurationName="hpTesBoiler"/> <energysystemconfiguration configurationName="hpTesBoiler"/>
<energysystemconfiguration/> <energysystemconfiguration configurationName="hpTes"/>
</encomp:EnergySystemCatalog> </encomp:EnergySystemCatalog>