124 lines
3.0 KiB
Python
124 lines
3.0 KiB
Python
"""
|
|
pv_system defines a pv system including all components: PV panels, transformer...
|
|
SPDX - License - Identifier: LGPL - 3.0 - or -later
|
|
Copyright © 2022 Concordia CERC group
|
|
Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca
|
|
"""
|
|
|
|
from typing import Union
|
|
|
|
|
|
class PvSystem:
|
|
"""
|
|
PvSystem class
|
|
"""
|
|
def __init__(self):
|
|
self._modules_mean_seasonal_efficiency = None
|
|
self._total_area = None
|
|
self._module_area = None
|
|
self._number_of_modules = None
|
|
self._overall_system_performance_ratio = None
|
|
self._electricity_generation = None
|
|
|
|
@property
|
|
def modules_mean_seasonal_efficiency(self) -> Union[None, float]:
|
|
"""
|
|
Get mean modules efficiency (-)
|
|
:return: None or float
|
|
"""
|
|
return self._modules_mean_seasonal_efficiency
|
|
|
|
@modules_mean_seasonal_efficiency.setter
|
|
def modules_mean_seasonal_efficiency(self, value):
|
|
"""
|
|
Set mean modules efficiency (-)
|
|
:param value: float
|
|
"""
|
|
if value is not None:
|
|
self._modules_mean_seasonal_efficiency = float(value)
|
|
|
|
@property
|
|
def total_area(self) -> Union[None, float]:
|
|
"""
|
|
Get total modules area in square meters
|
|
:return: None or float
|
|
"""
|
|
return self._total_area
|
|
|
|
@total_area.setter
|
|
def total_area(self, value):
|
|
"""
|
|
Set total modules area in square meters
|
|
:param value: float
|
|
"""
|
|
if value is not None:
|
|
self._total_area = float(value)
|
|
|
|
@property
|
|
def module_area(self) -> Union[None, float]:
|
|
"""
|
|
Get module area in square meters
|
|
:return: None or float
|
|
"""
|
|
return self._module_area
|
|
|
|
@module_area.setter
|
|
def module_area(self, value):
|
|
"""
|
|
Set module area in square meters
|
|
:param value: float
|
|
"""
|
|
if value is not None:
|
|
self._module_area = float(value)
|
|
|
|
@property
|
|
def number_of_modules(self) -> Union[None, int]:
|
|
"""
|
|
Get number of modules
|
|
:return: None or int
|
|
"""
|
|
return self._number_of_modules
|
|
|
|
@number_of_modules.setter
|
|
def number_of_modules(self, value):
|
|
"""
|
|
Set number of modules
|
|
:param value: int
|
|
"""
|
|
if value is not None:
|
|
self._number_of_modules = int(value)
|
|
|
|
@property
|
|
def overall_system_performance_ratio(self) -> Union[None, float]:
|
|
"""
|
|
Get overall system performance ratio (-)
|
|
:return: None or float
|
|
"""
|
|
return self._overall_system_performance_ratio
|
|
|
|
@overall_system_performance_ratio.setter
|
|
def overall_system_performance_ratio(self, value):
|
|
"""
|
|
Set overall system performance ratio (-)
|
|
:param value: float
|
|
"""
|
|
if value is not None:
|
|
self._overall_system_performance_ratio = float(value)
|
|
|
|
@property
|
|
def electricity_generation(self) -> Union[None, float]:
|
|
"""
|
|
Get electricity generation in J
|
|
:return: None or float
|
|
"""
|
|
return self._electricity_generation
|
|
|
|
@electricity_generation.setter
|
|
def electricity_generation(self, value):
|
|
"""
|
|
Set electricity generation in J
|
|
:param value: float
|
|
"""
|
|
if value is not None:
|
|
self._electricity_generation = float(value)
|