1 Introduction

The analysis of photovoltaic (PV) models, which try to describe the behaviour of PV panels, allows to find essential information for their optimal construction, the study of their performance, the search for faults in the systems, the optimal operation under different environmental conditions etc. Therefore, knowing as accurately and quickly as possible the data determining the models is crucial to carrying out the tasks described above. One of the most widely used PV models in the literature due to its precise description of real measurements and its relative simplicity, is the PV single-diode model (SDM). There are algorithms capable of finding the SDM parameters with great precision and speed for fixed environmental conditions. For example, Batzelis et al. (2022) obtains the maximum likelihood estimates (MLE) of the SDM parameters by using the Euclidean distance, Laudani et al. (2014), Cárdenas et al. (2017), Toledo et al. (2018) and Xu (2022) have obtained in the last years the best results in the literature in the SDM parameters extraction by minimization based on the current distance, Lappalainen et al. (2022) analyzes in depth various fitting approaches, including a novel method based on combining current and voltage distances. In Samadhiya et al. (2021) is described a probabilistic methodology in order to quantify the effects of uncertainty in the SDM. There are also works that provide formulas on how parameters vary as a function of temperature and/or irradiance (Batzelis and Papathanassiou 2016; Jain and Kapoor 2004; De Soto et al. 2006), although the existing formulas cannot yet contemplate all the possible variables or all the technologies.

All the PV models have key points that provide relevant information. In the particular case of the SDM these are the remarkable points, maximum power point (MPP), short-circuit point (SCP) and the open-circuit point (OCP), and other less known, but equally important points, such as the mean slope point (MSP), the maximum curvature point (MCP), or the jerk point (JP). The study of these points is as important as that of the parameters themselves and their calculation as a function of the parameters requires mathematical techniques non-trivial at all due to the transcendental nature of the SDM equation. One of the objectives of this work is to describe and compare the best known methods to calculate all the SDM key points. Having described all the points and the preferable way to calculate them is very useful for researchers in this field and the graphical illustrations of all the points on the I–V curve can inspire new ideas and applications.

As its name indicates, the MPP is one of the main important points of a PV panel because it gives the point where the panel must operate to provide the maximum possible power. It is well-known that the MPP varies depending on the environmental conditions. For example, the temperature and the irradiance (Yadir et al. 2020), and other factors such as panel conditions, namely, shadows, dirt, degradation (Kichou et al. 2016), etc. So, in real conditions, it is almost impossible to know the MPP priori. In some photovoltaic installations, the operating point of a panel can be a fixed point that the manufacturer determines to be as close as possible to the MPP in any condition. Obviously these panels are almost never going to provide the maximum power. Other times, the panels incorporate an algorithm that search for the MPP in real time based on the last measurements of the panel. These are called MPP tracking algorithms (Bendib et al. 2015; Ramos-Hernanz et al. 2020). The calculation of the theoretical MPP of the SDM is important because it should match the real MPP and provide essential information about the correct working of the panel or allows to predict the real MPP in different environmental conditions. However, as we have said before, the calculation of the theoretical MPP is not a simple problem. There are several works in the literature that try to calculate the theoretical MPP exactly (Ikegami et al. 2001; Zagrouba et al. 2010; Askarzadeh and Rezazadeh 2013; Laudani et al. 2017; Trejo and Ortiz-Conde 2020; Cardelli et al. 2022) or approximately (Batzelis et al. 2015). We would like to highlight the works (Laudani et al. 2017; Trejo and Ortiz-Conde 2020; Cardelli et al. 2022) in which fast and accurate methodologies are provided to calculate the MPP of the SDM and that, in addition, are simple enough to be implemented in low-cost microcontrollers, which allows them to be used as MPPT techniques. The objective of this paper is also the theoretical calculation of the MPP with the parameters of the model and its usefulness in the design and prediction programs of photovoltaic installations where internally these models are used for all calculations. The main contribution of this work is a new algorithm to calculate the theoretical MPP that is as accurate as a numerical method and almost as fast as an explicit formula. The key idea is to reduce the calculation of the theoretical MPP to the resolution of a single variable equation. The solution of this equation leads us to the explicit expression of the MPP through a parametrization of the SDM (Toledo et al. 2023). On the other hand, it is well known that the speed in the numerical resolution of an equation to attain a prefixed precision depends on the initial seed from which the algorithm starts. In this work, we use the MSP as a seed. It was proved in Rodriguez and Amaratunga (2007) that the MSP is close to the MPP. Nevertheless, only approximate expressions of this point were provided in that paper. In the present work we provide for the first time an exact and explicit expression of the MSP making use again of the parametrization given in Toledo et al. (2023). It should be said that the MSP definition depends on the SCP and the OCP. A good computation of these points will benefit the complete strategy to compute the MPP.

The paper is structured as follows. Our starting point in Sect. 2 is to describe the SDM and all its key points. In this section we also expose a recent parametrization of the SDM I–V curve, which is crucial for this paper. We recall well-known expressions of the current and the voltage in terms of the Lambert W function together with a numerical formula to evaluate this function which avoids computational problems with too large values of the arguments. In Sect. 3, the best known explicit expressions and efficient numerical methods are described to compute the key points of the SDM I–V curve. In particular, a new methodology to obtain the maximum power point based on the parametrization given in Sect. 2 is proposed. We will provide the first exact and explicit expression of the Mean Slope Point, which will play a key role in the MPP calculation. Section 4 shows the experimental results and Sect. 5 exposes the main conclusions of the work. The paper finishes with Sect. 1 which includes practical pseudocodes and technical details.

2 Preliminaries

2.1 The single-diode model and its key points

The single-diode model equation associated to a solar panel with \(n_{s}\) cells in series is given by

$$\begin{aligned} I=I_{ph}-I_{sat}\left( e^{\frac{V+IR_{s}}{a}}-1\right) -\dfrac{V+IR_{s} }{R_{sh}} \end{aligned}$$
(1)

where I is the panel current measured in Amperes (A), V is the panel voltage measured in Volts (V), \(I_{ph}\) is the panel photocurrent in Amperes, \(I_{sat}\) is the panel diode saturation current in Amperes, \(R_{s}\) is the panel series resistance in Ohms (\(\Omega \)) and, \(R_{sh}\) is the panel shunt resistance in Ohms. \(a=n_{s}nV_{T}\) where n is the ideality factor and \(V_{T}=\frac{k}{q}T\) is the so-called thermal voltage, being T the temperature in Kelvin degrees, \(k=1.3806488\times 10^{-23}\) J/K the Boltzmann’s constant and, \(q=1.60217653\times 10^{-19}\) C the electron charge.

The I–V curve generated by the solutions of the SDM equation has some points that are significant either from the physical point of view or/and from the geometrical/analytical point of view, let us call these points the key points of the SDM (they can be visualized in Fig. 1). In Fig. 1d, \(I'(V)\) and \(I''(V)\) are the first and the second derivative functions of I(V). In Fig. 1c and f, the power and the curvature functions, defined respectively as \(P(V)=V\cdot I(V)\) and \(k(V)=\frac{\vert I^{\prime \prime }(V)\vert }{( 1+( I^{\prime }(V)) ^{2}) ^{3/2}}\), are graphically represented.

Fig. 1
figure 1

SDM key points for the PV module 1 of Table 1

Although most of the key points are well known, let us briefly describe them:

  • The short-circuit point (see Fig. 1a): It is the point of the I–V curve corresponding to zero voltage. It is denoted by \(SCP=( 0,I_{sc}) \) where \(I_{sc}\) is the solution of the Eq. (1) when \(V=0\). The experimental value of \(I_{sc}\) in a PV panel corresponds to the maximum current that the panel can generate which occurs when it is short-circuited. \(I_{sc}\) is used, for example, for sizing of the switches of the converter.

  • The open-circuit point (see Fig. 1b): It is the point of the I–V curve corresponding to zero current. It is denoted by \(OCP=( V_{oc},0) \) where \(V_{oc}\) is the solution of the Eq. (1) when \(I=0\). The experimental value of \(V_{oc}\) in a PV panel corresponds to the maximum voltage that the panel can attain which occurs when it is disconnected. \(V_{oc}\) is used, for example, for sizing the input capacitors of the converter.

  • The maximum power point (see Fig. 1c): It is the point of the I–V curve corresponding to the maximum value of the power function P. It is denoted by \(MPP=( V_{MPP},I_{MPP}) \). The experimental value of the MPP provides the maximum power that the panel can extract. Then it is used as the operating point of a PV solar installation.

  • The jerk point (see Fig. 1d): It is the point of the I–V curve where the third derivative of the current function vanishes. Indeed, at this point the second derivative of the current function has a minimum and the first derivative has an inflexion point. It is denoted by \(JP=( V_{JP},I_{JP}) \). As far as we know, this point has no practical application. It is only interesting from a theoretical point of view due to its geometric meaning in the I–V curve.

  • The mean slope point (see Fig. 1e): It is the point of the I–V curve where the slope is the mean slope of the curve between the open-circuit and the short-circuit points, that is, at this point the slope is \(I_{MSP}^{\prime }=-\frac{I_{sc}}{V_{oc}}\). It is denoted by \(MSP=( V_{MSP},I_{MSP}) \). Although this point arises from a geometric property, its definition through the short-circuit and open-circuit points leads to a close relationship with the MPP. In fact, it was proved in Rodriguez and Amaratunga (2007) that the MSP is very close to the MPP, so it can be used as a good approximation of the MPP or to accurately compute the MPP at high speed, which demonstrates its applicability and relevance.

  • The maximum curvature point (see Fig. 1f): It is the point of the I–V curve corresponding to the maximum value of its curvature function k. It is denoted by \(MCP=( V_{MCP},I_{MCP}) \). This point does not have an apparent direct physical interpretation, but it has been used to obtain the maximum likelihood estimators of the SDM parameters, which evidences its practical value.

The first three points, OCP, SCP, and MPP are usually known as the remarkable points. They are also called notable, important, noteworthy, and essential points of the I–V curve.

2.2 Some key tools through known results

Let us recall some mathematical results and tools that we will use later. In particular, the parametrization of the single-diode model introduced here will be crucial for the rest of the paper.

2.2.1 The single-diode model with the Lambert W function

It is known that the current and the voltage in the SDM equation can be expressed explicitely by using the Lambert W function, \(W_{0}\), as (see Banwell and Jayakumar 2000)

$$\begin{aligned} I&=\frac{1}{R_{sh}+R_{s}}( R_{sh}( I_{ph}+I_{sat}) -V)\nonumber \\&\quad -\frac{a}{R_{s}}W_{0}\left( \frac{I_{sat}R_{sh}R_{s}}{a( R_{sh}+R_{s}) }\exp \left( \frac{R_{sh}( R_{s}( I_{ph}+I_{sat}) +V) }{a( R_{sh}+R_{s}) }\right) \right) \end{aligned}$$
(2)
$$\begin{aligned} V&=R_{sh}( I_{ph}+I_{sat}) -( R_{sh}+R_{s}) I-aW_{0}\left( \frac{I_{sat}R_{sh}}{a} \exp \left( \frac{R_{sh}( I_{ph}+I_{sat}-I) }{a}\right) \right) \end{aligned}$$
(3)

where recall, \(W_{0}\) is the inverse of the function \(f( x) =xe^{x}\) in the interval \([ -1,+\infty [ \) (Corless et al. 1996). This explicit formulation allows for a more practical and robust calculation of the current and the voltage of the SDM. However, the computation of the images of \(W_{0}\) needs the direct programming of numerical algorithms (Barry et al. 1995; Fritsch et al. 1973), or the implementation of series expansions (Comtet 1974; de Bruijn 1981; Corless et al. 1996), or, the most usual option, the use of a mathematical program such as Matlab with its built-in function lambertw. Nevertheless, some problems can arise when the arguments of the function \(W_{0}\) are too large to be handled by the used software. To avoid these large value problems and to be as accurate and fast as possible, a recent paper (Toledo et al. 2022) has proposed the following numerical formula (4) to compute \(W_{0}\) and, thus, I and V with (2) and (3), respectively. In this formula it has been adapted the strategy proposed in Batzelis et al. (2020) to avoid large values of the argument of \(W_{0}\) when it is given in the form \(\alpha e^{\beta }\).

$$\begin{aligned} W( \alpha ,\beta ) :=W_{0}( \alpha e^{\beta }) = \biggl \{ \begin{array}{lll} \alpha e^{\beta }NR( f( z) ,z_{seed}) &{}\quad \text {if} &{} \ln \alpha +\beta \le 1\\ NR( h( w) ,w_{seed}) &{}\quad \text {if} &{} \ln \alpha +\beta >1 \end{array} . \end{aligned}$$
(4)

where \(NR( func( u),u_{seed}) \) means Newton–Raphson method applied to the function func (with u as the variable) starting with the seed \(u_{seed}\). In the proposed formula one has specifically

$$\begin{aligned} f( z)&=z-e^{-\alpha e^{\beta }z}\nonumber \\ z_{seed}&=\frac{1+\ln ( 1+\alpha e^{\beta }) }{1+2\alpha e^{\beta }} \end{aligned}$$

and

$$\begin{aligned} h( w)&=\ln w+w-\ln \alpha -\beta \nonumber \\ w_{seed}&=\ln \alpha +\beta -\ln ( \ln \alpha +\beta ) +\frac{\ln ( \ln \alpha +\beta ) }{\ln \alpha +\beta }\nonumber +\frac{\ln ( \ln \alpha +\beta ) ( -2+\ln ( \ln \alpha +\beta ) ) }{2( \ln \alpha +\beta ) ^{2}} \end{aligned}$$

Observe that \(W(\alpha ,\beta ) \) is simply another way to write the Lambert W function since

$$\begin{aligned} W_{0}(\alpha ) =W(\alpha ,0). \end{aligned}$$

A simple pseudocode with the programming of \(W( \alpha ,\beta ) \) can be found in Appendix 6.1.1.

Formula (4) can be used in general to compute the current and voltage of the SDM in a very robust and efficient way (see pseudocode in Appendix 6.1.1), and, we will take advantage of it to obtain \(I_{sc}\) and \(V_{oc}\) in this paper.

2.2.2 A parametrization of the single-diode model

Equation (1) can be rewritten as

$$\begin{aligned} I=\frac{( I_{ph}+I_{sat}) R_{sh}}{R_{sh}+R_{s}}-\frac{V}{R_{sh}+R_{s}}-\frac{I_{sat}R_{sh}}{R_{sh}+R_{s}}e^{\frac{V+IR_{s}}{a}} \end{aligned}$$
(5)

where the linear part \(\frac{( I_{ph}+I_{sat}) R_{sh}}{R_{sh}+R_{s}}-\frac{V}{R_{sh}+R_{s}}\) is an oblique asymptote of the I–V curve (Toledo and Blanes 2014).

In the paper (Toledo et al. 2023), it has been proved that any point of the I–V curve (5) is of the form \(( \mathcal {V}( x),\mathcal {I}( x) ) \) for certain \(x>0\), where

$$\begin{aligned}{}\begin{array}{l} \mathcal {V}( x) =\frac{a( R_{s}+R_{sh}) }{R_{sh} }\left( \ln x-\frac{R_{s}}{a}\left( \frac{R_{sh}( I_{ph} +I_{sat}) }{R_{s}+R_{sh}}-x\right) -\ln \left( \frac{I_{sat}R_{sh} }{R_{sh}+R_{s}}\right) \right) \\ \mathcal {I}( x) =\frac{R_{sh}( I_{ph}+I_{sat}) -\mathcal {V}( x) }{R_{s}+R_{sh}}-x \end{array} . \end{aligned}$$
(6)

In other words, \(( \mathcal {V}( x),\mathcal {I}( x) ) \) is a parametrization of the I–V curve. In Toledo et al. (2023) it is also shown that the parameter x in (6) is the vertical distance from the I–V curve to its oblique asymptote given by

$$\begin{aligned} x=\frac{I_{sat} R_{sh}}{R_{sh}+R_{s}} e^{\frac{V+IR_{s}}{a}} \end{aligned}$$
(7)

but x can also be given in terms exclusively of the slope \(I'\) of the I–V curve at the point (VI) as

$$\begin{aligned} x=-\frac{a}{R_{sh}+R_{s}}\frac{I^{\prime }( R_{sh}+R_{s}) +1}{1+I^{\prime }R_{s}} . \end{aligned}$$
(8)

The parametrization given by (6) will be used in this paper to obtain the maximum curvature point, the mean slope point, and the jerk point. All of them explicitly, but even more importantly, to compute the maximum power point in a very robust and efficient way.

2.2.3 The slope of the SDM I–V curve at any point

Differentiating with respect to the voltage on (1) and isolating \(I^{\prime }\) gives

$$\begin{aligned} I^{\prime }=-\frac{I_{sat}R_{sh}e^{\frac{V+IR_{s}}{a}}+a}{I_{sat}R_{s} R_{sh}e^{\frac{V+IR_{s}}{a}}+a( R_{s}+R_{sh}) } \end{aligned}$$
(9)

So, if the coordinates of a point of the I–V curve are known, it is straightforward to obtain the slope of the I–V curve at this point with (9).

Observe also that if the slope were the known datum, one would obtain from (8) the parameter which provides with (6) the coordinates of the point where the I–V curve has this slope.

3 Calculation of the SDM key points

In this section, we describe the best known methods to obtain the key points of the SDM I–V curve. The MPP has been intentionally left the last one because a new methodology has been proposed to compute it that uses the MSP as starting point. The MSP will be obtained exactly and explicitly with a new expression based on the parametrization (6) of the SDM I–V curve.

3.1 The short-circuit point

Since the short-circuit current, \(I_{sc}\), is the current value corresponding to voltage zero, to obtain this value from the SDM one should solve the equation

$$\begin{aligned} I_{ph}-I_{sat}\left( e^{\frac{I_{sc}R_{s}}{a}}-1\right) -\dfrac{I_{sc}R_{s} }{R_{sh}}-I_{sc}=0 \end{aligned}$$
(10)

where \(I_{sc}\) is the unknown. Since (10) is implicit in nature, it requires numerical solution. But the following expression derived from (2 ) with the application of (4) provides a robust and efficient way to get \(I_{sc}\)

$$\begin{aligned} I_{sc}=\frac{R_{sh}( I_{ph}+I_{sat}) }{R_{sh}+R_{s}}-\frac{a}{R_{s}}W\left( \frac{I_{sat}R_{sh}R_{s}}{a( R_{sh}+R_{s}) },\frac{R_{sh}R_{s}( I_{ph}+I_{sat}) }{a( R_{sh} +R_{s}) }\right) \end{aligned}$$
(11)

Recall that it is just a combination of a known formula (Banwell and Jayakumar 2000) with an explanation of the proposed methodology in Toledo et al. (2022) to compute \(W_{0}\) quickly and accurately that moreover circumvents problems with large values of the argument of \(W_{0}\).

One can find commonly in the literature some approximations of \(I_{sc}\), for instance, assuming that \(I_{sat}\) is insignificant with respect to the other terms in the Eq. (10), one can consider \(I_{sat}\approx 0\) and obtains (Farivar et al. 2013; Batzelis and Papathanassiou 2016; Bai et al. 2014)

$$\begin{aligned} I_{sc}\approx \frac{R_{sh}I_{ph}}{R_{sh}+R_{s}} \end{aligned}$$
(12)

If moreover \(R_{sh}\) is large enough compared with \(R_{s}\) so that \(R_{s}/R_{sh}\) is insignificant with respect to the unit, then one can consider \(R_{s}/R_{sh}\approx 0\) and the previous simplification (12) becomes

$$\begin{aligned} I_{sc}\approx I_{ph} \end{aligned}$$
(13)

Obviously, when the postulations used to obtain the simplifications are not satisfied, the corresponding approximations (12) and (13) are not always close to \(I_{sc}\) and their use can lead to errors or high inaccuracies in theoretical developments and the subsequent results.

Once the short-circuit current is computed, the slope of SDM I–V curve at this point is obtained with (9) as

$$\begin{aligned} I_{sc}^{\prime }=-\frac{I_{sat}R_{sh}e^{\frac{I_{sc}R_{s}}{a}}+a}{I_{sat} R_{s}R_{sh}e^{\frac{I_{sc}R_{s}}{a}}+a( R_{s}+R_{sh}) } \end{aligned}$$

and the corresponding parameter \(x_{sc}\) from its definition (7) as %

$$\begin{aligned} x_{sc}=\frac{I_{sat}R_{sh}}{R_{sh}+R_{s}}e^{\frac{I_{sc}R_{s}}{a}} \end{aligned}$$

3.2 The open-circuit point

Since the open-circuit voltage, \(V_{oc}\), is the current value corresponding to current zero, to obtain this value from the SDM I–V curve one should solve the equation

$$\begin{aligned} I_{ph}-I_{sat}\left( e^{\frac{V_{oc}}{a}}-1\right) -\dfrac{V_{oc}}{R_{sh}}=0 \end{aligned}$$
(14)

where \(V_{oc}\) is the unknown. Since (14) is implicit in nature, it requires numerical solution.

As before, the following expression derived from (3) with the application of (4) provides a robust and efficient way to get \(V_{oc}\)

$$\begin{aligned} V_{oc}=R_{sh}( I_{ph}+I_{sat}) -aW\left( \frac{I_{sat}R_{sh}}{a},\frac{R_{sh}( I_{ph}+I_{sat}) }{a}\right) \end{aligned}$$
(15)

One can find commonly in the literature some approximations of \(V_{oc}\), for instance, if (14) is expanded as

$$\begin{aligned} I_{ph}-I_{sat}e^{\frac{V_{oc}}{a}}+I_{sat}-\dfrac{V_{oc}}{R_{sh}}=0 \end{aligned}$$
(16)

and one assumes that the isolated term \(I_{sat}\) is insignificant with respect to the other terms in the equation (16), it can be neglected, and, moreover, if \(R_{sh}\) is large enough compared with \(V_{oc}\) so that \(V_{oc}/R_{sh}\) is insignificant with respect to the other terms in the equation, then one can consider \(V_{oc}/R_{sh}\approx 0\) and one gets (Ding et al. 2012; Saloux et al. 2011; Cristaldi et al. 2012; Batzelis and Papathanassiou 2016; Accarino et al. 2013)

$$\begin{aligned} V_{oc}\approx a\ln \left( \frac{I_{ph}}{I_{sat}}\right) \end{aligned}$$
(17)

Another possible approximation is obtained as follows. If just the isolated term \(I_{sat}\) in (16) were neglected, one would obtain solving \(V_{oc}\) from the exponential that

$$\begin{aligned} V_{oc}\approx a\ln \left( \frac{I_{ph}}{I_{sat}}-\frac{V_{oc}}{R_{sh}I_{sat} }\right) \end{aligned}$$
(18)

Now, using the approximation (17) for the \(V_{oc}\) inside the logarithm in (18), one obtains

$$\begin{aligned} V_{oc}\approx a\ln \left( \frac{I_{ph}}{I_{sat}}-\frac{a}{R_{sh}I_{sat}} \ln \left( \frac{I_{ph}}{I_{sat}}\right) \right) \end{aligned}$$
(19)

Once again, when the hypothesis used to obtain the simplifications are not satisfied, the corresponding approximations (17) and (19) are not always close to \(V_{oc}\) and their use can lead to errors or high inaccuracies in theoretical developments and the subsequent results.

Once the open-circuit voltage is computed, the slope of SDM I–V curve at this point is obtained with (9) as

$$\begin{aligned} I_{oc}^{\prime }=-\frac{I_{sat}R_{sh}e^{\frac{V_{oc}}{a}}+a}{I_{sat}R_{s} R_{sh}e^{\frac{V_{oc}}{a}}+a( R_{s}+R_{sh}) } \end{aligned}$$

and the corresponding parameter \(x_{oc}\) from its definition (7) as

$$\begin{aligned} x_{oc}=\frac{I_{sat}R_{sh}}{R_{sh}+R_{s}}e^{\frac{V_{oc}}{a}} \end{aligned}$$

3.3 The mean slope point

The mean slope point has been already used in the literature to compute or approximate the MPP (Rodriguez and Amaratunga 2007; Batzelis et al. 2015; Ghosh et al. 2014; Moshksar and Ghanbari 2018), but this is the first time that the coordinates of this point have been obtained explicitly and exact, that is, without any approximation.

Observe that the existence and unicity of the mean slope point of the SDM I–V curve is consequence of the mean value theorem and the fact that the I–V curve is differentiable, decreasing and concave as was proved in Toledo and Blanes (2014).

Since the mean slope point is determined by its slope given by \(I_{MSP} ^{\prime }=-\frac{I_{sc}}{V_{oc}}\), first we need to know \(I_{sc}\) and \(V_{oc}\).

The natural way to obtain the mean slope point is to solve the following system of 2 equations where \(V_{MSP}\) and \(I_{MSP}\) are the unknowns.

$$\begin{aligned} \left\{ \begin{array}{l} I_{ph}-I_{sat}\left( e^{\frac{V_{MSP}+I_{MSP}R_{s}}{a}}-1\right) -\dfrac{V_{MSP}+I_{MSP}R_{s}}{R_{sh}}-I_{MSP}=0\\ -I_{sat}e^{\frac{V_{MSP}+I_{MSP}R_{s}}{a}}\frac{V_{oc}-I_{sc}R_{s}}{a} -\dfrac{V_{oc}-I_{sc}R_{s}}{R_{sh}}+I_{sc}=0 \end{array}\right. \end{aligned}$$

This system can be solved by a numerical method like the Newton–Raphson (N–R) method for non-linear systems. It is important a good selection of the initial seed to guarantee the convergence of the method. No other method for the exact MSP calculation is reported in the literature.

Here we are going to provide a simple and explicit way to obtain the mean slope point by using the parametrization (6 ). Just observe that the parameter corresponding to this point is directly obtained from (8) as

$$\begin{aligned} x_{MSP}=\frac{a}{R_{sh}+R_{s}}\frac{I_{sc}( R_{sh}+R_{s}) -V_{oc}}{V_{oc}-R_{s}I_{sc}} \end{aligned}$$
(20)

Then, substituting x by \(x_{MSP}\) in (6) one gets the \(MSP=( V_{MSP},I_{MSP}) \) as

$$\begin{aligned}{}\begin{array}{l} V_{MSP}=\frac{a( R_{sh}+R_{s}) }{R_{sh}}\left( \ln x_{MSP} -\frac{R_{s}}{a}\left( \frac{R_{sh}( I_{ph}+I_{sat}) }{R_{sh}+R_{s}}-x_{MSP}\right) -\ln \left( \frac{I_{sat}R_{sh}}{R_{sh}+R_{s} }\right) \right) \\ I_{MSP}=\frac{R_{sh}( I_{ph}+I_{sat}) -V_{MSP}}{R_{sh}+R_{s} }-x_{MSP} \end{array} \end{aligned}$$
(21)

Note that the MSP is explicitly given only depending on the SDM parameters.

3.4 The maximum curvature point

The maximum curvature point appeared for the first time in the literature of PV modelling in Toledo et al. (2023) to compute the Euclidean distance from a generic point to the SDM I–V curve. The parametrization (6) was used in Toledo et al. (2023) to obtain this point explicitly as follows which is briefly repeated here for completeness. It was demonstrated that the parameter corresponding to the MCP was given by

$$\begin{aligned} x_{MCP}=\frac{\sqrt{\beta ^{2}+8\alpha \gamma }-\beta }{4\gamma } \end{aligned}$$

where

$$\begin{aligned} \alpha =1+\frac{1}{( R_{sh}+R_{s}) ^{2}} , \beta =\frac{R_{s}}{a}+\frac{1}{a( R_{sh}+R_{s}) }, \gamma =\frac{1+R_{s}^{2}}{a^{2}} \end{aligned}$$

Then, substituting x by \(x_{MCP}\) in (6) one obtains the \(MCP=( V_{MCP},I_{MCP}) \) as

$$\begin{aligned}{}\begin{array}{l} V_{MCP}=\frac{a( R_{sh}+R_{s}) }{R_{sh}}\left( \ln x_{MCP} -\frac{R_{s}}{a}\left( \frac{R_{sh}( I_{ph}+I_{sat}) }{R_{sh}+R_{s}}-x_{MCP}\right) -\ln \left( \frac{I_{sat}R_{sh}}{R_{sh}+R_{s} }\right) \right) \\ I_{MCP}=\frac{R_{sh}( I_{ph}+I_{sat}) -V_{MCP}}{R_{sh}+R_{s} }-x_{MCP} \end{array} \end{aligned}$$
(22)

.

Note that the MCP is explicitly given only depending on the SDM parameters.

The slope of the I–V curve at the MCP is obtained through (8) by

$$\begin{aligned} I_{MCP}^{\prime }=-\frac{a+( R_{sh}+R_{s}) x_{MCP}}{( R_{sh}+R_{s}) ( a+R_{s}x_{MCP}) } \end{aligned}$$

3.5 The jerk point

The jerk point of the I–V curve, denoted by \(( V_{JP},I_{JP} ) \), was defined and obtained in Toledo and Blanes (2014) studying the geometric properties of the SDM. It is the point of the I–V curve where the third derivative of the current function vanishes, the second derivative has a minimum, and the first derivative has an inflexion point. It is given explicitly by

$$\begin{aligned}{}\begin{array}{l} V_{JP}=\frac{a( R_{sh}+R_{s}) \left( 1-2\ln \left( \frac{2I_{sat}R_{sh}R_{s}}{a( R_{sh}+R_{s}) }\right) \right) -2R_{sh}R_{s}( I_{ph}+I_{sat}) }{2R_{sh}}\\ I_{JP}=\frac{R_{sh}( I_{ph}+I_{sat}) -V_{JP}}{R_{sh}+R_{s} }-\frac{a}{2R_{s}} \end{array}. \end{aligned}$$
(23)

We can also obtain this point with the parametrization (6) as follows. It is known from Toledo and Blanes (2014) that the slope of the I–V curve at this point is

$$\begin{aligned}{}\begin{array}{l} I_{JP}^{\prime }=-\frac{R_{sh}+3R_{s}}{3R_{s}( R_{sh}+R_{s}) }\end{array}, \end{aligned}$$
(24)

then, we can obtain the parameter corresponding to this point from (8) as

$$\begin{aligned} x_{JP}=\frac{a}{2R_{s}} \end{aligned}$$

Now we obtain the jerk point just substituting x by \(x_{JP}\) in (6) and moreover, the slope of the I–V curve at the jerk point is obtained through (8) by resulting to the above Eq. (24).

This slope was already obtained in Toledo and Blanes (2014) with elementary calculus.

3.6 The maximum power point

The power generated by a PV module at any point (VI) of its characteristic I–V curve is given by

$$\begin{aligned} P=V~I \end{aligned}$$

There is a point on the characteristic I–V where the corresponding power is maximum, which is called maximum power point. If we consider the theoretical I–V curve generated by the SDM Eq. (5), we can also conclude the existence of a maximum of the theoretical power function (see Appendix 3) which provides the corresponding theoretical MPP.

There are different methods to obtain the theoretical MPP. Let us expose some of the most known.

3.6.1 Numerical known methods

Two equations system The natural way to obtain the theoretical MPP, \(( V_{MPP},I_{MPP} ) \), is as follows. Since the MPP is the unique I–V curve point satisfying that \(P^{\prime }=0\), where \(P^{\prime }=I+VI^{\prime }\), one obtains the well-known relation \(I_{MPP}^{\prime }=-\dfrac{I_{MPP}}{V_{MPP}}.\)

So, the MPP must satisfy Eqs. (1) and (9) giving rise to the following system of 2 equations with two unknowns \(V_{MPP}\), \(I_{MPP}\) (Ikegami et al. 2001; Zagrouba et al. 2010; Askarzadeh and Rezazadeh 2013)

$$\begin{aligned} \left\{ \begin{array}{l} I_{ph}-I_{sat}\left( e^{\frac{V_{MPP}+I_{MPP}R_{s}}{a}}-1\right) -\dfrac{V_{MPP}+I_{MPP}R_{s}}{R_{sh}}-I_{MPP}=0\\ I_{MPP}\left( 1+\dfrac{I_{sat}R_{s}}{a}e^{\frac{V_{MPP}+I_{MPP}R_{s}}{a} }+\dfrac{R_{s}}{R_{sh}}\right) -V_{MPP}\left( \dfrac{I_{sat}}{a} e^{\frac{V_{MPP}+I_{MPP}R_{s}}{a}}+\dfrac{1}{R_{sh}}\right) =0 \end{array} \right. \end{aligned}$$
(25)

This system can be solved by a numerical method like the Newton–Raphson (N–R) method for non-linear systems. It is important a good selection of the initial seed to guarantee the convergence of the method.

Single-variable equation with the Lambert W function Another way to obtain the MPP is using the Lambert W funcion. Considering the derivative properties of the Lambert W function, derivating in (2) with respect to V one obtains (Batzelis et al. 2015)

$$\begin{aligned} I^{\prime }=-\frac{1}{R_{s}}+\frac{R_{sh}}{Rs( R_{s}+R_{sh}) }\frac{1}{1+W\left( \frac{R_{s}R_{sh}I_{sat}}{a( R_{s}+R_{sh}) }e^{\frac{R_{s}R_{sh}( I_{ph}+I_{sat}) +R_{sh}V}{a( R_{s}+R_{sh}) }}\right) } \end{aligned}$$
(26)

Since the MPP must satisfy that \(0=P_{MPP}^{\prime }=I_{MPP}+V_{MPP} I_{MPP}^{\prime }\), one obtains from (2) and (26) the following equation with \(V_{MPP}\) as the unique unknow

$$\begin{aligned}{} & {} \frac{R_{sh}( I_{ph}+I_{sat}) -V_{MPP}}{R_{sh}+R_{s}}-\frac{a}{R_{s}}W_{0}\left( \frac{R_{s}R_{sh}I_{sat}}{a( R_{s}+R_{sh}) }e^{\frac{R_{s}R_{sh}( I_{ph}+I_{sat}) +R_{sh}V_{MPP}}{a( R_{s}+R_{sh}) }}\right) \nonumber \\{} & {} \quad +V_{MPP} \left( -\frac{1}{R_{s}}{+}\frac{R_{sh}}{R_{s}( R_{s} +R_{sh}) }\frac{1}{1+W_{0}\left( \frac{R_{s}R_{sh}I_{sat}}{a( R_{s}{+}R_{sh}) }e^{\frac{R_{s}R_{sh}( I_{ph}+I_{sat}) {+}R_{sh}V_{MPP}}{a( R_{s}+R_{sh}) }} \right) } \right) {=}~ 0 \nonumber \\ \end{aligned}$$
(27)

Using the notation (similar to the one used in Batzelis et al. (2015))

$$\begin{aligned} w( V_{MPP}) =W_{0}\left( \frac{R_{s}R_{sh}I_{sat}}{a( R_{s}+R_{sh}) }e^{\frac{R_{sh}}{a( R_{sh}+R_{s}) }( R_{s}( I_{ph}+I_{sat}) +V_{MPP}) } \right) \end{aligned}$$

equation (27) can be rewritten as

$$\begin{aligned}&\frac{R_{sh}( I_{ph}+I_{sat}) -V_{MPP}}{R_{sh}+R_{s}}\nonumber \\ {}&\quad -\frac{1}{R_{s}}\left( aw( V_{MPP}) -V_{MPP}\left( 1-\frac{R_{sh} }{( R_{s}+R_{sh}) ( 1+w( V_{MPP}) ) }\right) \right) =0 \end{aligned}$$
(28)

In (28) we can use indeed (4) to get a fast and accurate computation of the Lambert images and to avoid problems with large values of the argument.

Equation (28) can be solved by a numerical method like the Newton–Raphson method. We would like to point out that since the unknown \(V_{MPP}\) is inside the argument of the Lambert W function, one has indeed an equation inside another equation. So, in each iteration of the N–R method the corresponding Lambert image must be computed. Again, it is important to have a good selection of the initial seed to guarantee the convergence of the N–R method. Once Eq. (27) is solved, one must obtain \(I_{MPP}\), for instance, by using (2) so that

$$\begin{aligned} I_{MPP}=\frac{1}{R_{sh}+R_{s}}( R_{sh}( I_{ph}+I_{sat}) -V_{MPP}) -\frac{a}{R_{s}}w( V_{MPP}) \end{aligned}$$
(29)

or alternatively, by solving the model Eq. (1) with \(V=V_{MPP}\). Any case, another equation different from (28) must be solved.

3.6.2 Explicit approximate methods

In Batzelis et al. (2015) an explicit formula to obtain an approximation of the MPP was provided and compared with other existing formulas in the literature Saloux et al. (2011), Das (2013), Rodriguez and Amaratunga (2007), Fernandes et al. (2013). As it was checked in Batzelis et al. (2015) through some experiments, only the formulas of Batzelis and Fernandes were able to obtain reasonably good approximations of the MPP. Of course, with a small computation time due to the non-iterative procedure, but obviously with an accuracy far of the one achieved by numerical methods. Let us describe the formulas/methods of Batzelis and Fernandes.

Batzelis method The following explicit formulas where given in Batzelis et al. (2015) to approximate the MPP for any PV system operating under uniform illumination and temperature conditions

$$\begin{aligned} \begin{array}{c} V_{MPP}\approx \frac{R_{s}+R_{sh}}{R_{sh}}a( w-1) -R_{s} I_{ph}\left( 1-\frac{1}{w}\right) \\ I_{MPP}\approx I_{ph}\left( 1-\frac{1}{w}\right) -\frac{a( w-1) }{Rsh} \end{array} \end{aligned}$$
(30)

where \(w=W_{0}( \frac{e~I_{ph}}{I_{sat}}) \), and e is the Euler number. To evaluate approximately \(W_{0}\) it is used in Batzelis et al. (2015) the explicit formula proposed in Batzelis et al. (2014).

Fernandes method In Fernandes et al. (2013) the following analytical method was described to obtain an approximation of the MPP

$$\begin{aligned} \begin{array}{l} k_{1}=\ln \left( \frac{I_{ph}( R_{sh}+R_{s}) -a\ln \left( \frac{I_{ph}}{I_{sat}}+1\right) }{R_{sh}I_{sat}\left( \ln \left( \frac{I_{ph}}{I_{sat}}+1\right) -\frac{1}{a}I_{ph}R_{s}\right) }\right) +1\\ k_{2}=\frac{1}{a}R_{sh}( I_{ph}+I_{sat}) +2-k_{1}\\ R_{Lm}=\frac{k_{1}R_{sh}+\sqrt{k_{1}^{2}R_{sh}^{2}-4k_{2}R_{s}( ( k_{1}-2) R_{sh}-k_{2}R_{s}) }}{2k_{2}}\\ I_{MPP}\approx \frac{a}{R_{Lm}+R_{s}}\ln \left( \frac{a( R_{sh} +R_{s}-R_{Lm}) }{R_{sh}I_{sat}( R_{Lm}-R_{s}) }\right) \\ V_{MPP}\approx I_{MPP}R_{Lm} \end{array} \end{aligned}$$
(31)

Remark

The previous equations are from Fernandes et al. (2013) after certain corrections of mistypings.

3.6.3 A new methodology based on the SDM I–V curve parametrization

In this subsection, using the parametrization (6), we reduce the problem of obtaining the theoretical MPP to the resolution of a single-variable equation that only involves logarithms and polynomials. Once the equation is solved, the MPP is obtained explicitly. A numerical strategy will be provided that always converges to the solution with computation times close to the explicit methods as we will see in the section of computational experiments.

Let us see first some theoretical details leading to the single-variable equation.

Using the parametrization (6) of the I–V curve (5) one obtains the following parametrized power function

$$\begin{aligned} \mathcal {P}( x) =\mathcal {V}( x) \mathcal {I}( x) \end{aligned}$$
(32)

The unique critical point of this single-valued function is the parameter, \(x_{MPP}\), corresponding to the maximum power point (see Appendix 6.3). To obtain \(x_{MPP}\), we need to solve the equation \(\mathcal {P}^{\prime }( x) =0\). One has that

$$\begin{aligned} \mathcal {P}^{\prime }( x) =\mathcal {V}^{\prime }( x) \mathcal {I}( x) +\mathcal {V}( x) \mathcal {I} ^{\prime }( x) =-\frac{1}{\delta ^{2}x}g( x) \end{aligned}$$

where \(\delta =\frac{R_{sh}}{a( R_{sh}+R_{s}) }>0\) and

$$\begin{aligned} g( x) =( k_{0}+k_{1}x) \ln x+k_{2}x^{2}+k_{3}x+k_{4} \end{aligned}$$
(33)

with

$$\begin{aligned} \begin{array}{l} k_{0}=\frac{2}{R_{sh}+R_{s}}\\ k_{1}=\frac{R_{sh}+2R_{s}}{a( R_{sh}+R_{s}) }\\ k_{2}=\frac{2R_{s}}{a^{2}}\\ k_{3}=k_{1}\left( 1-\ln \left( \frac{I_{sat}R_{sh}}{R_{sh}+R_{s}}\right) \right) -\frac{k_{2}R_{sh}( I_{ph}+I_{sat}) }{R_{sh}+R_{s}}\\ k_{4}=-\frac{k_{1}R_{sh}( I_{ph}+I_{sat}) }{R_{sh}+R_{s}} -\frac{2}{R_{sh}+R_{s}}\ln \left( \frac{I_{sat}R_{sh}}{R_{sh}+R_{s}}\right) \end{array} \end{aligned}$$

where \(k_{0}\), \(k_{1}\), \(k_{2}>0.\) Therefore, the unique solution of \(\mathcal {P}^{\prime }( x) =0\) is the unique solution of \(g( x) =0\). Once solved \(g( x) =0\), one obtains \(x_{MPP}\) and, substituting x by \(x_{MPP}\) in (6), the MPP is explicitly obtained.

Numerical strategy to find the root, \(x_{MPP}\), of g Let us propose the following strategy to compute the unique root, \(x_{MPP}\), of g, which aims to be an optimal combination of analytical and geometrical ideas, to guarantee the convergence of the Newton–Raphson method, but also with the goal of achieving maximum speed.

From the properties of function g (see Appendix 6.3), g is concave below \(x_{+}\) and convex above \(x_{+}\), where

$$\begin{aligned} x_{+}=\frac{1}{4k_{2}}\left( \sqrt{k_{1}^{2}+8k_{2}k_{0}}-k_{1}\right) . \end{aligned}$$
(34)

If \(g( x_{+}) >0\) the root of g is below \(x_{+}\) and g is negative and increasing for values below the root, then Newton–Raphson method converges if we start from any seed \(x_{s}>0\) where \(g( x_{s}) <0\). If \(g( x_{+}) <0\) the root of g is above \(x_{+}\) and g is positive and increasing for values above the root, then Newton–Raphson method converges if we start from any seed \(x_{s}>0\) where \(g( x_{s}) >0\) (see Fig. 2).

Fig. 2
figure 2

Seeds selection for N–R method depending on the sign of \(g(x_{+})\)

Algorithm 1
figure a

New MPP calculation strategy

Note that seeds that do not satisfy the above considerations could cause the Newton–Raphson method to not converge. Therefore, the objective is to find a seed \(x_{s}\) satisfying the previous properties, but as close as possible to the root of g. Taking into account the definitions of the MPP and the MSP together with the geometric properties of the SDM, both points lie always between the short-circuit and the open-circuit points, so the MPP and the MSP must be relatively close, as can also be observed in real cases. So, the value \(x_{MSP}\) or a multiple of it suitably selected could be a good starting point for the N–R method applied to g. Following the previous arguments, we propose the methodology schematized in Algorithm 1 which provides the unique root of g.

Fig. 3
figure 3

I–V curves from Table 1 and their key points

4 Computational experiments

In this section we are going to use a set of 9 samples of I–V curves, with parameters given in Table 1, to compute and compare all the SDM key points with the different methods described in the previous sections. These curves come from or are inspired by curves obtained from real measurements under different conditions in order to have the greatest possible variety of situations and they have been used previously in other papers (Toledo et al. 2022; Batzelis et al. 2022). Some of these parameters correspond to unusual case studies, which is deliberate so as to assess the methods in all possible conditions.

For the comparison of the new proposed algorithm to calculate the MPP, we also will use 1000 randomly chosen I–V curves from the National Renewable Energy Laboratory (NREL) database of USA (Marion et al. 2021). We will provide the average RMSE on the measured values as well as the mean computation time.

Table 1 SDM parameters corresponding to 9 samples I–V curves

To analyze the goodness of the different methods of calculating each key SDM point, we will establish as benchmark the result obtained by using a basic and direct computation with Matlab. Specifically we will use the internal function fsolve with tolerance \(10^{-16}\) and the rest of the options will be the ones that come by default. For the comparison to be as fair as possible, the numerical methods used will all have the same tolerance, \(10^{-8}\) (the same used in Toledo et al. 2022), and the same maximum number of iterations, 200. The error we supply for each method will be the absolute error compared to the benchmark. For the computation times to be stable and the value we give be reliable, each calculation will be repeated 200 times and the average of the times will be taken as the final result.

In Fig. 3, we represent the I–V curves given in Table 1 and also include all the corresponding SDM key points. It is the first time in the literature that all the key points of the SDM can be seen represented altogether. It is striking at first glance how close the MSP is to the MPP and how far the MCP can be from the apparent bend of the curve.

4.1 The short-circuit and open-circuit points calculation

4.1.1 The short-circuit point calculation

As can be seen in the Tables 2 and 3, and as expected, the error committed by the explicit formulas is several orders of magnitude higher than with the numerical methods while the execution time is only a few orders of magnitude lower. Among the explicit formulas, the approximation obtained with Explicit (12) is considerably better than that obtained with Explicit (13) and yet there are no significant differences in computational times. Among the numerical methods, the errors are essentially the same. We emphasize that they achieve high accuracy (in many cases close to machine error) with rather less demanding stopping conditions than those used for the benchmark. However, it is interesting to note that the Numerical (11) is almost always an order of magnitude faster than N–R (10) with seed (13), even though the latter already uses a seed which is a good approximation of the solution, and only an order of magnitude slower than the explicit formulas. This agrees with the results obtained in Toledo et al. (2022).

Table 2 \(I_{sc}\) computation error (A)

Please observe that Module 6 is indeed unusual, but if it happens (13) and (12) do not work well as seen in Table 2.

Table 3 \(I_{sc}\) computation execution time (s)

4.1.2 The open-circuit point calculation

Tables 4 and 5 collect the results of the methods used to calculate the open-circuit voltage (\(V_{oc}\)). The results are very similar to those obtained for \(I_{sc}\). Again highlighting the fact that Numerical (15) is almost always an order of magnitude faster than N–R (14) with seed (17) and only an order of magnitude slower than that needed by the explicit formulas (17) and (19).

Table 4 \(V_{oc}\) computation error (V)
Table 5 \(V_{oc}\) computation execution time (s)

4.2 The maximum curvature, mean slope and jerk points calculation

The points of maximum curvature, mean slope and Jerk can be obtained explicitly using the parametrization (6). Therefore, it does not make sense to compare their exact calculation with possible numerical methods. In Fig. 3, we can find their values obtained explicitly with the corresponding formulae (21), (22) and (23), and their position on the corresponding I–V curves can be also visualized. It is interesting to know that the MCP and the JP points may not lie between the SCP and the OCP points. See, for example, modules 6, 8 and 9 where the JP is out of the representation, and modules 6 and 9 where the MCP practically coincides with the SCP and the OCP, respectively.

It is particularly noteworthy that the point of maximum curvature does not generally correspond to the point that at first glance appears to be “the elbow of the I–V curve” located between the SCP and the OCP, but the explanation is that the representation of the I–V curve is usually done with different scale in the two axes and this causes the optical effect of an elbow, which is not real. Thus, a good unequivocal way to define “the elbow of an I–V curve” should be through the MCP.

4.3 The maximum power point calculation

We are going to compare the results of the methods exposed in subsection 3.6 to obtain the MPP.

The explicit approximate methods will be named as:

  • “Explicit approx. in Batzelis et al. (2015)”: the approximate formula (30) given in Batzelis et al. (2015) together with the approximation of the Lambert W function proposed in Batzelis et al. (2014).

  • “Explicit approx. in Fernandes et al. (2013)”: the analytical methodology (31) given in Fernandes et al. (2013)

The numerical methods will be named as:

  • “Syst2eqs”: the system of two equations given by (25).

  • “1eq-W”: the single-variable equation (28) involving the Lambert W function to obtain \(V_{MPP}\) followed by the expression (29) to obtain the corresponding \(I_{MPP}\).

  • “NewMPPcalc”: the method described in Algorithm 1 to obtain the parameter \(x_{MPP}\) followed by the explicit formulas to obtain the MPP given by the parametrization (6).

To be as fair as possible in the comparisons of the numerical methods, we will use in all of them the MSP as the seed. Moreover, in the case of “1eq-W”, we will use the numerical formula (4) to compute the images of the Lambert W function.

As explained at the beginning of this section, we recall that the benchmark will be the value obtained with Matlab to solve the system of equations (25) with a tolerance of \(10^{-16}\). Please note that in previous tables we have used “Explicit eq. (x)” to refer to equation (x), whereas in the following tables “Explicit approx. [x]” will refer to the methods given in reference [x].

Table 6 MPP Voltage computation error (V)
Table 7 MPP current computation error (A)
Table 8 MPP power computation error (W)

As with the calculation of \(I_{sc}\) and \(V_{oc}\), numerical methods are several orders of magnitude more accurate than explicit methods, although the latter are generally an order of magnitude faster. Among the explicit methods, the one that obtains better approximations is in general the “Explicit approx. in Batzelis et al. (2015)” although in some cases “Explicit approx. in Fernandes et al. (2013)” surpasses it in accuracy. Regarding the numerical methods, “Syst2eqs”and “NewMPPcalc” are significantly more accurate than “1eq-W”, with “Syst2eqs” being slightly more accurate in some cases. This is because it uses the exact same algorithm as the benchmark, therefore it attains the same result (with the same decimal part) leading to a misleading zero error. However, “Syst2eqs” sometimes fails resulting in NaN, so it is generally unreliable, while “NewMPPCalc” is always convergent. Moreover, “NewMPPCalc” is significantly faster than “Syst2eqs”, more than two orders of magnitude faster by as much as four orders of magnitude and only one order of magnitude slower than the explicit formulas being in some cases of the same order of magnitude (Tables  6, 7, 8 and 9).

Table 9 MPP computation execution time (seconds)

4.3.1 Experimental results with NREL I–V curves

In this subsection, we want to validate the superiority of the new method “NewMPPcalc” to compute the MPP with I–V curves measured in real conditions. As previously stated, 1000 curves have been randomly taken from the NREL database (Marion et al. 2021). The SDM parameters corresponding to the NREL curves have been obtained with the two-step linear least-squares (TSLLS) method (Toledo et al. 2018). The average of the errors and the computational times measured on the 1000 curves are given in Table 10.

Table 10 Average errors and mean computing time of the MPP on 1000 NREL I–V curves

The results in Table 10 follow a similar pattern to those obtained with the 9 theoretical I–V curves except for the “1eq-W” method. Specifically, the “Syst2eqs” and “NewMPPcalc” methods are clearly superior in precision than the other methods and although “Syst2eqs” seems a bit more accurate than “NewMPPcalc”, errors in the range of E-16 fall within the digital precision of double numbers in MATLAB, and therefore cannot infer superiority or inferiority of the involved methods. We must point out that the results of the “1eq-W” method are significantly worse with real data than with the theoretical curves. Regarding the computing time, the results are very similar to those obtained with the 9 theoretical I–V curves. The “NewMPPcalc” method is several orders of magnitude faster than the other numerical methods and only one order of magnitude slower than the explicit methods, being more than 50 times faster than the benchmark. These results confirm moreover the reliability of the results obtained with the theoretical curves and demonstrate the superiority of the “NewMPPcalc” method and with real data.

5 Conclusions

In this paper, we describe and compare all the key points of the photovoltaic single diode model. We describe them and show the best known methods of the literature to compute them, although, for the MPP, using the parameterization (6), we provide a new very simple method that reaches the accuracy of the best known numerical methods, that is much faster, almost reaching the execution times of the explicit formulas. For the numerical calculation of the MPP, we use as seed the Mean Slope Point, whose coordinates have been computed explicitly and exactly for the first time in the literature. For fair comparisons, we use this same seed with all numerical methods except for the benchmark. Having a good seed for a numerical method is often as important as the method itself. We provide comparisons between the different proposed methods on a variety of I–V curves covering the widest range of possibilities. After the experimental results, we can conclude that the use of the parameterization (6) together with the calculation of the Lambert W function by the procedure described in (4), result in the most efficient procedures both in accuracy and speed to compute all the key points of the SDM, and we describe the algorithms detailed so that users can program the calculation of the points. All the methods proposed in this work are easily implementable at any programming level, although it must be taken into account that with low-level implementations the precision of the method will depend on the computational limitation of the implementation. The advantage of the methods proposed in this work is their speed of convergence but, in addition, explicit seeds are proposed that are usually close to the solution, therefore, the methods are capable of achieving high precision with very few iterations. The algorithms of this paper are going to be implemented in the web page https://pvmodel.umh.es/ so that anyone can obtain all the points freely and easily online.