PyBaMM 的容量衰减到底在量什么:80% capacity、Capacity [A.h] 与 Loss of capacity 实测
PyBaMM 里至少有几种不同的“容量”,退化研究常常不自觉地混用:80% capacity 终止条件比的是零电流 eSOH 容量而不是实测放电,汇总变量读的是每个循环最后一刻的状态,Loss of capacity to X 其实是锂而不是容量,默认参数集 Marquis2019 失锂后容量反而上升。PyBaMM 26.5 实测,附检查函数。
PyBaMM 里至少有几种不同的“容量”,退化研究常常不自觉地混用:80% capacity 终止条件比的是零电流 eSOH 容量而不是实测放电,汇总变量读的是每个循环最后一刻的状态,Loss of capacity to X 其实是锂而不是容量,默认参数集 Marquis2019 失锂后容量反而上升。PyBaMM 26.5 实测,附检查函数。
PyBaMM 里决定衰减曲线形状的选择都不会报错:OKane2022 的 SEI 只随时间增长,静置长短改变的是循环次数而不是寿终日期;SEI 速率常数是通用占位值,换模型差 450 倍;除 OKane2022 外活化能全为零;低温析锂堵孔在默认网格上高估 5 倍;irreversible 析锂在静置时也会沉积。PyBaMM 26.5 实测,附预检函数。
PyBaMM 的热模型打开就能跑,下面这些设置都不会报错:等温模型的产热变量恒为零,四个参数集的熵系数为零、可逆热整项缺失,四个参数集把电池写成一张两面散热的极片,只设环境温度的低温仿真其实从 25 °C 开始。8 个参数集实测,附检查函数。
PyBaMM 的 Experiment 几乎从不报错,下面五个问题都会让实验正常跑完、交回错误结果:安培写的步骤到 24 小时静默截断,平铺列表让循环寿命被高估 4 倍,save_at_cycles 留下 None,period 不影响精度却会让自己的积分出错,initial_soc=1 不等于 4.2V。附检查实验是否真正跑完的函数。
把同一组实验在 PyBaMM 26.5 的 18 个内置参数集上全跑一遍。报错的不是问题,问题是能跑完却是错的:默认参数集的 “1C” 实际只有 0.78C,Chen2020 在 −10°C 下容量只掉 0.6%,实验字符串会把磷酸铁锂充到 4.2V 且零警告,SEI 能跑但用的是借来的示例参数。附一段可直接运行的检查代码。
搜索排第一的 pybamm-param 已废弃、PyBOP 的 API 刚大改,而真正要命的是可辨识性:参数在方程里以组合出现,一条曲线分不开它们。附一套区分”拟合出来”与”编出来”的验证流程。
长时间退化模拟在第 300 圈崩掉时,调容差通常是错的方向。用 SPMe 对照判定是数值还是物理问题,附 IDAKLU 全部选项默认值与一个静默失效的陷阱。
用 PyBaMM 或 surrogate 生成的 EIS 特征和工况数据训练 scikit-learn 模型,预测电池 SOH 与 RUL。
用 PyBaMM core 的 EISSimulation 生成阻抗谱,提取 Nyquist/Bode 特征并对齐老化标签。