CALCPARAMS_DESOTO

This function translates reference single-diode parameters to operating conditions using the De Soto photovoltaic module model. It adjusts the light-generated current, diode saturation current, shunt resistance, and thermal-voltage term for the supplied irradiance and cell temperature while preserving the series resistance reference value.

A key relationship in the model is the irradiance and temperature adjustment of photocurrent:

I_L = \frac{G}{G_{ref}} \left(I_{L,ref} + \alpha_{sc}(T_c - T_{ref})\right)

The returned values are ordered as photocurrent, saturation current, series resistance, shunt resistance, and nN_sV_{th}. These outputs are intended to be passed directly into the single-diode solvers such as singlediode or max_power_point.

Excel Usage

=CALCPARAMS_DESOTO(effective_irradiance, temp_cell, alpha_sc, a_ref, I_L_ref, I_o_ref, R_sh_ref, R_s, EgRef, dEgdT, irrad_ref, temp_ref)
  • effective_irradiance (float, required): Irradiance converted to photocurrent (W/m^2).
  • temp_cell (float, required): Average cell temperature (C).
  • alpha_sc (float, required): Short-circuit current temp coefficient (A/C).
  • a_ref (float, required): Modified diode ideality factor term at reference (V).
  • I_L_ref (float, required): Light-generated current at reference (A).
  • I_o_ref (float, required): Diode saturation current at reference (A).
  • R_sh_ref (float, required): Shunt resistance at reference (ohms).
  • R_s (float, required): Series resistance at reference (ohms).
  • EgRef (float, optional, default: 1.121): Energy bandgap at reference temperature (eV).
  • dEgdT (float, optional, default: -0.0002677): Temperature dependence of energy bandgap (1/K).
  • irrad_ref (float, optional, default: 1000): Reference irradiance (W/m^2).
  • temp_ref (float, optional, default: 25): Reference cell temperature (C).

Returns (list[list]): 2D list containing [[photocurrent, saturation_current, resistance_series, resistance_shunt, nNsVth]], or an error string.

Example 1: Standard test conditions

Inputs:

effective_irradiance temp_cell alpha_sc a_ref I_L_ref I_o_ref R_sh_ref R_s EgRef dEgdT irrad_ref temp_ref
1000 25 0.004 1.5 5.5 2e-10 300 0.5 1.121 -0.0002677 1000 25

Excel formula:

=CALCPARAMS_DESOTO(1000, 25, 0.004, 1.5, 5.5, 2e-10, 300, 0.5, 1.121, -0.0002677, 1000, 25)

Expected output:

Result
5.5 2e-10 0.5 300 1.5
Example 2: Default reference constants

Inputs:

effective_irradiance temp_cell alpha_sc a_ref I_L_ref I_o_ref R_sh_ref R_s
1000 25 0.004 1.5 5.5 2e-10 300 0.5

Excel formula:

=CALCPARAMS_DESOTO(1000, 25, 0.004, 1.5, 5.5, 2e-10, 300, 0.5)

Expected output:

Result
5.5 2e-10 0.5 300 1.5
Example 3: Reduced irradiance and warmer cell

Inputs:

effective_irradiance temp_cell alpha_sc a_ref I_L_ref I_o_ref R_sh_ref R_s EgRef dEgdT irrad_ref temp_ref
800 45 0.004 1.5 5.5 2e-10 300 0.5 1.121 -0.0002677 1000 25

Excel formula:

=CALCPARAMS_DESOTO(800, 45, 0.004, 1.5, 5.5, 2e-10, 300, 0.5, 1.121, -0.0002677, 1000, 25)

Expected output:

Result
4.464 4.69768e-9 0.5 375 1.60062
Example 4: Cool cell at elevated irradiance

Inputs:

effective_irradiance temp_cell alpha_sc a_ref I_L_ref I_o_ref R_sh_ref R_s EgRef dEgdT irrad_ref temp_ref
1100 10 0.004 1.5 5.5 2e-10 300 0.5 1.121 -0.0002677 1000 25

Excel formula:

=CALCPARAMS_DESOTO(1100, 10, 0.004, 1.5, 5.5, 2e-10, 300, 0.5, 1.121, -0.0002677, 1000, 25)

Expected output:

Result
5.984 1.41199e-11 0.5 272.727 1.42453

Python Code

Show Code
from pvlib.pvsystem import calcparams_desoto as result_func

def calcparams_desoto(effective_irradiance, temp_cell, alpha_sc, a_ref, I_L_ref, I_o_ref, R_sh_ref, R_s, EgRef=1.121, dEgdT=-0.0002677, irrad_ref=1000, temp_ref=25):
    """
    Calculate five single-diode model parameter values using the De Soto model.

    See: https://pvlib-python.readthedocs.io/en/stable/reference/generated/pvlib.pvsystem.calcparams_desoto.html

    This example function is provided as-is without any representation of accuracy.

    Args:
        effective_irradiance (float): Irradiance converted to photocurrent (W/m^2).
        temp_cell (float): Average cell temperature (C).
        alpha_sc (float): Short-circuit current temp coefficient (A/C).
        a_ref (float): Modified diode ideality factor term at reference (V).
        I_L_ref (float): Light-generated current at reference (A).
        I_o_ref (float): Diode saturation current at reference (A).
        R_sh_ref (float): Shunt resistance at reference (ohms).
        R_s (float): Series resistance at reference (ohms).
        EgRef (float, optional): Energy bandgap at reference temperature (eV). Default is 1.121.
        dEgdT (float, optional): Temperature dependence of energy bandgap (1/K). Default is -0.0002677.
        irrad_ref (float, optional): Reference irradiance (W/m^2). Default is 1000.
        temp_ref (float, optional): Reference cell temperature (C). Default is 25.

    Returns:
        list[list]: 2D list containing [[photocurrent, saturation_current, resistance_series, resistance_shunt, nNsVth]], or an error string.
    """
    try:
        irrad = float(effective_irradiance)
        tc = float(temp_cell)
        asc = float(alpha_sc)
        ar = float(a_ref)
        ilr = float(I_L_ref)
        ior = float(I_o_ref)
        rshr = float(R_sh_ref)
        rs = float(R_s)

        eg = float(EgRef) if EgRef is not None else 1.121
        dt = float(dEgdT) if dEgdT is not None else -0.0002677
        ir = float(irrad_ref) if irrad_ref is not None else 1000.0
        tr = float(temp_ref) if temp_ref is not None else 25.0

        # Returns tuple: photocurrent, saturation_current, resistance_series, resistance_shunt, nNsVth
        res = result_func(
            effective_irradiance=irrad,
            temp_cell=tc,
            alpha_sc=asc,
            a_ref=ar,
            I_L_ref=ilr,
            I_o_ref=ior,
            R_sh_ref=rshr,
            R_s=rs,
            EgRef=eg,
            dEgdT=dt,
            irrad_ref=ir,
            temp_ref=tr
        )

        return [[float(v) for v in res]]
    except Exception as e:
        return f"Error: {str(e)}"

Online Calculator

Irradiance converted to photocurrent (W/m^2).
Average cell temperature (C).
Short-circuit current temp coefficient (A/C).
Modified diode ideality factor term at reference (V).
Light-generated current at reference (A).
Diode saturation current at reference (A).
Shunt resistance at reference (ohms).
Series resistance at reference (ohms).
Energy bandgap at reference temperature (eV).
Temperature dependence of energy bandgap (1/K).
Reference irradiance (W/m^2).
Reference cell temperature (C).