Skip to main content

Summary

True Tracking calculates the rotation angle for uniform-slope single-axis trackers that minimizes by following the sun’s daily path. This is the base tracking algorithm—backtracking and other modes modify this result when active.

Inputs

NameSymbolUnitsDescription
Solar Zenith Angleθz\theta_zdegreesAngle between sun and local vertical
Solar Azimuth Angleγs\gamma_sdegreesHorizontal angle of sun, clockwise from North
Tracker Axis Azimuthγaxis\gamma_{axis}degreesAzimuth orientation of tracker rotation axis from North
Tracker Axis Tiltβaxis\beta_{axis}degreesTilt of tracker rotation axis from horizontal
Minimum Rotation Limitαmin\alpha_{min}degreesMechanical limit for negative rotation
Maximum Rotation Limitαmax\alpha_{max}degreesMechanical limit for positive rotation
Stow Angleαstow\alpha_{stow}degreesRotation angle when sun is below horizon

Outputs

NameSymbolUnitsDescription
Tracker Rotation Angleα\alphadegreesRotation angle about tracker axis (positive or negative)
Module Tilt Angleβ\betadegreesResulting tilt of module surface from horizontal (always positive)
Module Azimuth Angleγ\gammadegreesResulting azimuth of module surface normal (0°–360°)

Detailed Description

The algorithm transforms solar position from geographic coordinates to the tracker reference frame, then calculates the rotation angle that aligns the module normal with the sun in the tracking plane (perpendicular to the rotation axis).

Determination of Tracker Rotation Angle

The rotation angle that minimizes is (see Marion & Dobos, 2013 for full derivation): α=arctan(sin(θz)sin(γsγaxis)cos(βaxis)cos(θz)+sin(βaxis)sin(θz)cos(γsγaxis))\alpha = \arctan\left(\frac{\sin(\theta_z) \sin(\gamma_s - \gamma_{axis})}{\cos(\beta_{axis}) \cos(\theta_z) + \sin(\beta_{axis}) \sin(\theta_z) \cos(\gamma_s - \gamma_{axis})}\right) For horizontal trackers (βaxis=0\beta_{axis} = 0), this simplifies to: α=arctan(tan(θz)sin(γsγaxis))\alpha = \arctan\left(\tan(\theta_z) \sin(\gamma_s - \gamma_{axis})\right) The rotation is then constrained by mechanical limits: αmax(αmin,min(α,αmax))\alpha \leftarrow \max(\alpha_{min}, \min(\alpha, \alpha_{max})) If α=0°\alpha = 0°, a small offset of 0.001°0.001° is applied to avoid numerical issues in downstream calculations. If the sun is below the horizon (θz>90°\theta_z > 90°), the tracker moves to the stow position: α=αstow\alpha = \alpha_{stow}.

Module Orientation from Tracker Angle

The module tilt and azimuth are derived from the tracker rotation angle and axis geometry. Module Tilt: β=arccos(cos(α)cos(βaxis))\beta = \arccos\left(\cos(\alpha) \cos(\beta_{axis})\right) For horizontal trackers (βaxis=0\beta_{axis} = 0), this simplifies to β=α\beta = |\alpha|. Module Azimuth: The module azimuth is calculated from the horizontal components of the surface normal vector: nE=sin(α)cos(γaxis)cos(α)sin(βaxis)sin(γaxis)n_E = \sin(\alpha)\cos(\gamma_{axis}) - \cos(\alpha)\sin(\beta_{axis})\sin(\gamma_{axis}) nN=sin(α)sin(γaxis)cos(α)sin(βaxis)cos(γaxis)n_N = -\sin(\alpha)\sin(\gamma_{axis}) - \cos(\alpha)\sin(\beta_{axis})\cos(\gamma_{axis}) γ=arctan2(nE,nN)\gamma = \arctan2(n_E, n_N) For horizontal trackers (βaxis=0\beta_{axis} = 0), this simplifies to γ=(γaxis±90°)mod360°\gamma = (\gamma_{axis} \pm 90°) \mod 360° depending on the sign of α\alpha.

References

  • Marion, B., & Dobos, A. (2013). Rotation Angle for the Optimum Tracking of One-Axis Trackers. NREL/TP-6A20-58891.