Summary
Add a configurable rolling-average smoothing applied to ERG setpoint commands sent to the trainer, reducing the jarring resistance steps that occur when transitioning between intervals with very different power targets.
Motivation
A hard step from, say, 150 W to 350 W causes a mechanical jolt and a brief period where the trainer briefly over- or under-shoots target. Ramping the resistance command over a user-configurable duration (e.g. 5 s) creates a smooth transition that is physically easier and reduces drivetrain stress.
Acceptance Criteria
Summary
Add a configurable rolling-average smoothing applied to ERG setpoint commands sent to the trainer, reducing the jarring resistance steps that occur when transitioning between intervals with very different power targets.
Motivation
A hard step from, say, 150 W to 350 W causes a mechanical jolt and a brief period where the trainer briefly over- or under-shoots target. Ramping the resistance command over a user-configurable duration (e.g. 5 s) creates a smooth transition that is physically easier and reduces drivetrain stress.
Acceptance Criteria
setLoad()is called on every timer tick during the ramp period with linearly-interpolated wattage between old and new targets