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

Add method to fit SAPM array model #2001

Open
cwhanse opened this issue Mar 29, 2024 · 1 comment
Open

Add method to fit SAPM array model #2001

cwhanse opened this issue Mar 29, 2024 · 1 comment

Comments

@cwhanse
Copy link
Member

cwhanse commented Mar 29, 2024

No public code is available to fit the SAPM model to data. The primary reference is here.

The full SAPM model has three parts:

  1. Electrical model. The model predicts Isc, Voc, Imp, Vmp, Ix (current at Vmp/2) and Ixx (current at the average of Vmp and Voc). This model needs 9 empirical coefficients for Isc, Voc, Imp, Vmp, and four temperature coefficients (Isc, Voc, Imp, Vmp). Six additional coefficients are needed for Ix and Ixx.
  2. Spectrum adjustment. This is a fourth-order polynomial f(AM) in air mass such that f(1.5) = 1.
  3. IAM model. This is a fifth-order polynomial in angle of incidence.

I propose to add code to provide the temperature coefficients, the 9 electrical coefficients for Isc, Voc, Imp, Vmp, and the polynomial for the spectrum adjustment. Good alternatives to a polynomial are already available for the IAM model, which isn't intricately linked with the rest of the SAPM.

The fit would require a dataset of the following:

  1. broadband POA (range of values, covering 400 W/m2 to 1100 W/m2)
  2. air temperature (range of values, covering perhaps 30C)
  3. wind speed (at height TBD)
  4. back-of-module temperature
  5. Isc, Voc, Imp, Vmp (optionally, Ix and Ixx).

With the above data obtained indoors (e.g., IEC 61853 procedure), the temperature coefficients and electrical model sans Ix and Ixx can be determined. Reference here.

If the data are obtained outdoors with the module normal to the sun, then the spectrum adjustment function can also be estimated. The procedure requires data for both clear-sky and not clear-sky conditions; each point should be labeled as clear or not.

If we agree to add this capability, should it go into pvlib/pvarray.py? That's where we put the other "fit" code, and perhaps this is also an opportunity to move sapm from pvlib/pvsystem.py to pvarray.py.

@adriesse
Copy link
Member

Good initiative. I guess there was some similar discussion about where to put things in #1544. pvarray seems like a good place for the electrical model and fitter.

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

No branches or pull requests

2 participants