Skip to main content

Summary

Standard Backtracking adjusts single-axis tracker angles to prevent row-to-row shading during low-sun-angle periods (early morning and late afternoon). PlantPredict implements a slope-aware backtracking algorithm based on Anderson & Mikofski (2020), which handles uniformly-sloped terrain. The classical Lorenzo et al. (2011) approach is a special case when the terrain is horizontal.

Inputs

NameSymbolUnitsDescription
True-Tracking Angleα\alphadegreesRotation angle from True Tracking
Collector Width\ellmetersTracker bay width perpendicular to rotation axis
Row PitchppmetersHorizontal distance between tracker rotation axes
Ground Slopeβg\beta_gdegreesTerrain slope angle (0° for horizontal)
Ground Slope Azimuthγg\gamma_gdegreesDirection the slope faces (downhill direction, clockwise from north)
Tracker Axis Azimuthγa\gamma_adegreesTracker axis orientation (clockwise from north)

Outputs

NameSymbolUnitsDescription
Backtracking AngleαB\alpha_BdegreesAdjusted tracker rotation angle with backtracking applied

Detailed Description

The algorithm first decomposes the ground slope into two components relative to the tracker orientation: the axis tilt (along the rotation axis) and the cross-axis slope (perpendicular to the axis). The cross-axis slope determines the elevation difference between adjacent rows, which drives the backtracking geometry. The algorithm then checks whether inter-row shading would occur at the true-tracking angle, and if so, calculates the corrected rotation angle that eliminates shading.

Axis Tilt

The axis tilt (βa\beta_a) is the component of ground slope along the tracker rotation axis. When a tracker is installed on sloped terrain, the rotation axis itself may be tilted relative to horizontal. First, calculate the azimuth difference between the tracker axis and the slope direction: Δγ=γaγg\Delta\gamma = \gamma_a - \gamma_g The axis tilt is: βa=arctan(tanβgcosΔγ)\beta_a = \arctan(\tan\beta_g \cos\Delta\gamma) When the tracker axis is aligned with the slope direction (Δγ=0°\Delta\gamma = 0°), the axis tilt equals the ground slope. When the tracker axis is perpendicular to the slope direction (Δγ=90°\Delta\gamma = 90°), the axis tilt is zero.

Cross-Axis Slope

The cross-axis slope (βc\beta_c) is the component of ground slope perpendicular to the tracker rotation axis. This is a key parameter for backtracking because it determines the elevation difference between adjacent tracker rows. The cross-axis slope is: βc=arcsin(sinΔγsinβg)\beta_c = -\arcsin(\sin\Delta\gamma \sin\beta_g) The sign of βc\beta_c indicates which adjacent row is higher: for a N-S oriented tracker, βc>0\beta_c > 0 means the east row is higher, while βc<0\beta_c < 0 means the west row is higher. For flat terrain (βg=0°\beta_g = 0°), βc=0°\beta_c = 0°. When the direction of the slope is parallel to the tracker axis (Δγ=0°\Delta\gamma = 0°), βc=0°\beta_c = 0° because all rows are at the same elevation. When the direction of the slope is perpendicular to the tracker axis (Δγ=90°\Delta\gamma = 90°), βc=βg|\beta_c| = \beta_g.

Backtracking Correction

The ground coverage ratio (GCR) is the other key parameter for backtracking as it characterizes the array density: GCR=pGCR = \frac{\ell}{p} Shading condition Inter-row shading occurs when the projected width of a tilted tracker row exceeds the “available” spacing between rows. Accounting for the cross-axis slope, shading occurs when: cos(αβc)<GCRcosβc|\cos(\alpha - \beta_c)| < GCR \cdot \cos\beta_c Correction angle When shading would occur, the tracker rotates away from the true-tracking position to eliminate the shade. The correction angle that just eliminates shading is: αB=αsign(α)arccos(cos(αβc)GCRcosβc)\alpha_B = \alpha - \text{sign}(\alpha) \cdot \arccos\left(\frac{|\cos(\alpha - \beta_c)|}{GCR \cdot \cos\beta_c}\right) When the shading condition is not met, no correction is needed and the tracker follows the sun: αB=α\alpha_B = \alpha.

Special Case: Flat Terrain (Lorenzo)

For horizontal terrain (βg=0°\beta_g = 0°), both axis tilt and cross-axis slope are zero (βa=βc=0°\beta_a = \beta_c = 0°). The backtracking condition becomes α>arccos(GCR)|\alpha| > \arccos(GCR) and the backtracking equation simplifies to: αB=αsign(α)arccos(cosαGCR)\alpha_B = \alpha - \text{sign}(\alpha) \cdot \arccos\left(\frac{|\cos\alpha|}{GCR}\right) This is the classical formula from Lorenzo et al. (2011).

References

  • Anderson, K. & Mikofski, M. (2020). Slope-Aware Backtracking for Single-Axis Trackers. NREL Technical Report NREL/TP-5K00-76626. https://www.nrel.gov/docs/fy20osti/76626.pdf
  • Lorenzo, E., Narvarte, L., & Muñoz, J. (2011). Tracking and back-tracking. Progress in Photovoltaics, 19(6), 747-753.