Skip to content

A method of finding the MPP using Newton with guaranteed convergence #2561

@kandersolar

Description

@kandersolar

This paper provides a Newton-based method of finding the MPP, with the function and starting point constructed in such a way that they claim guarantees convergence. Rough timing (for 1000 sets of SDE parameters) compared with our existing methods:

  • method='lambertw': 42.5 ms ± 1.64 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
  • method='newton': 8.57 ms ± 236 μs per loop (mean ± std. dev. of 7 runs, 100 loops each)
  • method='brentq': 877 ms ± 20.3 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
  • method='chandrupatla': 22.3 ms ± 974 μs per loop (mean ± std. dev. of 7 runs, 10 loops each)
  • Toledo et al. : 9.4 ms ± 713 μs per loop (mean ± std. dev. of 7 runs, 100 loops each)

The implementation is fewer than 100 lines of code (although Isc and Vmp are calculated using pvlib's i_from_v and v_from_i functions instead of the method in the paper).

Reference:

Toledo, F.J., Galiano, V., Herranz, V. et al. A comparison of methods for the calculation of all the key points of the PV single-diode model including a new algorithm for the maximum power point. Optim Eng 25, 1469–1503 (2024). https://doi.org/10.1007/s11081-023-09850-8

Worth including in pvlib?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions