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).