pvlib.pvsystem.singlediode¶

pvlib.pvsystem.
singlediode
(photocurrent, saturation_current, resistance_series, resistance_shunt, nNsVth, ivcurve_pnts=None, method='lambertw')[source]¶ Solve the singlediode model to obtain a photovoltaic IV curve.
Singlediode solves the single diode equation [1]
\[I = IL  I0*[exp((V+I*Rs)/(nNsVth))1]  (V + I*Rs)/Rsh\]for
I
andV
when givenIL, I0, Rs, Rsh,
andnNsVth (nNsVth = n*Ns*Vth)
which are described later. Returns a DataFrame which contains the 5 points on the IV curve specified in SAND20043535 [3]. If all IL, I0, Rs, Rsh, and nNsVth are scalar, a single curve will be returned, if any are Series (of the same length), multiple IV curves will be calculated.The input parameters can be calculated using calcparams_desoto from meteorological data.
 Parameters
photocurrent (numeric) – Lightgenerated current (photocurrent) in amperes under desired IV curve conditions. Often abbreviated
I_L
. 0 <= photocurrentsaturation_current (numeric) – Diode saturation current in amperes under desired IV curve conditions. Often abbreviated
I_0
. 0 < saturation_currentresistance_series (numeric) – Series resistance in ohms under desired IV curve conditions. Often abbreviated
Rs
. 0 <= resistance_series < numpy.infresistance_shunt (numeric) – Shunt resistance in ohms under desired IV curve conditions. Often abbreviated
Rsh
. 0 < resistance_shunt <= numpy.infnNsVth (numeric) – The product of three components. 1) The usual diode ideal factor (n), 2) the number of cells in series (Ns), and 3) the cell thermal voltage under the desired IV curve conditions (Vth). The thermal voltage of the cell (in volts) may be calculated as
k*temp_cell/q
, where k is Boltzmann’s constant (J/K), temp_cell is the temperature of the pn junction in Kelvin, and q is the charge of an electron (coulombs). 0 < nNsVthivcurve_pnts (None or int, default None) – Number of points in the desired IV curve. If None or 0, no IV curves will be produced.
method (str, default 'lambertw') – Determines the method used to calculate points on the IV curve. The options are
'lambertw'
,'newton'
, or'brentq'
.
 Returns
OrderedDict or DataFrame
The returned dictlike object always contains the keys/columns –
i_sc  short circuit current in amperes.
v_oc  open circuit voltage in volts.
i_mp  current at maximum power point in amperes.
v_mp  voltage at maximum power point in volts.
p_mp  power at maximum power point in watts.
i_x  current, in amperes, at
v = 0.5*v_oc
.i_xx  current, in amperes, at
V = 0.5*(v_oc+v_mp)
.
If ivcurve_pnts is greater than 0, the output dictionary will also
include the keys –
i  IV curve current in amperes.
v  IV curve voltage in volts.
The output will be an OrderedDict if photocurrent is a scalar,
array, or ivcurve_pnts is not None.
The output will be a DataFrame if photocurrent is a Series and
ivcurve_pnts is None.
Notes
If the method is
'lambertw'
then the solution employed to solve the implicit diode equation utilizes the Lambert W function to obtain an explicit function of \(V=f(I)\) and \(I=f(V)\) as shown in [2].If the method is
'newton'
then the rootfinding NewtonRaphson method is used. It should be safe for well behaved IVcurves, but the'brentq'
method is recommended for reliability.If the method is
'brentq'
then Brent’s bisection search method is used that guarantees convergence by bounding the voltage between zero and opencircuit.If the method is either
'newton'
or'brentq'
andivcurve_pnts
are indicated, thenpvlib.singlediode.bishop88()
[4] is used to calculate the points on the IV curve points at diode voltages from zero to opencircuit voltage with a log spacing that gets closer as voltage increases. If the method is'lambertw'
then the calculated points on the IV curve are linearly spaced.References
[1] S.R. Wenham, M.A. Green, M.E. Watt, “Applied Photovoltaics” ISBN 0 86758 909 4
[2] A. Jain, A. Kapoor, “Exact analytical solutions of the parameters of real solar cells using Lambert Wfunction”, Solar Energy Materials and Solar Cells, 81 (2004) 269277.
[3] D. King et al, “Sandia Photovoltaic Array Performance Model”, SAND20043535, Sandia National Laboratories, Albuquerque, NM
[4] “Computer simulation of the effects of electrical mismatches in photovoltaic cell interconnection circuits” JW Bishop, Solar Cell (1988) https://doi.org/10.1016/03796787(88)900592