A generalized closed-form equation for the shaded collector fraction in solar arrays on rolling or undulating terrain is provided for single-axis tracking and fixed-tilt systems. The equation accounts for different rotation angles between the shaded and shading trackers, cross-axis slope between the two trackers, and offset between the collector plane and axis of rotation. The validity of the equation is demonstrated through comparison with numerical ray-tracing simulations and remaining minor sources of error are quantified. Additionally, a simple procedure to determine backtracking rotations for each row in an array installed on the rolling terrain (varying in the direction perpendicular to the tracker axes) is provided. The backtracking equation accounts for a desired shaded fraction (including complete shade avoidance) as well as an axis-collector offset. Test cases are provided to facilitate implementation of these equations.

As noted in Ref. 4, the history of geometric PV shading models goes back over 50 years.5 Row-to-row shading models vary in complexity based on the systems they describe. Models for shaded fraction in uniform south-facing arrays on a horizontal terrain are popular,6–9 presumably due to this being the prototypical array configuration, although likely also due to the simplicity of such a model's mathematical derivation. Several forms of generalized shaded fraction equations have been published, including equations that allow arbitrary array azimuth (not just south-facing),10–12 sloping terrain parallel to the array azimuth,7,13,14 and/or sloping terrain and array azimuth at arbitrary angles.15 Such models calculate shaded fraction as either a one-dimensional fraction of the row width or a two-dimensional (2D) fraction of the collector area. Table I compares the applicability of various shaded fraction calculation methods from the literature. Note that these models for shadow geometry do not directly predict the effect of shading on system performance; for that, they must be combined with an electrical model that considers the system's electrical topology.4

Arrays using single-axis trackers can attempt to prevent the performance loss associated with row-to-row shading by positioning their modules in a way that avoids row-to-row shading as the sun nears the horizon. This behavior is called “backtracking” as it involves rotating the modules away (backwards) from the sun, i.e., more horizontal.16 Backtracking in some form is a standard offering in today's commercial tracking systems. However, as with shaded fraction models, backtracking methods of various capability levels are available. The simplest and most common approach12 relies on simplifying assumptions that make it straightforward to implement but limit its applicability to uniform arrays on horizontal terrain. With increasing interest in accommodating uneven terrain in large-scale tracker arrays,17,18 more capable backtracking methods have been developed. In particular, analytical backtracking equations that account for a uniform terrain slope of an arbitrary direction have been proposed15,19 and implemented in common PV performance modeling tools.20–22 However, the uniformity assumptions underlying these methods result in all rows having the same tilt, making them unsuitable for scenarios with variable terrain. Figure 1 demonstrates how slope-aware backtracking15 successfully avoids shade on horizontal and sloped terrains but is unsuccessful on the variable terrain.

Non-analytical methods for calculating shading also exist, which have fewer limitations and, thus, are able to account for complex terrain and shading objects (e.g., nonuniform arrays and shading due to trees and hills). For example, Rhee23 described a method for using forward ray casting to determine backtracking for systems with ground slopes perpendicular to the tracker axes and variability in intra-tracker axis angles. Some commercial simulation software also supports modeling of PV farms in 3D. However, the drawback of such methods is a substantially increased computational burden.

Beyond the complex terrain, the popularization of new PV module architectures with increased shade resistance (notably, modules with half-cut cells) has prompted interest in backtracking methods that prevent self-shading from exceeding a specified fraction rather than eliminating self-shading altogether.24–27

This work extends previous analytical shaded fraction and backtracking equations to remove simplifying assumptions and further account for real-world system complexities. Specifically, this work builds on the “slope-aware” approach,15 providing generalized shaded fraction and backtracking equations that account for uneven/rolling terrain (terrain slope oscillation in the cross-axis direction), nonuniformity in tracker rotations, and offset between the rotation axis and the plane of the collectors. A comparison of the model developed in this work and models from the literature is provided in Table I. The backtracking method additionally allows nonuniform row spacing and the option of what could be called “fractional backtracking,” the concept of backtracking to maintain a target shaded fraction that is not necessarily zero. These equations are closed-form and simple enough to be easily implemented in any computational environment. However, these equations still assume that all tracker axes are parallel (i.e., constant terrain slope in the direction along the tracker axes). This assumption simplifies the geometry to remain fundamentally two dimensional but limits the equations' applicabilities to situations where variation in the terrain slope along the tracker axes can be ignored.

The coordinate system and geometrical framework used in this work builds on what has been used in the previous work15,28 (see Table II for descriptions of the necessary parameters). Central to the framework is the transformation of the input geometry into a reference frame where the y-axis coincides with the tracker's axis of rotation and the y–z plane is vertical. The core transformation equations follow Ref. 15, with one notational clarification: to reflect that the projected solar zenith angle is fundamentally a representation of solar position, we refer to it as θs instead of θT. For completeness, these transformations are reproduced briefly here.

The projection of the solar zenith angle into the tracker's reference frame is given by
$θ s = atan 2 ( s x ′ , s z ′ ) ,$
(1)
where atan2 refers to the two-argument arctangent function (a variant of the standard arctangent function that chooses the quadrant of the returned angle correctly) and $s x ′ , s z ′$ refer to the sun's Cartesian coordinates (sx, sy, sz) transformed into the tracker reference frame, defined by the tracker's axis tilt βa and axis azimuth γa,
$[ s x ′ s y ′ s z ′ ] = [ s x cos γ a − s y sin γ a s x sin γ a cos β a + s y cos β a cos γ a − s z sin β a s x sin γ a sin β a + s y sin β a cos γ a + s z cos β a ].$
(2)
Note, in Ref. 12, $s y ′$ is missing $sin γ a$ from the first term, although this did not change their derivation since $s y ′$ is never used.
The sun's Cartesian coordinates are in turn calculated based on solar elevation βs and azimuth γs,
$[ s x s y s z ] = [ cos β s sin γ s cos β s cos γ s sin β s ].$
(3)

In this 2D framework, the projected solar zenith angle θs captures all the necessary information about how the sun position relates to the tracker axis of rotation, allowing the equations that follow to use generic expressions with θs and, thus, avoid the unnecessary verbosity of using the solar coordinates (βs and γs) and axis orientation parameters (βa and γa) directly. Therefore, we move on to describe the required array geometry parameters that remain. Because the systems considered here do not benefit from the simplifying uniformity and symmetries assumed in the previous work, we introduce the terminology “front” and “rear” to refer to trackers that are closer to or farther from the sun, respectively. Since the front tracker is the one that casts a shadow onto the rear tracker, which member of a pair of trackers is considered in front depends on the array configuration and the sun's position in the sky (see Fig. 2). The rotations of the front and rear trackers are called θ1 and θ2, respectively.

The primary array geometry parameters are the same as in the slope-aware framework:15  p is the center-to-center row spacing in the horizontal dimension; $ℓ$ is the total distance across the tracker's collector surface (also called collector bandwidth); and βc is the tilt angle representing the height difference between two tracker axes in the tracker reference frame. These parameters are visualized in Fig. 3. Note that Fig. 3 shifts the depiction of βc from the torque tube centers down to the ground level to prevent overlap with the θ1 marker.

Additionally, we introduce a final parameter z0 to represent the distance between the geometric axis of rotation and the plane containing the modules (axis-collector offset). Although this parameter has been considered in numerical shading studies, e.g., Ref. 29, it has so far been omitted from analytical shading models, where the effect of the parameter cancels out due to the assumption of equal tracker rotations. The axis-collector offset z0 is dependent on the torque tube dimensions and racking and ranges from 0 to 20 cm in typical commercial trackers.

As shown in Fig. 3, the shaded fraction fs is a geometrical quantity based on array layout and sun position and represents the collector fraction whose view of the sun is blocked by another collector. In the nonuniform array geometries and rotations considered here, this quantity varies from row to row. This section provides an equation to calculate the shaded fraction for the rear member of a given pair of trackers.

The derivation of shaded fraction in Ref. 15 used the ratio of sides of similar triangles, an approach that relies on the trackers being at the same rotation. Therefore, generalizing to trackers at different rotations requires a different approach. Here, we represent the top of the front tracker's shadow as a parametric line (dotted-dashed line in Fig. 3) and the rear tracker as a parametric line segment (blue bar in Fig. 3). The shaded fraction can be calculated based on the location where the shade line intersects the rear tracker line segment. Note that representing the trackers as line segments requires the assumption that they have negligible thickness, a reasonable approximation given that PV modules are typically a few centimeters thick while the distance between adjacent trackers is usually a few meters. The error introduced by this approximation is discussed in Sec. III B.

We represent the trackers as line segments defined by the coordinates of the left and right edges of the collectors. Referring to Fig. 3, we represent the front tracker as the line segment between the points (x1, z1) and (x2, z2). Similarly, the rear tracker is the line segment between the points (x3, z3) and (x4, z4). Then, the line segment representing the rear tracker can then be represented using an arbitrary parameter t,
$x ( t ) = x 3 + t ( x 4 − x 3 ) , z ( t ) = z 3 + t ( z 4 − z 3 ) , 0 ≤ t ≤ 1.$
(4)
We can represent the shade line similarly, but there is a complication: depending on the values of θ1 and θs, the top of the front tracker's shadow can coincide with either of points 1 and 2 (i.e., either of the left and right edges of the front collector). Specifically, the shade line coincides with point 2 when $| θ 1 − θ s | < 90$° (the scenario shown in Fig. 3) and with point 1 otherwise. The latter case is unusual and means the front collector faces away from the sun, perhaps due to tracker malfunction. For now, we will proceed under the assumption that the shade line is defined by point 2, and we will return to the other case later. The shade line intersecting point 2 can be represented with a second arbitrary parameter s,
$x ( s ) = x 2 + s , z ( s ) = z 2 + s cot θ s.$
(5)
The parametric representations of the rear module and the shade line are equal at the intersection point, resulting in a system of equations:
$[ ( x 4 − x 3 ) − 1 ( z 4 − z 3 ) − cot θ s ] [ t * s * ] = [ x 2 − x 3 z 2 − z 3 ].$
(6)
The solution $[ t * , s * ] T$ of Eq. (6) represents the location of the intersection point along the rear module (via $t *$) and the shade line (via $s *$). The location along the shade line is not needed for determining the shaded fraction, so we proceed to solve only for $t *$ using Cramer's rule:
$t * = − ( x 2 − x 3 ) cot θ s + ( z 2 − z 3 ) − ( x 4 − x 3 ) cot θ s + ( z 4 − z 3 ).$
(7)
Referring again to Fig. 3 and setting the origin to the front tracker's axis of rotation for convenience, expressions for the needed coordinates are as follows:
$x 1 = ℓ 2 cos θ 1 + z 0 sin θ 1 , x 2 = − ℓ 2 cos θ 1 + z 0 sin θ 1 , x 3 = − p + ℓ 2 cos θ 2 + z 0 sin θ 2 , x 4 = − p − ℓ 2 cos θ 2 + z 0 sin θ 2 ,$
(8)
$z 1 = − ℓ 2 sin θ 1 + z 0 cos θ 1 , z 2 = ℓ 2 sin θ 1 + z 0 cos θ 1 , z 3 = p tan β c − ℓ 2 sin θ 2 + z 0 cos θ 2 , z 4 = p tan β c + ℓ 2 sin θ 2 + z 0 cos θ 2 .$
(9)

Note that in order for Eq. (7) to have a solution, the rear module surface must not be parallel to the sun's rays, i.e., it must be that $| θ 2 − θ s | ≠ 90$°.

Inserting these expressions into Eq. (7) and simplifying using the sine and cosine difference identities, we find
$t * = 1 2 ( 1 + cos ( θ 1 − θ s ) cos ( θ 2 − θ s ) ) + z 0 ℓ ( sin ( θ 2 − θ s ) − sin ( θ 1 − θ s ) cos ( θ 2 − θ s ) ) − p ℓ ( cos ( θ s − β c ) cos ( θ 2 − θ s ) cos β c ) , | θ 1 − θ s | < 90 °.$
(10)
Recall that we have derived Eq. (10) assuming that the shade line is defined by point 2 in Fig. 3. If we had instead assumed that the shade line is defined by point 1 (i.e., $| θ 1 − θ s | > 90$°), we would arrive at a slightly different expression for $t *$,
$t * = 1 2 ( 1 − cos ( θ 1 − θ s ) cos ( θ 2 − θ s ) ) + z 0 ℓ ( sin ( θ 2 − θ s ) − sin ( θ 1 − θ s ) cos ( θ 2 − θ s ) ) − p ℓ ( cos ( θ s − β c ) cos ( θ 2 − θ s ) cos β c ) , | θ 1 − θ s | > 90 °.$
(11)
A similar sign change is observed when $| θ 2 − θ s | > 90$°. These cases are consolidated like so, including a $sgn ( θ s )$ (where $sgn$ refers to the sign function, not the $sin$ function) multiplier so that both positive and negative values of θs are handled correctly:
$t * = 1 2 ( 1 + | cos ( θ 1 − θ s ) cos ( θ 2 − θ s ) | ) + sgn ( θ s ) z 0 ℓ ( sin ( θ 2 − θ s ) − sin ( θ 1 − θ s ) | cos ( θ 2 − θ s ) | ) − p ℓ ( cos ( θ s − β c ) | cos ( θ 2 − θ s ) | cos β c ).$
(12)
To interpret the value of $t *$, recall that it indicates the fractional distance from point 3 to point 4 (or from point 4 to point 3 if the rear tracker is in the unusual situation of facing away from the sun) where the shade line intersects the rear tracker. Negative values of $t *$ indicate that the shaded line passes below the tracker without any shading on the tracker itself. $t * > 1$ indicates that the shaded line passes over the top of the rear tracker, implying complete shading. Otherwise, the value of $t *$ represents the shaded fraction directly. Hence, the shaded fraction fs is given by the following equation:
$f s = { 0 , t * < 0 , t * , 0 ≤ t * ≤ 1 , 1 , t * > 1.$
(13)

Note that in the special case where $θ 1 = θ 2$ and $z 0 = 0$, Eq. (13) becomes equivalent to the shaded fraction equation [Eq. (32)] in Ref. 15, as expected.

Equation (13) calculates the shaded fraction considering only one shading neighbor. However, in arrays with nonuniform terrain and rotations, the shaded fraction may be determined by any row in front of the tracker in question. Therefore, Eq. (13) must be applied to all row pairs (adjacent or otherwise) in an array, making sure to calculate p and βc values for each pair accordingly. The shaded fraction is then the maximum of the calculated shaded fractions.

Additionally, it is worth pointing out that Eq. (13) calculates shaded fraction for the exact tracker rotations and solar position specified. Solar positions and tracker rotations taken from data acquisition systems or simulators that deal with time intervals rather than instants in time may be subject to averaging or other adjustments. In this case, care must be taken to ensure that the inputs to Eq. (13) are self-consistent.

Finally, it must be noted that Eq. (13) can be applied to both single-axis tracking and fixed-tilt systems. This is because fixed-tilt systems can be considered a special case of single-axis tracking where the tracker rotation does not vary in time. In that point of view, a fixed-tilt row's “rotation” is its tilt and its “axis azimuth” is 90° offset from the array's true azimuth (with the direction of the offset determined by the right-hand rule). For example, a uniform array tilted to the south at 20° would have $θ 1 = θ 2 = 20$° with γa pointing east.

To ensure the validity of Eq. (13), here, we compare its predictions with shaded fraction values calculated using bifacial_radiance,30 a Python wrapper package around the Radiance ray-tracing engine31 for performing detailed irradiance simulations for PV arrays. Radiance traces photon paths numerically through a true 3D scene, offering an independent and well-validated means of calculating PV array shadow geometries.

Unfortunately, bifacial_radiance has no internal concept of the shaded collector fraction and, thus, cannot report it directly. Instead, we evaluate the simulated irradiance across a fine 2D grid across the surface of the center module in the rear row, estimating the shaded fraction by identifying the grid locations that bound the transition from shadow to illumination. By increasing the resolution of the simulation grid, the shaded fraction can be determined to arbitrarily high precision. The bifacial_radiance simulations in this work were configured to evaluate incident irradiance at a 4 × 1000 grid spanning the collector area. The dimension of 1000 spans the collector width $ℓ$, corresponding to a maximum error of the shaded fraction estimates of $± 0.05 %$. The grid dimension of length four makes the estimate robust to nonuniformity in the shadow's upper edge caused by gaps between modules or at the ends of rows. The overall shaded fraction is calculated according to the highest of the four shadow boundaries.

Additionally, to facilitate differentiation between the illuminated and shaded regions of the module, bifacial_radiance is run with the ground albedo set to zero, diffuse sky irradiance set to a tiny number ($10 − 4$ W m−2), and the direct normal irradiance set to 1000 W m−2. This results in sharp and easily detectable transitions between the shaded and illuminated collector regions.

Two scenes are simulated with bifacial_radiance. The first represents two rows of a single-axis tracking array with one row stalled at a constant tilt angle and the other row tracking and backtracking normally according to Ref. 15. For this scene, the collector thickness is set to a tiny number to recreate the assumptions inherent in Eq. (13). The second scene represents a south-facing fixed-tilt array with realistic collector thickness. Table III lists the simulation parameters for the two scenes and Fig. 4 visualizes the first scene for several sun positions. In all cases, the sun position, tracker rotations, and shaded fractions are evaluated for the exact timestamp under consideration (i.e., no adjustment for the simulation interval is applied).

Figure 5 compares shaded fraction values from Eq. (13) with values estimated using bifacial_radiance for Scene 1 at 5-min intervals across an afternoon. Except for a single value at 16:35 where edge effects prevented the shadow from being detected in the $bifacial _ radiance$ results, the two calculations agree to within the $± 0.05 %$ precision of the bifacial_radiance estimates, verifying the correctness of Eq. (13) when its assumptions (notably, negligible collector thickness) are satisfied.

Figure 6 compares the shaded fractions for Scene 2 at 5-min intervals across a day. In this case, the two shaded fraction values agree to within the $± 0.05 %$ precision of the bifacial_radiance estimates in the morning and evening, but not during midday.

The increased deviation at midday can be understood by considering the effect of collector thickness; shadows are always received by the leading edge of the collector, but may be cast by either the leading or trailing edge of the collector depending on orientation and sun position. Specifically, when the sun is low in the sky relative to the collector orientation ($| θ s | > | θ 1 |$), the shadow is cast by the leading edge, but when the sun is high in the sky ($| θ s | < | θ 1 |$) it is cast by the trailing edge. The “high sky” condition (shadow is cast by the trailing edge but received by the leading edge) introduces effective shifts to the pitch and cross-axis slope of the array, slightly biasing the shaded fraction calculation.

Does this error matter in practice? In real tracking systems, collectors are either oriented directly toward the projected sun position ($| θ s | = | θ 1 |$) or backtracking away from it ($| θ s | > | θ 1 |$), meaning the high sky condition and resulting fs error is expected to have no effect on correctly functioning tracking systems. Fixed-tilt systems (or improperly functioning tracking systems) may be subject to the error depending on orientation and sun position. However, as seen in Fig. 6, the error is minor (a fraction of a percent). This error is likely immaterial in practical applications, considering real-world imperfections, such as nonuniformity in clamping positions, tracker sagging, and construction tolerances.

Finally, we briefly compare the computation time required for each method. To compute the shaded fraction for a single timestamp using the $bifacial _ radiance$ approach requires approximately 30 s. On the same machine, evaluating the analytical equation requires only 2–3 ms, an improvement of four orders of magnitude. Additionally, the analytical method scales much better: Eq. (13) implementation required only 100× longer to evaluate 10 000 scenarios (roughly the size of a typical hourly annual energy simulation). To naively evaluate the same number of scenarios with $bifacial _ radiance$ would require over 3 days of computation time.

While the presented method is an advancement over the slope-aware equation in Ref. 15, it still relies on a number of assumptions and limitations. The main assumptions and limitations include

• Collectors are assumed to have no thickness (see the previous discussion).

• All rows are assumed to have equal width.

• Rows are assumed to be infinitely long (edge effects are not considered).

• Tracker axes are assumed to be parallel.

Since the variable terrain often varies along both directions, not just one, dropping the last of these assumptions (parallel axes) is especially worthy of the future work. Notably, this would change the modeling framework from 2D to 3D, thus significantly increasing the complexity.

Furthermore, it should be noted that the shaded fraction calculated in this section only considers the direct/beam irradiance. Adjacent collector rows also reduce the incident diffuse irradiance as they partly obstruct the view of the sky hemisphere.32

We now turn our attention to backtracking, the task of rotating trackers toward horizontal to reduce the amount of shade they experience. In contrast to Sec. III, where the shaded fraction was a consequence of tracker positioning, this section views shaded fraction as a configurable input that determines tracker position. More specifically, the goal of backtracking is to identify tracker rotations that achieve a shaded fraction no greater than a given maximum acceptable shaded fraction $f s *$, if possible. In practice, the maximum allowable shaded fraction is often chosen to be zero.

Equation (13) calculates the shaded fraction given two tracker rotations. Backtracking can be understood as the inverse task: calculate the tracker rotation that achieves a desired shaded fraction (zero, usually). This suggests the approach of deriving backtracking equations by inverting Eq. (13). However, Eq. (13) is a function of two variables (θ1 and θ2), and thus, permits any number of backtracking equations relating θ1 with θ2 for a given value of $f s *$. Choosing some suitable constraint is necessary to proceed with inverting Eq. (13) to produce a unique solution.

Here, we present the backtracking equations resulting from two particular constraint choices. Other choices of constraint may produce more desirable backtracking equations depending on the situation. Note also that we proceed under the assumption that all trackers are independent. Additional considerations would be required for tracking systems with mechanically coupled (ganged) trackers.

The first constraint choice we explore is to treat θ2 as a known constant and solve for the resulting θ1. This choice produces the following backtracking equation:
$θ 1 = θ s − sgn θ s ( tan − 1 [ 2 z 0 ℓ ] + cos − 1 [ ( f s * − 1 2 ) cos ( θ 2 − θ s ) − sgn θ s z 0 ℓ sin ( θ 2 − θ s ) + p ℓ cos ( θ s − β c ) cos β c 1 4 + ( z 0 ℓ ) 2 ] ).$
(14)

Note that $sgn$ denotes the sign (not $sin$) function. This equation can be understood as adding a “backtracking adjustment” term to the projected solar zenith angle.

Equation (14) has two exceptional cases:

1. If the argument to the arccosine in Eq. (14) is greater than 1, backtracking is not needed in order to keep the rear tracker's shaded fraction below the acceptable value.

2. If the arccosine argument is negative or if the magnitude of the adjustment is greater than 90°, there is no rotation that can prevent the rear tracker's shaded fraction from exceeding the target value. To minimize shading, the tracker can be oriented parallel to the projected sun line $θ 1 = θ s − sgn θ s · 90$°.

In these cases, backtracking is not applicable and other rules must be used to determine suitable tracker rotations. In the former case that might be to continue tracking the sun normally (typically, by setting $θ 1 = θ s$), while in the latter it might be to orient modules to horizontal or some other stow position since an unacceptable level of self-shading cannot be prevented anyway. A specific proposal is outlined in Sec. IV C.

The second constraint choice explored here is to assume the two trackers are at equal rotations, i.e., $θ 1 = θ 2 ≡ θ$. With this choice of constraint, the resulting backtracking equation is as follows:
$θ = θ s − sgn θ s cos − 1 [ p ℓ | cos ( θ s − β c ) | ( 1 − f s * ) cos β c ].$
(15)

Similar to Eq. (14), this equation has two exceptional cases: no shade avoidance is necessary when the arccosine argument is greater than 1, while the desired shade avoidance is impossible when the argument is negative.

Note that Eq. (15) is not applicable to nonuniform arrays since it requires the two tracker rotations to be equal. Instead, what it describes is a generalization of the slope-aware equation to permit “split-boost” backtracking. Note also that when $f s * = 0$, Eq. (15) becomes equivalent to the slope-aware backtracking equation,15 as expected.

As mentioned above, allowing nonuniform tracker rotations means many possible backtracking methods exist that may not be equivalent in terms of shade avoidance, overall irradiance collection, and secondary PV performance effects. Here we outline a simple procedure to determine backtracking rotations for each row in an array, but make no claims about its performance relative to that of other possible methods.

• Step 1: Calculate the projected solar zenith angle θs using Eq. (1).

• Step 2: Based on θs, identify the rear-most (furthest from the sun) row in the array. This will be the starting row.

• Step 3: Calculate the rear-most row's rotation angle with Eq. (15), using p and βc calculated relative to the nearest (second rear-most) row.

• Step 4: Calculate the neighboring row's rotation angle with Eq. (14), using p and βc calculated relative to the previous row. If the second exceptional case (the desired shade avoidance is impossible) is encountered, set the rotation equal to $θ 1 = θ s − sgn ( θ s ) · 90$°.

• Step 5: Repeat the previous step for each successive row in the array, calculating p and βc relative to the nearest previous row that did not encounter the second exceptional case.

Figure 7 visualizes an example application of this procedure.

The equations derived in this work represent several key advances in the modeling and control of single-axis trackers: (1) calculation of the shaded fraction while correctly accounting for terrain and differences in tracker orientation between rows, (2) an extension of the slope-aware backtracking equation that permits fractional or partial backtracking, and (3) a simple method of calculating backtracking rotations for arrays on rolling terrain. It is hoped that the simplicity and computational efficiency of these methods prompt their adoption in PV energy yield simulation and tracker controller software tools. Additionally, this work acts as a demonstration of using ray tracing engines as a powerful means of validating geometric models derived analytically.

However, further advancements remain as the future work. In particular, the extension of analytical shaded fraction equations to the 3D domain (and thereby enabling correct modeling for systems with changing terrain slope along the rows) would be a valuable contribution to the field of solar energy.

The authors are grateful for comments on the draft paper provided by Will Hobbs and Dan Riley.

Kevin S. Anderson was supported by the U.S. Department of Energy's Office of Energy Efficiency and Renewable Energy (EERE) under the Solar Energy Technologies Office Award No. 38530. Sandia National Laboratories is a multimission laboratory managed and operated by National Technology & Engineering Solutions of Sandia, LLC, a wholly owned subsidiary of Honeywell International Inc., for the U.S. Department of Energy's National Nuclear Security Administration under Contract No. DE-NA0003525. This paper describes objective technical results and analysis. Any subjective views or opinions that might be expressed in the paper do not necessarily represent the views of the U.S. Department of Energy or the United States Government.

Adam R. Jensen was supported by the Danish Energy Agency through Grant Nos. 134223-496801 and 134232-510237.

The authors have no conflicts to disclose.

Kevin S. Anderson: Conceptualization (lead); Data curation (equal); Formal analysis (equal); Investigation (equal); Methodology (lead); Software (equal); Visualization (equal); Writing – original draft (lead). Adam R. Jensen: Data curation (equal); Formal analysis (equal); Investigation (equal); Methodology (supporting); Software (equal); Visualization (equal); Writing – review & editing (lead).

The data that support the findings of this study are openly available in Zenodo at http://doi.org/10.5281/zenodo.10513987, Ref. 33. The shading fraction equation will also be implemented in the PV simulation Python package pvlib python21 after publication.

To facilitate implementation of the calculations presented in this paper, we provide a set of test cases with expected calculation results. Test cases for the shaded fraction calculation [Eq. (13)] are listed in Table IV. Test cases for the backtracking calculation [Eq. (14)] are listed in Table V. Note that, for the backtracking test cases, it is assumed that the collectors are positioned parallel to the sun line if shading cannot be avoided. Visualizations of the test cases and the test case data as csv files are available from Zenodo (see Data Availability Section).

1.
M.
Alonso-García
,
J.
Ruiz
, and
F.
Chenlo
, “
Experimental study of mismatch and shading effects in the IV characteristic of a photovoltaic module
,”
Sol. Energy Mater. Sol. Cells
90
,
329
340
(
2006
).
2.
A. R.
Jensen
,
I.
Sifnaios
,
S.
Furbo
, and
J.
Dragsted
, “
Self-shading of two-axis tracking solar collectors: Impact of field layout, latitude, and aperture shape
,”
Sol. Energy
236
,
215
(
2022
).
3.
A. R.
Jensen
,
I.
Sifnaios
, and
K.
Anderson
, “
twoaxistracking—A python package for simulating self-shading of two-axis tracking solar collectors
,”
MethodsX
9
,
101876
(
2022
).
4.
C.
Deline
,
A.
Dobos
,
S.
Janzou
,
J.
Meydbray
, and
M.
Donovan
, “
A simplified model of uniform shading in large photovoltaic arrays
,”
Sol. Energy
96
,
274
282
(
2013
).
5.
H.
Rauschenbach
, “
Electrical output of shadowed solar arrays
,”
IEEE Trans. Electron Devices
18
,
483
490
(
1971
).
6.
J.
Appelbaum
and
J.
Bany
, “
,”
Sol. Energy
23
,
497
507
(
1979
).
7.
J.
Bany
and
J.
Appelbaum
, “
The effect of shading on the design of a field of solar collectors
,”
Sol. Cells
20
,
201
228
(
1987
).
8.
N.
Thakkar
,
D.
Cormode
,
V. P.
Lonij
,
S.
Pulver
, and
A. D.
Cronin
, “
A simple non-linear model for the effect of partial shade on PV systems
,” in
35th Photovoltaic Specialists Conference
(
IEEE
,
2010
).
9.
N.
Varga
and
M. J.
Mayer
, “
Model-based analysis of shading losses in ground-mounted photovoltaic power plants
,”
Sol. Energy
216
,
428
438
(
2021
).
10.
Y.-M.
Saint-Drenan
and
T.
Barbier
, “
Data-analysis and modelling of the effect of inter-row shading on the power production of photovoltaic plants
,”
Sol. Energy
184
,
127
147
(
2019
).
11.
C.
Nicolás-Martín
,
P.
, and
D.
Santos-Martín
, “
Validation and self-shading enhancement for sol: A photovoltaic estimation model
,”
Sol. Energy
202
,
386
408
(
2020
).
12.
E.
Lorenzo
,
L.
Narvarte
, and
J.
Muñoz
, “
Tracking and back-tracking
,”
Prog. Photovoltaics: Res. Appl.
19
,
747
(
2011
).
13.
S.
and
Y.
Fathi Nassar
, “
A general expression for the shadow geometry for fixed mode horizontal, step-like structure and inclined solar fields
,”
Sol. Energy
181
,
53
69
(
2019
).
14.
S.
Swaid
,
J.
Appelbaum
, and
A.
Aronescu
, “
Shading and masking of PV collectors on horizontal and sloped planes facing south and north—A comparative study
,”
Energies
14
,
3850
(
2021
).
15.
K.
Anderson
and
M.
Mikofski
, “
Slope-aware backtracking for single-axis trackers
,”
Report No. TP-5K00-76626
(
NREL
,
2020
).
16.
D.
Panico
,
P.
Garvison
,
H.
Wenger
, and
D.
Shugar
, “
Backtracking: A novel strategy for tracking PV systems
,” in
22nd Photovoltaic Specialists Conference
(
IEEE
,
1991
).
17.
M.
Leung
,
M. A.
Mikofski
,
M.
Hamer
,
A.
Neubert
,
A.
Parikh
,
P.
Rainey
, and
R.
Kharait
, “
Tracker terrain loss part two
,”
IEEE J. Photovoltaics
12
,
127
132
(
2022
).
18.
A.
Barbón
,
P.
Fortuny Ayuso
,
L.
Bayón
, and
C.
Silva
, “
Experimental and numerical investigation of the influence of terrain slope on the performance of single-axis trackers
,”
Appl. Energy
348
,
121524
(
2023
).
19.
D.
Schneider
, “
Control algorithms for large-scale single-axis photovoltaic trackers
,”
Acta Polytech.
52
,
86
(
2012
).
20.
W. F.
Holmgren
,
C. W.
Hansen
, and
M. A.
Mikofski
, “
pvlib python: A python package for modeling solar energy systems
,”
J. Open Source Software
3
,
884
(
2018
).
21.
K. S.
Anderson
,
C. W.
Hansen
,
W. F.
Holmgren
,
A. R.
Jensen
,
M. A.
Mikofski
, and
A.
Driesse
, “
pvlib python: 2023 project update
,”
J. Open Source Software
8
,
5994
(
2023
).
22.
P.
Gilman
,
N. A.
DiOrio
,
J. M.
Freeman
,
S.
Janzou
,
A.
Dobos
, and
D.
Ryberg
, “
SAM photovoltaic model technical reference 2016 update
,”
Report No. TP-6A20-67399
(
NREL
,
2018
).
23.
K.
Rhee
, “
Terrain aware backtracking via forward ray tracing
,” in
49th Photovoltaic Specialists Conference
(
IEEE
,
2022
).
24.
D. S.
Dolan
,
V.
Prodanov
,
P.
Salter
,
F.
Cheein
, and
J.
Dolan
, “
Reducing performance loss due to backtracking error through use of half cut cell modules
,” in
9th International Conference on Power and Energy Systems
(
IEEE
,
2019
).
25.
F.
Cheein
,
D. S. L.
Dolan
, and
S. H.
Patrick
, “
Effective backtracking algorithm for half-cut cell solar panels
,” in
The 9th Renewable Power Generation Conference
(
Institution of Engineering and Technology
,
2021
).
26.
D.
Gun
and
A.
,
Enhancing Energy Yields With TrueCapture
, White Paper (
Nextracker
,
2022
).
27.
D.
Keiner
,
L.
Walter
,
M.
ElSayed
, and
C.
Breyer
, “
Impact of backtracking strategies on techno-economics of horizontal single-axis tracking solar photovoltaic power plants
,”
Sol. Energy
267
,
112228
(
2024
).
28.
W. F.
Marion
and
A. P.
Dobos
, “
Rotation angle for the optimum tracking of one-axis trackers
,”
Report No. TP-6A20-58891
(
NREL
,
2013
).
29.
S. A.
Pelaez
,
C.
Deline
,
J. S.
Stein
,
B.
Marion
,
K.
Anderson
, and
M.
Muller
, “
Effect of torque-tube parameters on rear-irradiance and rear-shading loss for bifacial PV performance on single-axis tracking systems
,” in
46th Photovoltaic Specialists Conference
(
IEEE
,
2019
).
30.
S.
Ayala Pelaez
and
C.
Deline
, “
bifacial_radiance: A python package for modeling bifacial solar photovoltaic systems
,”
J. Open Source Software
5
,
1865
(
2020
).
31.
G. J.
Ward
, “
The radiance lighting simulation and rendering system
,” in
21st Annual Conference on Computer Graphics and Interactive techniques (SIGGRAPH-94)
(
ACM Press
,
1994
).
32.
D.
Tschopp
,
A. R.
Jensen
,
J.
Dragsted
,
P.
Ohnewein
, and
S.
Furbo
, “
Measurement and modeling of diffuse irradiance masking on tilted planes for solar engineering applications
,”
Sol. Energy
231
,
365
(
2022
).
33.
A. R.
Jensen
(
2024
). “Appendix—Shaded fraction and backtracking in single-axis trackers on rolling terrain,”
Zenodo
.