pvlib.pvsystem.PVSystem¶
-
class
pvlib.pvsystem.
PVSystem
(surface_tilt=0, surface_azimuth=180, albedo=None, surface_type=None, module=None, module_parameters=None, modules_per_string=1, strings_per_inverter=1, inverter=None, inverter_parameters=None, racking_model='open_rack_cell_glassback', name=None, **kwargs)[source]¶ The PVSystem class defines a standard set of PV system attributes and modeling functions. This class describes the collection and interactions of PV system components rather than an installed system on the ground. It is typically used in combination with
Location
andModelChain
objects.See the
LocalizedPVSystem
class for an object model that describes an installed PV system.The class supports basic system topologies consisting of:
- N total modules arranged in series (modules_per_string=N, strings_per_inverter=1).
- M total modules arranged in parallel (modules_per_string=1, strings_per_inverter=M).
- NxM total modules arranged in M strings of N modules each (modules_per_string=N, strings_per_inverter=M).
The class is complementary to the module-level functions.
The attributes should generally be things that don’t change about the system, such the type of module and the inverter. The instance methods accept arguments for things that do change, such as irradiance and temperature.
Parameters: - surface_tilt: float or array-like, default 0
Surface tilt angles in decimal degrees. The tilt angle is defined as degrees from horizontal (e.g. surface facing up = 0, surface facing horizon = 90)
- surface_azimuth: float or array-like, default 180
Azimuth angle of the module surface. North=0, East=90, South=180, West=270.
- albedo : None or float, default None
The ground albedo. If
None
, will attempt to usesurface_type
andirradiance.SURFACE_ALBEDOS
to lookup albedo.- surface_type : None or string, default None
The ground surface type. See
irradiance.SURFACE_ALBEDOS
for valid values.- module : None or string, default None
The model name of the modules. May be used to look up the module_parameters dictionary via some other method.
- module_parameters : None, dict or Series, default None
Module parameters as defined by the SAPM, CEC, or other.
- modules_per_string: int or float, default 1
See system topology discussion above.
- strings_per_inverter: int or float, default 1
See system topology discussion above.
- inverter : None or string, default None
The model name of the inverters. May be used to look up the inverter_parameters dictionary via some other method.
- inverter_parameters : None, dict or Series, default None
Inverter parameters as defined by the SAPM, CEC, or other.
- racking_model : None or string, default ‘open_rack_cell_glassback’
Used for cell and module temperature calculations.
- name : None or string, default None
- **kwargs
Arbitrary keyword arguments. Included for compatibility, but not used.
See also
pvlib.location.Location
,pvlib.tracking.SingleAxisTracker
,pvlib.pvsystem.LocalizedPVSystem
-
__init__
(surface_tilt=0, surface_azimuth=180, albedo=None, surface_type=None, module=None, module_parameters=None, modules_per_string=1, strings_per_inverter=1, inverter=None, inverter_parameters=None, racking_model='open_rack_cell_glassback', name=None, **kwargs)[source]¶ Initialize self. See help(type(self)) for accurate signature.
Methods
__init__
([surface_tilt, surface_azimuth, …])Initialize self. adrinverter
(v_dc, p_dc)ashraeiam
(aoi)Determine the incidence angle modifier using self.module_parameters['b']
,aoi
, and theashraeiam()
function.calcparams_desoto
(poa_global, temp_cell, …)Use the calcparams_desoto()
function, the input parameters andself.module_parameters
to calculate the module currents and resistances.get_aoi
(solar_zenith, solar_azimuth)Get the angle of incidence on the system. get_irradiance
(solar_zenith, solar_azimuth, …)Uses the irradiance.total_irrad()
function to calculate the plane of array irradiance components on a tilted surface defined byself.surface_tilt
,self.surface_azimuth
, andself.albedo
.i_from_v
(resistance_shunt, …)Wrapper around the i_from_v()
function.localize
([location, latitude, longitude])Creates a LocalizedPVSystem object using this object and location data. physicaliam
(aoi)Determine the incidence angle modifier using aoi
,self.module_parameters['K']
,self.module_parameters['L']
,self.module_parameters['n']
, and thephysicaliam()
function.pvwatts_ac
(pdc)Calculates AC power according to the PVWatts model using pvwatts_ac()
, self.module_parameters[‘pdc0’], and eta_inv_nom=self.inverter_parameters[‘eta_inv_nom’].pvwatts_dc
(g_poa_effective, temp_cell)Calcuates DC power according to the PVWatts model using pvwatts_dc()
, self.module_parameters[‘pdc0’], and self.module_parameters[‘gamma_pdc’].pvwatts_losses
(**kwargs)Calculates DC power losses according the PVwatts model using pvwatts_losses()
.sapm
(effective_irradiance, temp_cell, **kwargs)Use the sapm()
function, the input parameters, andself.module_parameters
to calculate Voc, Isc, Ix, Ixx, Vmp/Imp.sapm_aoi_loss
(aoi)Use the sapm_aoi_loss()
function, the input parameters, andself.module_parameters
to calculate F2.sapm_celltemp
(irrad, wind, temp)Uses sapm_celltemp()
to calculate module and cell temperatures based onself.racking_model
and the input parameters.sapm_effective_irradiance
(poa_direct, …[, …])Use the sapm_effective_irradiance()
function, the input parameters, andself.module_parameters
to calculate effective irradiance.sapm_spectral_loss
(airmass_absolute)Use the sapm_spectral_loss()
function, the input parameters, andself.module_parameters
to calculate F1.scale_voltage_current_power
(data)Scales the voltage, current, and power of the DataFrames returned by singlediode()
andsapm()
by self.modules_per_string and self.strings_per_inverter.singlediode
(photocurrent, …[, ivcurve_pnts])Wrapper around the singlediode()
function.snlinverter
(v_dc, p_dc)Uses snlinverter()
to calculate AC power based onself.inverter_parameters
and the input parameters.