You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PID HR Pushy zone-limit/recovery-zone settings (follow-up to #4786) (#4787)
* pid hr on zone 1
#4480 (comment)
* pid limited to 0.8
* trainprogram_pid_hr_pushy_zone_limit as configurable setting
The 0.8 threshold controlling how far into the next zone the PID
'Pushy' mode can push was hardcoded. Exposed it as a QSettings entry
(default 0.8) and added a TextField control under Training Program
Options in settings.qml.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat: symmetric pushy slowdown near upper zone boundary (#4480)
When HR enters the upper part of the zone (above the slowdown threshold),
proactively reduce speed rather than waiting for the HR to cross into the
next zone. Threshold is the midpoint between pushyZoneLimit and the zone
top: e.g. pushy=0.8 -> slowdown at zone+0.9, leaving a neutral dead band
[0.8, 0.9] that prevents oscillation.
The outer condition guard is also relaxed from currentSpeed < maxSpeed
to plain trainprogram_pid_pushy so the slowdown path can fire even when
already at max speed.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Fix pushy HR handling in zone 1
* feat: add configurable Recovery zone lower limit for Pushy mode (#4480)
Replace the auto-computed zone 1 lower boundary (zone1Limit - zoneWidth)
with a user-adjustable setting trainprogram_pid_hr_recovery_zone_limit
(default 60% of max HR). Appears in UI above the existing Pushy Zone Limit
setting. Allows users to fine-tune the lower boundary of zone 1 so the
speed-up trigger adapts to their individual heart rate profile.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix: increment allSettingsCount to 964 for recovery zone limit setting
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix: correct settingCount to match catalog entries (961 -> 962)
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
"description": "Lower HR boundary (% of max HR) that defines the bottom of Zone 1 for 'Pushy' mode. Below this percentage the treadmill is at the bottom of the recovery area. Default: 60.",
9235
+
"parent": "Training Program Options",
9236
+
"type": "number",
9237
+
"qmlType": "real",
9238
+
"control": "textfield",
9239
+
"visible": true,
9240
+
"defaultValue": 60.0,
9241
+
"defaultExpression": "60.0",
9242
+
"options": null
9243
+
},
9244
+
{
9245
+
"key": "trainprogram_pid_hr_pushy_zone_limit",
9246
+
"name": "PID Pushy Zone Limit",
9247
+
"description": "Fraction of zone above the target zone where 'Pushy' mode stops pushing. 0.8 means the PID stops pushing at zone+0.8. Default: 0.8.",
text: qsTr("Lower HR boundary (% of max HR) that defines the bottom of Zone 1 for 'Pushy' mode. Below this percentage the treadmill is at the bottom of the recovery area. Default: 60.")
0 commit comments