@@ -1948,31 +1948,17 @@ def calcparams_pvsyst(effective_irradiance, temp_cell,
19481948
19491949 '''
19501950
1951- # Boltzmann constant in J/K
1952- k = constants .k
1951+ gamma = _pvsyst_gamma (temp_cell , gamma_ref , mu_gamma , temp_ref )
19531952
1954- # elementary charge in coulomb
1955- q = constants .e
1953+ nNsVth = _pvsyst_nNsVth (temp_cell , gamma , cells_in_series )
19561954
1957- # reference temperature
1958- Tref_K = temp_ref + 273.15
1959- Tcell_K = temp_cell + 273.15
1960-
1961- gamma = gamma_ref + mu_gamma * (Tcell_K - Tref_K )
1962- nNsVth = gamma * k / q * cells_in_series * Tcell_K
1963-
1964- IL = effective_irradiance / irrad_ref * \
1965- (I_L_ref + alpha_sc * (Tcell_K - Tref_K ))
1955+ IL = _pvsyst_IL (effective_irradiance , temp_cell , I_L_ref , alpha_sc ,
1956+ irrad_ref , temp_ref )
19661957
1967- I0 = I_o_ref * ((Tcell_K / Tref_K ) ** 3 ) * \
1968- (np .exp ((q * EgRef ) / (k * gamma ) * (1 / Tref_K - 1 / Tcell_K )))
1958+ I0 = _pvsyst_Io (temp_cell , gamma , I_o_ref , EgRef , temp_ref )
19691959
1970- Rsh_tmp = \
1971- (R_sh_ref - R_sh_0 * np .exp (- R_sh_exp )) / (1.0 - np .exp (- R_sh_exp ))
1972- Rsh_base = np .maximum (0.0 , Rsh_tmp )
1973-
1974- Rsh = Rsh_base + (R_sh_0 - Rsh_base ) * \
1975- np .exp (- R_sh_exp * effective_irradiance / irrad_ref )
1960+ Rsh = _pvsyst_Rsh (effective_irradiance , R_sh_ref , R_sh_0 , R_sh_exp ,
1961+ irrad_ref )
19761962
19771963 Rs = R_s
19781964
@@ -1992,6 +1978,54 @@ def calcparams_pvsyst(effective_irradiance, temp_cell,
19921978 return tuple (pd .Series (a , index = index ).rename (None ) for a in out )
19931979
19941980
1981+ def _pvsyst_Rsh (effective_irradiance , R_sh_ref , R_sh_0 , R_sh_exp = 5.5 ,
1982+ irrad_ref = 1000 ):
1983+ Rsh_tmp = \
1984+ (R_sh_ref - R_sh_0 * np .exp (- R_sh_exp )) / (1.0 - np .exp (- R_sh_exp ))
1985+ Rsh_base = np .maximum (0.0 , Rsh_tmp )
1986+
1987+ Rsh = Rsh_base + (R_sh_0 - Rsh_base ) * \
1988+ np .exp (- R_sh_exp * effective_irradiance / irrad_ref )
1989+
1990+ return Rsh
1991+
1992+
1993+ def _pvsyst_IL (effective_irradiance , temp_cell , I_L_ref , alpha_sc ,
1994+ irrad_ref = 1000 , temp_ref = 25 ):
1995+ Tref_K = temp_ref + 273.15
1996+ Tcell_K = temp_cell + 273.15
1997+ IL = effective_irradiance / irrad_ref * \
1998+ (I_L_ref + alpha_sc * (Tcell_K - Tref_K ))
1999+ return IL
2000+
2001+
2002+ def _pvsyst_Io (temp_cell , gamma , I_o_ref , EgRef , temp_ref = 25 ):
2003+ k = constants .k # Boltzmann constant in J/K
2004+ q = constants .e # elementary charge in coulomb
2005+
2006+ Tref_K = temp_ref + 273.15
2007+ Tcell_K = temp_cell + 273.15
2008+
2009+ Io = I_o_ref * ((Tcell_K / Tref_K ) ** 3 ) * \
2010+ (np .exp ((q * EgRef ) / (k * gamma ) * (1 / Tref_K - 1 / Tcell_K )))
2011+
2012+ return Io
2013+
2014+
2015+ def _pvsyst_gamma (temp_cell , gamma_ref , mu_gamma , temp_ref = 25 ):
2016+ gamma = gamma_ref + mu_gamma * (temp_cell - temp_ref )
2017+ return gamma
2018+
2019+
2020+ def _pvsyst_nNsVth (temp_cell , gamma , cells_in_series ):
2021+ k = constants .k # Boltzmann constant in J/K
2022+ q = constants .e # elementary charge in coulomb
2023+ Tcell_K = temp_cell + 273.15
2024+
2025+ nNsVth = gamma * k / q * cells_in_series * Tcell_K
2026+ return nNsVth
2027+
2028+
19952029def retrieve_sam (name = None , path = None ):
19962030 """
19972031 Retrieve latest module and inverter info from a file bundled with pvlib,
0 commit comments