生活健康 本地计算 开箱即用 内置示例 不留痕迹

心率区间计算器

输入年龄(与静息心率),选择最大心率公式与区间算法,得到最大心率估算值、静息心率、储备心率,以及 Z1~Z5 五个训练区间的 bpm 范围与强度百分比。

跑步手表上的 Z1 到 Z5 五个心率区间,到底哪个是燃脂、哪个练耐力、哪个练冲刺?先得知道自己每区的具体心率范围。填年龄(最好再量个静息心率),两种主流公式与两种区间算法可选,五个区间的每分钟心跳范围与强度百分比一次给出,训练表照着挂就行。

公式与算法口径:最大心率估算有两套——Fox 公式(220 − 年龄,简单但偏差大)与 Tanaka 公式(208 − 0.7 × 年龄,更准);区间算法有「最大心率百分比」与「储备心率百分比」(Karvonen,把静息心率算进去,更个性化)——有静息心率数据时建议用储备心率法。

使用步骤

  1. 填年龄;有静息心率(晨起测量)也填上。
  2. 选最大心率公式:Fox(220−年龄)或 Tanaka(208−0.7×年龄)。
  3. 选区间算法:最大心率百分比或储备心率法(Karvonen)。
  4. 看 Z1~Z5 区间 bpm 范围;有氧基础训练在 Z2。

计算原理与示例

最大心率怎么估

最大心率最常用的是 Fox 公式:220 − 年龄,30 岁得 190。它简单但个体误差可达 ±10~12 次,因此本工具默认用误差更小的 Tanaka 公式 208 − 0.7×年龄(30 岁得 187),另提供 Nes 公式 211 − 0.64×年龄作对照。三者只是估算,真正精确的最大心率需要跑台测试。

百分比法与储备心率法的差别

百分比法直接用最大心率乘强度:Z2(60%~70%)在 30 岁 Tanaka 口径下是 112~131 bpm。储备心率法(Karvonen)先把静息心率算进来:目标心率 = 静息 + 强度 ×(最大 − 静息)。同样 30 岁、静息 60 bpm,Z2 变成 136~149 bpm——因为起点从 0 提到了你的静息心率,区间整体上移,对同一个人更贴近实际。

五个区间各练什么

五区用途:Z1 热身与恢复、Z2 打有氧基础与燃脂(能边跑边正常说话)、Z3 提升有氧耐力、Z4 接近乳酸阈值(只能短句交流)、Z5 用于间歇冲刺。日常训练里大部分时间应待在 Z2~Z3,Z4~Z5 每周控制在一到两次,避免长期高强度导致过度训练。

计算依据:最大心率采用 Fox、Tanaka、Nes 三套公开估算式;训练区间按 Z1~Z5 各 10% 的强度分档。结果为人群估算值,个体差异明显,不构成运动处方,有心血管基础疾病者请遵医嘱。

代码示例

JavaScript 储备心率法五区间

function zones(age, restHr, useTanaka = true) {
  const max = useTanaka ? 208 - 0.7 * age : 220 - age;
  const reserve = max - restHr;                    // 储备心率
  const pct = [0.5, 0.6, 0.7, 0.8, 0.9, 1.0];      // Z1~Z5 边界
  const z = [];
  for (let i = 0; i < 5; i++)
    z.push({
      lo: Math.round(restHr + reserve * pct[i]),
      hi: Math.round(restHr + reserve * pct[i + 1])
    });
  return { maxHr: max, reserve, zones: z };
}

zones(30, 60);   // Z2 ≈ 138~150 bpm(有氧耐力)

Python 同口径的 Python 版

def zones(age, rest_hr, use_tanaka=True):
    max_hr = 208 - 0.7 * age if use_tanaka else 220 - age
    reserve = max_hr - rest_hr
    pct = [0.5, 0.6, 0.7, 0.8, 0.9, 1.0]
    return max_hr, [(round(rest_hr + reserve * pct[i]),
                     round(rest_hr + reserve * pct[i + 1]))
                    for i in range(5)]

zones(30, 60)   # Z2 ≈ (138, 150)

常见问题

最大心率用哪个公式更准?

总体看 Tanaka(208 − 0.7×年龄)比 Fox(220 − 年龄)误差小,本工具默认用它。但两者都只是人群统计式,个体差 10 次以上很常见;要精确值得做一次递增负荷跑台测试或 5 公里全力跑取最后阶段心率。

百分比法和储备心率法差在哪?

百分比法只用最大心率,把 0 当作起点;储备心率法把静息心率当作起点。静息心率越低(有氧水平越好),两者差距越大:静息 50 bpm 的人,Z2 下界可能比百分比法高出近 20 bpm。这也是为什么同样的「60%」在不同人身上体感完全不同。

燃脂心率区间是哪个?

通常指 Z2,约最大心率的 60%~70%。这个强度脂肪供能占比最高,但「占比高」不等于「总量多」——强度更高时虽然脂肪占比下降,总热量消耗更大。减脂关键仍是总消耗与饮食,而不是死守某个区间。

静息心率怎么测才准?

选储备心率法时才需要。建议在早晨刚醒、还没起床时测:手指按住腕部或颈动脉数 60 秒,连续测 3 天取平均。若用智能手表睡眠期数据,取夜间平均而非某个瞬时最低值。

为什么按公式算的区间跑起来偏高或偏低?

常见原因:最大心率估高了或估低了;跑步时心率受气温、脱水、咖啡因、睡眠不足影响可比平时高 5~10 次;手表光学心率在加速度大时也会跳数。建议用「能说话程度」做交叉校准:Z2 应能完整说出一句话。

公式算的最大心率可靠吗?

作为训练分区的起点够用,但对有心血管风险、长期不运动或正在服药的人,不建议直接按公式上强度。运动处方请先咨询医生,必要时做运动心肺功能测试。

吃药会影响心率区间吗?

会。β 受体阻滞剂等药物会显著压低心率,按公式算出的区间会让你实际偏低强度;相反,感冒药中的伪麻黄碱、甲状腺药物可能使心率偏高。用药期间应以医生意见与主观感受为准。

我的年龄和心率数据会被记录吗?

不会上传。最大心率与区间的计算全在浏览器内完成,服务端收不到这些信息。若开启了计算历史,仅写入本机 localStorage,可随时清空;无痕窗口关闭即清除。

延伸阅读

来自本站原创文章,讲清这个工具背后的算法与口径。