pvperfsolar performance modeling

Reference / Near shading (row to row)

Model option

Deline linear self-shading

The linear self-shading of Deline and co-workers on rows of unlimited length

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

The rows are treated as infinitely long. The shadow of the row in front removes a fraction of the direct light, and the modules keep all of the light that remains. On fixed rows the fraction is the closed form of Appelbaum and Bany written in the sun's elevation and azimuth. It counts only while the sun's azimuth minus the plane's azimuth, taken as it is and not wrapped to ±180°, is smaller than 90° in size; a plane facing north therefore receives no shade while the sun's azimuth is above 90°, which in the southern hemisphere leaves out the afternoon row shade. Note: this is the reference code's (SSC) behaviour, kept so the SAM path reproduces it. On a single-axis tracker that follows the sun, the fraction comes from the tracker's rotation and the rotation that would point the plane at the sun (2); a tracker that backtracks casts no shadow. The sky light, its circumsolar part included, is multiplied by a sky factor: the view factor of the sky above the row in front, summed over 250 points down the collector and divided by that of a free plane. The sum takes the absolute value of the cosine, as the reference code does, so a point that sees the front row's top edge more than 90°−β90° - \beta above the horizon counts a larger share of sky. The ground-reflected light is multiplied by the share the rows leave: the first of the NrowsN_{rows} rows sees open ground, and every other row sees the ground between the rows, lit by the direct sunlight that passes the row in front and by the diffuse sky. NrowsN_{rows} is the number of rows the Row count step sets. On a bifacial module the rear irradiance is multiplied by the sky factor too. The shadow has no electrical effect beyond the light it removes. The option works on the rows of the Racking tab and is not available with a scene.

Settings

Setting Value
Points down the collector for the sky factor 250
Number of rows NrowsN_{rows} the Row count step
Floor of YY 10⁻⁵
Row ends none: rows of unlimited length
Rear irradiance multiplied by FskyF_{sky}
Electrical effect none

The math

  1. Direct light shaded on fixed rows
  2. Direct light shaded on a tracker that follows the sun
  3. Sky factor
  4. Ground factor
  5. Ground views
  6. Lit ground and horizontal direct light
  7. Light on the plane after the rows
Fsh={clamp ⁣(1−1GCR (cos⁡β+cos⁡γr sin⁡β/tan⁡α), 0, 1)∣γr∣<90°0∣γr∣≥90°,γr=γs−Ap(1)F_{sh} = \begin{cases} \text{clamp}\!\left(1 - \dfrac{1}{\text{GCR}\,(\cos\beta + \cos\gamma_r\,\sin\beta/\tan\alpha)},\ 0,\ 1\right) & |\gamma_r| < 90° \\ 0 & |\gamma_r| \ge 90° \end{cases},\qquad \gamma_r = \gamma_s - A_p \tag{1} Fsh=clamp ⁣(1−1GCR (cos⁡ρ+sin⁡ρ tan⁡θT), 0, 1)(2)F_{sh} = \text{clamp}\!\left(1 - \frac{1}{\text{GCR}\,(\cos\rho + \sin\rho\,\tan\theta_T)},\ 0,\ 1\right) \tag{2} Fsky=min⁡ ⁣(1, 1250∑n=02491+∣cos⁡(β+en)∣1+cos⁡β),en=arctan⁡snsin⁡β1/GCR−sncos⁡β,sn=1−n250(3)F_{sky} = \min\!\left(1,\ \frac{1}{250}\sum_{n=0}^{249} \frac{1 + \lvert\cos(\beta + e_n)\rvert}{1 + \cos\beta}\right),\qquad e_n = \arctan\frac{s_n\sin\beta}{1/\text{GCR} - s_n\cos\beta},\qquad s_n = 1 - \frac{n}{250} \tag{3} Fgnd=VF1+(Nrows−1) VF2Nrows Gbh+VF1+(Nrows−1) VF3Nrows DVF1 (Gbh+D)(4)F_{gnd} = \frac{\frac{\text{VF}_1 + (N_{rows}-1)\,\text{VF}_2}{N_{rows}}\,G_{bh} + \frac{\text{VF}_1 + (N_{rows}-1)\,\text{VF}_3}{N_{rows}}\,D}{\text{VF}_1\,(G_{bh} + D)} \tag{4} VF1=sin⁡2β2,VF2=12(1+Y−Y2+2Ycos⁡β+1),VF3=12(1+X−X2+2Xcos⁡β+1)(5)\text{VF}_1 = \sin^2\frac{\beta}{2},\qquad \text{VF}_2 = \tfrac{1}{2}\left(1 + Y - \sqrt{Y^2 + 2Y\cos\beta + 1}\right),\qquad \text{VF}_3 = \tfrac{1}{2}\left(1 + X - \sqrt{X^2 + 2X\cos\beta + 1}\right) \tag{5} Y=max⁡ ⁣(10−5, X−sin⁡(α+β)sin⁡α),X=1GCR,Gbh=DNI sin⁡α(6)Y = \max\!\left(10^{-5},\ X - \frac{\sin(\alpha + \beta)}{\sin\alpha}\right),\qquad X = \frac{1}{\text{GCR}},\qquad G_{bh} = \text{DNI}\,\sin\alpha \tag{6} B′=(1−Fsh) B,Dplane′=Fsky Dplane,Ggnd′=Fgnd Ggnd,Grear′=Fsky Grear(7)B' = (1 - F_{sh})\,B,\qquad D'_{plane} = F_{sky}\,D_{plane},\qquad G'_{gnd} = F_{gnd}\,G_{gnd},\qquad G'_{rear} = F_{sky}\,G_{rear} \tag{7}

where

Symbol Meaning Unit
FshF_{sh} the shaded fraction of the direct light —
GCR\text{GCR} the ground cover ratio, the collector width over the pitch —
β\beta the tilt of the module plane at the timestep degrees
γr\gamma_r the sun's azimuth minus the plane's azimuth, not wrapped degrees
α\alpha the elevation of the sun above the horizon degrees
γs\gamma_s the sun's azimuth, clockwise from north degrees
ApA_p the plane's azimuth, clockwise from north degrees
clamp(x,0,1)\text{clamp}(x, 0, 1) xx limited to the range 0 to 1 —
ρ\rho the tracker's rotation degrees
θT\theta_T the rotation that would point the plane at the sun degrees
FskyF_{sky} the share of the sky light the modules receive —
nn the index of a point down the collector —
ene_n the elevation of the front row's top edge seen from point nn degrees
sns_n the distance of point nn below the top of the collector, as a fraction of the collector width —
FgndF_{gnd} the share of the ground-reflected light the modules receive —
NrowsN_{rows} the number of rows —
VF1\text{VF}_1 the ground view of a row in open ground —
VF2\text{VF}_2 the ground view of a row behind another, for the direct light —
VF3\text{VF}_3 the ground view of a row behind another, for the diffuse light —
GbhG_{bh} the direct light on a horizontal surface W/m²
DD the diffuse horizontal irradiance of the weather file W/m²
YY the lit length of ground between the rows over the collector width —
XX the pitch over the collector width —
DNI\text{DNI} the direct normal irradiance of the weather file W/m²
B,B′B, B' the direct light on the plane before and after the rows W/m²
Dplane,Dplane′D_{plane}, D'_{plane} the diffuse sky light on the plane before and after the rows W/m²
Ggnd,Ggnd′G_{gnd}, G'_{gnd} the ground-reflected light on the plane before and after the rows W/m²
Grear,Grear′G_{rear}, G'_{rear} the rear irradiance of a bifacial module before and after the rows W/m²

References

  1. Appelbaum & Bany 1979, Shadow effect of adjacent solar collectors in large scale systems, Solar Energy 23(6) 497–507
  2. Deline, Dobos, Janzou, Meydbray & Donovan 2013, A simplified model of uniform shading in large photovoltaic arrays, Solar Energy 96 274–282
  3. Gilman, DiOrio, Freeman, Janzou, Dobos & Ryberg 2018, SAM Photovoltaic Model Technical Reference Update, NREL/TP-6A20-67399
  4. NREL SAM Simulation Core (SSC) source code, release 2026.7.3, github.com/NatLabRockies/ssc: shared/lib_pvshade.cpp, functions ss_exec(), diffuse_reduce() and sssky_diffuse_table::compute(); shared/lib_irradproc.cpp, function shadeFraction1x()

API

array.shading_model = deline, array.inter_row_shading = true

Symbols follow the symbol registry.