五维储备统一动态系统模型 v2.0 Final

运动(Fitness-Fatigue)× 饮食(非线性 DQS)× 睡眠(恢复动力学)· 三驱动 · 五储备 · 多时间常数 Impulse-Response 框架 · Keep 大健康 AI 引擎 · 2026 年 4 月

心肺储备
τA: 45/28/90d | τF: 7/2/7d
肌肉储备
τA: 60/21/45d | τF: 4/1/4d
代谢储备
τA: 30/21/30d | τF: 3/1/3d
免疫储备
τA: 20/14/21d | τF: 3/2/3d
神经储备
τA: 14/21/14d | τF: 2/1/2d

τ 顺序:运动 / 饮食 / 睡眠(单位:天)

① 运动模型 — Fitness-Fatigue 双因素 · 多储备 · 非线性免疫
② 饮食模型 — 非线性 DQS(倒U型 · 抛物线 · 阈值毒性 · 饱和型)
③ 睡眠模型 — 适应实现引擎 · SQF 疲劳修正 · 睡眠债务追踪

一、三驱动模型核心定位

三个模型共享同一套状态层(五大储备双池),在不同时间维度、通过不同机制持续更新储备。没有任何一个维度可以单独代替其他两个。

① 运动模型 Exercise
核心角色最强适应刺激源
主要机制Fitness-Fatigue 双因素
输入运动类型·时长·RPE·心率
输出AdaptGain + FatigueCost
关键非线性免疫 J 曲线(倒U型)
被修正饮食 RecoveryFactor × 睡眠 AdaptRealization
② 饮食模型 Diet
核心角色持续营养基底 + 运动放大器
主要机制非线性 DQS 日度更新
输入九类营养质量评分
输出A_j 营养贡献 + RecoveryFactor
关键非线性蛋白质倒U型 · 热量抛物线
微量营养素毒性阈值
输出至→ 运动 RecoveryFactor(明日生效)
③ 睡眠模型 Sleep
核心角色适应实现引擎 + 疲劳清除器
主要机制三机制(A贡献·F修正·AdaptRealization)
输入八类睡眠质量指标 + 睡眠债务
输出A_j 基线维持 + F_j 修正率 + AdaptRealization
关键非线性睡眠债务累积惩罚 · 睡前行为乘子
输出至→ 当日运动 AdaptRealization(今日生效)
三驱动的优先级关系(当资源有限时)
睡眠 > 饮食 > 运动:运动带来的储备增益 = 运动刺激 × RecoveryFactor(饮食决定)× AdaptRealization(睡眠决定)。 睡眠不足会让运动"白做"(Fatigue 积累但 Adaptation 不实现);营养不足会让运动收益打折(RecoveryFactor < 1.0)。 只有三者协同,才能最大化储备积累效率。

二、统一架构图

三类输入通过各自的评分/量化模块,经权重矩阵映射至五大储备的适应池(A_j)和疲劳池(F_j),最终输出储备分和状态分。虚线箭头为跨模型调节效应。

RecoveryFactor 饮食 → 运动适应放大 AdaptRealization 睡眠 → 当日运动适应实现率 SQF 疲劳衰减加速 ① 运动输入 类型·时长·心率·RPE·主观疲劳 BaseLoad × W[sport_type][j] 免疫 J 曲线 · 个体修正因子 ② 饮食输入 九类营养质量 · 热量 · 时机 DQS[cat] 非线性评分 × W[cat][j] 倒U·抛物线·阈值毒性·饱和型 ③ 睡眠输入 时长·SWS·REM·HRV·规律性 SQS × 睡眠债务修正 × 睡前行为 机制A(A_j贡献)·B(F_j修正)·C(适应实现) 权重矩阵 W[input_type][j] × 个体修正因子 心肺储备 Cardio Reserve A_c(t) − F_c(t) 储备分 状态分 肌肉储备 Muscle Reserve A_m(t) − F_m(t) 储备分 状态分 代谢储备 Metabolic Reserve A_me(t) − F_me(t) 储备分 状态分 免疫储备 Immune Reserve A_i(t) − F_i(t) 储备分 状态分 神经储备 Neural Reserve A_n(t) − F_n(t) 储备分 状态分

三、共享状态层 — 五大储备双池系统

三个模型共享同一个状态对象 state,包含五大储备的适应池 A_j(长期能力)和疲劳池 F_j(短期消耗)。每日运行三个模型,三者对同一 state 进行叠加更新。

# ── 共享状态层(整个系统的核心数据结构)───────────────────────────── state = { "adapt": {"cardio": A_c, "muscle": A_m, "metabolic": A_me, "immune": A_i, "neural": A_n}, "fatigue": {"cardio": F_c, "muscle": F_m, "metabolic": F_me, "immune": F_i, "neural": F_n}, } # 储备分(长期能力积累) Reserve_j(t) = A_j(t) # 只看适应池 # 状态分(今日可用能力) Readiness_j(t) = A_j(t) − F_j(t) # 适应 − 当前疲劳 # ── 通用更新方程(三个模型共用此结构)───────────────────────────────── # 适应池:昨日保留 + 今日正向刺激 A_j(t) = A_j(t-1) × exp(−1/τ_j^A) + k_j^A × Stimulus_j(t) # 疲劳池:昨日保留 + 今日负向成本 F_j(t) = F_j(t-1) × exp(−1/τ_j^F) + k_j^F × Cost_j(t) # 三模型每日叠加(顺序执行,累积到同一 state): # 早晨:睡眠模型 → A_j 基线维持 + F_j 疲劳清除 + AdaptRealization # 白天:运动模型 → A_j 适应增益 × RecovFactor × AdaptReal + F_j 疲劳成本 # 晚间:饮食模型 → A_j 营养贡献 + RecoveryFactor(供明日运动用)

状态层示例(某用户单日快照)

心肺储备
Adapt A_c68.4
Fatigue F_c12.1
Readiness56.3
肌肉储备
Adapt A_m72.1
Fatigue F_m18.6
Readiness53.5
代谢储备
Adapt A_me61.8
Fatigue F_me8.3
Readiness53.5
免疫储备
Adapt A_i58.2
Fatigue F_i5.4
Readiness52.8
神经储备
Adapt A_n55.7
Fatigue F_n9.8
Readiness45.9

储备分(Adapt)代表长期训练积累;状态分(Readiness)代表今日可用能力;两者可以背离(储备高但疲劳大 → 状态差)。


四、三模型交互效应(跨模型调节机制)

三个模型之间存在强耦合。最核心的关系是乘法效应:运动刺激的实际适应收益,由饮食和睡眠同时决定。单独优化任何一个维度,效率都会大打折扣。

饮食 → 运动:RecoveryFactor

RecoveryFactor = 1.0 # 蛋白质 DQS ≥ 80 → += 0.15 # 蛋白质 DQS < 50 → -= 0.15 # 微量营养素 ≥ 75 → += 0.10 # 热量亏缺 < -300 → -= 0.15 # 热量亏缺 < -500 → -= 0.30 # 热量盈余 > +800 → -= 0.10 # 酒精 ≥ 2单位 → -= 0.20 # 酒精 ≥ 4单位 → -= 0.40 范围:[0.30, 1.40] AdaptGain = k_A × Load × RecoveryFactor

睡眠 → 运动:AdaptRealization(适应实现率)

AdaptRealization = max(0.40, min(1.20, SQS/100 × 1.20)) # SQS = 100 → AdaptReal = 1.20(超额实现) # SQS = 80 → AdaptReal = 0.96(轻微打折) # SQS = 60 → AdaptReal = 0.72(明显打折) # SQS = 40 → AdaptReal = 0.48(严重打折) # SQS < 33 → AdaptReal = 0.40(最低保底) AdaptGain = k_A × Load × RecFactor × AdaptRealization

睡眠 → 疲劳池:SQF 疲劳清除修正

# 疲劳衰减由睡眠质量动态调节 sqf_j = (SQS/100) × sleep_fatigue_weight[j] # 心肺 sleep_fatigue_weight = 0.85 # 肌肉 sleep_fatigue_weight = 0.90 # 代谢 sleep_fatigue_weight = 0.80 # 免疫 sleep_fatigue_weight = 0.95 # 神经 sleep_fatigue_weight = 1.00 F_j(t) = F_j(t-1) × exp(−sqf_j / τ_j^F_sleep) # SQS=100:疲劳清除率最大 # SQS<40:疲劳不仅不清除,还会额外增加

综合乘法效应

# 三因素完整乘法关系 实际 AdaptGain_j = k_j^A × Load_j × RecoveryFactor (饮食决定) × AdaptRealization (睡眠决定) # 典型场景对比(同等运动负荷): 优质睡眠 + 优质饮食:× 1.20 × 1.20 = × 1.44(+44%) 差睡眠 + 差饮食: × 0.40 × 0.70 = × 0.28(−72%) # 结论:三者协同 vs 仅运动,效率差最大 5 倍

五、统一公式体系

三个模型共用相同的指数衰减 Impulse-Response 框架,仅在"刺激/贡献的来源"和"时间常数"上有所不同。

# ═══════════════════════════════════════════════════════════════════ # 统一更新方程(每日,对每个储备 j 分别执行) # ═══════════════════════════════════════════════════════════════════ # ① 睡眠贡献(早晨第一步)───────────────────────────────────────────── s_j = Σ SQS_subScore[k] × W_sleep[j][k] # SQS 子分 × 睡眠-储备权重矩阵 A_j(t) += A_j(t-1) × exp(−1/τ_j^A_sleep) + k_j^A_sleep × s_j F_j(t) = F_j(t-1) × exp(−sqf_j / τ_j^F_sleep) # SQF 动态修正疲劳衰减 if SQS < 40: F_j(t) += k_j^F_sleep × (40 − SQS) / 2 # 差睡眠额外增加疲劳 AdaptRealization = max(0.40, min(1.20, SQS/100 × 1.20)) # ② 运动贡献(白天,若有运动)───────────────────────────────────────── L_j = BaseLoad × W_sport[type][j] × UserFactor_j # 多维运动负荷向量 # 免疫特殊处理(J 曲线) AdaptGain_immune = a × L_immune × exp(−b × L_immune) × RecovFactor × AdaptReal AdaptGain_j = k_j^A_ex × L_j × RecovFactor × AdaptReal # 其他储备 FatigueCost_j = k_j^F_ex × L_j × StressFactor A_j(t) += A_j(t-1) × exp(−1/τ_j^A_ex) + AdaptGain_j F_j(t) += F_j(t-1) × exp(−1/τ_j^F_ex) + FatigueCost_j # ③ 饮食贡献(晚间)────────────────────────────────────────────────── D_j = Σ DQS[cat]_nonlinear × W_diet[cat][j] # 非线性 DQS × 饮食-储备权重矩阵 Drain_j = Σ NegFactor[neg] × W_neg[neg][j] # 酒精/超加工/过量糖 NetDiet_j = D_j − Drain_j if NetDiet_j >= 0: A_j(t) += A_j(t-1) × exp(−1/τ_j^A_diet) + k_j^A_diet × NetDiet_j F_j(t) = F_j(t-1) × exp(−1/τ_j^F_diet) else: A_j(t) = A_j(t-1) × exp(−1/τ_j^A_diet) F_j(t) += F_j(t-1) × exp(−1/τ_j^F_diet) + k_j^F_diet × |NetDiet_j| # ④ 当日最终状态 ─────────────────────────────────────────────────────── Reserve_j(t) = A_j(t) # 储备分 Readiness_j(t) = A_j(t) − F_j(t) # 状态分 Score_j(t) = sigmoid(A_j, Baseline_j, Scale_j) → [0, 100]

六、动力学参数汇总表(三模型 × 五储备)

τ_A 控制适应积累速度(越大越慢);τ_F 控制疲劳消退速度(越小消退越快);k_A/k_F 控制每单位刺激的实际影响强度。

储备 ① 运动模型 ② 饮食模型 ③ 睡眠模型
τ_A(d)τ_F(d) k_A k_F τ_A(d)τ_F(d) k_A k_F τ_A(d)τ_F(d) k_A k_F
心肺储备 4570.0100.030 2820.0040.015 9070.0030.012
肌肉储备 6040.0100.035 2110.0080.020 4540.0050.018
代谢储备 3030.0120.025 2110.0060.018 3030.0040.015
免疫储备 203J曲线0.030 1420.0070.016 2130.0060.020
神经储备 1420.0040.040 2110.0050.018 1420.0080.025

注:运动模型免疫储备使用 J 曲线 f(L) = a·L·exp(−b·L)(a=0.006, b=0.01),而非线性 k_A。 所有参数均为产品初始默认值,实际应通过用户数据进行个体化校准。


七、每日执行顺序 & 完整伪代码

三模型每日按时序执行:睡眠(早)→ 运动(午)→ 饮食(晚)。前一个模型的输出会影响后续模型的参数。

🌙 早晨(醒后)

睡眠模型

读取昨晚睡眠数据,计算 SQS,更新 A_j 基线 + F_j 疲劳清除。输出 AdaptRealization 系数供当日运动使用。

☀️ 白天(运动后)

运动模型

若有运动,计算 BaseLoad → 五维刺激向量 → 更新 A_j 和 F_j。使用饮食的 RecoveryFactor 和睡眠的 AdaptRealization 作为乘法修正。

🍽️ 晚间(饮食记录后)

饮食模型

分析今日饮食,计算非线性 DQS → 更新 A_j 营养贡献。输出 RecoveryFactor 存入明日运动参数。

import math # ── 三模型完整每日更新流程 ───────────────────────────────────────────── def daily_update(state, today_data, carry): """ state: 共享五储备双池状态 { adapt: {...}, fatigue: {...} } today_data: { sleep: {...}, workout: {...}, diet: {...}, body_weight: float } carry: 跨日持久变量 { sleep_debt: float, recovery_factor: float } """ RESERVES = ["cardio", "muscle", "metabolic", "immune", "neural"] # ══ 步骤一:睡眠模型(早晨) ════════════════════════════════════════ sleep = today_data["sleep"] sqs, sub_scores = compute_sqs(sleep, carry["sleep_debt"]) adapt_realization = max(0.40, min(1.20, sqs / 100 * 1.20)) for r in RESERVES: s_j = sum(sub_scores[k] * SLEEP_RESERVE_WEIGHTS[r][k] for k in sub_scores) decay_a = math.exp(-1 / TAU_A_SLEEP[r]) state["adapt"][r] = state["adapt"][r] * decay_a + K_A_SLEEP[r] * s_j sqf_j = (sqs / 100) * SLEEP_FATIGUE_WEIGHT[r] state["fatigue"][r] = state["fatigue"][r] * math.exp(-sqf_j / TAU_F_SLEEP[r]) if sqs < 40: state["fatigue"][r] += K_F_SLEEP[r] * (40 - sqs) / 2 h = sleep["duration_h"] carry["sleep_debt"] = (carry["sleep_debt"] + max(0, 8.0 - h) - max(0, (h - 8.0) * 0.3)) carry["sleep_debt"] = max(0, carry["sleep_debt"]) # ══ 步骤二:运动模型(白天,若有运动) ══════════════════════════════ recovery_factor = carry["recovery_factor"] # 来自昨日饮食模型 if "workout" in today_data and today_data["workout"]: wo = today_data["workout"] base_load = wo["duration_min"] * wo.get("rpe", 5) stress_factor = wo.get("stress_factor", 1.0) for r in RESERVES: w = SPORT_WEIGHTS[wo["type"]][r] load = base_load * w * wo.get("user_factor", {}).get(r, 1.0) if r == "immune": # J 曲线(倒 U 型) adapt_gain = (0.006 * load * math.exp(-0.01 * load) * recovery_factor * adapt_realization) else: adapt_gain = (K_A_EX[r] * max(load, 0) * recovery_factor * adapt_realization) fatigue_cost = K_F_EX[r] * load * stress_factor state["adapt"][r] = (state["adapt"][r] * math.exp(-1 / TAU_A_EX[r]) + adapt_gain) state["fatigue"][r] = (state["fatigue"][r] * math.exp(-1 / TAU_F_EX[r]) + fatigue_cost) # ══ 步骤三:饮食模型(晚间) ════════════════════════════════════════ meals = today_data["diet"] bw = today_data["body_weight"] dqs = compute_dqs_nonlinear(meals, bw) # 非线性 DQS 评分 for r in RESERVES: d_pos = sum(dqs[c] * DIET_W_POS[c][r] for c in DIET_W_POS) d_drain = (meals.get("alcohol_units", 0) * 10 * DIET_W_NEG["alcohol"][r] + meals.get("ultra_proc_ratio", 0) * 60 * DIET_W_NEG["ultra"][r] + max(0, meals.get("added_sugar_g", 0) - 25) * 2 * DIET_W_NEG["sugar"][r]) net = d_pos - d_drain if net >= 0: state["adapt"][r] = (state["adapt"][r] * math.exp(-1 / TAU_A_DIET[r]) + K_A_DIET[r] * net) state["fatigue"][r] = state["fatigue"][r] * math.exp(-1 / TAU_F_DIET[r]) else: state["adapt"][r] = state["adapt"][r] * math.exp(-1 / TAU_A_DIET[r]) state["fatigue"][r] = (state["fatigue"][r] * math.exp(-1 / TAU_F_DIET[r]) + K_F_DIET[r] * abs(net)) carry["recovery_factor"] = compute_recovery_factor(dqs, meals) # ══ 步骤四:输出当日结果 ════════════════════════════════════════════ output = { "sqs": sqs, "adapt_realization": adapt_realization, "recovery_factor": carry["recovery_factor"], "sleep_debt": carry["sleep_debt"], "reserves": {r: {"reserve": state["adapt"][r], "fatigue": state["fatigue"][r], "readiness": state["adapt"][r] - state["fatigue"][r]} for r in RESERVES}, "overall_readiness": sum(state["adapt"][r] - state["fatigue"][r] for r in RESERVES) / len(RESERVES) } return state, carry, output

八、产品输出设计

每日模型运行后,系统应向用户输出三层信息:数值层(各储备分数)、解读层(状态文字)、行动层(个性化建议)。

心肺储备

68
储备分 Reserve
56
状态分 Readiness

肌肉储备

72
储备分 Reserve
54
状态分 Readiness

代谢储备

62
储备分 Reserve
54
状态分 Readiness

免疫储备

58
储备分 Reserve
53
状态分 Readiness

神经储备

56
储备分 Reserve
46
状态分 Readiness

每日系统 JSON 输出结构

{ "date": "2026-04-15", "sqs": 78.4, # 睡眠质量分 "adapt_realization": 0.94, # 今日运动适应实现率(睡眠决定) "recovery_factor": 1.18, # 今日运动放大系数(昨日饮食决定) "sleep_debt": 1.2, # 累积睡眠债务(小时) "reserves": { "cardio": {"reserve": 68.4, "fatigue": 12.1, "readiness": 56.3, "trend": "+0.8"}, "muscle": {"reserve": 72.1, "fatigue": 18.6, "readiness": 53.5, "trend": "-1.2"}, "metabolic": {"reserve": 61.8, "fatigue": 8.3, "readiness": 53.5, "trend": "+0.3"}, "immune": {"reserve": 58.2, "fatigue": 5.4, "readiness": 52.8, "trend": "+0.1"}, "neural": {"reserve": 55.7, "fatigue": 9.8, "readiness": 45.9, "trend": "-0.6"} }, "overall_readiness": 52.4, "insights": { "bottleneck": "neural", # 当前最低 Readiness 的储备 "risk_flags": ["muscle_overload"], # 肌肉疲劳持续 3d 未恢复 "diet_gap": "protein_low", # DQS 蛋白质 < 50 "sleep_advice": "debt_accumulating" # 睡眠债务累积 }, "recommendations": [ "今日优先:休息 + 轻松散步(神经疲劳高)", "营养提醒:蛋白质不足,肌肉恢复受限 (RecovFactor=0.85)", "明日建议:若睡眠改善,可安排 Zone 2 有氧(心肺刺激优先)", "睡眠优先级:连续 2 夜差睡眠,AdaptRealization 下降至 0.72" ] }

九、各模型主要非线性机制汇总

每个模型都包含超越简单"刺激→响应"的非线性特性,这是模型科学性的核心。

① 运动模型的非线性

免疫 J 曲线:适量运动提高免疫储备,过量反而消耗。

immune_gain = a×Load×exp(−b×Load) 峰值在 Load = 1/b 时取得 低负荷:刺激不足; 超高负荷:净负向

瑜伽/恢复类运动:神经权重可为负(主动减少神经疲劳,而非增加)。

个体修正:新手 vs 老手、疲劳状态、HRV 水平影响 k_A 和 k_F。

② 饮食模型的非线性

蛋白质倒U型:不足和过量均扣分,最优 1.8g/kg。

score = 100×exp(−½×((x−1.8)/0.6)²) 1.8g→100分; 0.6g→14分; 3.0g→14分

热量抛物线:亏缺和盈余都有害,偏差=0最优。

微量营养素毒性阈值:VitA/D/铁/锌等超过 UL 后毒性惩罚。

Omega-3 倒U型:过量(>5g)有促出血风险,同样下分。

③ 睡眠模型的非线性

睡眠债务累积:债务惩罚 SQS 最多 25 分,且偿还比获取慢(非线性补偿)。

如果 h < 8: debt += (8−h) 如果 h > 8: debt −= (h−8)×0.3 # 多睡 1h 只能偿还 0.3h 债务

睡前行为乘子:睡前行为对 SQS 有最高 35% 的乘法修正。

差睡眠双向惩罚:SQS<40 时不仅不清除疲劳,还额外增加疲劳(炎症因子升高)。


统一模型的产品落地原则
1. 不要说"运动越多越好":运动带来的储备增益取决于 RecoveryFactor × AdaptRealization,没有睡眠和饮食的支撑,高强度运动只积累疲劳而不积累适应。

2. 展示两种分数:储备分(A_j,长期能力)和状态分(A_j − F_j,今日可用)。两者必须同时展示,因为高储备 + 高疲劳 → 建议今天休息,而不是"你很强,继续冲"。

3. 优先级推荐逻辑:当神经/免疫 Readiness 持续下降时,系统应明确建议"今天的最高收益行为是睡好觉 + 吃足蛋白质,而不是更多运动"。

4. 非线性防误导:蛋白质、热量、Omega-3 都有最优区间,产品展示时应同时标注"不足"和"过量"的警告,不能只展示"还差多少才够"。

5. 三模型协同增益:同等运动负荷下,优质饮食 + 优质睡眠可以让实际适应收益提高 44%(×1.44);而差睡眠 + 差饮食可以让收益降低 72%(×0.28)。这是产品最有力的行为激励依据。
Keep 大健康 AI 引擎 · 五维储备统一动态系统模型 v2.0 Final · 2026 年 4 月
子文档:运动模型 (v2.0) · 饮食模型 (v2.1 非线性) · 睡眠模型 (v2.0) · 架构总览 (v2.1)