@@ -1958,60 +1958,61 @@ def sapm_effective_irradiance(poa_direct, poa_diffuse, airmass_absolute, aoi,
1958
1958
def singlediode (photocurrent , saturation_current , resistance_series ,
1959
1959
resistance_shunt , nNsVth , ivcurve_pnts = None ,
1960
1960
method = 'lambertw' ):
1961
- """
1962
- Solve the single-diode model to obtain a photovoltaic IV curve.
1961
+ r """
1962
+ Solve the single-diode equation to obtain a photovoltaic IV curve.
1963
1963
1964
- Singlediode solves the single diode equation [1]_
1964
+ Solves the single diode equation [1]_
1965
1965
1966
1966
.. math::
1967
1967
1968
- I = IL - I0*[exp((V+I*Rs)/(nNsVth))-1] - (V + I*Rs)/Rsh
1968
+ I = I_L -
1969
+ I_0 \left[
1970
+ \exp \left(\frac{V+I R_s}{n N_s V_{th}} \right)-1
1971
+ \right] -
1972
+ \frac{V + I R_s}{R_{sh}}
1969
1973
1970
- for ``I`` and ``V`` when given ``IL, I0, Rs, Rsh,`` and ``nNsVth
1971
- (nNsVth = n*Ns*Vth)` ` which are described later. Returns a DataFrame
1974
+ for :math:`I` and :math:`V` when given :math:`I_L, I_0, R_s, R_{sh},` and
1975
+ :math:`n N_s V_{th} ` which are described later. Returns a DataFrame
1972
1976
which contains the 5 points on the I-V curve specified in
1973
- SAND2004-3535 [3]_. If all IL, I0, Rs, Rsh, and nNsVth are scalar, a
1974
- single curve will be returned, if any are Series (of the same
1975
- length), multiple IV curves will be calculated.
1977
+ [3]_. If all :math:`I_L, I_0, R_s, R_{sh},` and
1978
+ :math:`n N_s V_{th}` are scalar, a single curve is returned, if any
1979
+ are Series (of the same length), multiple IV curves are calculated.
1976
1980
1977
- The input parameters can be calculated using calcparams_desoto from
1978
- meteorological data.
1981
+ The input parameters can be calculated from meteorological data using a
1982
+ function for a single diode model, e.g.,
1983
+ :py:func:`~pvlib.pvsystem.calcparams_desoto`.
1979
1984
1980
1985
Parameters
1981
1986
----------
1982
1987
photocurrent : numeric
1983
- Light-generated current (photocurrent) in amperes under desired
1984
- IV curve conditions. Often abbreviated ``I_L``.
1985
- 0 <= photocurrent
1988
+ Light-generated current :math:`I_L` (photocurrent)
1989
+ ``0 <= photocurrent``. [A]
1986
1990
1987
1991
saturation_current : numeric
1988
- Diode saturation current in amperes under desired IV curve
1989
- conditions. Often abbreviated ``I_0``.
1990
- 0 < saturation_current
1992
+ Diode saturation :math:`I_0` current under desired IV curve
1993
+ conditions. ``0 < saturation_current``. [A]
1991
1994
1992
1995
resistance_series : numeric
1993
- Series resistance in ohms under desired IV curve conditions.
1994
- Often abbreviated ``Rs``.
1995
- 0 <= resistance_series < numpy.inf
1996
+ Series resistance :math:`R_s` under desired IV curve conditions.
1997
+ ``0 <= resistance_series < numpy.inf``. [ohm]
1996
1998
1997
1999
resistance_shunt : numeric
1998
- Shunt resistance in ohms under desired IV curve conditions.
1999
- Often abbreviated ``Rsh``.
2000
- 0 < resistance_shunt <= numpy.inf
2000
+ Shunt resistance :math:`R_{sh}` under desired IV curve conditions.
2001
+ ``0 < resistance_shunt <= numpy.inf``. [ohm]
2001
2002
2002
2003
nNsVth : numeric
2003
- The product of three components. 1) The usual diode ideal factor
2004
- (n) , 2) the number of cells in series (Ns) , and 3) the cell
2005
- thermal voltage under the desired IV curve conditions (Vth). The
2006
- thermal voltage of the cell (in volts) may be calculated as
2007
- ``k*temp_cell/q`` , where k is Boltzmann's constant (J/K),
2008
- temp_cell is the temperature of the p-n junction in Kelvin, and
2009
- q is the charge of an electron (coulombs).
2010
- 0 < nNsVth
2004
+ The product of three components: 1) the usual diode ideality factor
2005
+ :math:`n` , 2) the number of cells in series :math:`N_s` , and 3)
2006
+ the cell thermal voltage
2007
+ :math:`V_{th}`. The thermal voltage of the cell (in volts) may be
2008
+ calculated as :math:`k_B T_c / q` , where :math:`k_B` is
2009
+ Boltzmann's constant (J/K), :math:`T_c` is the temperature of the p-n
2010
+ junction in Kelvin, and :math:`q` is the charge of an electron
2011
+ (coulombs). `` 0 < nNsVth``. [V]
2011
2012
2012
2013
ivcurve_pnts : None or int, default None
2013
- Number of points in the desired IV curve. If None or 0, no
2014
- IV curves will be produced.
2014
+ Number of points in the desired IV curve. If None or 0, no points on
2015
+ the IV curves will be produced.
2015
2016
2016
2017
method : str, default 'lambertw'
2017
2018
Determines the method used to calculate points on the IV curve. The
@@ -2043,6 +2044,14 @@ def singlediode(photocurrent, saturation_current, resistance_series,
2043
2044
The output will be a DataFrame if photocurrent is a Series and
2044
2045
ivcurve_pnts is None.
2045
2046
2047
+ See also
2048
+ --------
2049
+ calcparams_desoto
2050
+ calcparams_cec
2051
+ calcparams_pvsyst
2052
+ sapm
2053
+ pvlib.singlediode.bishop88
2054
+
2046
2055
Notes
2047
2056
-----
2048
2057
If the method is ``'lambertw'`` then the solution employed to solve the
@@ -2079,12 +2088,6 @@ def singlediode(photocurrent, saturation_current, resistance_series,
2079
2088
.. [4] "Computer simulation of the effects of electrical mismatches in
2080
2089
photovoltaic cell interconnection circuits" JW Bishop, Solar Cell (1988)
2081
2090
https://doi.org/10.1016/0379-6787(88)90059-2
2082
-
2083
- See also
2084
- --------
2085
- sapm
2086
- calcparams_desoto
2087
- pvlib.singlediode.bishop88
2088
2091
"""
2089
2092
# Calculate points on the IV curve using the LambertW solution to the
2090
2093
# single diode equation
0 commit comments