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


Outputs


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 so that the module surface has a definable azimuth (at exactly 0° the surface is horizontal and its azimuth is undefined). If the sun is below the horizon (θz>90°\theta_z > 90°), the tracker moves to the stow position: α=αstow,night\alpha = \alpha_{stow,night}.

Module Orientation from Tracker Angle

The module tilt and azimuth are derived from the tracker rotation angle and axis geometry. Module Tilt: βm=arccos(cos(α)cos(βaxis))\beta_m = \arccos\left(\cos(\alpha) \cos(\beta_{axis})\right) For horizontal trackers (βaxis=0\beta_{axis} = 0), this simplifies to βm=α\beta_m = |\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}) γm=arctan2(nE,nN)\gamma_m = \arctan2(n_E, n_N) For horizontal trackers (βaxis=0\beta_{axis} = 0), this simplifies to γm=(γaxis±90°)mod360°\gamma_m = (\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. DOI: 10.2172/1089596