PV modules: recent database

93 views
Skip to first unread message

Karel _

unread,
Mar 3, 2023, 11:42:27 AM3/3/23
to pvlib-python
Hello everyone

For my calculations of the DC energy yield I use the Sandia Modules Database. The modules in that database are a little bit outdated and not used anymore. 

Is their a better and more relevant PV module database that are used on roofs around the whole world with the parameters needed to calculate the energy yield like you do with the Sandia Modules Database? The CEC Module Database? Other databases?

Thank you in advance
Karel Lagast
Master student
Catholic University of Leuven, Belgium

cwh...@sandia.gov

unread,
Mar 3, 2023, 11:50:50 AM3/3/23
to pvlib-python
Hi Karel,

I'd recommend using the CEC model and its database of parameters. Or if the modeling is only to get maximum power, and doesn't require a specific module, use PVWatts.

We have plans to add coefficient translators that could, for example, input a module from the CEC database and give the Sandia model parameters.

Cheers,

Cliff

Karel _

unread,
Mar 8, 2023, 5:09:20 AM3/8/23
to pvlib-python
Hello Cliff

Hello

First of all thank you for your reply!
Apologies for my later reply. I am now using the Sandia Module database to calculate the annual DC energy yield for a PV module (so no inverters). My code is largely based on the tutorial on the pvlib website (https://pvlib-python.readthedocs.io/en/stable/user_guide/introtutorial.html).
In the end I take the sum of the values of p_mp for every hour. 
dc = pvlib.pvsystem.sapm(effective_irradiance, cell_temperature, module) #generates 5 points on a PV module
        annual_energy_dc = dc[['p_mp']].sum()
        # dc_maximum_power.plot()
        annual_energy_dc = annual_energy_dc.sum()

        return annual_energy_dc

Does that make sense to you to calculate the yearly energy dc yield? Because I'm unsure if my code does the thing I want it to do? Or does it only calculate the maximum power that hour? And when switching to the CEC module database I see that a lot of parameters in the module table have different names? Is their code available that works with the CEC modules database to do the same (so not using coefficient translators like you mentioned)? To have results with modules that are more used today?

Thank you in advance
Karel Lagast
Master student
Catholic University of Leuven, Belgium
Op vrijdag 3 maart 2023 om 17:50:50 UTC+1 schreef cwh...@sandia.gov:

cwh...@sandia.gov

unread,
Mar 13, 2023, 11:08:16 AM3/13/23
to pvlib-python
I don't think you need to apply .sum twice. I think annual_energy_dc = dc[['p_mp']].sum() should be a float; if it's not, then I'd check the dimensions of dc[['p_mp']].

pvlib makes "instantaneous" calculations, that is, it calculates the DC power (at maximum power conditions) at each time stamp. Using hourly input data, you are implicitly modeling each hour by the hour's single value of irradiance, temperature, etc. So summing as the above code is implicitly assuming that each hour's energy (in Whr) is equal to the hour's power (W) x duration (1 hour).

The equations for the SAPM and CEC models are quite different, and hence require different parameters. Using the CEC model is a two step process:
- first use the function pvsystem.calcparams_cec to translate irradiance etc. to the five coefficients for the single diode equation
- use pvsystem.singlediode to get the points on the IV curve, including p_mp.
I hope the documentation for these two functions makes it clear.

Cheers,

Cliff

Karel _

unread,
Mar 25, 2023, 5:31:43 PM3/25/23
to pvlib-python
Dear Cliff

Thank you for your answer. I apply .sum twice to convert the series into a float.

Is there a way you can easily calculate the DC energy yield at every timestamp with the CEC module database? Is there any existing code I can rely on?

Thank you in advance
Karel Lagast
Master student
Catholic University of Leuven, Belgium


Op maandag 13 maart 2023 om 16:08:16 UTC+1 schreef cwh...@sandia.gov:

Kenneth J. Sauer

unread,
May 13, 2023, 3:38:25 PM5/13/23
to Karel _, pvlib-python
Hi Karel,

Is it possible you're looking for example code like this:

https://github.com/pvlib/pvlib-python/blob/main/docs/tutorials/pvsystem.ipynb

https://github.com/pvlib/pvlib-python/blob/main/docs/tutorials/tmy_to_power.ipynb

These use CEC diode model parameters with the De Soto diode model. If
I'm not mistaken, you can also run the CEC diode model with the same
set of diode model parameters using the function named
"pvlib.pvsystem.calcparams_cec".

--Thanks,
Ken
> --
> You received this message because you are subscribed to the Google Groups "pvlib-python" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to pvlib-python...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/pvlib-python/303b4baa-748a-4108-a6f0-b0cccd368fccn%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages