pvlib.pvarray.huld#
- pvlib.pvarray.huld(effective_irradiance, temp_mod, pdc0, k=None, cell_type=None)[source]#
Power (DC) using the Huld model.
The Huld model [1] is used by PVGIS and is given by
\[ \begin{align}\begin{aligned}P_{dc} &= G' ( P_{dc0} + k_1 \log(G') + k_2 \log^2 (G') + k_3 T' + k_4 T' \log(G') + k_5 T' \log^2 (G') + k_6 T'^2)\\G' &= \frac{G_{poa eff}}{1000}\\T' &= T_{mod} - 25^{\circ}C\end{aligned}\end{align} \]- Parameters:
effective_irradiance (numeric) – The irradiance that is converted to photocurrent. [\(W/m^2\)]
temp_mod (numeric) – Module back-surface temperature. [C]
pdc0 (numeric) – Power of the modules at reference conditions 1000 \(W/m^2\) and \(25^{\circ}C\). [W]
k (tuple, optional) – Empirical coefficients used in the power model. Length 6. If
k
is not provided,cell_type
must be specified.cell_type (str, optional) – If provided, must be one of
'cSi'
,'CIS'
, or'CdTe'
. Used to look up default values fork
ifk
is not specified.
- Returns:
pdc (numeric) – DC power. [W]
- Raises:
ValueError – If neither
k
norcell_type
are specified.
Notes
The equation for \(P_{dc}\) is from [1]. The expression used in PVGIS documentation differs by factoring \(P_{dc0}\) out of the polynomial:
\[P_{dc} = G' P_{dc0} (1 + k'_1 \log(G') + k'_2 \log^2 (G') + k'_3 T' + k'_4 T' \log(G') + k'_5 T' \log^2 (G') + k'_6 T'^2)\]PVGIS documentation shows a table of default parameters \(k'\) for different cell types. The parameters \(k'\) differ from the parameters \(k\) for
huld()
by the factorpdc0
, that is,\[k = P_{dc0} k'\]With default values for \(k\), at very low irradiance, i.e., \(G' < 20 W/m^2\), \(P_{dc}\) may be negative due to the terms involving \(\log(G')\).
huld()
is a component of the PV performance model implemented in PVGIS. Among other components, the full PVGIS model includes:the Faiman model for module temperature
pvlib.temperature.faiman()
the Martin and Ruiz model for the incidence angle modifier (IAM)
pvlib.iam.martin_ruiz()
a custom model for a spectral adjustment factor
The PVGIS API (see
pvlib.iotools.get_pvgis_hourly()
) returns broadband plane-of-array irradiance (poa_global
) and DC power (P
).poa_global
is irradiance before applying the IAM and spectral adjustments. In contrast theeffective_irradiance
forhuld()
should have the IAM and spectral adjustments. Users comparing output ofhuld()
to PVGIS’P
values should expect differences unlesseffective_irradiance
is computed in the same way as done by PVGIS.References