perda.utils.accel_calculator#
- pydantic model perda.utils.accel_calculator.AccelSegmentResult[source]#
Bases:
BaseModelResult of a single segment marked as an acceleration test
- Fields:
-
field start_time:
float[Required]# Timestamp when the segment began.
-
field time_to_dist:
float[Required]# Time to travel dist_reached meters from segment start.
-
field dist_reached:
float[Required]# Distance of the segment in meters.
- perda.utils.accel_calculator.compute_accel_results(signal_obj, distance_obj, target_dist=75, source_time_unit=Timescale.MS, target_time_unit=Timescale.S)[source]#
Compute time-to-distance results for each acceleration event.
- Parameters:
signal_obj (DataInstance) – Binary accel event signal (0.0/1.0), typically from detect_accel_event.
distance_obj (DataInstance) – Cumulative distance signal in meters.
target_dist (float, optional) – Target distance in meters. Default is 75.
source_time_unit (Timescale, optional) – Time unit of input timestamps. Default is Timescale.MS.
target_time_unit (Timescale, optional) – Time unit for output times. Default is Timescale.S.
- Returns:
One result per qualifying segment.
- Return type:
list[AccelSegmentResult]
Examples
>>> results = compute_accel_results(signal_di, distance_di) >>> for r in results: ... print(r)
- perda.utils.accel_calculator.detect_accel_event(torque_obj, speed_obj, torque_threshold=100, speed_threshold=0.5)[source]#
Detect acceleration events based on torque and speed thresholds.
An event is active when torque exceeds torque_threshold and speed exceeds speed_threshold, and ends when speed drops back to or below speed_threshold.
- Parameters:
torque_obj (DataInstance) – Time-series of motor torque values.
speed_obj (DataInstance) – Time-series of wheel speed values. The output is aligned to these timestamps.
torque_threshold (float, optional) – Minimum torque (in Nm) required to trigger an acceleration event. Default is 100.
speed_threshold (float, optional) – Speed value used as the trigger floor and reset condition. Default is 0.5.
- Returns:
Binary signal (0.0 or 1.0) on speed_obj timestamps, labeled “Accel Event”, where 1.0 indicates an active acceleration event.
- Return type:
Examples
>>> signal = detect_accel_event(torque_di, speed_di)