@@ -310,14 +310,14 @@ def maxp(temp_cell, irrad_ref, alpha_sc, gamma_ref, mu_gamma, I_L_ref,
310310 return gamma_pdc / pmp
311311
312312
313- def fit_pvsyst_iec61853_sandia (effective_irradiance , temp_cell ,
314- i_sc , v_oc , i_mp , v_mp ,
315- cells_in_series , EgRef = 1.121 ,
316- alpha_sc = None , beta_mp = None ,
317- R_s = None , r_sh_coeff = 0.12 ,
318- min_Rsh_irradiance = None ,
319- irradiance_tolerance = 20 ,
320- temperature_tolerance = 1 ):
313+ def fit_pvsyst_iec61853_sandia_2025 (effective_irradiance , temp_cell ,
314+ i_sc , v_oc , i_mp , v_mp ,
315+ cells_in_series , EgRef = 1.121 ,
316+ alpha_sc = None , beta_mp = None ,
317+ R_s = None , r_sh_coeff = 0.12 ,
318+ min_Rsh_irradiance = None ,
319+ irradiance_tolerance = 20 ,
320+ temperature_tolerance = 1 ):
321321 """
322322 Estimate parameters for the PVsyst module performance model using
323323 IEC 61853-1 matrix measurements.
@@ -420,42 +420,45 @@ def fit_pvsyst_iec61853_sandia(effective_irradiance, temp_cell,
420420 atol = temperature_tolerance )
421421
422422 if alpha_sc is None :
423- mu_i_sc = _fit_tempco_pvsyst_iec61853_sandia (i_sc [is_g_stc ],
424- temp_cell [is_g_stc ])
423+ mu_i_sc = _fit_tempco_pvsyst_iec61853_sandia_2025 (i_sc [is_g_stc ],
424+ temp_cell [is_g_stc ])
425425 i_sc_ref = float (i_sc [is_g_stc & is_t_stc ].item ())
426426 alpha_sc = mu_i_sc * i_sc_ref
427427
428428 if beta_mp is None :
429- beta_mp = _fit_tempco_pvsyst_iec61853_sandia (v_mp [is_g_stc ],
430- temp_cell [is_g_stc ])
429+ beta_mp = _fit_tempco_pvsyst_iec61853_sandia_2025 (v_mp [is_g_stc ],
430+ temp_cell [is_g_stc ])
431431
432- R_sh_ref , R_sh_0 , R_sh_exp = _fit_shunt_resistances_pvsyst_iec61853_sandia (
433- i_sc , i_mp , v_mp , effective_irradiance , temp_cell , beta_mp ,
434- coeff = r_sh_coeff , min_irradiance = min_Rsh_irradiance
432+ R_sh_ref , R_sh_0 , R_sh_exp = \
433+ _fit_shunt_resistances_pvsyst_iec61853_sandia_2025 (
434+ i_sc , i_mp , v_mp , effective_irradiance , temp_cell , beta_mp ,
435+ coeff = r_sh_coeff , min_irradiance = min_Rsh_irradiance
435436 )
436437
437438 if R_s is None :
438- R_s = _fit_series_resistance_pvsyst_iec61853_sandia (v_oc , i_mp , v_mp )
439+ R_s = _fit_series_resistance_pvsyst_iec61853_sandia_2025 (v_oc , i_mp ,
440+ v_mp )
439441
440- gamma_ref , mu_gamma = _fit_diode_ideality_factor_pvsyst_iec61853_sandia (
441- i_sc [is_t_stc ], v_oc [is_t_stc ], i_mp [is_t_stc ], v_mp [is_t_stc ],
442- effective_irradiance [is_t_stc ], temp_cell [is_t_stc ],
443- R_sh_ref , R_sh_0 , R_sh_exp , R_s , cells_in_series
442+ gamma_ref , mu_gamma = \
443+ _fit_diode_ideality_factor_pvsyst_iec61853_sandia_2025 (
444+ i_sc [is_t_stc ], v_oc [is_t_stc ], i_mp [is_t_stc ], v_mp [is_t_stc ],
445+ effective_irradiance [is_t_stc ], temp_cell [is_t_stc ],
446+ R_sh_ref , R_sh_0 , R_sh_exp , R_s , cells_in_series
444447 )
445448
446- I_o_ref = _fit_saturation_current_pvsyst_iec61853_sandia (
449+ I_o_ref = _fit_saturation_current_pvsyst_iec61853_sandia_2025 (
447450 i_sc , v_oc , effective_irradiance , temp_cell , gamma_ref , mu_gamma ,
448451 R_sh_ref , R_sh_0 , R_sh_exp , R_s , cells_in_series , EgRef
449452 )
450453
451- I_L_ref = _fit_photocurrent_pvsyst_iec61853_sandia (
454+ I_L_ref = _fit_photocurrent_pvsyst_iec61853_sandia_2025 (
452455 i_sc , effective_irradiance , temp_cell , alpha_sc ,
453456 gamma_ref , mu_gamma ,
454457 I_o_ref , R_sh_ref , R_sh_0 , R_sh_exp , R_s , cells_in_series , EgRef
455458 )
456459
457460 gamma_ref , mu_gamma = \
458- _fit_diode_ideality_factor_post_pvsyst_iec61853_sandia (
461+ _fit_diode_ideality_factor_post_pvsyst_iec61853_sandia_2025 (
459462 i_mp , v_mp , effective_irradiance , temp_cell , alpha_sc , I_L_ref ,
460463 I_o_ref , R_sh_ref , R_sh_0 , R_sh_exp , R_s , cells_in_series , EgRef )
461464
@@ -475,14 +478,15 @@ def fit_pvsyst_iec61853_sandia(effective_irradiance, temp_cell,
475478 return fitted_params
476479
477480
478- def _fit_tempco_pvsyst_iec61853_sandia (values , temp_cell , temp_cell_ref = 25 ):
481+ def _fit_tempco_pvsyst_iec61853_sandia_2025 (values , temp_cell ,
482+ temp_cell_ref = 25 ):
479483 fit = np .polynomial .polynomial .Polynomial .fit (temp_cell , values , deg = 1 )
480484 intercept , slope = fit .convert ().coef
481485 value_ref = intercept + slope * temp_cell_ref
482486 return slope / value_ref
483487
484488
485- def _fit_shunt_resistances_pvsyst_iec61853_sandia (
489+ def _fit_shunt_resistances_pvsyst_iec61853_sandia_2025 (
486490 i_sc , i_mp , v_mp , effective_irradiance , temp_cell ,
487491 beta_v_mp , coeff = 0.2 , min_irradiance = None ):
488492 if min_irradiance is None :
@@ -518,7 +522,7 @@ def _fit_shunt_resistances_pvsyst_iec61853_sandia(
518522 return Rshref , Rsh0 , Rshexp
519523
520524
521- def _fit_series_resistance_pvsyst_iec61853_sandia (v_oc , i_mp , v_mp ):
525+ def _fit_series_resistance_pvsyst_iec61853_sandia_2025 (v_oc , i_mp , v_mp ):
522526 # Stein et al 2014, https://doi.org/10.1109/PVSC.2014.6925326
523527
524528 # Eq 13
@@ -530,7 +534,7 @@ def _fit_series_resistance_pvsyst_iec61853_sandia(v_oc, i_mp, v_mp):
530534 return R_s
531535
532536
533- def _fit_diode_ideality_factor_pvsyst_iec61853_sandia (
537+ def _fit_diode_ideality_factor_pvsyst_iec61853_sandia_2025 (
534538 i_sc , v_oc , i_mp , v_mp , effective_irradiance , temp_cell ,
535539 R_sh_ref , R_sh_0 , R_sh_exp , R_s , cells_in_series ):
536540
@@ -550,7 +554,7 @@ def _fit_diode_ideality_factor_pvsyst_iec61853_sandia(
550554 return gamma_ref , 0
551555
552556
553- def _fit_saturation_current_pvsyst_iec61853_sandia (
557+ def _fit_saturation_current_pvsyst_iec61853_sandia_2025 (
554558 i_sc , v_oc , effective_irradiance , temp_cell , gamma_ref , mu_gamma ,
555559 R_sh_ref , R_sh_0 , R_sh_exp , R_s , cells_in_series , EgRef ):
556560 R_sh = _pvsyst_Rsh (effective_irradiance , R_sh_ref , R_sh_0 , R_sh_exp )
@@ -568,7 +572,7 @@ def _fit_saturation_current_pvsyst_iec61853_sandia(
568572 return I_o_ref
569573
570574
571- def _fit_photocurrent_pvsyst_iec61853_sandia (
575+ def _fit_photocurrent_pvsyst_iec61853_sandia_2025 (
572576 i_sc , effective_irradiance , temp_cell , alpha_sc , gamma_ref ,
573577 mu_gamma , I_o_ref , R_sh_ref , R_sh_0 , R_sh_exp , R_s , cells_in_series ,
574578 EgRef ):
@@ -588,7 +592,7 @@ def _fit_photocurrent_pvsyst_iec61853_sandia(
588592 return I_L_ref
589593
590594
591- def _fit_diode_ideality_factor_post_pvsyst_iec61853_sandia (
595+ def _fit_diode_ideality_factor_post_pvsyst_iec61853_sandia_2025 (
592596 i_mp , v_mp , effective_irradiance , temp_cell , alpha_sc , I_L_ref ,
593597 I_o_ref , R_sh_ref , R_sh_0 , R_sh_exp , R_s , cells_in_series , EgRef ):
594598
0 commit comments