Skip to content

ENH: model pvsyst thin-film recombination for CdTe and a:Si in pvsystem.singlediode() #517

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

Open
mikofski opened this issue Aug 3, 2018 · 2 comments
Milestone

Comments

@mikofski
Copy link
Member

mikofski commented Aug 3, 2018

Problem
This request was initially made in #163 and is also related to #470. As of #504 bishop88 can accept the thin-film recombination parameters: d2mutau and vbi to output IV curve and its gradients, but there is no propagation of this ability to the proxies that use it such as pvsystem.singlediode()

Solution
Here is a proposed list of methods that should now be able to use these new terms:

  • singlediode_methods.bishop88_i_from_v()
  • singlediode_methods.bishop88_v_from_i()
  • singlediode_methods.bishop88_mpp()
  • singlediode_methods._lambertw_v_from_i()
  • singlediode_methods._lambertw_i_from_v()
  • singlediode_methods._lambertw()
  • pvsystem.PVSystem.singlediode()
  • pvsystem.PVSystem.i_from_v()
  • pvsystem.singlediode()
  • pvsystem.max_power_point()
  • pvsystem.v_from_i()
  • pvsystem.i_from_v()

Alternatives
Please suggest alternative solutions. There has been discussion of refactoring calcparams_pvsyst or even creating model specific singlediode_pvsyst methods. Is that desired?

Additional context
this is a follow on to #504

@mikofski
Copy link
Member Author

@adriesse didn't #762 and #763 already address this? I think this can be closed right?

I think the other functions in the list above have a Lambert-W which I don't think has a way to handle the thin-film recombination terms yet.

Can I close this issue?

@cwhanse
Copy link
Member

cwhanse commented Sep 11, 2019

I think this issue should stay open, or, be closed and replaced by several smaller issues that cover the scope:

  1. finish implementation in pvsystem functions (see below)
  2. implementation for PVSystem methods
  3. implementation for ModelChain methods

Implementation in pvlib.singlediode is complete by #763. bishop88 functions accept the arguments. The lambertw functions don't use the arguments and shouldn't; the method can't solve the single diode equation with the recombination term.

For the first item above, pvlib.pvsystem.max_power_point accepts the arguments by #763. The following functions could (and should) accept the arguments:

  • pvsystem.i_from_v
  • pvsystem.v_from_i
  • pvsystem.single_diode

These functions have a method kwarg which defaults to lambertw, but could be set to newton or brentq and thus d2mutau could be used.

@wholmgren wholmgren modified the milestones: 0.7.0, 0.7.1 Nov 26, 2019
@wholmgren wholmgren modified the milestones: 0.7.1, 0.7.2 Jan 10, 2020
@cwhanse cwhanse modified the milestones: 0.7.2, 0.8.0 Feb 12, 2020
@wholmgren wholmgren modified the milestones: 0.8.0, Someday Aug 28, 2020
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

3 participants