pvperfsolar performance modeling

Reference / Near shading (row to row)

Model option

Direct projection

Each table's neighbours and the scene's objects projected onto the table at every timestep (Quaschning and Hanitsch 1995)

Inputs used: GCR (ground cover ratio), Collector band width, Plane tilt, Top inactive band, Bottom inactive band, Number of rows, Model row-to-row shading, Backtracking

Method

Each table's neighbours and the scene's objects are projected along the sun onto the table's plane at every timestep (Quaschning and Hanitsch 1995) and clipped to the table. A neighbour casts its shadow with its modules' rectangle grown by its border on every side (scene.types.border), and the shaded area is divided by the area of the table's modules' rectangle. The neighbours are those of the shading-factor table option: for a rack every table toward its facing within ten collector widths and the nearest table on each side of its own row, for a tracker the tables within ten collector widths on either side that overlap it along its axis. Under terrain-aware backtracking each tracker and each neighbour is projected at its own rotation. On each table the shadows form one union: a point under a neighbour's shadow is shaded, and a point under objects only keeps the product of their transmittances (1). The shaded fraction of the field is the mean of the tables' fractions by module count over every table (2). The option needs a scene. A tree line lets part of the light through, with a transmittance that depends on the season. The diffuse and albedo factors come from the shading-factor table of the same projections that the shading-factor table option builds, indexed by sun height and azimuth, its 0° row continued from 2° and 10°: the sky factor is that table integrated over the sky the plane sees (3), and the ground factor is its 0° row integrated over the ground the plane sees (4). For racks both are constant over the year; for trackers they are computed for every whole degree of rotation.

The math

  1. Shaded fraction of a table
  2. Shaded fraction of the field
  3. Sky factor
  4. Ground factor
fT=1∣T∣∫T[1−(1−χ∪nSn)∏k(1−(1−τk) χOk)] dA(1)f_{\mathcal{T}} = \frac{1}{\lvert \mathcal{T} \rvert}\int_{\mathcal{T}} \Bigl[1 - \bigl(1 - \chi_{\cup_n \mathcal{S}_n}\bigr)\prod_k \bigl(1 - (1 - \tau_k)\,\chi_{\mathcal{O}_k}\bigr)\Bigr]\,dA \tag{1} Fsh=fT‾(2)F_{sh} = \overline{f_{\mathcal{T}}} \tag{2} Fsky=1−∫skyFsh(e,γ)cos⁡θ dΩ∫skycos⁡θ dΩ(3)F_{sky} = 1 - \frac{\int_{sky} F_{sh}(e, \gamma)\cos\theta\,d\Omega}{\int_{sky} \cos\theta\,d\Omega} \tag{3} Fgnd=1−∫gndFsh(0,γ)cos⁡θ dΩ∫gndcos⁡θ dΩ(4)F_{gnd} = 1 - \frac{\int_{gnd} F_{sh}(0, \gamma)\cos\theta\,d\Omega}{\int_{gnd} \cos\theta\,d\Omega} \tag{4}

where

Symbol Meaning Unit
fTf_{\mathcal{T}} the shaded fraction of a mounting table at the timestep —
T\mathcal{T} the mounting table's modules' rectangle —
Sn\mathcal{S}_n the shadow neighbour nn casts on the table's plane: its rectangle grown by its border —
Ok\mathcal{O}_k the shadow object kk casts on the table's plane —
χA\chi_{A} 1 at a point of the set AA, 0 elsewhere —
τk\tau_k the transmittance of object kk: 0 for a solid object, a tree line's leaf-on or leafless value —
dAdA an element of the table's area —
FshF_{sh} the shaded fraction of the field at the timestep —
 ⋅ ‾\overline{\,\cdot\,} the mean over every mounting table of the orientation, weighted by module count —
FskyF_{sky} the fraction of the sky light the modules receive —
Fsh(e,γ)F_{sh}(e, \gamma) the shaded fraction of the shading-factor table at sun height ee and azimuth γ\gamma, both in degrees —
θ\theta the angle between the direction Ω\Omega and the perpendicular to the module plane degrees
dΩd\Omega an element of solid angle at elevation ee and azimuth γ\gamma, taken where cos⁡θ>0\cos\theta > 0 sr
FgndF_{gnd} the fraction of the ground-reflected light the modules receive —

References

  1. Quaschning & Hanitsch 1995, Shade calculations in photovoltaic systems, ISES Solar World Congress, Harare, https://www.volker-quaschning.de/downloads/ISES1995.pdf
  2. PVsyst 8 help, Treatment of the Beam component

API

array.shading_model = direct (with a scene)

Symbols follow the symbol registry.