@@ -404,21 +404,12 @@ def sapm(self, effective_irradiance, temp_cell, **kwargs):
404
404
405
405
Parameters
406
406
----------
407
- poa_direct : Series
408
- The direct irradiance incident upon the module (W/m^2).
409
-
410
- poa_diffuse : Series
411
- The diffuse irradiance incident on module.
407
+ effective_irradiance : Series
408
+ The effective irradiance incident upon the module (W/m^2).
412
409
413
410
temp_cell : Series
414
411
The cell temperature (degrees C).
415
412
416
- airmass_absolute : Series
417
- Absolute airmass.
418
-
419
- aoi : Series
420
- Angle of incidence (degrees).
421
-
422
413
**kwargs
423
414
See pvsystem.sapm for details
424
415
@@ -505,7 +496,7 @@ def sapm_effective_irradiance(self, poa_direct, poa_diffuse,
505
496
Returns
506
497
-------
507
498
effective_irradiance : numeric
508
- The SAPM effective irradiance.
499
+ The SAPM effective irradiance in W/m^2 .
509
500
"""
510
501
return sapm_effective_irradiance (
511
502
poa_direct , poa_diffuse , airmass_absolute , aoi ,
@@ -1649,7 +1640,7 @@ def _parse_raw_sam_df(csvdata):
1649
1640
return df
1650
1641
1651
1642
1652
- def sapm (effective_irradiance , temp_cell , module ):
1643
+ def sapm (effective_irradiance , temp_cell , module , reference_irradiance = 1000 ):
1653
1644
'''
1654
1645
The Sandia PV Array Performance Model (SAPM) generates 5 points on a
1655
1646
PV module's I-V curve (Voc, Isc, Ix, Ixx, Vmp/Imp) according to
@@ -1658,7 +1649,7 @@ def sapm(effective_irradiance, temp_cell, module):
1658
1649
Parameters
1659
1650
----------
1660
1651
effective_irradiance : numeric
1661
- Effective irradiance (suns ).
1652
+ Effective irradiance (W/m^2 ).
1662
1653
1663
1654
temp_cell : numeric
1664
1655
The cell temperature (degrees C).
@@ -1667,6 +1658,9 @@ def sapm(effective_irradiance, temp_cell, module):
1667
1658
A dict, Series, or DataFrame defining the SAPM performance
1668
1659
parameters. See the notes section for more details.
1669
1660
1661
+ reference_irradiance : float
1662
+ Default 1000 W/m^2.
1663
+
1670
1664
Returns
1671
1665
-------
1672
1666
A DataFrame with the columns:
@@ -1739,7 +1733,7 @@ def sapm(effective_irradiance, temp_cell, module):
1739
1733
kb = 1.38066e-23 # Boltzmann's constant in units of J/K
1740
1734
1741
1735
# avoid problem with integer input
1742
- Ee = np .array (effective_irradiance , dtype = 'float64' )
1736
+ Ee = np .array (effective_irradiance , dtype = 'float64' ) / reference_irradiance
1743
1737
1744
1738
# set up masking for 0, positive, and nan inputs
1745
1739
Ee_gt_0 = np .full_like (Ee , False , dtype = 'bool' )
@@ -1986,7 +1980,7 @@ def sapm_aoi_loss(aoi, module, upper=None):
1986
1980
1987
1981
1988
1982
def sapm_effective_irradiance (poa_direct , poa_diffuse , airmass_absolute , aoi ,
1989
- module , reference_irradiance = 1000 ):
1983
+ module ):
1990
1984
"""
1991
1985
Calculates the SAPM effective irradiance using the SAPM spectral
1992
1986
loss and SAPM angle of incidence loss functions.
@@ -2010,21 +2004,16 @@ def sapm_effective_irradiance(poa_direct, poa_diffuse, airmass_absolute, aoi,
2010
2004
parameters. See the :py:func:`sapm` notes section for more
2011
2005
details.
2012
2006
2013
- reference_irradiance : numeric, default 1000
2014
- Reference irradiance by which to divide the input irradiance.
2015
-
2016
2007
Returns
2017
2008
-------
2018
2009
effective_irradiance : numeric
2019
- The SAPM effective irradiance.
2010
+ The SAPM effective irradiance in W/m^2 .
2020
2011
"""
2021
2012
2022
2013
F1 = sapm_spectral_loss (airmass_absolute , module )
2023
2014
F2 = sapm_aoi_loss (aoi , module )
2024
2015
2025
- E0 = reference_irradiance
2026
-
2027
- Ee = F1 * (poa_direct * F2 + module ['FD' ]* poa_diffuse ) / E0
2016
+ Ee = F1 * (poa_direct * F2 + module ['FD' ]* poa_diffuse )
2028
2017
2029
2018
return Ee
2030
2019
0 commit comments