cwhanse / ivcurves

Code to generate precise solutions to the single diode equation
https://ivcurves.readthedocs.io/en/latest/
BSD 3-Clause "New" or "Revised" License
2 stars 4 forks source link

Possible factors for constructing synthetic I-V curves #3

Open markcampanelli opened 2 years ago

markcampanelli commented 2 years ago

In no particular order, here are some options for synthetic curves:

I note that "raw" I-V curves from calibration labs (e.g., using solar simulators) can have different irradiance levels for every point on the I-V curve. (Less often have I seen temperature measurements for each I-V point, but rather pre- and post- temperature measurements to give some idea of heating during the measurement.) These raw curves are often corrected to a single temperature and irradiance, with the likely introduction of some level of correction bias.

cwhanse commented 2 years ago

If you have suggestions for modeling current and/or voltage noise, I'm all ears. My impression is that current measurement is either less precise, or current is "noisier", than voltage.

That's a good idea to simulate a full IEC 61853 set, but I think we only do that for some of the parameter combinations we currently have in the case1 (representative of cSi) and case2 (representative of thin-film) curve sets.

I don't want to introduce model uncertainty (one vs. two diode, superposition principle holds or not) as a factor affecting curve fitting. The point here is focus on verifying the fitting algorithm, and excluding other factors that affect that verification, such as model uncertainty.

markcampanelli commented 2 years ago

This is flexing my memory banks from uncertainty analyses I did at NREL, but I recall a few broad options to consider:

(1) Additive noise (2) Multiplicative noise (3) Bias

Additive noise, typically normal and independent and identically distributed (i.i.d.), usually matches the statistical assumptions behind many standard (linear) regression methods (although we generally have a non-linear, error-in-variables model here). For example, "such and such" a method produces the maximum likelihood estimator (MLE) on linear problems under certain noise assumptions.

Multiplicative noise, IIRC, seemed to better match the physics of the voltage measurements that underlie the voltage AND current measurements in I-V curves. The relative magnitude of the noise is constant, but the absolute magnitude of the noise grows with the signal size. Note that these voltage measurements may have bias and noise correlation, say due to temperature fluctuations between I-V curve measurements. It is usually hard to quantify this based solely on manufacturer's specifications, but is often assumed small and/or ignored.

For the current measurement, the conversion from voltage to current (e.g., via a current shunt resistor) adds more uncertainty, which may add more bias than random noise (e.g., an imperfectly known resistance biases all conversions in I = V/R). Furthermore, any spectral- and/or light-level correction in the current also add bias (e.g., from, the spectral-correction using the imperfect factor M) and random noise (e.g., from the flickering of a continuous solar simulator), which is why the "noise" is often larger in the current channel.

I have typically used multiplicative i.i.d. normal noise without bias in my SDM calibration work. After picking a noise model, I would suggest doing all combinations of zero, low, and high noise levels in the I and V channels (via the variance parameter in the normal distribution), e.g., 0, 0.01, and 0.025. (Maybe leave out the highest noise level for voltage?)

I am happy to provide some further implementation examples/details in Python code.