CROSS_AXIS_TILT
This function computes the tilt perpendicular to the tracker axis, which is essential for accurate backtracking on uneven ground.
It helps layout engineers determine the effective slope between tracker rows, ensuring that backtracking logic correctly avoids mutual shading.
Excel Usage
=CROSS_AXIS_TILT(slope_azimuth, slope_tilt, axis_azimuth, axis_tilt)
slope_azimuth(float, required): Direction of the normal to the slope (degrees).slope_tilt(float, required): Tilt of the slope relative to horizontal (degrees).axis_azimuth(float, required): Direction of the tracker axis (degrees).axis_tilt(float, required): Tilt of the tracker axis relative to horizontal (degrees).
Returns (float): The cross-axis tilt (degrees), or an error string.
Example 1: Cross-axis tilt on an east-sloping terrain
Inputs:
| slope_azimuth | slope_tilt | axis_azimuth | axis_tilt |
|---|---|---|---|
| 90 | 5 | 180 | 0 |
Excel formula:
=CROSS_AXIS_TILT(90, 5, 180, 0)
Expected output:
-5
Example 2: Cross-axis tilt is zero on flat terrain
Inputs:
| slope_azimuth | slope_tilt | axis_azimuth | axis_tilt |
|---|---|---|---|
| 180 | 0 | 180 | 0 |
Excel formula:
=CROSS_AXIS_TILT(180, 0, 180, 0)
Expected output:
0
Example 3: Axis aligned with slope direction
Inputs:
| slope_azimuth | slope_tilt | axis_azimuth | axis_tilt |
|---|---|---|---|
| 180 | 8 | 180 | 8 |
Excel formula:
=CROSS_AXIS_TILT(180, 8, 180, 8)
Expected output:
0
Example 4: West-sloping terrain case
Inputs:
| slope_azimuth | slope_tilt | axis_azimuth | axis_tilt |
|---|---|---|---|
| 270 | 6 | 180 | 0 |
Excel formula:
=CROSS_AXIS_TILT(270, 6, 180, 0)
Expected output:
6
Python Code
Show Code
from pvlib.tracking import calc_cross_axis_tilt as result_func
def cross_axis_tilt(slope_azimuth, slope_tilt, axis_azimuth, axis_tilt):
"""
Calculate cross-axis tilt for single-axis trackers on sloped terrain.
See: https://pvlib-python.readthedocs.io/en/stable/reference/generated/pvlib.tracking.calc_cross_axis_tilt.html
This example function is provided as-is without any representation of accuracy.
Args:
slope_azimuth (float): Direction of the normal to the slope (degrees).
slope_tilt (float): Tilt of the slope relative to horizontal (degrees).
axis_azimuth (float): Direction of the tracker axis (degrees).
axis_tilt (float): Tilt of the tracker axis relative to horizontal (degrees).
Returns:
float: The cross-axis tilt (degrees), or an error string.
"""
try:
sa = float(slope_azimuth)
st = float(slope_tilt)
aa = float(axis_azimuth)
at = float(axis_tilt)
res = result_func(
slope_azimuth=sa,
slope_tilt=st,
axis_azimuth=aa,
axis_tilt=at
)
return float(res)
except Exception as e:
return f"Error: {str(e)}"Online Calculator
Direction of the normal to the slope (degrees).
Tilt of the slope relative to horizontal (degrees).
Direction of the tracker axis (degrees).
Tilt of the tracker axis relative to horizontal (degrees).