A generalized closedform equation for the shaded collector fraction in solar arrays on rolling or undulating terrain is provided for singleaxis tracking and fixedtilt systems. The equation accounts for different rotation angles between the shaded and shading trackers, crossaxis 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 raytracing 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 axiscollector offset. Test cases are provided to facilitate implementation of these equations.
I. INTRODUCTION
Shading in photovoltaic (PV) arrays reduces the overall irradiance available to the array and causes the irradiance to be distributed nonuniformly across the collector surface. In most system configurations, this irradiance nonuniformity creates electrical “mismatch losses” that reduce overall system performance significantly beyond what would be expected from the irradiance reduction itself.^{1} Detailed calculation of shadow geometry is, therefore, useful for system design optimization and performance modeling. Shading may be caused by a variety of sources, including the horizon, nearby objects, such as trees and buildings, and adjacent collectors. This study deals specifically with rowtorow shading, i.e., shading of collectors organized in rows (such as fixedtilt and singleaxis tracking collectors). Shading of twoaxis tracking collectors is presented in Refs. 2 and 3. Rowtorow shading is often quantified by using the sun position and array geometry parameters to calculate the “shaded fraction,” a quantitative measure of the portion of a row's collector surface that is shaded from direct sunlight due to a neighboring row.
As noted in Ref. 4, the history of geometric PV shading models goes back over 50 years.^{5} Rowtorow shading models vary in complexity based on the systems they describe. Models for shaded fraction in uniform southfacing 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 southfacing),^{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 onedimensional fraction of the row width or a twodimensional (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 singleaxis trackers can attempt to prevent the performance loss associated with rowtorow shading by positioning their modules in a way that avoids rowtorow 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 approach^{12} 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 largescale 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 proposed^{15,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 slopeaware backtracking^{15} successfully avoids shade on horizontal and sloped terrains but is unsuccessful on the variable terrain.
Nonanalytical 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, Rhee^{23} described a method for using forward ray casting to determine backtracking for systems with ground slopes perpendicular to the tracker axes and variability in intratracker 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 halfcut cells) has prompted interest in backtracking methods that prevent selfshading from exceeding a specified fraction rather than eliminating selfshading altogether.^{24–27}
This work extends previous analytical shaded fraction and backtracking equations to remove simplifying assumptions and further account for realworld system complexities. Specifically, this work builds on the “slopeaware” approach,^{15} providing generalized shaded fraction and backtracking equations that account for uneven/rolling terrain (terrain slope oscillation in the crossaxis 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 closedform 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.
II. COORDINATE SYSTEM
The coordinate system and geometrical framework used in this work builds on what has been used in the previous work^{15,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 yaxis 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.
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 slopeaware framework:^{15} p is the centertocenter row spacing in the horizontal dimension; $\u2113$ 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 z_{0} to represent the distance between the geometric axis of rotation and the plane containing the modules (axiscollector 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 axiscollector offset z_{0} is dependent on the torque tube dimensions and racking and ranges from 0 to 20 cm in typical commercial trackers.
III. SHADED FRACTION
As shown in Fig. 3, the shaded fraction f_{s} 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.
A. Shaded fraction equation derivation
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 (dotteddashed 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.
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 $  \theta 2 \u2212 \theta s  \u2260 90$°.
Note that in the special case where $ \theta 1 = \theta 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 selfconsistent.
Finally, it must be noted that Eq. (13) can be applied to both singleaxis tracking and fixedtilt systems. This is because fixedtilt systems can be considered a special case of singleaxis tracking where the tracker rotation does not vary in time. In that point of view, a fixedtilt 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 righthand rule). For example, a uniform array tilted to the south at 20° would have $ \theta 1 = \theta 2 = 20$° with γ_{a} pointing east.
B. Shaded fraction equation validation
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 raytracing engine^{31} for performing detailed irradiance simulations for PV arrays. Radiance traces photon paths numerically through a true 3D scene, offering an independent and wellvalidated 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 $\u2113$, corresponding to a maximum error of the shaded fraction estimates of $ \xb1 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 \u2212 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 singleaxis 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 southfacing fixedtilt 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 5min 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 $ \xb1 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 5min intervals across a day. In this case, the two shaded fraction values agree to within the $ \xb1 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 ( $  \theta s  >  \theta 1 $), the shadow is cast by the leading edge, but when the sun is high in the sky ( $  \theta s  <  \theta 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 crossaxis 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 ( $  \theta s  =  \theta 1 $) or backtracking away from it ( $  \theta s  >  \theta 1 $), meaning the high sky condition and resulting f_{s} error is expected to have no effect on correctly functioning tracking systems. Fixedtilt 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 realworld 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.
C. Shaded fraction equation limitations
While the presented method is an advancement over the slopeaware 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}
IV. BACKTRACKING
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.
A. Option 1: Assume θ_{2} is known, solve for θ_{1}
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:

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.

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 $ \theta 1 = \theta s \u2212 sgn \u2009 \theta s \xb7 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 $ \theta 1 = \theta s$), while in the latter it might be to orient modules to horizontal or some other stow position since an unacceptable level of selfshading cannot be prevented anyway. A specific proposal is outlined in Sec. IV C.
B. Option 2: Assume $ \theta 1 = \theta 2$
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 slopeaware equation to permit “splitboost” backtracking. Note also that when $ f s * = 0$, Eq. (15) becomes equivalent to the slopeaware backtracking equation,^{15} as expected.
C. Simple rowbyrow backtracking procedure
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 rearmost (furthest from the sun) row in the array. This will be the starting row.
Step 3: Calculate the rearmost row's rotation angle with Eq. (15), using p and β_{c} calculated relative to the nearest (second rearmost) 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 $ \theta 1 = \theta s \u2212 sgn ( \theta s ) \xb7 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.
V. CONCLUSION
The equations derived in this work represent several key advances in the modeling and control of singleaxis trackers: (1) calculation of the shaded fraction while correctly accounting for terrain and differences in tracker orientation between rows, (2) an extension of the slopeaware 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.
ACKNOWLEDGMENTS
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. DENA0003525. 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. 134223496801 and 134232510237.
AUTHOR DECLARATIONS
Conflict of Interest
The authors have no conflicts to disclose.
Author Contributions
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).
DATA AVAILABILITY
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 python^{21} after publication.
APPENDIX: IMPLEMENTATION VALIDATION TEST CASES
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).