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 and ModelChain 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 use surface_type and irradiance.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.

__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]