为什么要区分训练水平与新鲜度

业余跑者的普通一周:周二间歇,周四节奏跑,周六长距离。中间是轻松跑或休息。到周末双腿沉重,平时配速更难维持。感觉状态下滑了。但这一周里,人可能变得更训练有素——只是累积的疲劳暂时让人感觉不到。

也有相反的情况:休假一周后,感觉“全丢了”。实际上,短暂休息可能主要消除的是疲劳,而数月建立的训练水平几乎会保留。另一个典型错误是赛前加量“求安心”,结果带着疲劳去比赛。

在“状态与疲劳”卡片中,我们区分这些过程:

  • CTL — 状态:缓慢变化的累积训练负荷水平,是训练水平的参考指标。
  • ATL — 疲劳:对近期负荷的快速反应。
  • TSB — 新鲜度:训练水平与疲劳之差。

先说明模型哪里不准:它只看到记录的训练。对睡眠、工作、压力、疾病和饮食一无所知。两个 CTL 相同的人可能状态完全不同。这是讨论负荷的标尺,不是诊断,也不直接测量竞技状态。

我们如何计算

不同训练的统一标尺

我们将跑步、骑行、游泳和心率类运动归到同一基准:

100 分 = 在自己的乳酸阈上跑一小时

在乳酸阈上跑一小时意味着强度 IF = 1.0,正好 100 分——与运动项目无关。这并不是说对肌肉的刺激相同:游泳和跑步对身体负荷的方式不同。这是一个统一的标尺,可以把训练课累加起来,构建完整的负荷历史。

根据数据选择公式:骑行优先用功率,跑步用配速与乳酸阈配速,游泳用速度与临界速度。如果没有合适的数据,就使用心率。

骑行:功率 → NP → IF → TSS。 Andrew Coggan 和 Hunter Allen 的方法见 Training and Racing with a Power Meter(2006)。标准化功率 NP 考虑了间歇性输出比同样平均功率的平稳输出更费力。经典定义:

NP =(30 秒滑动平均功率值的 4 次方的平均值)^(1/4)

IF = NP / FTP

TSS = 秒数 · IF² / 3600 · 100

FTP 是运动员的乳酸阈功率。先评估相对于其乳酸阈的强度,再考虑持续时间。我们实现 NP 的局限——按分段而非逐秒数据流计算——下面会详细说明。

跑步:配速 → 坡度修正 → rTSS。这里采用 Philip Skiba(2006)的方法:

IF = 标准化等效平路速度 / 乳酸阈速度

rTSS = 秒数 · IF² / 3600 · 100

坡度修正采用 Minetti 等人论文 Energy cost of walking and running at extreme uphill and downhill slopes(2002)中的多项式。它描述了不同坡度下跑步的能量消耗。缓慢爬坡会换算成等效平路速度:否则仅因配速,艰难的上坡跑看起来就像一节轻松的训练课。

游泳:速度 → CSS → sTSS。CSS 是游泳临界速度,方法来自 Wakayoshi 等人(1992)。负荷计算采用 Skiba 的 SwimScore 方法(2006):

IF = 速度 / CSS

sTSS = 秒数 · IF³ / 3600 · 100

这里是三次方,不是平方。水的阻力大约随速度的平方增长,而所需功率随三次方增长。因此,在相同持续时间下,游快 10% 按此模型大约要多付出 33% 的代价。

仅心率:按阈值折算的 TRIMP。 基础是指数型 TRIMP:Banister(1991)、Morton、Fitz-Clarke 和 Banister(1990)。

HRr = (心率 − 静息心率) / (最大心率 − 静息心率)

TRIMP = 分钟数 · HRr · 0.64 · e^(k · HRr)

系数 k = 1.92 用于男性,1.67 用于女性——这是 Green 及其同事的系数。HRr 表示做功占心率储备的比例。

原始 TRIMP 既无法与 TSS 比较,也无法在人与人之间比较。因此我们单独计算同一个人在其阈值心率下 60 分钟的 TRIMP:

负荷 = 训练课 TRIMP / 自身阈值心率下一小时的 TRIMP · 100

这样心率评估也有了参照点「阈值下一小时 = 100」,而不只是给原始 TRIMP 换个名字。

阈值从何而来

整个量表都取决于阈值:功率、速度或心率——取决于公式。阈值偏低会高估负荷,偏高会低估负荷。因此我们明确了数据来源的优先级。

  • 经测试确认或手动输入的阈值是唯一可信来源。 180 天后我们会将其标记为过期,并建议重新验证。
  • Garmin LT 在不超过 120 天且没有优先的确认值时使用。
  • 估算值 是备用方案。对于心率:阈值心率 ≈ 0.9 × 最近 180 天的最大心率

Seiler 和 Tønnessen(2009)的综述针对训练有素的运动员讨论了最大心率的 0.85–0.92 区间;我们取 0.9。如果活动中没有实际最大心率,则使用 Tanaka、Monahan 和 Seals(2001)的公式:

HRmax = 208 − 0.7 × 年龄

误差约为 ±10 次,因此该公式不能替代个人测量。计算出的阈值我们会在卡片和教练回复中标记为“估算值”

如果没有确认的阈值跑配速和 Garmin LT,则取最接近 60 分钟的距离预测。依据是 Jack Daniels 在 Daniels’ Running Formula 中的实践参考:阈值配速可维持约一小时。游泳临界速度根据实际游程评估——按照 Wakayoshi 方法,以“距离—时间”直线的斜率计算。

从当日负荷到 CTL、ATL 和 TSB

基础是 Banister(1975、1991)的“脉冲—响应”模型,曲线的实际形式来自 Coggan 和 TrainingPeaks。一次训练同时增加长期体能和短期疲劳,但这两种效应以不同速度消退。

将当日计入的负荷相加并更新曲线:

CTL(t) = CTL(t−1) + (当日负荷 − CTL(t−1)) · (1 − e^(−1/42))

ATL(t) = ATL(t−1) + (当日负荷 − ATL(t−1)) · (1 − e^(−1/7))

TSB(t) = CTL(t−1) − ATL(t−1)

CTL 的时间常数为 42 天,ATL 为 7 天。这是指数平滑,而非固定窗口的平均值:旧训练会逐渐降低权重,而不是在特定某天从计算中消失。

TSB 按昨天的曲线计算。它代表你进入今天时的状态新鲜度。否则今天的训练会立刻改变晨间指标:同样的早晨会因为手表是否已同步而显示不同结果。

没有训练的日子是负荷为 0,而不是缺失记录。两条曲线都会下降,ATL 下降更快。如果跳过空白日,生病期间状态就不会下降,休息也会被当作维持原有负荷。

为了启动计算,我们在可见窗口之外使用更宽的曲线:采用四个 CTL 时间常数,即168 天。在这段时间内,恒定负荷下指数会达到平台期的98%。这样图表开头受人为零点的影响更小。左边缘误差无法完全消除:我们不知道第一条记录之前的历史。从零开始时,未计入的前史总会低估状态。

瑜伽和拉伸会获得心率评估并保留在日志中,但不计入 CTL 和 ATL。活动度、呼吸练习和冥想也是如此。在训练准备度模型中,一小时拉伸不应与一小时乳酸阈训练等同。

我们如何保护图表免受异常输入影响

正确的公式无法修正错误的数据。在真实数据中,我发现过轨迹拼接导致的2:45 内 189 公里“跑步”、rTSS 8519,以及因圈数重叠导致强度为1.88、慢于乳酸阈的越野跑记录。没有校验时,这类记录会长期破坏图表。

我们添加了限制:

  • 平均速度:跑步上限为7 米/秒,骑行为17 米/秒,游泳为2.2 米/秒。超过时不信任距离和配速,改用心率并将训练标记为可疑。作为参照:马拉松世界纪录约为5.7 米/秒。这是数据过滤器,不是对人类极限的断言。
  • 坡度:限制在±30%。Minetti 测量到±45%,但我们的海拔数据有噪声。一个“坡度 40%”的片段在四次方平均后可能压过其余训练。
  • 标准化速度:如果它超过平均速度1.5 倍以上,则采用平均速度。这几乎总是分段数据损坏,而不是剧烈间歇。在这里低估评估比给出不可能的负荷更安全。
  • 按持续时间限制强度:超过一小时的工作上限为1.15,超过 20 分钟为1.30,更短工作为1.50。IF = 1 约对应一小时乳酸阈工作。在该持续时间下明显大于 1,说明输入可疑或乳酸阈被低估;保留到 1.15 的余量也用于估算乳酸阈。
  • 统一时间基准:持续时间和强度来自同一来源——各段之和。不能按运动估算强度,再乘以包含停顿的总时间。

这对运动员有什么帮助

我们在卡片中显示以下 TSB 区间:

  • 低于 −30 — 严重疲劳。模型中这表示过度负荷;该计划减量了。
  • −30 到 −10 — 累积疲劳。发展训练块中的常见情况,但不应是比赛前的目标。
  • −10 到 +5 — 工作状态。常规训练模式。
  • +5 到 +25 — 新鲜。按模型量表,适合比赛或高强度训练的状态。
  • 高于 +25 — 休息过久,状态流失。此时的新鲜不一定意味着能好好发挥。

这是 PMC 的通用实践,不是生理阈值。这些数字本身没有单独的生理意义。每个人要通过自己的比赛寻找“赛前”TSB:对照图表、主观感受和比赛表现。

关于 CTL 的增长,Coggan 有一个参考标准——每周不超过 5–8 分。这不是安全规则:增长较小并不能保证负荷适合你。这个提示的意义在于,不要让训练量的增长速度超过你能承受的程度。急剧增长往往会导致生病或错过训练课。我们会用数字显示每周增长,但不会自动禁止任何操作。

赛前减量利用曲线不同的下降速度。在 7–14 天内,训练量减少,强度保持不变。疲劳消退比体能更快——时间常数分别为 7 天和 42 天。因此就绪度上升,而累积的训练水平变化要慢得多。为了“求安心”而额外加练,恰恰可能干扰这一过程。

这对 AI 教练有什么用

计划负荷和实际负荷我们用同一个公式计算。因此计划和实际可以在同一尺度上比较,而不是用“轻松”和“吃力”这样的词。

在精简的每日计划中,教练会发送三个部分:做什么、根据天气穿什么、训练课会对状态产生什么影响。最后一项的格式例如:“负荷 62;状态 48 → 48.3,就绪度 −6 → −6.7”。这是基于未取整原始值的预测,而不是对主观感受的承诺。完成后的就绪度已经属于第二天。

预测使用与实际相同的指数:如果实际负荷与计划负荷一致,曲线计算也会一致。如果训练课被缩短或以其他方式完成,图表将按实际重新计算。单独的 “计划 → 实际 → 状态” 分析功能我们正在开发中;不承诺具体时间。

另一项任务是核对阈值。如果 Garmin 与我们的数值相差超过 5%,我们会建议通过按钮更新阈值,而不是悄悄更改。在重新计算时替换阈值,可能会追溯性地改变整个负荷历史。

这与 TrainingPeaks 有何不同

Performance Management Chart 是 TrainingPeaks 和 Coggan 的开发成果。他们的术语是 Fitness / Fatigue / Form;在我们的卡片中对应训练水平、疲劳和就绪度。NP、IF 和 TSS 是他们的注册商标指标。我们使用相同的基础,但围绕它构建不同的产品。

功能TrainingPeaks1trAIner
PMC:CTL、ATL、TSB有:42 天和 7 天,TSB 基于昨天的曲线有:相同的时间常数和昨天的 TSB
不同运动项目的负荷基于功率的 TSS、hrTSS、rTSS、sTSS统一尺度:跑步按坡度修正、骑行、游泳、相对于乳酸阈一小时的 TRIMP
NP、IF、TSS有,注册商标指标按分段计算,而非逐秒数据流
Pa:Hr——心率与配速的偏差有,适用于 45 分钟以上的训练课
年度计划ATP:计划训练量和基于 TSS 的规划有,由 AI 编写;没有像 ATP 那样基于 TSS 的年度规划
PMC 计划曲线前瞻没有;单次训练课的预测不能替代它
峰值表现和功率Peak Performances、平均最大功率曲线没有峰值功率曲线
结构化训练课有,可发送到手表有,可导出文件;在获得所有者许可前,自动发送到 Garmin 已关闭
教练面向真人教练的平台;含教练的单独价格方案每月 $149 起。Premium 中没有我们的 AI 教练场景没有真人教练。AI 制定和改写计划、分析训练课、在聊天中回复
价格和免费试用Premium:每月 $19.95 或每年 $134.99,14 天免费——价格方案页面,2026 年 9 月450 ₽/月或 4999 ₽/年,7 天免费

TrainingPeaks 是相应公司的注册商标。我们不认为自己是他们分析功能的替代品,也不在功率分析的深度上竞争。区别在别处:那里是给你和你的教练用的工具,我们这里教练就在产品内部。

关于精度的重要限制:我们没有逐秒的功率和配速数据流——Garmin 提供的是各区间时间和分段。归一化数值我们按分段计算:在平稳骑行时,这几乎与经典 NP 一致;在剧烈间歇时,会低估。通用公式无法消除这种细节损失。

负荷模型是对话式量表,而非医学评估。它只计算训练,对睡眠、压力和疾病一无所知。请以主观感受为准,若出现疼痛或不适,请咨询医生。

来源