Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pvsystem.sapm documentation: clarification of coefficients used #2392

Open
RDaxini opened this issue Feb 20, 2025 · 1 comment
Open

pvsystem.sapm documentation: clarification of coefficients used #2392

RDaxini opened this issue Feb 20, 2025 · 1 comment

Comments

@RDaxini
Copy link
Contributor

RDaxini commented Feb 20, 2025

Is your feature request related to a problem? Please describe.
pvlib.pvsystem.sapm requires effective irradiance and SAPM coefficients as inputs.

pvlib-python/pvlib/pvsystem.py

Lines 2169 to 2171 in 22364d8

effective_irradiance : numeric
Irradiance reaching the module's cells, after reflections and
adjustment for spectrum. [W/m2]

pvlib-python/pvlib/pvsystem.py

Lines 2176 to 2178 in 22364d8

module : dict-like
A dict or Series defining the SAPM parameters. See the notes section
for more details.

effective_irradiance considers AOI/spectrum. The notes section explaining module contains a table explaining the SAPM coefficients:

pvlib-python/pvlib/pvsystem.py

Lines 2194 to 2235 in 22364d8

Notes
-----
The SAPM parameters which are required in ``module`` are
listed in the following table.
The Sandia module database contains parameter values for a limited set
of modules. The CEC module database does not contain these parameters.
Both databases can be accessed using :py:func:`retrieve_sam`.
================ ========================================================
Key Description
================ ========================================================
A0-A4 The airmass coefficients used in calculating
effective irradiance
B0-B5 The angle of incidence coefficients used in calculating
effective irradiance
C0-C7 The empirically determined coefficients relating
Imp, Vmp, Ix, and Ixx to effective irradiance
Isco Short circuit current at reference condition (amps)
Impo Maximum power current at reference condition (amps)
Voco Open circuit voltage at reference condition (amps)
Vmpo Maximum power voltage at reference condition (amps)
Aisc Short circuit current temperature coefficient at
reference condition (1/C)
Aimp Maximum power current temperature coefficient at
reference condition (1/C)
Bvoco Open circuit voltage temperature coefficient at
reference condition (V/C)
Mbvoc Coefficient providing the irradiance dependence for the
BetaVoc temperature coefficient at reference irradiance
(V/C)
Bvmpo Maximum power voltage temperature coefficient at
reference condition
Mbvmp Coefficient providing the irradiance dependence for the
BetaVmp temperature coefficient at reference irradiance
(V/C)
N Empirically determined "diode factor" (dimensionless)
Cells_in_Series Number of cells in series in a module's cell string(s)
IXO Ix at reference conditions
IXXO Ixx at reference conditions
FD Fraction of diffuse irradiance used by module
================ ========================================================

I'm wondering whether any clarification over which coefficients are actually used is necessary. I think it's helpful to present the full table, but could someone be misled into thinking that since A0-A4 are required, a spectral correction is being applied (for example)

Describe the solution you'd like
Suggestion: add a line or two to the notes section clarifying which coefficients are used.

Describe alternatives you've considered
Such a revision could be redundant since effective_irradiance is already clearly (and correctly) defined. However, when I first glanced over these docs, I just felt like some clarification could help some users. Not a major issue; I am interested to hear whether anyone else thinks this would help or not.

@cwhanse
Copy link
Member

cwhanse commented Feb 20, 2025

I agree, that docstring should be clarified. The table is documenting what can be pulled from the (old) parameter file, rather than what is used by this function.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants