@@ -37,7 +37,7 @@ def pvefficiency_adr(effective_irradiance, temp_cell,
37
37
the reference conditions. [unitless]
38
38
39
39
k_d : numeric, negative
40
- “ Dark irradiance” or diode coefficient which influences the voltage
40
+ " Dark irradiance" or diode coefficient which influences the voltage
41
41
increase with irradiance. [unitless]
42
42
43
43
tc_d : numeric
@@ -242,7 +242,45 @@ def _infer_k_huld(cell_type, pdc0):
242
242
return k
243
243
244
244
245
- def huld (effective_irradiance , temp_mod , pdc0 , k = None , cell_type = None ):
245
+ def _infer_k_huld_eu_jrc (cell_type , pdc0 ):
246
+ """
247
+ Get the EU JRC updated coefficients for the Huld model.
248
+
249
+ Parameters
250
+ ----------
251
+ cell_type : str
252
+ Must be one of 'csi', 'cis', or 'cdte'
253
+ pdc0 : numeric
254
+ Power of the modules at reference conditions [W]
255
+
256
+ Returns
257
+ -------
258
+ tuple
259
+ The six coefficients (k1-k6) for the Huld model, scaled by pdc0
260
+
261
+ Notes
262
+ -----
263
+ These coefficients are from the EU JRC paper [1]_. The coefficients are
264
+ for the version of Huld's equation that has factored Pdc0 out of the
265
+ polynomial, so they are multiplied by pdc0 before being returned.
266
+
267
+ References
268
+ ----------
269
+ .. [1] EU JRC paper, "Updated coefficients for the Huld model",
270
+ https://doi.org/10.1002/pip.3926
271
+ """
272
+ # Updated coefficients from EU JRC paper
273
+ huld_params = {'csi' : (- 0.017162 , - 0.040289 , - 0.004681 , 0.000148 ,
274
+ 0.000169 , 0.000005 ),
275
+ 'cis' : (- 0.005521 , - 0.038576 , - 0.003711 , - 0.000901 ,
276
+ - 0.001251 , 0.000001 ),
277
+ 'cdte' : (- 0.046477 , - 0.072509 , - 0.002252 , 0.000275 ,
278
+ 0.000158 , - 0.000006 )}
279
+ k = tuple ([x * pdc0 for x in huld_params [cell_type .lower ()]])
280
+ return k
281
+
282
+
283
+ def huld (effective_irradiance , temp_mod , pdc0 , k = None , cell_type = None , use_eu_jrc = False ):
246
284
r"""
247
285
Power (DC) using the Huld model.
248
286
@@ -274,6 +312,9 @@ def huld(effective_irradiance, temp_mod, pdc0, k=None, cell_type=None):
274
312
cell_type : str, optional
275
313
If provided, must be one of ``'cSi'``, ``'CIS'``, or ``'CdTe'``.
276
314
Used to look up default values for ``k`` if ``k`` is not specified.
315
+ use_eu_jrc : bool, default False
316
+ If True, use the updated coefficients from the EU JRC paper [2]_.
317
+ Only used if ``k`` is not provided and ``cell_type`` is specified.
277
318
278
319
Returns
279
320
-------
@@ -332,10 +373,15 @@ def huld(effective_irradiance, temp_mod, pdc0, k=None, cell_type=None):
332
373
E. Dunlop. A power-rating model for crystalline silicon PV modules.
333
374
Solar Energy Materials and Solar Cells 95, (2011), pp. 3359-3369.
334
375
:doi:`10.1016/j.solmat.2011.07.026`.
376
+ .. [2] EU JRC paper, "Updated coefficients for the Huld model",
377
+ https://doi.org/10.1002/pip.3926
335
378
"""
336
379
if k is None :
337
380
if cell_type is not None :
338
- k = _infer_k_huld (cell_type , pdc0 )
381
+ if use_eu_jrc :
382
+ k = _infer_k_huld_eu_jrc (cell_type , pdc0 )
383
+ else :
384
+ k = _infer_k_huld (cell_type , pdc0 )
339
385
else :
340
386
raise ValueError ('Either k or cell_type must be specified' )
341
387
0 commit comments