-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Bishop88 functions sometimes return incorrect results or errors when using d2mutau
and NsVbi
parameters
#2013
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
Comments
Thank you for bringing this issue up. This is something I've noticed recently as well. I have tested a fair amount of CdTe modules with A minor question regarding the example you gave - was that module supposed to CdTe? If so, shouldn't the energy bandgap be 1.5eV? |
Yes, good point. I guess my brain and fingers were on autopilot when putting together an example set of parameters. Interestingly, updating the parameters to use 1.5 eV doesn't seem to change the simulation results at all... am I overlooking something? Also @smmeredith, if you can, it would be great if you would assemble a collection of parameter sets that you have observed to produce incorrect simulations. Whenever someone fixes this bug, the fix could be evaluated on that collection. |
I think this is because only saturation current uses it, which has no irradiance dependence.
No problem, just let me know how I can share it. So I've done a little more investigating on the 25 CdTe modules that I've been testing with
For every module that I looked at, whenever a problematic output occurred, |
Attaching a JSON of parameters that were used in my analysis. I removed seven parameter sets that came from a third-party lab, because my single-diode model does not match PVsyst as well for those modules - and that is a separate issue that needs to be resolved by me. |
Modifying
to
fixes all We want to start the Newton iteration a little less than NsVbi, where the derivative dP/dV should be negative (and large in magnitude), and then I think Newton's should be reliable (as reliable as Newton's can be). Illustration of the power vs. diode voltage curve in the neighborhood of the asymptote at Vd=NsVbi, we're trying to find the max power point (red square) |
@cwhanse how about with |
Same change to the right end point also fixes the failures using Edit: ...and prevents a number of warnings that are currently emitted. |
Describe the bug
The bishop88 functions can sometimes fail, or return incorrect results, when using the
d2mutau
andNsVbi
parameters.To Reproduce
Set-up:
method='brentq'
errors withValueError: f(a) and f(b) must have different signs
.Click to show traceback
method='newton'
gives incorrect results for some conditions:Versions:
pvlib.__version__
: 0.10.4scipy.__version__
: 1.12.0Additional context
I think the problem has something to do with the following:
NsVbi = Vd
, and our code only returns valid results forVd < NsVbi
(ref Adding New Single Diode Model For CdTe #163 (comment))estimate_voc
can sometimes return a value on the other side of the singularity (Vd > NsVbi
), where our bishop88-style calculations are not valid.bishop88_mpp
usesestimate_voc
to calculate either an upper bound for the bracketed optimization (withmethod='brentq'
) or the initial guess (withmethod='newton'
), meaning we are sometimes providing invalid starting points to the root finder.Here is an example of the estimated Voc being greater than NsVbi:
cc @leliadeville
The text was updated successfully, but these errors were encountered: