news 2026/10/8 18:46:38

openGym 减载周(Deload)机制揭秘:3 次卡滞自动触发 0.9 系数恢复,告别平台期

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
openGym 减载周(Deload)机制揭秘:3 次卡滞自动触发 0.9 系数恢复,告别平台期

openGym 减载周(Deload)机制揭秘:3 次卡滞自动触发 0.9 系数恢复,告别平台期

【免费下载链接】openGymSelf-hosted gym & body-weight tracker — plan routines, log workouts (supersets, warm-ups, cardio), see which muscles are trained, fatigued or detrained, import from FitNotes/Strong/Hevy, passkey login. Your data, your server.项目地址: https://gitcode.com/GitHub_Trending/op/openGym

openGym 是一款自托管的健身与自重训练记录工具:规划训练计划、记录卧推/深蹲等动作(支持超级组、热身、有氧)、查看肌肉被训练、疲劳还是去训练状态,并支持从 FitNotes / Strong / Hevy 导入数据。它的进阶引擎内置了减载周(Deload)机制——连续 3 次训练卡在同一重量上时,自动按0.9 系数下调目标重量,帮你科学度过平台期。

什么是减载周?为什么需要它

增力训练遵循"超量恢复":重量不断上探 → 身体恢复不过来 → 力量停滞。传统的解法是人工安排减载周,但多数人要么忘了安排,要么不知道何时该减。

openGym 的答案是:把减载写进进阶策略里,由训练日志自动驱动。你只需要照常记录,引擎替你判断"该减了"。

源码里的三个关键常量:0.9 系数与触发次数

所有减载逻辑集中在 progression.js,核心常量一目了然:

常量值含义
DELOAD_FACTOR0.9减载系数,目标 1RM 打九折(见 progression.js)
DELOAD_AFTERlinear/double/time 为3,Greyskull 为 1连续卡滞几次后触发减载
DELOAD_FACTOR_MIN / MAX0.5 / 0.95用户可调系数的上下限

不同进阶策略对"卡滞"的容忍度不同:线性进阶(linear)和双重进阶(double)允许连续 3 次未达标,而 Greyskull(以力竭收尾)1 次失败就触发减载——因为它的最后一组本来就要做到力竭,失败意味着负荷明显超出当前能力。

卡滞是如何被检测的:stallCount 的判定逻辑

每次打开训练,引擎都会从日志"现场重算",没有任何缓存计数器,改错一组的记录立刻得到修正的下一步目标(见 progression.js 顶部注释)。

1. 先判定单次训练成败(readSession)

  • 组完成且次数 ≥ 目标 →达标(hit)
  • 组完成但次数不足、或组数没练够 →未达标(miss)
  • 只统计计划内的组数,加练的"彩蛋组"不影响判定

2. 再数连续卡滞次数(stallCount)

从最近一次训练往回数,数未达标的场次。这里有两个巧妙的"逃生阀",避免误伤:

  • 🔄重量一变,计数清零:减载后的较轻重量上偶发一次失误,不会立刻触发下一次减载(防止"减载螺旋")
  • 📈双重进阶下,打破当前重量最佳即算进步:只要在爬坡次数,就不会被判为卡滞

0.9 系数如何恢复:Epley 公式 + 重量网格对齐

触发减载后,openGym 走的是更精细的Epley 1RM 估算路径(selectDeloadCandidate):

  1. 估 1RM:用 Epley 公式重量 × (1 + 次数/30)估算卡滞目标的 1RM(epley1RM)
  2. 打九折:目标 1RM × 0.9(deloadTarget1RM)
  3. 反向求解:反推出"什么重量 × 什么次数"最接近打折后的 1RM
  4. 对齐重量网格:结果必须落在杠铃片能装出的重量上,且绝不超过卡滞时的重量——所以 5 kg 起步的空杆不会掉到 2.5 kg,而是保持 5 kg、改为更少的次数

候选项按"1RM 误差最小 → 次数改动最小 → 负荷更大"的字典序排序,结果可预测、可解释。界面上每次给出的目标都会附带一句原因,例如:

Stalled 3 sessions — Epley deload to 47.5 kg for 8 reps. (连续 3 次卡滞 —— 按 Epley 公式减载到 47.5 kg × 8 次)

如何在 App 中使用:设置、开关与自定义系数

查看与建议来源:打开一次训练时,每个动作的目标重量都是引擎实时推算的,点开就能看到"为什么是这个数字"(见 session-start.js)。

手动安排减载日:在编辑训练计划中(RoutineEdit.jsx)打开"Deload routine"(减载训练日)开关——这类训练日按你自己填的组数/次数/重量开始,不计入自动进阶基线,但正常出现在历史和统计里,适合做每周/每四周的计划性减载。

自定义减载系数:在动作的进阶设置面板中(sheets.jsx)有"Deload 1RM (%)"步进器,默认 90%,以 5% 为步长,可在 50%–95% 之间调整,且每个动作独立设置——比如硬拉保守一点调到 85%,腿推激进一点保持 95%。

小结:把"平台期"交给算法

特性openGym 的做法
触发条件连续 3 次(Greyskull 1 次)未达标
减载幅度默认按 Epley 1RM 的 90%,可逐动作调整
安全保障减载后重量变轻即重置计数,不会连续减载
数据基础纯函数重算,无缓存状态,改记录即修正

不需要记忆任何公式,也不需要第三方教练——把训练照常练、如实记,openGym 的减载周机制会在你卡住时自动按下"恢复键"。更多背景可查看 CHANGELOG.md 中 "Deloads aim at an estimated 1RM" 的完整说明。

【免费下载链接】openGymSelf-hosted gym & body-weight tracker — plan routines, log workouts (supersets, warm-ups, cardio), see which muscles are trained, fatigued or detrained, import from FitNotes/Strong/Hevy, passkey login. Your data, your server.项目地址: https://gitcode.com/GitHub_Trending/op/openGym

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/8 18:44:56

YOLO交通标志检测完整项目:Python源码、数据训练与PyQt5系统构建

YOLO交通标志检测完整项目:Python源码、数据训练与PyQt5系统构建 本项目使用YOLO和PyQt5构建交通标志检测系统,支持图片、文件夹、视频和摄像头输入,输出目标框、类别、置信度及结果表格。我是孔一学长,这篇按工程实现过程介绍项目…

作者头像 李华
网站建设 2026/10/8 18:44:52

Python爬虫实战:打造网页快照归档器,用XPath提取正文与长图截图

最近总在整理自己的收藏夹,发现一个很扎心的事实:很多当年认真保存的文章,链接已经打不开了;有些技术文档还活着,但页面被改版得面目全非,旧版本再也找不回来。我后来琢磨了一个Python爬虫小项目&#xff0…

作者头像 李华
网站建设 2026/10/8 18:44:11

IDA自动命名规则全解析:读懂sub_、loc_与off_前缀,快速上手逆向分析

每次拿到一个陌生二进制,第一件事就是按F5看伪代码。可屏幕刷出来满屏的sub_401000、loc_4082A0、byte_4134DC时,多少人会头皮发麻?这些名字看着像乱码,其实它们是 IDA 自动生成的默认命名规则,一套信息密度极高的“地…

作者头像 李华
网站建设 2026/10/8 18:41:48

技术专家路线被低估?真正的影响力来自让价值被看见

去年和一个做后端架构的朋友吃饭,他诉苦说自己在技术专家这条线上干了快十年,从普通开发一路做到架构师,结果年初绩效评定时,领导给他的反馈是“技术深度没问题,但影响力不够”——理由是没有带过完整团队,…

作者头像 李华