打开 Garmin Connect,看一眼训练状态;切到 Strava,瞄一下 Fitness & Freshness;再到intervals.icu,盯着 Fitness 曲线缓慢爬升——数字在涨,心里踏实。
但你有没有想过一个问题:这些平台说的"体能",算的是同一件事吗?
答案是:不是。而且差别可能比你想象的大。
这篇文章不评测软件,不推荐平台。它要做的事情更基础:把你每天看的那几条线拆开,看看里面装的到底是什么,以及它在什么时候会误导你。

一、你看到的那三条线,本质上是一个"记忆力不同的计算器"
所有主流训练平台——无论叫 Fitness / Fatigue / Form,还是叫"体能 / 疲劳 / 状态"——背后都是同一个思路。可以用一个比喻来理解:
想象你有两个助手,每天你训练完都把"今天练了多少"告诉他们。
第一个助手记性好,记42天。 他会把你过去一个半月的训练量做一个衰减平均——越近的权重越大,越远的越淡。这就是 Fitness(体能)。它反映的是:你最近这段时间一共积累了多少训练刺激。
第二个助手记性差,只记7天。 他只看你最近一周的训练量,同样越近权重越大。这就是 Fatigue(疲劳)。它反映的是:你最近这几天背了多少负担还没消化。
Form(状态)= Fitness - Fatigue。 当短期疲劳超过长期积累,Form 是负数,软件说"你累了";你休息几天,疲劳消退得比体能快,Form 回正,软件说"你状态不错"。
关键认知:这里的"体能"不是你的最大摄氧量,不是你的乳酸阈值,更不是你跑出去的真实配速。它只是一个数学滤波器对你训练负荷序列做平滑后的输出。
它不知道你的肌肉状态,不知道你昨晚睡了几个小时,不知道你今天心情好不好。它只知道过去42天你每天往里面喂了多大的负荷数字。

二、喂进去的"训练负荷",各平台算法就已经不一样了
Fitness 曲线能不能反映真实状况,完全取决于每天喂进去的那个"训练负荷"数字靠不靠谱。而这一步,恰恰是各平台分歧最大的地方。
骑行是最透明的。 有功率计的骑行,各平台都用类似的逻辑:看你骑了多长时间、强度有多大(相对于你的 FTP),算出一个负荷分。差异不大。但 intervals.icu 有一个自己的规矩——停下来的时间不算。你在便利店买水的5分钟,不会增加训练负荷。TrainingPeaks 则有可能把那段时间也算进去。
跑步是分歧最大的地方。 这里有一个很多人不知道的区别:
intervals.icu 计算跑步负荷时,用的是你整段训练的平均配速(如果有坡度修正就用 GAP 均值),然后基于这个均值算强度。
TrainingPeaks 用的是另一个概念——归一化配速(NGP)。它的做法类似骑行里的 Normalized Power:不是简单求平均,而是让高强度段获得更大的权重。
这意味着什么? 如果你做的是稳态节奏跑,两种算法差别不大。但如果你做的是间歇训练——比如 6 × 1 公里快跑,中间慢跑恢复——intervals.icu 会把快跑和慢跑"平均"在一起,算出一个远低于你体感的负荷数字。
打个比方:你上午在公司开了4个小时高强度会议,下午摸了4个小时鱼。如果有人用"平均工作强度"来评价你这一天,会说"还好,中等强度"。但你知道真实情况是什么:你上午已经累到发昏了。
间歇跑对身体的刺激也是一样——平均配速掩盖了高强度段的真实代价。
心率负荷则有好几种模型可选,各有长短。 intervals.icu 至少支持三种:一种是拿你历史上"既有功率又有心率"的训练去训练一个预测模型,然后反过来估算纯心率训练的负荷——听起来很聪明,但如果你的历史数据不够多,它就会退回到一个通用模型,精度打折;另一种是基于心率储备做加权积分(HRSS),相对跨运动更稳定;还有一种最简单的平均心率模型,准确度最差但门槛最低。
Garmin 则走了一条完全不同的路。 它用的是 Firstbeat 的 EPOC 模型,从"你运动后身体额外消耗了多少氧气"的角度来估算训练刺激。这跟上面说的 TSS/TRIMP 体系根本不是一套度量衡,所以 Garmin 的训练负荷和 intervals.icu 的训练负荷不能放在一起比。
三、同一次训练,四个平台给你四个结果——原因在三层
知道了前面的背景,你就能理解一个常见困惑:为什么同一个人、跑了同一次训练,在不同平台上看到的体能曲线可以长得完全不一样。
差异来自三层,像洋葱一样层层叠加。
第一层:负荷口径不同。
intervals.icu 的跑步用平均 GAP,TrainingPeaks 用归一化配速,Garmin 用 EPOC,Strava 用心率和功率的混合模型。同一次间歇跑训练,四个平台算出的那个"今天练了多少"的数字就可以差 20-30%。
第二层:日界定义不同。
这是一个很少有人注意、但影响很大的技术细节:
intervals.icu 的 Form 是"你今天做完训练之后的状态"。TrainingPeaks 的 Form(TSB)是"用昨天的体能和疲劳之差来代表今天的状态"。
什么意思呢?在 intervals.icu 上,你早上做完一次高强度训练,当天的 Form 就会立刻下降;在 TrainingPeaks 上,这次训练的影响要到明天才体现在 Form 里。
结果就是:同一天你打开两个平台,intervals.icu 可能显示 Form = -15,TrainingPeaks 显示 Form = -8——不是谁算错了,是它们对"今天"这个概念的定义不同。
第三层:阈值设置没对齐。
FTP 差 5 瓦、阈值配速差 5 秒/公里、静息心率差 3 次——这些看起来微小的设置差异,经过每天递推、累积42天,可以让最终的 Fitness 数值偏移 10-15%。
结论:如果你在不同平台之间比较 Fitness 数字,先检查这三层。绝大多数"平台不一致"发生在口径层面,不是某个平台算错了。

四、就算只用一个平台,这套体系也有三个结构性盲区
把所有设置校准一致,只看一个平台,只盯一条曲线——这套系统仍然有它回答不了的问题。
盲区一:它分不清训练类型。
无论你今天做的是30公里慢跑还是10组400米间歇,只要最终算出的 session 负荷是同一个数字,它们对 Fitness 曲线的贡献就完全相同。但你的身体知道这不一样——慢跑练的是有氧耐力,间歇练的是速度和无氧能力。
这是这套体系最根本的局限:它把"练了什么"压缩成了"练了多少"。
盲区二:间歇跑的负荷被系统性低估。
前面已经说过原因:均值会被低速段拉低。这不是某个平台的 bug,而是用均值来代表波动训练的固有缺陷。骑行功率侧有归一化处理(Normalized Power)来部分解决这个问题,但 intervals.icu 的跑步侧目前没有做类似处理。
如果你的训练里有大量间歇,你的实际训练刺激可能比平台显示的要大。这意味着你"以为还有余量"的时候,身体可能已经在透支边缘了。
盲区三:它不知道你恢复得怎么样。
Fatigue 曲线的下降速度是固定的——大约7天的衰减周期。它不会因为你昨晚只睡了4小时就衰减得更慢,也不会因为你做了冰浴和拉伸就衰减得更快。
Form 从负数回到零,不等于你真的恢复好了。也有可能你的睡眠、营养、心理压力根本没到位,只是数学上的"疲劳"过期了。
五、知道这些之后,怎么用才更聪明?
这些数字不是没用——它们是很好的趋势管理工具。但要用对,需要几个意识转变。
第一,先把设置调准。
这是性价比最高的一步。不需要理解公式,只需要确认以下几项是否准确:

第二,根据训练类型判断负荷数字的可信度。
不是所有训练的负荷数字都同样靠谱:
• ✅ 稳态骑行(有功率计):最可靠,各平台差异最小 • ✅ 稳态跑 / 节奏跑 / 长距离:配速负荷基本够用 • ⚠️ 间歇跑 / 坡道冲刺 / 法特莱克:负荷很可能偏低,需要心里"加个码" • ⚠️ 力量训练 / 交叉训练:负荷估算本身就不稳定,不要当真
第三,看趋势,不看绝对值。
"我的 Fitness 是 65"这个数字本身没有太大意义。有意义的是:"我的 Fitness 从3周前的 50 涨到了 65"——这说明你在持续累积训练刺激。或者:"我的 Fitness 从 65 连续两周掉到 55"——这说明你最近训练量在下降。
趋势和方向比任何一天的绝对值都重要得多。 而且,只在同一个平台内部比较你自己的曲线变化,不要跨平台比数字。
第四,Form 是参考线,不是红绿灯。
Form 回到 0 以上,不等于"可以拼了";Form 跌到 -20,不等于"必须休息"。它只是告诉你"按照数学模型,你最近的短期疲劳和长期积累之间大概处于什么位置"。
在这条参考线之外,你自己的身体才是最终裁判:今天腿感怎么样?睡眠质量如何?有没有不明原因的心率漂移?情绪上想不想跑?
这些软件不会替你回答这些问题。它们只是你的仪表盘——而开车还是要看路的。
📌 这篇文章整理了训练平台体能/疲劳/状态数字的底层逻辑和常见误区——如果你在用任何训练平台管理训练,建议收藏这篇,下次看到数字觉得"不对劲"的时候翻出来对照。
💬 你有没有因为训练软件上的某个数字,改变过自己的训练安排——事后发现其实是数字"骗"了你?欢迎在评论区聊聊你的经历。
夜雨聆风