CALCPARAMS_PVSYST

This function converts PVsyst reference module parameters into the operating-condition coefficients required by the single-diode equation. It accounts for irradiance, cell temperature, the PVsyst diode-factor model, and the irradiance dependence of shunt resistance.

The thermal-voltage term returned by the model is based on the diode factor, cells in series, and cell temperature:

nN_sV_{th} = \gamma N_s \frac{k_B T_c}{q}

The five outputs are returned in the order photocurrent, saturation current, series resistance, shunt resistance, and nN_sV_{th}. These values are typically used as inputs to singlediode, max_power_point, or related IV-curve calculations.

Excel Usage

=CALCPARAMS_PVSYST(effective_irradiance, temp_cell, alpha_sc, gamma_ref, mu_gamma, I_L_ref, I_o_ref, R_sh_ref, R_sh_zero, R_s, cells_in_series, R_sh_exp, eg_ref, 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).
  • gamma_ref (float, required): Diode ideality factor (unitless).
  • mu_gamma (float, required): Temp coefficient for ideality factor (1/K).
  • 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_sh_zero (float, required): Shunt resistance at zero irradiance (ohms).
  • R_s (float, required): Series resistance at reference (ohms).
  • cells_in_series (int, required): Number of cells in series.
  • R_sh_exp (float, optional, default: 5.5): Exponent for shunt resistance.
  • eg_ref (float, optional, default: 1.121): Energy bandgap at reference temperature (eV).
  • 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: PVsyst parameter calculation at standard conditions

Inputs:

effective_irradiance temp_cell alpha_sc gamma_ref mu_gamma I_L_ref I_o_ref R_sh_ref R_sh_zero R_s cells_in_series R_sh_exp eg_ref irrad_ref temp_ref
1000 25 0.005 1.1 0.001 6 1e-9 400 1000 0.3 60 5.5 1.121 1000 25

Excel formula:

=CALCPARAMS_PVSYST(1000, 25, 0.005, 1.1, 0.001, 6, 1e-9, 400, 1000, 0.3, 60, 5.5, 1.121, 1000, 25)

Expected output:

Result
6 1e-9 0.3 400 1.69571
Example 2: Default optional PVsyst constants

Inputs:

effective_irradiance temp_cell alpha_sc gamma_ref mu_gamma I_L_ref I_o_ref R_sh_ref R_sh_zero R_s cells_in_series
1000 25 0.005 1.1 0.001 6 1e-9 400 1000 0.3 60

Excel formula:

=CALCPARAMS_PVSYST(1000, 25, 0.005, 1.1, 0.001, 6, 1e-9, 400, 1000, 0.3, 60)

Expected output:

Result
6 1e-9 0.3 400 1.69571
Example 3: Warm cell with reduced irradiance

Inputs:

effective_irradiance temp_cell alpha_sc gamma_ref mu_gamma I_L_ref I_o_ref R_sh_ref R_sh_zero R_s cells_in_series R_sh_exp eg_ref irrad_ref temp_ref
750 45 0.005 1.1 0.001 6 1e-9 400 1000 0.3 60 5.5 1.121 1000 25

Excel formula:

=CALCPARAMS_PVSYST(750, 45, 0.005, 1.1, 0.001, 6, 1e-9, 400, 1000, 0.3, 60, 5.5, 1.121, 1000, 25)

Expected output:

Result
4.575 1.40654e-8 0.3 407.276 1.84236
Example 4: Cool cell at elevated irradiance

Inputs:

effective_irradiance temp_cell alpha_sc gamma_ref mu_gamma I_L_ref I_o_ref R_sh_ref R_sh_zero R_s cells_in_series R_sh_exp eg_ref irrad_ref temp_ref
1100 15 0.005 1.1 0.001 6 1e-9 400 1000 0.3 60 5.5 1.121 1000 25

Excel formula:

=CALCPARAMS_PVSYST(1100, 15, 0.005, 1.1, 0.001, 6, 1e-9, 400, 1000, 0.3, 60, 5.5, 1.121, 1000, 25)

Expected output:

Result
6.545 2.25033e-10 0.3 398.958 1.62394

Python Code

Show Code
from pvlib.pvsystem import calcparams_pvsyst as result_func

def calcparams_pvsyst(effective_irradiance, temp_cell, alpha_sc, gamma_ref, mu_gamma, I_L_ref, I_o_ref, R_sh_ref, R_sh_zero, R_s, cells_in_series, R_sh_exp=5.5, eg_ref=1.121, irrad_ref=1000, temp_ref=25):
    """
    Calculate five single-diode parameter values using the PVsyst v6 model.

    See: https://pvlib-python.readthedocs.io/en/stable/reference/generated/pvlib.pvsystem.calcparams_pvsyst.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).
        gamma_ref (float): Diode ideality factor (unitless).
        mu_gamma (float): Temp coefficient for ideality factor (1/K).
        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_sh_zero (float): Shunt resistance at zero irradiance (ohms).
        R_s (float): Series resistance at reference (ohms).
        cells_in_series (int): Number of cells in series.
        R_sh_exp (float, optional): Exponent for shunt resistance. Default is 5.5.
        eg_ref (float, optional): Energy bandgap at reference temperature (eV). Default is 1.121.
        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)
        gr = float(gamma_ref)
        mg = float(mu_gamma)
        ilr = float(I_L_ref)
        ior = float(I_o_ref)
        rshr = float(R_sh_ref)
        rs_v = float(R_s)
        nc = int(cells_in_series)

        rsh0 = float(R_sh_zero) if R_sh_zero is not None else 1000.0
        rexp = float(R_sh_exp) if R_sh_exp is not None else 5.5
        eg = float(eg_ref) if eg_ref is not None else 1.121
        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

        res = result_func(
            effective_irradiance=irrad,
            temp_cell=tc,
            alpha_sc=asc,
            gamma_ref=gr,
            mu_gamma=mg,
            I_L_ref=ilr,
            I_o_ref=ior,
            R_sh_ref=rshr,
            R_sh_0=rsh0,
            R_s=rs_v,
            cells_in_series=nc,
            R_sh_exp=rexp,
            EgRef=eg,
            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).
Diode ideality factor (unitless).
Temp coefficient for ideality factor (1/K).
Light-generated current at reference (A).
Diode saturation current at reference (A).
Shunt resistance at reference (ohms).
Shunt resistance at zero irradiance (ohms).
Series resistance at reference (ohms).
Number of cells in series.
Exponent for shunt resistance.
Energy bandgap at reference temperature (eV).
Reference irradiance (W/m^2).
Reference cell temperature (C).