99from pvlib .irradiance import beam_component , aoi , haydavies
1010
1111
12- def _poa_ground_shadows (poa_ground , f_gnd_beam , df , vf_gnd_sky ):
12+ def _poa_ground_shadows (ghi , dhi , albedo , f_gnd_beam , vf_gnd_sky ):
1313 """
1414 Reduce ground-reflected irradiance to the tilted plane (poa_ground) to
1515 account for shadows on the ground.
1616
1717 Parameters
1818 ----------
19- poa_ground : numeric
20- Ground reflected irradiance on the tilted surface, assuming full GHI
21- illumination on all of the ground. [W/m^2]
19+ ghi : numeric
20+ Global horizontal irradiance, with no adjustments. [W/m^2]
21+ dhi : numeric
22+ Diffuse horizontal irradiance, with no adjustments. [W/m^2]
23+ albedo : numeric
24+ Ground albedo, the ratio of reflected to incident irradiance of the
25+ ground surface. [W/m^2]
2226 f_gnd_beam : numeric
2327 Fraction of the distance between rows that is illuminated (unshaded).
2428 [unitless]
25- df : numeric
26- Diffuse fraction, the ratio of DHI to GHI. [unitless]
2729 vf_gnd_sky : numeric
2830 View factor from the ground to the sky, integrated along the distance
2931 between rows. [unitless]
@@ -35,7 +37,7 @@ def _poa_ground_shadows(poa_ground, f_gnd_beam, df, vf_gnd_sky):
3537 ground. [W/m^2]
3638
3739 """
38- return poa_ground * (f_gnd_beam * ( 1 - df ) + df * vf_gnd_sky )
40+ return albedo * (f_gnd_beam * ( ghi - dhi ) + vf_gnd_sky * dhi )
3941
4042
4143def _poa_sky_diffuse_pv (dhi , gcr , surface_tilt ):
@@ -339,18 +341,11 @@ def get_irradiance_poa(surface_tilt, surface_azimuth, solar_zenith,
339341 # and restricted views
340342 # this is a deviation from [1], because the row to ground view factor
341343 # is accounted for in a different manner
342- ground_diffuse = ghi * albedo
343-
344- # diffuse fraction
345- diffuse_fraction = np .clip (dhi / ghi , 0. , 1. )
346- # make diffuse fraction 0 when ghi is small
347- diffuse_fraction = np .where (ghi < 0.0001 , 0. , diffuse_fraction )
348-
349344 # Reduce ground-reflected irradiance because other rows in the array
350345 # block irradiance from reaching the ground.
351346 # [2], Eq. 9
352- ground_diffuse = _poa_ground_shadows (
353- ground_diffuse , f_gnd_beam , diffuse_fraction , vf_gnd_sky )
347+ ground_diffuse = _poa_ground_shadows (ghi , dhi , albedo , f_gnd_beam ,
348+ vf_gnd_sky )
354349
355350 # Ground-reflected irradiance on the row surface accounting for
356351 # the view to the ground. This deviates from [1], Eq. 10, 11 and
0 commit comments