面向储能 LFP 电池的证据优先型 SOH 寿命数字孪生。
LifeTwin 不试图用一条短曲线直接“猜出 25 年寿命”,而是先从跨温度、 跨 SOC 的公开老化数据中学习共性规律,再用目标对象已经产生的短期数据 持续修正长期轨迹,并在证据不足时明确扩大区间或回退稳定模型。
本仓库是独立竞赛研究原型,不是海辰官方产品,不含海辰内部数据,当前 结果也不构成海辰电芯或储能电站的产品精度承诺。
先用三分钟看到系统如何工作,再按需深入证据:
- 评委三分钟简报:一屏了解问题、方法、四个关键结果和边界。
- 在线评审控制台:零安装交互查看通用回退、专用路由和外部负迁移三个冻结案例;离线单文件也随仓库冻结。
- 真实前缀预测入口:用不含未来容量的请求生成预测、区间状态、拒绝原因和哈希。
前缀 CLI 面向源码或 editable checkout;当前版本不把冻结参考数据拆离 Git 仓库包装成 standalone wheel 推理服务。
深入证据:V0.14 预注册长时域压力测试报告 · V0.14 机器可读证据 · V0.13 可操作入口报告 · 开题报告补充材料 · V0.12 稳健性报告 · 独立长期验证预注册 · Phase 1 对抗性审计 · 参考资料
我们在查看合成长时域真值前冻结代码、种子、三个主终点和失败规则,再对 2,900 条 25 年轨迹执行一次性测试。运行和四项安全门均完整通过,但预注册的 方法判定为 failure,没有因为结果不理想而改门槛或重写结论。
| 预注册终点 | 实际结果 | 冻结门槛 | 判定 |
|---|---|---|---|
| 50% 签发率下的灾难性误差风险降低 | 21.65% | 至少 30% | 未通过 |
| 共享完全相同短期前缀的反例对,两侧同时拒绝 | 27.0% | 至少 80% | 未通过 |
| 已签发轨迹相对平方根基线的平均 IAE 增量 | +0.0146 pp | 不高于 +0.10 pp | 通过 |
该结果给出两个有用边界:结构分歧具有风险排序信号,但当前最大包络门控被固定的 晚期 knee 先验宽度主导;而完全相同前缀可以对应明显不同的 25 年结局,单靠前缀 不可能辨认哪一侧会发生晚期拐点。下一版不能只调阈值,而应把中心预测、可校准风险头 和部分可识别区间分开,并在新种子、新真值族和可观测工况协变量上重新预注册验证。
flowchart LR
A["容量、温度、SOC、倍率与时间"] --> B["数据质检与统一时间轴"]
B --> C["跨工况层次先验"]
C --> D["目标对象短期数据更新"]
D --> E{"出现早期容量回升且数据充足?"}
E -- "否" --> F["稳定层次幂律"]
E -- "是" --> G["老化项 + 激活偏移项"]
F --> R["训练域内有界残差修正"]
G --> R
R --> H["SOH轨迹与路由化不确定性"]
H --> U{"校准与域证据足够?"}
U -- "是" --> I["发放区间并滚动更新"]
U -- "否" --> J["拒绝预测或扩大区间"]
三个核心设计是:
- 跨工况到目标对象的动态更新:用温度和 SOC 条件学习群体先验,再用目标 对象少量观测同步修正退化幅度和时间指数。面向“目标电芯/单电芯”更新是产品 架构目标;当前公开实验没有单电芯轨迹,实际更新的是 target condition-mean trajectory(目标条件均值轨迹)。
- 早期激活与不可逆老化分离:针对低 SOC 下容量先升后降的形状,增加 饱和激活偏移项,避免单调模型把早期回升误判成长期快速衰减。
- 证据驱动的模型门控:只有异常形状和观测数量同时满足条件才启用专用 模型,否则回退稳定主模型,避免复杂模型在普通工况中过拟合。
- 受约束的残差学习:残差只从训练条件的交叉拟合误差中学习,在 landmark 处锚定为零,并受时间支持和幅度上限约束,不允许黑盒修正吞掉机理主模型。
- 路由化校准与拒绝发行:specialist 和 fallback 分开按条件轨迹校准;样本量、 工况域、前缀轨迹支持或长期独立证据不足时,不输出貌似精确的运营区间。
下表是公开 Naumann 日历老化数据上的回顾性开发结果。p=10 表示每条目标
轨迹只用前 10 次容量检查建模,再预测后续轨迹;误差指标为平均轨迹绝对误差
(IAE,越低越好)。
| 场景 | 传统平方根曲线 | 层次幂律 V2 | 门控激活 V3 | V2 相对传统方法 | V3 相对 V2 |
|---|---|---|---|---|---|
| 未见温度层级 | 1.1287 pp | 0.4801 pp | 0.3662 pp | -57.46% | -23.72% |
| 40 C SOC 插值 | 1.2864 pp | 0.6907 pp | 0.2097 pp | -46.31% | -69.64% |
必须同时看到限制:V3 在主前缀只触发 3 个唯一低 SOC 条件,大量条件与 V2
完全相同,因此描述性 bootstrap 区间上界为 0,而不是小于 0;严格优越标准
没有通过。tau=3-14 day 的核心敏感性网格保持平均改善;tau=20 day 时只有
未见温度场景反转,tau=30 day 时两个场景都反转。主值 7 天又是在查看前一阶段
失效后确定的 post-hoc 值。结论只能称为有潜力的机制开发信号,不能称为独立验证。
审计不是再做一遍同样的实验,而是主动攻击证据链:核对数据身份和单位,在
p=5/8/10/14 分别修改未来容量标签,独立复算 504 个条件-方法指标组,检查
六种方法的共同支持与 6 组消融,并对门控边界和专用模型失败进行故障注入。
审计还发现了一个真实评分完整性问题:仅检查预测包哈希,无法阻止攻击者篡改
elapsed_days 或 is_final_checkup 后重新计算哈希。V2/V3 评分器现改为连接权威
真值坐标、用真实时间轴积分并由真值派生末点;重新哈希的坐标和 final 攻击会被拒绝。
p=10 的 21 个场景-条件行中,主候选相对 V2 为 4 行改善、17 行精确回退、
0 行相对退化。0 退化主要来自“门控未触发就复制 V2”的结构,不代表 21 个条件都
验证了 V3;4 个改善行只有 3 个唯一条件。T40_SOC12.5 在两个场景中重复出现,
不能重复计作两份证据。在 p=10 的 21 个 scenario-condition occurrences 中,以
所有正向 IAE gains(V2 IAE - V3 IAE > 0)之和为分母,该条件贡献约 90.35%。
跨全部四个 landmark 的 84 行合计为 72 exact fallback、9 improvement、3 relative
regressions。三处相对退化(V3 IAE - V2 IAE)分别是:p=8, T25_SOC0
+0.52968452368701047 pp;p=8, T40_SOC0 +0.19573480305547392 pp;
p=14, T40_SOC0 +0.048279793130974941 pp。因此不能把 p=10 的零相对退化外推到
其他观测长度。
完整解释见 Phase 1 对抗性审计报告。 机器可读入口包括 审计总览、 未来标签攻击矩阵、 独立指标复算、 消融表、 门控边界和 84 行失败条件表。
审计通过不等于模型验证通过。 数据仍只有 17 条条件均值轨迹,条件级评估单位
N=17,最长约 885 天;这不是单电芯级验证,不能支持海辰产品、真实电站或
15-25 年预测精度宣称。
本轮先完成正确性审计,再扩展方法。所有前缀被放到检查点 14-34 的相同未来窗口
比较后,只有 p=10 同时满足两场景均值改善、逐条件零退化和唯一改善条件要求。
它被记为回顾性信号 landmark,而不是预注册确认点;确认值仍为 null。
V4 将层次机理均值、训练条件 LOCO 有界残差和按路由校准的轨迹区间组合起来。 fallback 路由的 5 个校准条件只足以形成 80% 诊断分位数;specialist 仅 1 个校准 条件,80%/90%/95% 都拒绝。4 条测试轨迹中只有 3 条获得回顾性 80% 诊断区间, 运营区间发放数为 0,因为校准结果已被复用且没有独立长期数据。
项目还引入许可明确的 Geisbauer 独立电芯级 LFP 队列做 120 天、60 C 外部应力
筛查。15 个电芯全部因前缀不足而回退稳定模型;主候选平均 IAE 为 3.9735 pp,
目标前缀平方根比较器为 3.8852 pp,主候选没有胜出。项目保留这个负结果,
不重调协议,也不把短期高温筛查改称长期验证。详见
完整报告和
机器可读证据包。
V0.12 不晋升新均值模型,而是对 v0.11 的两个核心结果做反证优先审计。固定 V4
训练状态后,在 10 个非训练条件上枚举全部 C(10,6)=210 个校准/评估划分。
fallback 路线只有 80% 分位数可计算,乘数范围为 0.9243-2.1698;specialist
路线每个划分只有 0-2 条校准轨迹,因此 80%/90%/95% 全部不可用。原切分宽度又
主要由 T40_SOC50 一条高误差轨迹支配。这证明当前区间适合做拒绝诊断,不适合
包装成稳定覆盖保证。
Geisbauer 的逐电芯复核在 1e-12 pp 数值零阈值下得到 8 个候选更好、7 个更差;
采用事后 0.05 pp 等效界时为 5 个更好、4 个更差、6 个等效。平均配对差为
+0.0882 pp,中位数为 -0.0022 pp;15 个彼此重叠的单电芯删除场景中有 2 个
会使总体方向反转。负迁移风险主要位于 100% SOC,但样本不足以给出确认性推断。完整数字、
名义检验边界和 210 个重叠划分的正确分母见
V0.12 报告。
项目同时公开长期 LFP 数据集资格登记表、 数据无关预注册模板和 跨字段语义验证器。 当前可立即用于独立长期轨迹确认的公开数据集数量仍为 0。这不是搜索失败后留下 一句“待补数据”,而是把许可、物理电芯 ID、老化模式、时长、结局接触史和证据等级 变成机器可读门槛;获得作者数据后也不能临时修改成功标准。
LifeTwin-LFP-SOH/
├── src/lifetwin/ 原型代码
├── configs/experiments/ 冻结实验协议
├── configs/inference/ 前缀推理请求 Schema
├── configs/validation/ 长期数据资格与预注册 Schema/模板
├── data/interim/ CC BY 4.0 的规范化 Naumann 表
├── data/external/ CC BY 4.0 的 Geisbauer LFP 外部应力数据
├── scripts/ 实验、审计与一键复现入口
├── showcase/product_demo/ 不含未来容量的真实推理请求
├── showcase/ 数据分析样本与公开审计产物
├── docs/judge-console/ 自包含中文评审控制台
├── docs/ 补充材料、研究笔记与参考资料
├── reports/ 技术阶段报告与对抗性审计报告
├── tests/ GitHub 公开版复现测试
└── release_manifest.json 发布文件哈希与证据边界
规范复现使用 Python 3.12.x 和冻结依赖约束:
py -3.12 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -c requirements\reproduction.txt -e ".[dev,showcase]"
.\.venv\Scripts\python.exe -m pytest -q
.\.venv\Scripts\python.exe scripts\verify_v014_synthetic_evidence.py
.\.venv\Scripts\python.exe showcase\analyze_phase8_results.py --output artifacts\quick\phase8_results.png
.\.venv\Scripts\lifetwin.exe calendar-prefix-predict --request showcase\product_demo\naumann_t40_soc37_5_request.json --output-dir artifacts\prefix-demoLinux/macOS:
python3.12 -m venv .venv
.venv/bin/python -m pip install -c requirements/reproduction.txt -e '.[dev,showcase]'
.venv/bin/python -m pytest -q
.venv/bin/python scripts/verify_v014_synthetic_evidence.py
.venv/bin/python showcase/analyze_phase8_results.py --output artifacts/quick/phase8_results.png
.venv/bin/lifetwin calendar-prefix-predict --request showcase/product_demo/naumann_t40_soc37_5_request.json --output-dir artifacts/prefix-demo安装依赖后,推荐用一个命令完成发布预检、Phase 8、动态 landmark、V4 区间与 校准切分审计、Geisbauer 外部应力与逐电芯稳健性审计、Phase 1 审计、无界面绘图 和完整测试,并把证据原子化 写入新目录:
.\.venv\Scripts\python.exe scripts\reproduce_public_release.py --mode full --output artifacts\reproductionLinux/macOS:
.venv/bin/python scripts/reproduce_public_release.py --mode full --output artifacts/reproduction该命令拒绝覆盖已有输出。GitHub Actions 的 Ubuntu/Windows fresh-clone 运行记录见
public-release-ci,
以对应提交的实际状态为准。
清单所列的已发布证据文件必须逐字节匹配 SHA-256。Phase 8 核心表的跨平台数值重算按
2e-4 绝对容差核对;Phase 1 审计表按主键对齐并默认逐字段精确比较,仅对求解器派生的
误差指标使用 5e-3 pp、派生比例使用 1e-4,审计残差仍限制为 1e-10,且拒绝
NaN/Inf。身份、工况、前缀、计数、真值、门控状态和结论字段不使用宽松容差。
比较器还会重算独立指标残差、消融差值、失败表回退关系与风险标签,避免各列分别落在
容差内却彼此矛盾。
环境敏感的模型状态哈希不做跨操作系统相等宣称,但必须保持行间等价类结构,并在每次
未来标签攻击运行内部满足 baseline 与 attacked 哈希相等。
重新运行完整 Phase 8 开发实验(普通 CPU 约几十秒,输出目录不可覆盖):
$env:PYTHONPATH='src'
.\.venv\Scripts\python.exe scripts\run_calendar_v3_activation_development.py仓库包含两份许可明确且可公开再分发的数据文件。Naumann 数据集由 Maik Naumann
发布于 Mendeley Data,DOI 为
10.17632/kxh42bfgtj.1,许可为
CC BY 4.0。转换和统计单位说明见
数据说明。
Geisbauer LFP 数据由 Christoph Geisbauer、Markus Woerle、Philip Keil 和 Andreas
Jossen 发布于 Zenodo,DOI 为
10.5281/zenodo.6685365,许可同为
CC BY 4.0。仓库保留原始 2.7 KB LFP CSV,说明见
外部数据说明。它只有 120 天、60 C,
只用于外部应力筛查。
Stanford Lam/Joule 长期数据和作者代码在本项目审计时未发现明确的数据/软件 许可,因此没有上传任何文件或代码副本,只在参考资料中 保留公开链接与待澄清状态。Vachenauer 十年端点、Yagci 180 Ah 储能电芯、Sui 月度轨迹和 Aeppli Second-Life 数据也仅登记一手来源与资格,不上传请求型数据。
- 研究逻辑与原型闭环:完成。
- 公开数据上的回顾性开发:完成。
- 数据身份、未来标签隔离、独立评分复算与预测包坐标完整性:完成。
- 门控边界、专用模型故障回退和 84 行失败条件清单:完成。
- 固定共同未来窗口的动态 landmark 回顾性诊断:完成;确认性 landmark 待独立数据。
- 机理层级模型、LOCO 有界残差、路由化区间与拒绝发行:完成回顾性实现。
- 15 个独立 LFP 电芯的 120 天、60 C 外部应力筛查:完成,主候选未胜出。
- V4 全部 210 个校准划分与 Geisbauer 逐电芯/LOCO 稳健性审计:完成,未形成确认性结论。
- 严格请求 Schema、真实前缀推理 API/CLI、域外/异常前缀失败关闭与零安装评审控制台:完成。
- 长期 LFP 数据集资格登记、数据无关 Schema 与预注册模板:完成;当前合格公开确认集为 0。
- 合成长时域结构可辨识性 V1:按冻结协议完整运行;安全门通过,但两个主效门槛未达标, 预注册结论为 failure,不晋升为长期预测方法。
- Ubuntu/Windows fresh-clone CI:已配置,状态由仓库徽章和对应提交记录公开显示。
- 独立长期 LFP 队列验证:待完成。
- 海辰大容量电芯与真实电站验证:待完成。
- 15-25 年产品精度承诺:当前不允许。
提交人:Jincheng Liu
版本:0.14.0,2026-07-22


