9
9
from pvlib .irradiance import beam_component , aoi , haydavies
10
10
11
11
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 ):
13
13
"""
14
14
Reduce ground-reflected irradiance to the tilted plane (poa_ground) to
15
15
account for shadows on the ground.
16
16
17
17
Parameters
18
18
----------
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]
22
26
f_gnd_beam : numeric
23
27
Fraction of the distance between rows that is illuminated (unshaded).
24
28
[unitless]
25
- df : numeric
26
- Diffuse fraction, the ratio of DHI to GHI. [unitless]
27
29
vf_gnd_sky : numeric
28
30
View factor from the ground to the sky, integrated along the distance
29
31
between rows. [unitless]
@@ -35,7 +37,7 @@ def _poa_ground_shadows(poa_ground, f_gnd_beam, df, vf_gnd_sky):
35
37
ground. [W/m^2]
36
38
37
39
"""
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 )
39
41
40
42
41
43
def _poa_sky_diffuse_pv (dhi , gcr , surface_tilt ):
@@ -339,18 +341,11 @@ def get_irradiance_poa(surface_tilt, surface_azimuth, solar_zenith,
339
341
# and restricted views
340
342
# this is a deviation from [1], because the row to ground view factor
341
343
# 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
-
349
344
# Reduce ground-reflected irradiance because other rows in the array
350
345
# block irradiance from reaching the ground.
351
346
# [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 )
354
349
355
350
# Ground-reflected irradiance on the row surface accounting for
356
351
# the view to the ground. This deviates from [1], Eq. 10, 11 and
0 commit comments