pvlib.tracking.singleaxis#
- pvlib.tracking.singleaxis(apparent_zenith, solar_azimuth, axis_tilt=0, axis_azimuth=0, max_angle=90, backtrack=True, gcr=0.2857142857142857, cross_axis_tilt=0)[source]#
Determine the rotation angle of a single-axis tracker when given particular solar zenith and azimuth angles.
The rotation angle is chosen to minimize the angle of incidence (AOI) of the sun’s beam onto the panel, thereby maximizing the use of direct normal irradiance (DNI). Backtracking may be specified, in which case a ground coverage ratio is required. When backtracking, the rotation is adjusted away from the AOI-minimizing angle to avoid row-to-row shading.
See [1] and [2] for details about the equations.
Rotation angle is determined in a right-handed coordinate system. The tracker
axis_azimuthdefines the positive y-axis, the positive x-axis is 90 degrees clockwise from the y-axis and parallel to the Earth’s surface, and the positive z-axis is normal to both x and y-axes and oriented skyward. Rotation angletracker_thetais a right-handed rotation around the y-axis in the x, y, z coordinate system and indicates tracker position relative to horizontal. For example, if trackeraxis_azimuthis 180 (oriented south) andaxis_tiltis zero, then atracker_thetaof zero is horizontal, atracker_thetaof 30 degrees is a rotation of 30 degrees towards the west, and atracker_thetaof -90 degrees is a rotation to the vertical plane facing east.- apparent_zenithfloat, 1d array, or Series
Solar apparent zenith angles in decimal degrees.
- solar_azimuthfloat, 1d array, or Series
Solar apparent azimuth angles in decimal degrees.
- axis_tiltfloat, default 0
The tilt of the axis of rotation (i.e, the y-axis defined by
axis_azimuth) with respect to horizontal (degrees). Positiveaxis_tiltis downward in the direction ofaxis_azimuth. For example, for a tracker withaxis_azimuth=180andaxis_tilt=10, the north end is higher than the south end of the axis.- axis_azimuthfloat, default 0
A value denoting the compass direction along which the axis of rotation lies. Measured in decimal degrees east of north.
- max_anglefloat or tuple, default 90
A value denoting the maximum rotation angle, in decimal degrees, of the one-axis tracker from its horizontal position (horizontal if axis_tilt = 0). If a float is provided, it represents the maximum rotation angle, and the minimum rotation angle is assumed to be the opposite of the maximum angle. If a tuple of (min_angle, max_angle) is provided, it represents both the minimum and maximum rotation angles.
A rotation to
max_angleis a counter-clockwise rotation about the y-axis of the tracker coordinate system. For example, for a tracker withaxis_azimuthoriented to the south, a rotation tomax_angleis towards the west, and a rotation toward-max_angleis in the opposite direction, toward the east.- backtrackbool, default True
Controls whether the tracker has the capability to “backtrack” to avoid row-to-row shading. False denotes no backtrack capability. True denotes backtrack capability.
- gcrfloat, default 2.0/7.0
A value denoting the ground coverage ratio of a tracker system that utilizes backtracking; i.e. the ratio between the PV array surface area to the total ground area. A tracker system with modules 2 meters wide, centered on the tracking axis, with 6 meters between the tracking axes has a
gcrof 2/6=0.333. Ifgcris not provided, agcrof 2/7 is default.gcrmust be <=1.- cross_axis_tiltfloat, default 0.0
The angle, relative to horizontal, of the line formed by the intersection between the slope containing the tracker axes and a plane perpendicular to the tracker axes. The cross-axis tilt should be specified using a right-handed convention. For example, trackers with
axis_azimuthof 180 degrees (heading south) will have a negative cross-axis tilt if the tracker axes plane slopes down to the east and positive cross-axis tilt if the tracker axes plane slopes down to the west. Usecalc_cross_axis_tilt()to calculatecross_axis_tilt. [degrees]
- dict or DataFrame with the following columns:
tracker_theta: The rotation angle of the tracker is a right-handed rotation defined by axis_azimuth. tracker_theta = 0 is horizontal. [degrees]
aoi: The angle-of-incidence of direct irradiance onto the rotated panel surface. [degrees]
surface_tilt: The angle between the panel surface and the earth surface, accounting for panel rotation. [degrees]
surface_azimuth: The azimuth of the rotated panel (degrees), determined by projecting the vector normal to the panel’s surface to the earth’s surface. Where
surface_tilt``=0, ``surface_azimuthis set equal toaxis_azimuth- 90.
pvlib.tracking.calc_axis_tilt pvlib.tracking.calc_cross_axis_tilt pvlib.tracking.calc_surface_orientation
Examples using pvlib.tracking.singleaxis#
Shaded fraction of a horizontal single-axis tracker
Modelling shading losses in modules with bypass diodes