AngleTracker#

class acoular.tprocess.AngleTracker

Bases: MaskedTimeOut

Compute the rotational angle and RPM per sample from a trigger signal in the time domain.

This class retrieves samples from the specified trigger signal and interpolates angular position and rotational speed. The results are stored in the properties angle and rpm.

The algorithm assumes a periodic trigger signal marking rotational events (e.g., a tachometer pulse or an encoder signal) and interpolates the angle and RPM using cubic splines. It is capable of handling different rotational directions and numbers of triggers per revolution.

trigger = Instance(Trigger)

Trigger data source, expected to be an instance of Trigger.

digest = Property( …

A unique identifier for the tracker, based on its properties. (read-only)

trigger_per_revo = Int(1)

Number of trigger signals per revolution. This allows tracking scenarios where multiple trigger pulses occur per rotation. Default is 1, meaning a single trigger per revolution.

rot_direction = Int(-1)

Rotation direction flag:

  • 1: counter-clockwise rotation.

  • -1: clockwise rotation.

Default is -1.

interp_points = Int(4)

Number of points used for spline interpolation. Default is 4.

start_angle = Float(0)

Initial rotation angle (in radians) corresponding to the first trigger event. This allows defining a custom starting reference angle. Default is 0.

rpm = Property(depends_on=['digest'])

Revolutions per minute (RPM) computed for each sample. It is based on the trigger data. (read-only)

average_rpm = Property(depends_on=['digest'])

Average revolutions per minute over the entire dataset. It is computed based on the trigger intervals. (read-only)

angle = Property(depends_on=['digest'])

Computed rotation angle (in radians) for each sample. It is interpolated from the trigger data. (read-only)