力量训练 DSL
在 Trainingload.ai 的规则输入模式中,用动作、组方案、负重、RPE 或 RIR 和休息时间编写并校验完整力量训练。
力量训练 DSL
力量训练 DSL 是力量训练编辑器的文字形式。需要快速录入教练课表、批量调整训练组,或者检查系统实际保存的结构时,可以使用它。一份 DSL 表示一节静态力量训练;每个动作中包含一个或多个热身组或正式组。
开始前准备
- 打开一节可编辑的训练,并把运动类型选为力量训练。
- 选择规则输入标签页。手动设置会用表单编辑同一份训练结构。
- 先确认哪些负重有可靠依据;不知道重量时使用
open,不要猜测公斤数或 1RM 百分比。 - 动作提示和注意事项写在训练备注中。DSL 只写训练安排,不写说明性段落。
从最小可用示例开始
把下面内容粘贴到规则输入:
exercise "高脚杯深蹲" equipment dumbbell {
work 3x8 open rir 3 rest 90s
}然后点击校验输入。这段内容表示:
- 一个名为“高脚杯深蹲”的动作;
- 使用哑铃;
- 3 个正式组,每组 8 次;
- 不指定具体负重;
- 每组保留 3 次余力;
- 每组后休息 90 秒。
一节有效的力量训练至少需要一个动作。每个动作必须填写带双引号的非空名称,并且至少有一行 work。
一节包含两个动作且已通过校验的力量训练,下方预览显示解析后的训练结构。
先看懂整体结构
一节完整训练分为三层:
duration 50m
session rpe 6
exercise "杠铃深蹲" equipment barbell {
warmup 1x5 weight 40kg rest 90s
work 3x5 weight 80kg rpe 7 rest 3m
}duration和session rpe描述整节训练,均可省略,并且各自只能出现一次。exercise "…" {开始一个动作,右大括号}结束这个动作。- 动作内部的
warmup和work分别表示热身组和正式组。
空行不会影响解析。DSL 不支持注释和普通说明文字。
填写整节训练设置
在第一个动作前可以写:
duration 50m
session rpe 6duration 支持秒、分钟和小时,例如 45s、50m、1.5h。它表示整节训练的预计时长,不是某一组的时间。
session rpe 的范围是 1–10,表示整节训练的计划主观强度。它与组方案中的 rpe 不同:组方案 rpe 只描述对应几组动作的用力程度。
添加动作
基本写法如下:
exercise "罗马尼亚硬拉" {
work 3x8 open rir 2 rest 2m
}动作名称必须放在英文双引号中,且不能为空。名称可以直接写中文。如果名称本身包含双引号,写成 \";需要保留反斜杠时写成 \\。
器械可以省略:
exercise "罗马尼亚硬拉" equipment barbell {器械代码只支持英文字母、数字、连字符和下划线,保存后会统一为小写。建议使用稳定代码,例如 barbell(杠铃)、dumbbell(哑铃)、bodyweight(自重)、cable(绳索)或 machine(固定器械)。
编写一个组方案
为了便于阅读,建议按下面的固定顺序书写:
work 训练方式 负重 强度 rest 休息时间只有 warmup 或 work 以及训练方式是必填项。省略负重时系统会按 open 处理,但显式写出 open 更容易确认意图。强度和休息时间可以省略。
| 部分 | 支持的写法 | 示例 |
|---|---|---|
| 组类型 | warmup 或 work | work |
| 训练方式 | 固定次数、次数范围、AMRAP 或计时 | 3x5、3x8-12、1x5+、3x45s |
| 负重 | 不指定、固定重量、1RM 百分比或自重 | open、weight 80kg、weight 75%1rm、bodyweight |
| 强度 | RPE 或 RIR | rpe 7、rir 2 |
| 休息 | rest 后接时长 | rest 90s、rest 3m |
一个动作可以包含多个组方案:
exercise "杠铃深蹲" equipment barbell {
warmup 1x8 weight 20kg rest 60s
warmup 1x5 weight 40kg rest 90s
work 3x5 weight 60kg rpe 7 rest 3m
}热身组可以省略,但每个动作至少需要一个正式组。只有 warmup、没有 work 的动作无法通过校验。
选择次数或计时方式
| 训练目标 | 写法 | 含义 |
|---|---|---|
| 固定次数 | 3x5 | 3 组,每组 5 次 |
| 次数范围 | 3x8-12 | 3 组,每组 8–12 次 |
| AMRAP | 1x5+ | 1 组,基准次数为 5,并标记为尽可能多次 |
| 计时组 | 3x45s | 3 组,每组 45 秒 |
| 分钟计时 | 2x1.5m | 2 组,每组 90 秒 |
组数和次数必须是正整数。次数范围要把较小值写在前面。
选择负重方式
不指定负重
work 3x10 open rir 3 rest 90s如果运动员需要当天根据状态选重量,或者没有可靠的历史负重数据,使用 open。
固定重量
work 3x5 weight 80kg rpe 7 rest 3m
work 3x5 weight 175lb rpe 7 rest 3m数值与单位之间不能有空格,单位只能写 kg 或 lb。
1RM 百分比
work 4x4 weight 80%1rm rest 3m只有该动作具备可靠且仍然有效的 1RM 时才使用。百分比必须大于 0,且不能超过 100。
自重与自重增减
work 3x8 bodyweight rir 2 rest 90s
work 3x6 bodyweight +10kg rpe 8 rest 2m
work 3x8 bodyweight -20kg rir 2 rest 2m+10kg 表示额外负重;-20kg 表示通过辅助减少等效自重负荷。
选择 RPE 或 RIR
同一个组方案只能使用一种主观强度方式:
work 3x5 weight 80kg rpe 7 rest 3m
work 3x8 open rir 2 rest 2mrpe支持 1–10。rir支持 0–10。- 同一行不能同时写
rpe和rir。
RPE 和 RIR 只是训练提示,不会自动计算负重。写入 rpe 7 后,Trainingload.ai 不会自行生成或调整公斤数。
编写一节完整中文训练
动作名称属于用户内容,可以使用中文;exercise、work、weight 等关键字必须保留英文,因为它们是 DSL 语法,不是尚未翻译的界面文字。
duration 45m
session rpe 6
exercise "杠铃深蹲" equipment barbell {
warmup 1x8 weight 20kg rest 60s
warmup 1x5 weight 40kg rest 90s
work 3x5 weight 60kg rpe 7 rest 3m
}
exercise "俯卧撑" equipment bodyweight {
work 3x8-12 bodyweight rir 2 rest 90s
}
exercise "平板支撑" equipment bodyweight {
work 3x45s bodyweight rest 60s
}这节训练包含三个动作:固定重量与次数、自重次数范围,以及自重计时训练。
校验、对照并保存
- 点击校验输入。
- 如果出现错误,先处理系统报告的第一处行号,不要同时大范围改写。
- 对照力量训练预览,确认动作数量和正式组数量。
- 切换到手动设置,可以用表单检查解析后的每个字段。
- 返回规则输入,确认规范化后的 DSL 含义没有变化。
- 点击保存草稿,重新打开该训练并再次核对。
保存时,系统可能把关键字、器械代码和单位统一为小写,也可能补出明确的 open。这些属于格式规范化。动作、组数、训练方式、负重、强度或休息发生变化,才表示训练含义改变。
DSL 不支持哪些内容
力量训练 DSL 是静态训练安排,不能写入:
if/else或其他可执行逻辑;- 跨周进阶和减量规则;
- 嵌套动作块;
- 用逗号分隔的属性;
- 可执行的进阶脚本;
- 备注和教练说明段落。
面向运动员的说明应放在训练备注中。无法支持的外部脚本应保留在原系统,不能擅自转换成含义不同的训练安排。
验证训练结果
- 运动类型是力量训练,不是耐力运动。
- 每个动作都有带双引号的非空名称。
- 每个动作至少包含一个
work正式组。 - 次数范围从小到大排列。
- 每个组方案最多只有一种负重和一种主观强度方式。
- 预览显示的动作和正式组数量符合预期。
- 保存后重新打开,训练含义保持不变。
故障排查
| 报错或现象 | 处理方法 |
|---|---|
| 动作名称不能为空 | 在双引号中填写名称,例如 exercise "杠铃深蹲" {。 |
| 力量训练至少需要一个动作 | 添加一个完整的 exercise 动作块。 |
| 每个动作至少需要一个正式组 | 增加一行 work;只有热身组的动作无效。 |
| 组方案格式无效 | 使用 3x5、3x8-12、1x5+ 或 3x45s 这样的计时写法。 |
| 最大次数不能小于最小次数 | 把 3x12-8 改成 3x8-12。 |
| RPE 和 RIR 不能同时使用 | 从该组方案中删除一种主观强度目标。 |
| 重量格式无效 | 使用 weight 80kg、weight 175lb 或 weight 80%1rm,数值与单位之间不要加空格。 |
| 不支持的组属性 | 删除说明文字、逗号、未知关键字或动态逻辑。 |
| 动作缺少右大括号 | 在该动作最后一个组方案后补一行 }。 |
| 切换运动类型后编辑器内容被替换 | 耐力训练和力量训练使用不同结构;切换前先复制或保存 DSL。 |