emission_system.py is rolled back to original
performance_curves.py is imported in generation_system.py The order of arguments in pv_generation_system.py is fixed Modulation range is replaced with maximum and minimum heat output in generation_system.py maximum,minimum, and nominal cooling output are also added to generation_system.py
This commit is contained in:
parent
0528aa0718
commit
e20a700deb
|
@ -0,0 +1,60 @@
|
||||||
|
"""
|
||||||
|
Energy System catalog emission system
|
||||||
|
SPDX - License - Identifier: LGPL - 3.0 - or -later
|
||||||
|
Copyright © 2023 Concordia CERC group
|
||||||
|
Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
class EmissionSystem:
|
||||||
|
"""
|
||||||
|
Emission system class
|
||||||
|
"""
|
||||||
|
def __init__(self, system_id, name, system_type, parasitic_energy_consumption):
|
||||||
|
|
||||||
|
self._system_id = system_id
|
||||||
|
self._name = name
|
||||||
|
self._type = system_type
|
||||||
|
self._parasitic_energy_consumption = parasitic_energy_consumption
|
||||||
|
|
||||||
|
@property
|
||||||
|
def id(self):
|
||||||
|
"""
|
||||||
|
Get system id
|
||||||
|
:return: float
|
||||||
|
"""
|
||||||
|
return self._system_id
|
||||||
|
|
||||||
|
@property
|
||||||
|
def name(self):
|
||||||
|
"""
|
||||||
|
Get name
|
||||||
|
:return: string
|
||||||
|
"""
|
||||||
|
return self._name
|
||||||
|
|
||||||
|
@property
|
||||||
|
def type(self):
|
||||||
|
"""
|
||||||
|
Get type
|
||||||
|
:return: string
|
||||||
|
"""
|
||||||
|
return self._type
|
||||||
|
|
||||||
|
@property
|
||||||
|
def parasitic_energy_consumption(self):
|
||||||
|
"""
|
||||||
|
Get parasitic_energy_consumption in ratio (J/J)
|
||||||
|
:return: float
|
||||||
|
"""
|
||||||
|
return self._parasitic_energy_consumption
|
||||||
|
|
||||||
|
def to_dictionary(self):
|
||||||
|
"""Class content to dictionary"""
|
||||||
|
content = {'Layer': {'id': self.id,
|
||||||
|
'name': self.name,
|
||||||
|
'type': self.type,
|
||||||
|
'parasitic energy consumption per energy produced [J/J]': self.parasitic_energy_consumption
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return content
|
|
@ -1,94 +0,0 @@
|
||||||
"""
|
|
||||||
Energy System catalog emission system
|
|
||||||
SPDX - License - Identifier: LGPL - 3.0 - or -later
|
|
||||||
Copyright © 2023 Concordia CERC group
|
|
||||||
Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca
|
|
||||||
Code contributors: Saeed Ranjbar saeed.ranjbar@concordia.ca
|
|
||||||
"""
|
|
||||||
|
|
||||||
from hub.catalog_factories.data_models.construction.material import Material
|
|
||||||
|
|
||||||
|
|
||||||
class EnergyEmissionSystem:
|
|
||||||
"""
|
|
||||||
Emission system class
|
|
||||||
"""
|
|
||||||
def __init__(self, model_name, manufacturer, system_type, parasitic_energy_consumption, nominal_heat_output,
|
|
||||||
nominal_efficiency, medium):
|
|
||||||
|
|
||||||
self._system_id = model_name
|
|
||||||
self._name = manufacturer
|
|
||||||
self._type = system_type
|
|
||||||
self._parasitic_energy_consumption = parasitic_energy_consumption
|
|
||||||
self._nominal_heat_output = nominal_heat_output
|
|
||||||
self._nominal_efficiency = nominal_efficiency
|
|
||||||
self._medium = medium
|
|
||||||
|
|
||||||
@property
|
|
||||||
def model_name(self):
|
|
||||||
"""
|
|
||||||
Get system id
|
|
||||||
:return: float
|
|
||||||
"""
|
|
||||||
return self._system_id
|
|
||||||
|
|
||||||
@property
|
|
||||||
def manufacturer(self):
|
|
||||||
"""
|
|
||||||
Get name
|
|
||||||
:return: string
|
|
||||||
"""
|
|
||||||
return self._name
|
|
||||||
|
|
||||||
@property
|
|
||||||
def type(self):
|
|
||||||
"""
|
|
||||||
Get type
|
|
||||||
:return: string
|
|
||||||
"""
|
|
||||||
return self._type
|
|
||||||
|
|
||||||
@property
|
|
||||||
def parasitic_energy_consumption(self):
|
|
||||||
"""
|
|
||||||
Get parasitic_energy_consumption in ratio (J/J)
|
|
||||||
:return: float
|
|
||||||
"""
|
|
||||||
return self._parasitic_energy_consumption
|
|
||||||
|
|
||||||
@property
|
|
||||||
def nominal_heat_output(self):
|
|
||||||
"""
|
|
||||||
Get the nominal heat output of the emission system in kW
|
|
||||||
:return: float
|
|
||||||
"""
|
|
||||||
return self._nominal_heat_output
|
|
||||||
|
|
||||||
@property
|
|
||||||
def nominal_efficiency(self):
|
|
||||||
"""
|
|
||||||
Get the nominal efficiency of the emission system
|
|
||||||
:return: float
|
|
||||||
"""
|
|
||||||
return self._nominal_efficiency
|
|
||||||
|
|
||||||
@property
|
|
||||||
def medium(self) -> Material:
|
|
||||||
"""
|
|
||||||
Get the heat transfer characteristics of the heat transfer medium
|
|
||||||
:return: Material
|
|
||||||
"""
|
|
||||||
return self._medium
|
|
||||||
|
|
||||||
def to_dictionary(self):
|
|
||||||
"""Class content to dictionary"""
|
|
||||||
content = {'Layer': {'id': self.model_name,
|
|
||||||
'name': self.manufacturer,
|
|
||||||
'type': self.type,
|
|
||||||
'parasitic energy consumption per energy produced [J/J]': self.parasitic_energy_consumption,
|
|
||||||
'nominal heat output [kW]': self.nominal_heat_output,
|
|
||||||
'nominal efficiency': self.nominal_efficiency,
|
|
||||||
'heat transfer medium': self.medium
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return content
|
|
|
@ -7,8 +7,6 @@ Code contributors: Saeed Ranjbar saeed.ranjbar@concordia.ca
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
from typing import Union
|
|
||||||
from hub.catalog_factories.data_models.construction.material import Material
|
|
||||||
from hub.catalog_factories.data_models.construction.layer import Layer
|
from hub.catalog_factories.data_models.construction.layer import Layer
|
||||||
|
|
||||||
|
|
||||||
|
@ -17,9 +15,11 @@ class EnergyStorageSystem:
|
||||||
Energy Storage System Class
|
Energy Storage System Class
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, model_name, manufacturer, storage_type, volume, rated_output_power,
|
def __init__(self, storage_id, name, model_name, manufacturer, storage_type, volume, rated_output_power,
|
||||||
nominal_efficiency, battery_voltage, depth_of_discharge, self_discharge_rate, height, layers,
|
nominal_efficiency, battery_voltage, depth_of_discharge, self_discharge_rate, height, layers,
|
||||||
maximum_operating_temperature):
|
maximum_operating_temperature):
|
||||||
|
self._storage_id = storage_id
|
||||||
|
self._name = name
|
||||||
self._model_name = model_name
|
self._model_name = model_name
|
||||||
self._manufacturer = manufacturer
|
self._manufacturer = manufacturer
|
||||||
self._storage_type = storage_type
|
self._storage_type = storage_type
|
||||||
|
@ -33,6 +33,22 @@ class EnergyStorageSystem:
|
||||||
self._layers = layers
|
self._layers = layers
|
||||||
self._maximum_operating_temperature = maximum_operating_temperature
|
self._maximum_operating_temperature = maximum_operating_temperature
|
||||||
|
|
||||||
|
@property
|
||||||
|
def stroage_id(self):
|
||||||
|
"""
|
||||||
|
Get storage id
|
||||||
|
:return: string
|
||||||
|
"""
|
||||||
|
return self._storage_id
|
||||||
|
|
||||||
|
@property
|
||||||
|
def name(self):
|
||||||
|
"""
|
||||||
|
Get storage name
|
||||||
|
:return: string
|
||||||
|
"""
|
||||||
|
return self._name
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def model_name(self):
|
def model_name(self):
|
||||||
"""
|
"""
|
||||||
|
@ -134,7 +150,10 @@ class EnergyStorageSystem:
|
||||||
_layers = []
|
_layers = []
|
||||||
for _layer in self.layers:
|
for _layer in self.layers:
|
||||||
_layers.append(_layer.to_dictionary())
|
_layers.append(_layer.to_dictionary())
|
||||||
content = {'Storage component': {'model name': self.model_name,
|
content = {'Storage component': {
|
||||||
|
'storage id': self.stroage_id,
|
||||||
|
'name': self.name,
|
||||||
|
'model name': self.model_name,
|
||||||
'manufacturer': self.manufacturer,
|
'manufacturer': self.manufacturer,
|
||||||
'storage type': self.storage_type,
|
'storage type': self.storage_type,
|
||||||
'physical volume [m3]': self.physical_volume,
|
'physical volume [m3]': self.physical_volume,
|
||||||
|
|
|
@ -8,6 +8,7 @@ Code contributors: Saeed Ranjbar saeed.ranjbar@concordia.ca
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
from hub.catalog_factories.data_models.energy_systems.performance_curves import PerformanceCurves
|
||||||
|
|
||||||
|
|
||||||
class GenerationSystem:
|
class GenerationSystem:
|
||||||
|
@ -15,20 +16,29 @@ class GenerationSystem:
|
||||||
Heat Generation system class
|
Heat Generation system class
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, model_name, manufacturer, system_type, fuel_type, nominal_thermal_output, modulation_range,
|
def __init__(self, system_id, name, model_name, manufacturer, system_type, fuel_type, nominal_thermal_output,
|
||||||
source_types, supply_medium, heat_efficiency, cooling_efficiency, electricity_efficiency,
|
maximum_heat_output, minimum_heat_output, source_medium, supply_medium, heat_efficiency,
|
||||||
source_temperature, source_mass_flow, nominal_electricity_output, maximum_heating_supply_temperature,
|
nominal_cooling_output, maximum_cooling_output, minimum_cooling_output, cooling_efficiency,
|
||||||
minimum_heating_supply_temperature, maximum_cooling_supply_temperature,
|
electricity_efficiency, source_temperature, source_mass_flow, nominal_electricity_output,
|
||||||
minimum_cooling_supply_temperature):
|
maximum_heating_supply_temperature, minimum_heating_supply_temperature,
|
||||||
|
maximum_cooling_supply_temperature, minimum_cooling_supply_temperature, heat_output_curve,
|
||||||
|
heat_fuel_consumption_curve, heat_efficiency_curve, cooling_output_curve, cooling_fuel_consumption_curve,
|
||||||
|
cooling_efficiency_curve, storage, auxiliary_equipment):
|
||||||
|
self._system_id = system_id
|
||||||
|
self._name = name
|
||||||
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
|
||||||
self._fuel_type = fuel_type
|
self._fuel_type = fuel_type
|
||||||
self._nominal_thermal_output = nominal_thermal_output
|
self._nominal_thermal_output = nominal_thermal_output
|
||||||
self._modulation_range = modulation_range
|
self._maximum_heat_output = maximum_heat_output
|
||||||
self._source_types = source_types
|
self._minimum_heat_output = minimum_heat_output
|
||||||
|
self._source_medium = source_medium
|
||||||
self._supply_medium = supply_medium
|
self._supply_medium = supply_medium
|
||||||
self._heat_efficiency = heat_efficiency
|
self._heat_efficiency = heat_efficiency
|
||||||
|
self._nominal_cooling_output = nominal_cooling_output
|
||||||
|
self._maximum_cooling_output = maximum_cooling_output
|
||||||
|
self._minimum_cooling_output = minimum_cooling_output
|
||||||
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
|
||||||
|
@ -38,6 +48,31 @@ class GenerationSystem:
|
||||||
self._minimum_heating_supply_temperature = minimum_heating_supply_temperature
|
self._minimum_heating_supply_temperature = minimum_heating_supply_temperature
|
||||||
self._maximum_cooling_supply_temperature = maximum_cooling_supply_temperature
|
self._maximum_cooling_supply_temperature = maximum_cooling_supply_temperature
|
||||||
self._minimum_cooling_supply_temperature = minimum_cooling_supply_temperature
|
self._minimum_cooling_supply_temperature = minimum_cooling_supply_temperature
|
||||||
|
self._heat_output_curve = heat_output_curve
|
||||||
|
self._heat_fuel_consumption_curve = heat_fuel_consumption_curve
|
||||||
|
self._heat_efficiency_curve = heat_efficiency_curve
|
||||||
|
self._cooling_output_curve = cooling_output_curve
|
||||||
|
self._cooling_fuel_consumption_curve = cooling_fuel_consumption_curve
|
||||||
|
self._cooling_efficiency_curve = cooling_efficiency_curve
|
||||||
|
|
||||||
|
self._storage = storage
|
||||||
|
self._auxiliary_equipment = auxiliary_equipment
|
||||||
|
|
||||||
|
@property
|
||||||
|
def id(self):
|
||||||
|
"""
|
||||||
|
Get system id
|
||||||
|
:return: float
|
||||||
|
"""
|
||||||
|
return self._system_id
|
||||||
|
|
||||||
|
@property
|
||||||
|
def name(self):
|
||||||
|
"""
|
||||||
|
Get name
|
||||||
|
:return: string
|
||||||
|
"""
|
||||||
|
return self._name
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def model_name(self):
|
def model_name(self):
|
||||||
|
@ -80,20 +115,28 @@ class GenerationSystem:
|
||||||
return self._nominal_thermal_output
|
return self._nominal_thermal_output
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def modulation_range(self):
|
def maximum_heat_output(self):
|
||||||
"""
|
"""
|
||||||
Get modulation range of heat generation devices
|
Get maximum heat output of heat generation devices in W
|
||||||
:return: float
|
:return: float
|
||||||
"""
|
"""
|
||||||
return self._modulation_range
|
return self._maximum_heat_output
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def source_types(self):
|
def minimum_heat_output(self):
|
||||||
|
"""
|
||||||
|
Get minimum heat output of heat generation devices in W
|
||||||
|
:return: float
|
||||||
|
"""
|
||||||
|
return self._minimum_heat_output
|
||||||
|
|
||||||
|
@property
|
||||||
|
def source_medium(self):
|
||||||
"""
|
"""
|
||||||
Get source_type from [air, water, ground, district_heating, grid, on_site_electricity]
|
Get source_type from [air, water, ground, district_heating, grid, on_site_electricity]
|
||||||
:return: [string]
|
:return: [string]
|
||||||
"""
|
"""
|
||||||
return self._source_types
|
return self._source_medium
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def supply_medium(self):
|
def supply_medium(self):
|
||||||
|
@ -111,6 +154,30 @@ class GenerationSystem:
|
||||||
"""
|
"""
|
||||||
return self._heat_efficiency
|
return self._heat_efficiency
|
||||||
|
|
||||||
|
@property
|
||||||
|
def nominal_cooling_output(self):
|
||||||
|
"""
|
||||||
|
Get nominal_thermal_output of heat generation devices in kW
|
||||||
|
:return: float
|
||||||
|
"""
|
||||||
|
return self._nominal_cooling_output
|
||||||
|
|
||||||
|
@property
|
||||||
|
def maximum_cooling_output(self):
|
||||||
|
"""
|
||||||
|
Get maximum heat output of heat generation devices in W
|
||||||
|
:return: float
|
||||||
|
"""
|
||||||
|
return self._maximum_cooling_output
|
||||||
|
|
||||||
|
@property
|
||||||
|
def minimum_cooling_output(self):
|
||||||
|
"""
|
||||||
|
Get minimum heat output of heat generation devices in W
|
||||||
|
:return: float
|
||||||
|
"""
|
||||||
|
return self._minimum_cooling_output
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def cooling_efficiency(self):
|
def cooling_efficiency(self):
|
||||||
"""
|
"""
|
||||||
|
@ -183,27 +250,108 @@ class GenerationSystem:
|
||||||
"""
|
"""
|
||||||
return self._minimum_cooling_supply_temperature
|
return self._minimum_cooling_supply_temperature
|
||||||
|
|
||||||
|
@property
|
||||||
|
def heat_output_curve(self) -> Union[None, PerformanceCurves]:
|
||||||
|
"""
|
||||||
|
Get the heat output curve of the heat generation device
|
||||||
|
:return: PerformanceCurve
|
||||||
|
"""
|
||||||
|
return self._heat_output_curve
|
||||||
|
|
||||||
|
@property
|
||||||
|
def heat_fuel_consumption_curve(self) -> Union[None, PerformanceCurves]:
|
||||||
|
"""
|
||||||
|
Get the heating fuel consumption curve of the heat generation device
|
||||||
|
:return: PerformanceCurve
|
||||||
|
"""
|
||||||
|
return self._heat_fuel_consumption_curve
|
||||||
|
|
||||||
|
@property
|
||||||
|
def heat_efficiency_curve(self) -> Union[None, PerformanceCurves]:
|
||||||
|
"""
|
||||||
|
Get the heating efficiency curve of the heat generation device
|
||||||
|
:return: PerformanceCurve
|
||||||
|
"""
|
||||||
|
return self._heat_efficiency_curve
|
||||||
|
|
||||||
|
@property
|
||||||
|
def cooling_output_curve(self) -> Union[None, PerformanceCurves]:
|
||||||
|
"""
|
||||||
|
Get the heat output curve of the heat generation device
|
||||||
|
:return: PerformanceCurve
|
||||||
|
"""
|
||||||
|
return self._cooling_output_curve
|
||||||
|
|
||||||
|
@property
|
||||||
|
def cooling_fuel_consumption_curve(self) -> Union[None, PerformanceCurves]:
|
||||||
|
"""
|
||||||
|
Get the heating fuel consumption curve of the heat generation device
|
||||||
|
:return: PerformanceCurve
|
||||||
|
"""
|
||||||
|
return self._cooling_fuel_consumption_curve
|
||||||
|
|
||||||
|
@property
|
||||||
|
def cooling_efficiency_curve(self) -> Union[None, PerformanceCurves]:
|
||||||
|
"""
|
||||||
|
Get the heating efficiency curve of the heat generation device
|
||||||
|
:return: PerformanceCurve
|
||||||
|
"""
|
||||||
|
return self._cooling_efficiency_curve
|
||||||
|
|
||||||
|
@property
|
||||||
|
def storage(self):
|
||||||
|
"""
|
||||||
|
Get boolean storage exists
|
||||||
|
:return: bool
|
||||||
|
"""
|
||||||
|
return self._storage
|
||||||
|
|
||||||
|
@property
|
||||||
|
def auxiliary_equipment(self) -> Union[None, GenerationSystem]:
|
||||||
|
"""
|
||||||
|
Get auxiliary_equipment
|
||||||
|
:return: GenerationSystem
|
||||||
|
"""
|
||||||
|
return self._auxiliary_equipment
|
||||||
|
|
||||||
def to_dictionary(self):
|
def to_dictionary(self):
|
||||||
"""Class content to dictionary"""
|
"""Class content to dictionary"""
|
||||||
|
_auxiliary_equipment = []
|
||||||
|
if self.auxiliary_equipment is not None:
|
||||||
|
_auxiliary_equipment = self.auxiliary_equipment.to_dictionary()
|
||||||
content = {'Energy Generation component': {
|
content = {'Energy Generation component': {
|
||||||
|
'id': self.id,
|
||||||
|
'name': self.name,
|
||||||
'model name': self.model_name,
|
'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 [W]': self.nominal_thermal_output,
|
||||||
'modulation_range': self.modulation_range,
|
'maximum heat output [W]': self.maximum_heat_output,
|
||||||
'source types': self.source_types,
|
'minimum heat output [W]': self.minimum_heat_output,
|
||||||
|
'source medium': self.source_medium,
|
||||||
'supply medium': self.supply_medium,
|
'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,
|
||||||
|
'nominal cooling output [W]': self.nominal_cooling_output,
|
||||||
|
'maximum cooling output [W]': self.maximum_cooling_output,
|
||||||
|
'minimum cooling output [W]': self.minimum_cooling_output,
|
||||||
'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 [W]': self.nominal_electricity_output,
|
||||||
'maximum heating supply temperature [Celsius]': self.maximum_heating_supply_temperature,
|
'maximum heating supply temperature [Celsius]': self.maximum_heating_supply_temperature,
|
||||||
'minimum heating supply temperature [Celsius]': self.minimum_heating_supply_temperature,
|
'minimum heating supply temperature [Celsius]': self.minimum_heating_supply_temperature,
|
||||||
'maximum cooling supply temperature [Celsius]': self.maximum_cooling_supply_temperature,
|
'maximum cooling supply temperature [Celsius]': self.maximum_cooling_supply_temperature,
|
||||||
'minimum cooling supply temperature [Celsius]': self.minimum_cooling_supply_temperature
|
'minimum cooling supply temperature [Celsius]': self.minimum_cooling_supply_temperature,
|
||||||
|
'heat output curve': self.heat_output_curve,
|
||||||
|
'heat fuel consumption curve': self.heat_fuel_consumption_curve,
|
||||||
|
'heat efficiency curve': self.heat_efficiency_curve,
|
||||||
|
'cooling output curve': self.cooling_output_curve,
|
||||||
|
'cooling fuel consumption curve': self.cooling_fuel_consumption_curve,
|
||||||
|
'cooling efficiency curve': self.cooling_efficiency_curve,
|
||||||
|
'it has storage': self.storage,
|
||||||
|
'auxiliary equipment': _auxiliary_equipment
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return content
|
return content
|
||||||
|
|
|
@ -7,7 +7,7 @@ Code contributors: Saeed Ranjbar saeed.ranjbar@concordia.ca
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
from typing import Union
|
|
||||||
|
|
||||||
|
|
||||||
class PerformanceCurves:
|
class PerformanceCurves:
|
||||||
|
@ -15,13 +15,13 @@ class PerformanceCurves:
|
||||||
Parameter function class
|
Parameter function class
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, type, parameters, coefficients):
|
def __init__(self, curve_type, parameters, coefficients):
|
||||||
self._type = type
|
self._curve_type = curve_type
|
||||||
self._parameters = parameters
|
self._parameters = parameters
|
||||||
self._coefficients = coefficients
|
self._coefficients = coefficients
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def type(self):
|
def curve_type(self):
|
||||||
"""
|
"""
|
||||||
The type of the fit function from the following
|
The type of the fit function from the following
|
||||||
Linear =>>> y = a*x + b
|
Linear =>>> y = a*x + b
|
||||||
|
@ -33,7 +33,7 @@ class PerformanceCurves:
|
||||||
Get the type of function from ['linear', 'exponential', 'polynomial', 'power', 'second degree multivariable']
|
Get the type of function from ['linear', 'exponential', 'polynomial', 'power', 'second degree multivariable']
|
||||||
:return: string
|
:return: string
|
||||||
"""
|
"""
|
||||||
return self._type
|
return self._curve_type
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def parameters(self):
|
def parameters(self):
|
||||||
|
@ -46,7 +46,7 @@ class PerformanceCurves:
|
||||||
@property
|
@property
|
||||||
def coefficients(self):
|
def coefficients(self):
|
||||||
"""
|
"""
|
||||||
Get the coefficients of the functions as list
|
Get the coefficients of the functions as list of ['a', 'b', 'c', 'd', 'e', 'f']
|
||||||
:return: [coefficients]
|
:return: [coefficients]
|
||||||
"""
|
"""
|
||||||
return self._coefficients
|
return self._coefficients
|
||||||
|
@ -54,7 +54,7 @@ class PerformanceCurves:
|
||||||
def to_dictionary(self):
|
def to_dictionary(self):
|
||||||
"""Class content to dictionary"""
|
"""Class content to dictionary"""
|
||||||
content = {'Parameter Function': {
|
content = {'Parameter Function': {
|
||||||
'type': self.type,
|
'curve type': self.curve_type,
|
||||||
'parameters': self.parameters,
|
'parameters': self.parameters,
|
||||||
'coefficients': self.coefficients,
|
'coefficients': self.coefficients,
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,6 @@ Code contributors: Saeed Ranjbar saeed.ranjbar@concordia.ca
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
from typing import Union
|
|
||||||
from hub.catalog_factories.data_models.energy_systems.generation_system import GenerationSystem
|
from hub.catalog_factories.data_models.energy_systems.generation_system import GenerationSystem
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,20 +15,26 @@ class PvGenerationSystem(GenerationSystem):
|
||||||
Electricity Generation system class
|
Electricity Generation system class
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, nominal_ambient_temperature, nominal_cell_temperature, nominal_radiation,
|
def __init__(self, system_id, name, model_name, manufacturer, electricity_efficiency,
|
||||||
standard_test_condition_cell_temperature, standard_test_condition_maximum_power,
|
nominal_electricity_output, nominal_ambient_temperature, nominal_cell_temperature,
|
||||||
cell_temperature_coefficient, width, height, model_name, manufacturer, electricity_efficiency,
|
nominal_radiation, standard_test_condition_cell_temperature, standard_test_condition_maximum_power,
|
||||||
nominal_electricity_output):
|
cell_temperature_coefficient, width, height):
|
||||||
super(PvGenerationSystem, self).__init__(model_name=model_name, manufacturer=manufacturer, system_type='pv',
|
super(PvGenerationSystem, self).__init__(system_id=system_id, name=name, model_name=model_name,
|
||||||
fuel_type='renewable', nominal_thermal_output=None, modulation_range=None,
|
manufacturer=manufacturer, system_type='pv', fuel_type='renewable',
|
||||||
source_types=None,supply_medium=None, heat_efficiency=None,
|
nominal_thermal_output=None, maximum_heat_output=None,
|
||||||
|
minimum_heat_output=None, source_medium=None,
|
||||||
|
supply_medium=None, heat_efficiency=None, nominal_cooling_output=None,
|
||||||
|
maximum_cooling_output=None, minimum_cooling_output=None,
|
||||||
cooling_efficiency=None, electricity_efficiency=electricity_efficiency,
|
cooling_efficiency=None, electricity_efficiency=electricity_efficiency,
|
||||||
source_temperature=None, source_mass_flow=None,
|
source_temperature=None, source_mass_flow=None,
|
||||||
nominal_electricity_output=nominal_electricity_output,
|
nominal_electricity_output=nominal_electricity_output,
|
||||||
maximum_heating_supply_temperature=None,
|
maximum_heating_supply_temperature=None,
|
||||||
minimum_heating_supply_temperature=None,
|
minimum_heating_supply_temperature=None,
|
||||||
maximum_cooling_supply_temperature=None,
|
maximum_cooling_supply_temperature=None,
|
||||||
minimum_cooling_supply_temperature=None)
|
minimum_cooling_supply_temperature=None, heat_output_curve=None,
|
||||||
|
heat_fuel_consumption_curve=None, heat_efficiency_curve=None,
|
||||||
|
cooling_output_curve=None, cooling_fuel_consumption_curve=None,
|
||||||
|
cooling_efficiency_curve=None, storage=None, auxiliary_equipment=None)
|
||||||
self._nominal_ambient_temperature = nominal_ambient_temperature
|
self._nominal_ambient_temperature = nominal_ambient_temperature
|
||||||
self._nominal_cell_temperature = nominal_cell_temperature
|
self._nominal_cell_temperature = nominal_cell_temperature
|
||||||
self._nominal_radiation = nominal_radiation
|
self._nominal_radiation = nominal_radiation
|
||||||
|
|
|
@ -13,7 +13,7 @@ from hub.catalog_factories.data_models.energy_systems.pv_generation_system impor
|
||||||
from hub.catalog_factories.data_models.energy_systems.energy_storage_system import EnergyStorageSystem
|
from hub.catalog_factories.data_models.energy_systems.energy_storage_system import EnergyStorageSystem
|
||||||
from hub.catalog_factories.data_models.energy_systems.distribution_system import DistributionSystem
|
from hub.catalog_factories.data_models.energy_systems.distribution_system import DistributionSystem
|
||||||
from hub.catalog_factories.data_models.energy_systems.performance_curves import PerformanceCurves
|
from hub.catalog_factories.data_models.energy_systems.performance_curves import PerformanceCurves
|
||||||
from hub.catalog_factories.data_models.energy_systems.energy_emission_system import EnergyEmissionSystem
|
from hub.catalog_factories.data_models.energy_systems.emission_system import EmissionSystem
|
||||||
|
|
||||||
|
|
||||||
class System:
|
class System:
|
||||||
|
@ -101,7 +101,7 @@ class System:
|
||||||
return self._distribution_system
|
return self._distribution_system
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def emission_system(self) -> Union[None, EnergyEmissionSystem]:
|
def emission_system(self) -> Union[None, EmissionSystem]:
|
||||||
"""
|
"""
|
||||||
Get emission system
|
Get emission system
|
||||||
:return: EmissionSystem
|
:return: EmissionSystem
|
||||||
|
|
|
@ -12,7 +12,7 @@ from hub.catalog_factories.data_models.energy_systems.system import System
|
||||||
from hub.catalog_factories.data_models.energy_systems.content import Content
|
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.generation_system import GenerationSystem
|
||||||
from hub.catalog_factories.data_models.energy_systems.distribution_system import DistributionSystem
|
from hub.catalog_factories.data_models.energy_systems.distribution_system import DistributionSystem
|
||||||
from hub.catalog_factories.data_models.energy_systems.energy_emission_system import EnergyEmissionSystem
|
from hub.catalog_factories.data_models.energy_systems.emission_system import EmissionSystem
|
||||||
from hub.catalog_factories.data_models.energy_systems.archetype import Archetype
|
from hub.catalog_factories.data_models.energy_systems.archetype import Archetype
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@ class MontrealCustomCatalog(Catalog):
|
||||||
"""
|
"""
|
||||||
Montreal custom energy systems catalog class
|
Montreal custom energy systems catalog class
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, path):
|
def __init__(self, path):
|
||||||
path = str(path / 'montreal_custom_systems.xml')
|
path = str(path / 'montreal_custom_systems.xml')
|
||||||
with open(path, 'r', encoding='utf-8') as xml:
|
with open(path, 'r', encoding='utf-8') as xml:
|
||||||
|
@ -90,7 +91,8 @@ class MontrealCustomCatalog(Catalog):
|
||||||
distribution_consumption_fix_flow = float(equipment['distribution_consumption_fix_flow']['#text']) / 100
|
distribution_consumption_fix_flow = float(equipment['distribution_consumption_fix_flow']['#text']) / 100
|
||||||
distribution_consumption_variable_flow = None
|
distribution_consumption_variable_flow = None
|
||||||
if 'distribution_consumption_variable_flow' in equipment:
|
if 'distribution_consumption_variable_flow' in equipment:
|
||||||
distribution_consumption_variable_flow = float(equipment['distribution_consumption_variable_flow']['#text']) / 100
|
distribution_consumption_variable_flow = float(
|
||||||
|
equipment['distribution_consumption_variable_flow']['#text']) / 100
|
||||||
|
|
||||||
distribution_system = DistributionSystem(equipment_id,
|
distribution_system = DistributionSystem(equipment_id,
|
||||||
name,
|
name,
|
||||||
|
@ -114,7 +116,7 @@ class MontrealCustomCatalog(Catalog):
|
||||||
if 'parasitic_consumption' in equipment:
|
if 'parasitic_consumption' in equipment:
|
||||||
parasitic_consumption = float(equipment['parasitic_consumption']['#text']) / 100
|
parasitic_consumption = float(equipment['parasitic_consumption']['#text']) / 100
|
||||||
|
|
||||||
emission_system = EnergyEmissionSystem(equipment_id,
|
emission_system = EmissionSystem(equipment_id,
|
||||||
name,
|
name,
|
||||||
equipment_type,
|
equipment_type,
|
||||||
parasitic_consumption)
|
parasitic_consumption)
|
||||||
|
|
|
@ -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.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.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.distribution_system import DistributionSystem
|
||||||
from hub.catalog_factories.data_models.energy_systems.energy_emission_system import EnergyEmissionSystem
|
from hub.catalog_factories.data_models.energy_systems.emission_system import EnergyEmissionSystem
|
||||||
from hub.catalog_factories.data_models.energy_systems.energy_storage_system import EnergyStorageSystem
|
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.performance_curves import PerformanceCurves
|
||||||
from hub.catalog_factories.data_models.energy_systems.archetype import Archetype
|
from hub.catalog_factories.data_models.energy_systems.archetype import Archetype
|
||||||
|
@ -199,10 +199,15 @@ class NorthAmericaEnergySystemCatalog(Catalog):
|
||||||
catalog_systems = self._archetypes['encomp:EnergySystemCatalog']['energysystemconfiguration']
|
catalog_systems = self._archetypes['encomp:EnergySystemCatalog']['energysystemconfiguration']
|
||||||
for catalog_system in catalog_systems:
|
for catalog_system in catalog_systems:
|
||||||
system_configuration = catalog_system['@configurationName']
|
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,
|
energy_system = System(None,
|
||||||
None,
|
None,
|
||||||
system_configuration,
|
system_configuration,
|
||||||
None,
|
demand_types,
|
||||||
None,
|
None,
|
||||||
None,
|
None,
|
||||||
None,
|
None,
|
||||||
|
@ -241,3 +246,13 @@ class NorthAmericaEnergySystemCatalog(Catalog):
|
||||||
|
|
||||||
if _material is None:
|
if _material is None:
|
||||||
raise ValueError(f'Material not found in catalog [{material_name}]')
|
raise ValueError(f'Material not found in catalog [{material_name}]')
|
||||||
|
|
||||||
|
def _load_demands(self):
|
||||||
|
demands = []
|
||||||
|
_demands = self._archetypes['encomp:EnergySystemCatalog']['energydemand']
|
||||||
|
for _demand in _demands:
|
||||||
|
demand_type = _demand['@name']
|
||||||
|
demands.append(demand_type)
|
||||||
|
return demands
|
||||||
|
|
||||||
|
# def _search_demands(self, config_name):
|
||||||
|
|
|
@ -1,43 +1,43 @@
|
||||||
<?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">
|
<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 media_id="1" media_name="Water" density="981.0" heatCapacity="4180.0" evaporationTemperature="100.0"/>
|
||||||
<boilers 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="ALP080B" manufacturer="Alpine" installedThermalPower="21.0" modulationRange="0.88" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
|
||||||
<boilers 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="ALP105B" manufacturer="Alpine" installedThermalPower="28.0" modulationRange="0.88" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
|
||||||
<boilers 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="ALP150B" manufacturer="Alpine" installedThermalPower="40.0" modulationRange="0.88" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
|
||||||
<boilers 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="ALP210B" manufacturer="Alpine" installedThermalPower="57.0" modulationRange="0.87" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
|
||||||
<boilers 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="ALTAC-136" manufacturer="Alta" installedThermalPower="33.0" modulationRange="0.95" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
|
||||||
<boilers 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="ALTA-120" manufacturer="Alta" installedThermalPower="33.0" modulationRange="0.95" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
|
||||||
<boilers 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-085" manufacturer="Aspen" installedThermalPower="23.15" modulationRange="0.97" nominalEfficiency="0.96" fuel="natural gas"/>
|
||||||
<boilers 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="ASPN-110" manufacturer="Aspen" installedThermalPower="30.19" modulationRange="0.96" nominalEfficiency="0.96" fuel="natural gas"/>
|
||||||
<boilers 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="ASPNC-155" manufacturer="Aspen" installedThermalPower="42.5" modulationRange="0.96" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
|
||||||
<boilers 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-135B" manufacturer="K2" installedThermalPower="32.8" modulationRange="0.96" nominalEfficiency="0.95" combi="true" fuel="natural gas"/>
|
||||||
<boilers modelName="K2WTC-180B" manufacturer="K2" installedThermalPower="49.5" modulationRange="0.96" nominalEfficiency="0.95" combi="true" 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"/>
|
||||||
<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" width="2.01"/>
|
<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"/>
|
||||||
<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">
|
<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">
|
||||||
<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="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="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">
|
||||||
<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="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="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">
|
||||||
<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="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 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 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 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 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 name="Alpine" country="USA"/>
|
<manufacturers manufacturer_id="1" name="Alpine" country="USA"/>
|
||||||
<manufacturers name="Alta" country="USA"/>
|
<manufacturers manufacturer_id="2" name="Alta" country="USA"/>
|
||||||
<manufacturers name="Aspen" country="USA"/>
|
<manufacturers manufacturer_id="3" name="Aspen" country="USA"/>
|
||||||
<manufacturers name="K2" country="USA"/>
|
<manufacturers manufacturer_id="4" name="K2" country="USA"/>
|
||||||
<manufacturers name="TRANE"/>
|
<manufacturers manufacturer_id="5" name="TRANE"/>
|
||||||
<manufacturers name="reflex"/>
|
<manufacturers manufacturer_id="6" name="reflex"/>
|
||||||
<manufacturers name="Canadian Solar" country="Canada"/>
|
<manufacturers manufacturer_id="7" name="Canadian Solar" country="Canada"/>
|
||||||
<materials name="Polyurethane" thermalConductivity="0.028"/>
|
<materials material_id="1" name="Polyurethane" thermalConductivity="0.028"/>
|
||||||
<materials name="Steel" thermalConductivity="18.0"/>
|
<materials material_id="2" name="Steel" thermalConductivity="18.0"/>
|
||||||
</energycomponent>
|
</energycomponent>
|
||||||
<energysystemconfiguration configurationName="PvHpBoiler">
|
<energysystemconfiguration configurationName="PvHpBoiler">
|
||||||
<components>
|
<components>
|
||||||
|
@ -49,11 +49,20 @@
|
||||||
<demands name="electricity"/>
|
<demands name="electricity"/>
|
||||||
<demands name="domesticHotWater"/>
|
<demands name="domesticHotWater"/>
|
||||||
</energysystemconfiguration>
|
</energysystemconfiguration>
|
||||||
<energysystemconfiguration configurationName="hpTesBoiler"/>
|
<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"/>
|
<energysystemconfiguration configurationName="hpTes"/>
|
||||||
<energydemand name="heating"/>
|
<energydemand name="heating"/>
|
||||||
<energydemand name="domesticHotWater"/>
|
<energydemand name="domesticHotWater"/>
|
||||||
<energydemand name="electricity"/>
|
<energydemand name="electricity"/>
|
||||||
<energydemand/>
|
<energydemand name="cooling"/>
|
||||||
</encomp:EnergySystemCatalog>
|
</encomp:EnergySystemCatalog>
|
||||||
|
|
||||||
|
|
|
@ -92,7 +92,7 @@ class MontrealCustomEnergySystemParameters:
|
||||||
_type]
|
_type]
|
||||||
_fuel_type = Dictionaries().montreal_custom_fuel_to_hub_fuel[archetype_generation_equipment.fuel_type]
|
_fuel_type = Dictionaries().montreal_custom_fuel_to_hub_fuel[archetype_generation_equipment.fuel_type]
|
||||||
_generation_system.fuel_type = _fuel_type
|
_generation_system.fuel_type = _fuel_type
|
||||||
_generation_system.source_types = archetype_generation_equipment.source_types
|
_generation_system.source_types = archetype_generation_equipment.source_medium
|
||||||
_generation_system.heat_efficiency = archetype_generation_equipment.heat_efficiency
|
_generation_system.heat_efficiency = archetype_generation_equipment.heat_efficiency
|
||||||
_generation_system.cooling_efficiency = archetype_generation_equipment.cooling_efficiency
|
_generation_system.cooling_efficiency = archetype_generation_equipment.cooling_efficiency
|
||||||
_generation_system.electricity_efficiency = archetype_generation_equipment.electricity_efficiency
|
_generation_system.electricity_efficiency = archetype_generation_equipment.electricity_efficiency
|
||||||
|
|
Loading…
Reference in New Issue
Block a user