Obtaining I-V curve at reference STC conditions from any other operation conditions

45 views
Skip to first unread message

Jose Domingo Santos Rodriguez

unread,
Mar 16, 2023, 12:31:54 PM3/16/23
to pvlib-python
Dear PVLIB colleagues,

PVLIB contains some interesting function to assess the single diode model parameters at any operation conditions by usign the values at standard test conditions (1000 W/m2 and 25ºC). A good example is pvlib.pvsystem.calcparams_desoto.

But, how could we do the reverse operation? For example, I have measured on field the I-V curve at a given irradiance and temperature conditions (far from STC). I could use a function like  pvlib.ivtools.sde.fit_sandia_simple  to obtain de single diode parameters at that irradiance and module temperature.

How could obtain the parameters at reference conditions? I understand that it is the inly way  to carry out a fair comparison between I-V curves of devices measured at different irradiance operation conditions.

Thank you in advance.

Regards,

Jose.

P.S: I am aware that the translation of single diode model parameters at differente operation conditions is based in many assumptions, but I have to start with something. :)


cwh...@sandia.gov

unread,
Mar 16, 2023, 12:43:30 PM3/16/23
to pvlib-python
Hi Jose,

If you have several IV curves over a range of conditions, you could try the fit functions in pvlib.ivtools.sdm, which return parameters for the single diode models (CEC, pvsyst, etc.) which include the five IV curve parameters at reference conditions. fit_desoto_sandia may be useful.

If you have the single curve, then I don't know how to obtain the five values for the STC curve with any confidence. I think you could get photocurrent by a linear scaling with irradiance, you could assume diode factor is constant, and saturation current scales with the cube of cell temperature (in K). You could also assume series resistance is constant (an assumption I question). Shunt resistance typically shows a dependence on irradiance, which is modeled in a variety of ways. The good news is that you don't need to know shunt resistance with much precision to get a good estimate of the IV curve.

If you try this (going from the five parameters of an IV curve to the parameters for the STC IV curve) and are able to validate the parameter values, I'd be interested to hear about the results.

Cliff

Jose Domingo Santos Rodriguez

unread,
Mar 16, 2023, 5:19:30 PM3/16/23
to cwh...@sandia.gov, pvlib-python
Hi Cliff. Thank you very much for your fast reply.


I am going to try to provide more context. In collaboration with a partner, we are monitoring a small PV array at inverter level. We occasionally cause some specific failure modes which could have some effect on the single diode model parameters. The I-V curve is measured every time that a new failure mode is introduced. So, for each "degraded" state of the PV array, we have an I-V curve at the best possible meteorological conditions of that specific day (I know, this is not the ideal case).

So basically, we have a set of I-V curves for the normal state of the PV array at different operation conditions (in which probably we could use some of your suggestions) and one or two I-V curves of the PV array affected by a specific failure mode. The problem is that these I-V curves are measured at very different operation conditions for each degraded state (for example at an irradiance level of 200 W/m2 or 600 W/m2).

I was thinking on applying the relationship proposed by DeSoto (or any other) to translate the single diode model parameters, extracted from the IV curves, from their measurement conditions to STC. Then, I would like to make a comparison: normal state vs different failure modes. This is why I was looking for some kind function to carry out a reverse transformation. In any case, I believe that I could write some small piece of code to do the "reverse" DeSoto. Nevertheless, as you already pointed out, the DeSoto approach makes some "hard" assumptions, so I am not sure if the things are going to work anyway.

In case somebody could be interested, we are going to release the dataset open access for the PV community from August-September (IV curves + SCADA data). 


Regards, 


Jose

--
You received this message because you are subscribed to a topic in the Google Groups "pvlib-python" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/pvlib-python/sxP7YMjkutA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to pvlib-python...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pvlib-python/c40057f9-79f0-4570-accf-ed5c1d2ef532n%40googlegroups.com.

cwh...@sandia.gov

unread,
Mar 16, 2023, 5:30:41 PM3/16/23
to pvlib-python
translate the single diode model parameters, extracted from the IV curves, from their measurement conditions to STC.

In concept, that's what fit_desoto_sandia does:
1. input a set of IV curves and the corresponding irradiance and temperature conditions, along with the temperature coefficient of short circuit current.
2. fit the single diode equation to each IV curve to obtain the five coefficients (photocurrent, saturation current, shunt resistance, series resistance, diode factor) *caveat below.
3. fit Desoto's equations to each coefficient as a function of irradiance and temperature.
The output of Step 3 are the model parameters which are the five coefficients at STC, along with a bandgap.

The caveat: this algorithm determines a single ideality factor from Voc vs. log(irradiance). For each IV curve, the other four coefficients are conditional on this ideality factor.
 
There are lots of ways to fit the diode equation to an IV curve, or to fit a whole diode model to a set of data. I make no claims that this particular method is best in any sense.

Cliff

Kamshat A

unread,
May 21, 2026, 11:20:07 AM (yesterday) May 21
to pvlib-python
Hi , all 
I am looking Scada report dataset of failure on PV plants ( utilities) on real plants in USA or Europe , can you share please ? or who i can contact ?

Mark Campanelli

unread,
May 21, 2026, 3:59:42 PM (21 hours ago) May 21
to pvlib-python
Hi Jose,

  Do you have any prior beliefs about what parameters of the model might be changing?

  For example, if you assume that only the series and/or shunt resistances are changing, then that is probably easier to analyze than if you are looking for changes in all five parameters at STC (and possibly also the band gap energy).

  I have done some experiments in PVfit where I used I-V curve fits at various different operating conditions to try to detect changes in the two resistances. Note that this was not originally to detect degradation, but rather to try to detect dependence of these parameters on light level and/or temperature. Thus, it is also important to establish one's assumptions about if the resistance parameters are (reasonably) constant w.r.t. the operating conditions.

  Happy to investigate further with you as time permits.

-Mark
Reply all
Reply to author
Forward
0 new messages