Add example profiles and noisy sample GPX
Four profiles exercising each waveform and channel; all verified to parse against the Profile schema. Sample GPX has realistic GPS elevation noise so the smoothing path (FR-5.2) is actually tested. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
name: Short hill repeats
|
||||
description: >-
|
||||
Distance-based terrain loop: a flat approach, a steady climb, then a descent
|
||||
to recover. Loops indefinitely, so ride it for as long as you can stand.
|
||||
looping: true
|
||||
|
||||
blocks:
|
||||
- type: segments
|
||||
segments:
|
||||
- distance_m: 500.0
|
||||
gradient_pct: 0.0
|
||||
- distance_m: 800.0
|
||||
gradient_pct: 6.5
|
||||
- distance_m: 200.0
|
||||
gradient_pct: 9.0
|
||||
- distance_m: 400.0
|
||||
gradient_pct: -3.0
|
||||
- distance_m: 300.0
|
||||
gradient_pct: 0.0
|
||||
@@ -0,0 +1,29 @@
|
||||
name: Sawtooth gradient
|
||||
description: >-
|
||||
Distance-based sawtooth on the gradient channel — the road tilts up gradually
|
||||
then drops away sharply, repeatedly. Exercises virtual-gearing feel rather
|
||||
than raw power, and is a good manual test of profile interpolation.
|
||||
looping: false
|
||||
|
||||
blocks:
|
||||
- type: constant
|
||||
channel: gradient
|
||||
value: 0.0
|
||||
extent:
|
||||
seconds: 300.0
|
||||
|
||||
# Ten 400 m teeth, ramping 0% to 8% then snapping back.
|
||||
- type: wave
|
||||
channel: gradient
|
||||
shape: sawtooth
|
||||
midpoint: 4.0
|
||||
amplitude: 4.0
|
||||
period:
|
||||
metres: 400.0
|
||||
repeats: 10.0
|
||||
|
||||
- type: constant
|
||||
channel: gradient
|
||||
value: 0.0
|
||||
extent:
|
||||
seconds: 300.0
|
||||
@@ -0,0 +1,32 @@
|
||||
name: Sine over-unders
|
||||
description: >-
|
||||
Warm-up ramp, then eight sinusoidal cycles oscillating either side of
|
||||
threshold, then a cool-down. Power-channel, so the trainer holds the target
|
||||
regardless of cadence.
|
||||
looping: false
|
||||
|
||||
blocks:
|
||||
# Ten-minute warm-up, 100 W rising to 200 W.
|
||||
- type: ramp
|
||||
channel: power
|
||||
from: 100.0
|
||||
to: 200.0
|
||||
extent:
|
||||
seconds: 600.0
|
||||
|
||||
# Eight two-minute cycles: 240 W mean, +/- 40 W.
|
||||
- type: wave
|
||||
channel: power
|
||||
shape: sine
|
||||
midpoint: 240.0
|
||||
amplitude: 40.0
|
||||
period:
|
||||
seconds: 120.0
|
||||
repeats: 8.0
|
||||
|
||||
# Five-minute cool-down.
|
||||
- type: constant
|
||||
channel: power
|
||||
value: 120.0
|
||||
extent:
|
||||
seconds: 300.0
|
||||
@@ -0,0 +1,28 @@
|
||||
name: Square-wave resistance intervals
|
||||
description: >-
|
||||
Raw resistance-channel intervals, bypassing the physics model entirely.
|
||||
Thirty seconds hard, thirty seconds easy, twenty times. Useful for
|
||||
characterising the trainer's resistance curve by feel.
|
||||
looping: false
|
||||
|
||||
blocks:
|
||||
- type: constant
|
||||
channel: resistance
|
||||
value: 20.0
|
||||
extent:
|
||||
seconds: 300.0
|
||||
|
||||
- type: wave
|
||||
channel: resistance
|
||||
shape: square
|
||||
midpoint: 45.0
|
||||
amplitude: 25.0
|
||||
period:
|
||||
seconds: 60.0
|
||||
repeats: 20.0
|
||||
|
||||
- type: constant
|
||||
channel: resistance
|
||||
value: 15.0
|
||||
extent:
|
||||
seconds: 300.0
|
||||
Reference in New Issue
Block a user