EnergySystem - ptidejteam/tools4cities-metamenth GitHub Wiki
MetamEnTh EnergySystem models energy systems within buildings. It has classes to model renewable and non-renewable energy sources and energy storage systems.
Figure 1.0: MetamEnTh EnergySystem, showing the various classes and their relationships
Figure 2.0: MetamEnTh EnergySystem, showing classes and the methods they possess
Classes and Their Relationships
All classes (entities) have auto-generated IDs (UID) to uniquely identify objects created from them.
AbstractCommonEnergySystem
This class serves as the parent class for most EnergySystem classes. All energy systems inherit the attributes of this class.
Parent Class
Relationships
AbstractCommonEnergySystemhas a one-to-one relationship withSchedulableEntity
Attributes
name:string, the name of the energy systemmodel:string (Optional), the model of the energy systemmanufacturer:string (Optional), the manufacturer of the energy systemmeter:AbstractReader (Optional), a meter that may be installed on the energy system
Behaviours (Methods)
None
AbstractEnergySystem
This class serves as the parent class for renewable and non-renewable energy systems.
Parent Class
Relationships
None
Attributes
inverter:bool, indicates whether an energy system has inverter or notunit:MeasurementUnit, the measurement unit for whatever phenomenon measured from the energy systemmanufacturing_year:int (Optional), the manufacturing year of the energy systemcapacity:AbstractMeasure (Optional), the capacity of the energy system for the measured phenomenon
Behaviours (Methods)
None
AbstractElectrical
This class serves as the parent class for a subset of energy systems categorised as electricals.
Parent Class
Relationships
None
Attributes
power_state:PowerState, the power state of the electrical system
Behaviours (Methods)
None
ImmobileStorageEnergySystem
This class serves as the parent class for immobile storage systems.
Parent Class
Relationships
ImmobileStorageEnergySystemhas a one-to-many relationship withRenewableEnergySystem
Attributes
energy_source:EnergySource, the source of energy for the storage systemtechnology:Union[BatteryTech, CapacitorTech], the energy storage technologyrenewable_sources:List[RenewableEnergySystem], the renewable energy sources for the storage system
Behaviours (Methods)
add_renewable_energy_source(renewable_energy_source: RenewableEnergySystem): adds a renewable energy source to a mobile storage systemremove_renewable_energy_source(renewable_energy_source: RenewableEnergySystem): removes a renewable energy source from a mobile storage systemget_renewable_energy_source(name: str): searches for an immobile storage system given its name
MobileStorageEnergySystem
This class serves as the parent class for mobile storage systems.
Parent Class
Relationships
None
Attributes
None
Behaviours (Methods)
None
Battery
This class models battery energy storage systems.
Parent Class
Relationships
None
Attributes
None
Behaviours (Methods)
None
ElectricVehicle
ElectricVehicle class models electric vehicles as storage energy systems (e.g., for charging and/or discharging their energy).
Parent Class
Relationships
None
Attributes
v2g_capability:bool (default is False), indicates whether the electric vehicle can return electricity to the gridv2g_power_limit:BinaryMeasure (optional), the maximum amount of power that the electric vehicle to draw from or give to the gridv2g_mode:V2GMode (optional), the operational mode of the electrical vehicle, e.g., FREQUENCY_REGULATION
Behaviours (Methods)
None
SuperCapacitor
The SuperCapacitor class models supercapacitors in built environments.
Parent Class
Relationships
None
Attributes
None
Behaviours (Methods)
None
Alternator
The Alternator class models electrical alternators in built environments.
Parent Class
Relationships
None
Attributes
power_rating:BinaryMeasure (optional), the power rating of the alternator
Behaviours (Methods)
None
AutomaticTransferSwitch
The AutomaticTransferSwitch class models automatic transfer switches (ATS) in built environments.
Parent Class
Relationships
None
Attributes
power_source_type:ATSPowerSourceType (optional), the power source type of the ATS, e.g., UTILITY_GENERATORtransition_type:ATSTransitionType (optional), the transition type of the ATS, e.g., OPENoperation_mode:ATSOperationMode (optional), the operation mode of the ATS, e.g., MANUALswitching_mechanism:ATSSwitchingMechanism (optional), the switching mechanism of the ATS, e.g., CONTRACTOR
Behaviours (Methods)
None
UninterruptiblePowerSupply
The UninterruptiblePowerSupply class models uninterruptible power supplies (UPS) in built environments.
Parent Class
Relationships
UninterruptiblePowerSupplyhas a one-to-many relationship withImmobileStorageEnergySystem
Attributes
phase:UPSPhase, the phase used by the UPS, e.g., SPLITnoise_filtering:bool (default is False), indicates whether the UPS has noise filtering capabilitiessurge_suppression:bool (default is False), indicates whether the UPS has surge suppression capabilitiespower_rating:BinaryMeasure (optional), the power rating of the UPSstorage_systems:List[ImmobileStorageEnergySystem], the storage systems associated with the UPS
Behaviours (Methods)
add_storage_system(storage_system: ImmobileStorageEnergySystem): adds a storage system to a UPSremove_storage_system(storage_system: ImmobileStorageEnergySystem): removes a storage system from a UPSget_storage_system_by_name(name) -> ImmobileStorageEnergySystem: searches for an immobile storage system given its name
Engine
The Engine class models engines that are part of HVAC and energy systems in built environments.
Parent Class
Relationships
None
Attributes
engine_type:EngineType, the type of engine, e.g., FUEL_CELLengine_mode:EngineMode, the engine mode of operation, e.g., CO_GENERATIONengine_sub_type:EngineSubType, the type of engine indicated by the fuel used, e.g., PROPANE
Behaviours (Methods)
None
SolarPV
The SolarPV class models solar panels that may be installed on some buildings.
Parent Class
Relationships
None
Attributes
solar_pv_type:SolarPVType, the type of solar panel, e.g., BUILDING_INTEGRATED_PHOTOVOLTAICcell_type:CellType, the cell type used by the solar panels, e.g., POLYCRYSTALLINEthermal_capacity:BinaryMeasure (optional), the thermal capacity of the solar panelsmodule_area:BinaryMeasure (optional), the module area of the solar panel
Behaviours (Methods)
None
WindMill
The WindMill class models windmills that may serve as renewable energy sources for buildings.
Parent Class
Relationships
None
Attributes
number_of_turbines:int, the number of turbines for the windmillturbine_type:WindTurbineType, the turbine type of the windmill, e.g., VERTICAL_AXIS_WIND_TURBINE_ON_SHORE
Behaviours (Methods)
None
NonRenewableEnergySystem
The NonRenewableEnergySystem serves as the parent class for all non-renewable energy system classes in MetamEnTh.
Parent Class
Relationships
None
Attributes
None
Behaviours (Methods)
None
RenewableEnergySystem
The RenewableEnergySystem serves as the parent class for all renewable energy system classes in MetamEnTh.
Parent Class
Relationships
None
Attributes
None
Behaviours (Methods)
None