先看两份示意记录:同样的200W

假设有两位骑行者,下面的数字全部是为了说明而设的示意数据,不代表任何真实用户或设备。

项目 骑行者甲 骑行者乙
时长 2小时 2小时
平均功率 200W 200W
路线 基本平路,风小连续起伏,多个短陡坡
逐秒功率的形状 大部分时间在180至220W之间 坡上常到350W以上,下坡和滑行大量为0
结束后的感觉 有点累,但第二天能正常训练 腿明显发沉,第二天不想上车

只看平均功率,这两次骑行是一回事。但骑乙的人知道,那种“每个坡都想顶住”的感觉并不等同于平路上稳稳骑。平均值把滑行时的0W也算了进去,等于把所有高强度输出稀释在了一片零里。

为什么平均值会稀释高强度

身体对功率的反应不是线性的。多数运动生理学和教练实践的共识是:超过个人阈值的输出,代价上升得比功率本身更快;下坡不蹬的时间,则给了肌肉一段喘息。所以业内常用“标准化功率”(Normalized Power)来弥补平均值的缺陷。这个指标由安德鲁·考根(Andrew Coggan)在2006年出版的《Training and Racing with a Power Meter》一书中系统介绍,算法是:先对功率做30秒滚动平均,再取四次方,求均值后开四次方根。四次方的作用,就是让高强度片段的权重明显大于低强度片段。

再用标准化功率除以平均功率,得到变异指数(Variability Index,VI)。公开的教练资料里常见的经验是:接近1.0说明输出比较平稳,明显高于1.05说明起伏大,多见于起伏路段、成团骑行或有大量冲刺的比赛。这只是经验参考,不是判决线,不同骑行者的耐受度并不相同。

对上面两位示意骑行者,贝博体育骑行AI会这样看:甲的标准化功率大概率贴近200W,变异指数接近1;乙的标准化功率会明显高于200W,变异指数偏大。同样的两小时,训练负荷不该按同一个数字记账。

坡度:让功率有“上下文”

标准化功率只看功率,不知道你为什么在此刻用了这么大的力。坡度补上了这一块。

一段350W的输出,如果发生在8%的坡上,说明骑行者正在稳定爬坡,速度也许只有十几公里每小时;如果发生在平路上,很可能是一次加速或冲刺,随后会进入恢复。两者对身体的意义、对下一段路的影响,都不一样。

贝博体育骑行AI的思路是把功率计、GPS轨迹和海拔数据放在同一条时间线上,先做这几件事:

  1. 用坡度和速度把路程切成爬坡、平路、下坡三类;
  2. 在每一类里再看功率的持续时间,区分“持续爬坡”和“短促冲刺”;
  3. 找出爬坡之后紧跟着的功率下降,判断有没有真正的恢复段;
  4. 对每个片段给出相对个人能力的强度,而不是绝对功率。

这里的“相对个人能力”很关键。同样是300W,对一位阈值功率较高的骑行者来说可能是中等强度,对另一位则已经接近极限。所以强度的参照,来自这位骑行者自己的历史功率记录,而不是一张通用的数值表。

把乙的两小时切开:一条示意时间线

继续用示意数据。假设乙的前二十分钟在城郊平路热身,功率在170至190W之间,看上去毫无压力。之后进入一片丘陵,接下来的一个多小时里,每隔几分钟就是一个一到两分钟的陡坡,乙每次都咬牙顶到340W上下,翻过坡顶就松腿滑行,功率骤降到0至60W。最后二十分钟回到平路,功率又落回190W左右。

如果只把这一条线压成一个数,就是200W。但按上面的切法,系统会得到另一份摘要:热身段负荷很低;中段有十几次持续一到两分钟、明显高于个人阈值的输出,每次之间的恢复只有几十秒到两三分钟;收尾段看似平稳,实际是在已经累积疲劳的状态下骑的。这三段放在一起,才是乙“腿发沉”的原因。

这也解释了为什么贝博体育骑行AI更看重“片段长度和间隔”,而不只是峰值。一次五秒的冲刺和一次两分钟的顶坡,即便峰值一样,对身体的意义差很多;相邻两次高强度之间的间隔太短,恢复不充分,第二次的代价也会更大。间隔多长算“足够”,取决于个人,系统只能从这位骑行者过去的数据里估计一个范围,估不准的时候会写明。

数据从哪里来,会在哪里出错

这条分析链路依赖的输入并不完美,下面这些位置最容易出问题。

  • 功率计零点漂移:多数功率计在骑行前需要做零点校准,温度变化、更换电池、安装位置不当都可能让读数整体偏高或偏低。公开的技术资料提到,温度变化确实会影响读数,所以出发前在车子静止、曲柄稳定时做一次零点偏移,是很值得养成的习惯。如果一次骑行前后零点差得很大,系统只能把这段数据的可信度往下调。
  • GPS海拔误差:GPS给出的海拔本身抖动较大,短坡尤其容易被抹平或夸大。很多码表会用气压计辅助,并用GPS修正气压计的漂移;但没有气压计的设备,坡度估算的误差就会明显变大,短促陡坡可能被漏掉。
  • 滑行与下坡:下坡时功率为0,标准化功率的计算会把它当作真实的0W,这在物理上没错,但不等于身体“休息得很充分”,因为下坡时需要控车、保持姿势,心率并不一定会立刻降下来。
  • 室内与室外混用:室内骑行台上没有坡度,也没有惯性滑行,同一个功率数字在室内更“硬”。混着看数据时,需要先标记场景。

数据不够怎么办?如果一次骑行缺少坡度,贝博体育骑行AI只会给出基于功率分布的评估,并在结果里注明“缺少坡度,无法区分爬坡冲刺与平路冲刺”;如果连续出现大段功率为0或明显异常的峰值,会先当作疑似丢包,不参与负荷估算,而不是硬算一个数字。

对训练安排的影响

分析的目的是决定接下来怎么练。举几个示意的判断:

  • 骑行者乙昨天完成了那次“隐形间歇”,虽然平均功率不高,但高强度累计时间和标准化功率显示负荷偏大,今天更合适的安排是一次真正的轻松骑,或者休息;
  • 骑行者甲昨天负荷偏低,如果他的目标是提升阈值,今天可以考虑一堂结构化的间歇训练;
  • 如果一位骑行者连续几天变异指数都很高,即使每次平均功率都不大,也需要留意恢复,因为长期反复的短促冲刺会累积疲劳。

这些建议是训练层面的参考,涉及疲劳、不适或心率异常时,训练提示不替代医生或专业教练的意见。

功率分布只是训练负荷的一半,另一半是身体的反应。想知道功率和心率各自能说明什么,可以接着看爬坡训练应该看功率还是心率这篇。

模型的边界

有几件事,模型做不到,也不应该假装能做到。

第一,它不能凭空知道你今天的睡眠和压力。同样的功率输出,在状态好和状态差的两天里代价完全不同,如果没有心率、主观疲劳感或历史恢复记录作参照,判断只能停留在“这次骑行客观上有多硬”。

第二,标准化功率本身是一个经验公式,并非对每个人都精确。有的人更耐冲刺,有的人更不耐,它给的是一个统一近似。

第三,路况与风的影响没有被完全纳入。顶风时同样的功率,速度更低,身体付出的代价却一样大;只看坡度不看风,会低估一部分骑行的难度。

所以贝博体育骑行AI在呈现结果时,更像是把一次骑行的“证据”摆出来:这里有几段爬坡、哪段最硬、数据哪里不太可信,然后给出一个训练层面的判断。最终要不要照做,仍然需要骑行者自己的感受和教练的判断来把关。