AimatraLab
PyBaMM Skill 使用指南

PYBAMM / 已运行示例

第一次模拟电池充放电

从一个已运行的 Chen2020 例子开始,读懂输入工况和三条曲线。这是参考模型仿真,不是实测电池数据。

运行记录 2026-10-20SPM · Chen2020模拟工况时长 22 min
01

先看这次得到了什么

三张图共用同一时间轴。本例正电流表示放电,负电流表示充电,零电流表示静置。

已执行参考仿真的电压、电流与净放出电量曲线,三图时间轴对齐。
由本例 CSV 绘制:记录 135 个采样点,共 1,320 秒模拟时间。这里说的是模型中的工况时长,不是电脑计算耗时。
查看原尺寸曲线图
电压范围
3.8655–4.1429 V
累计放出电量
0.4167 Ah
累计充入电量
0.4167 Ah
最终净放出电量
≈0 Ah

为什么净放出电量会回到接近零?

净放出电量是放电时流出的电量,减去充电时流入的电量。它不是电芯的总容量。充回近似相同的电量后,这个累计值会接近零;不代表电池没有容量、荷电状态精确回到原值,或没有能量损失,也不能据此判断寿命。

02

看懂我们给了模型什么

本例使用单颗粒模型(SPM)和 Chen2020 参数集。SPM 将每个电极用一个代表性颗粒近似,本例不解析完整电解液输运。这是教学案例,不是针对你自己的电池拟合。

初始荷电状态
80%
温度
298.15 K (25 °C)
标称容量
5 Ah
采样间隔
10 s

C 倍率用标称容量换算电流。本例中,0.5C × 5 Ah = 2.5 A。放电步骤取正电流,充电步骤取负电流。

三个有明确时长的工况步骤
步骤模拟时间电流起始 → 结束电压
1. 放电0–600 s2.5 A3.9821 → 3.8655 V
2. 静置600–720 s0 A3.9224 → 3.9478 V
3. 充电720–1,320 s-2.5 A4.005 → 4.1429 V

每一步都有明确时长,报告记录实际停止原因。本例没有演示电压截止事件,也没有测试硬件工况极限。第一次复现请保留随附工况文件不变。

03

在自己的项目中复现

下载示例包并解压到一个新目录。先准备好 Python 3.12,再在该目录打开终端,选择下方对应系统的命令。

  1. 创建独立 Python 环境,按锁文件安装依赖版本;安装依赖需要联网。
  2. 将随附工况运行到新的 my-run 目录,再把图件输出到 my-figures,保留参考结果不变。
  3. 把自己的报告和曲线与参考结果对照。运行耗时和细小数值差异取决于环境。

锁文件记录本次 Windows/Python 3.12 环境,macOS 和 Linux 需要兼容的安装包。安装失败时,先核对 Python 版本、架构和报错,再决定如何适配,不要盲目改版本。requirements.txt 列出直接依赖,可供检查后适配;改动需记录并重新核对结果。

Windows PowerShell
py -3.12 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements-lock.txt
.\.venv\Scripts\python.exe simulate_battery.py protocol.json --output my-run
.\.venv\Scripts\python.exe plot_results.py my-run --output my-figures

也可以选中命令,手动复制。

这些命令在本地运行,不需要 AI API 密钥。本页不在线运行仿真,也不接收文件。如需 Codex 或 Claude Code 带着操作,可将此目录作为项目打开,并使用 Skill 指南中的安装与首次使用请求。

查看 Skill 安装与首次使用指南
04

看图之后,还要看检查结果

本次把基准计算与更严格的求解器容差、更密的网格分别对照。报告在每个对应步骤内取 101 个插值点比较;下表只是这些采样点上的最大变化,不是全局误差上限,也不是收敛证明。

对照对照采样点的最大电压变化
基准 → 更严格求解器容差0.001 mV
严格容差下,网格 20 → 402.1686 mV

最大结束时间差:0 s。数值结果稳定不等于符合真实电池,还需另外核对参数、初始状态与测量数据。

应该查看哪些文件?

curve.csv 保存基准时间序列,可与 tight-tolerance.csv 及 refined-mesh.csv对照。report.json 记录设置与检查,parameters.json 记录参数来源。基础参数 Current function [A] 不等于每一步的实际电流;各步电流由 protocol.json 指定,复现时请保留两份原文件。

运行环境、容差和来源

执行日期 2026-10-20。此记录仅覆盖这次参考仿真,不代表整个 Skill 的所有工作流或实测电芯都已验证。

最终净放出电量,未舍入:8.534839501805891e-16 Ah

pybamm
26.9.0.0
pybammsolvers
0.10.0
numpy
2.5.4
scipy
1.18.1
casadi
3.8.1
matplotlib
3.10.7
python
3.12.14
platform
Windows x64
基准 rtol / atol
1.000e-6 / 1.000e-8
严格 rtol / atol
1.000e-8 / 1.000e-10
Skill 版本
1.1
脚本 SHA-256
96c9c774860a80f3fddda2fd94d90905e9254b766f191a79e843613ec4da7647
工况 SHA-256
f769f94f1a9f933d253b3a4a6f51dc661b8af49bf9df52cfdabd81ea185de80e

PyBaMM 运行库采用 BSD-3-Clause;K-Dense Inc. 的 Skill 与仿真辅助脚本采用 MIT,其他依赖仍适用各自条款。示例保留各组件的许可说明与署名。Chen2020 是 PyBaMM 的参考参数集,本例没有使用实测数据。

05

下载完整复现材料

示例包包含仿真与绘图脚本、原始工况、依赖清单、参考 CSV 与报告、图件、README、录屏讲稿和各组件许可说明。

下载示例代码与数据

资源下载需登录账号,登录后继续下载。

示例包 1.0.1 · 400,982 bytes
SHA-256: 9088ac565a8984a921ae9b58a9d5f704c69068c039ace1231d6864b0a5767464

5–7 分钟录屏提纲

可按下列顺序录制上面的实际案例。这里只提供录屏提纲,示例包附有中文讲稿。

  1. 说明这是参考仿真,以及本例要回答的问题。
  2. 读懂三步工况、初始荷电状态和温度。
  3. 下载示例,打开新项目,说明所需环境。
  4. 运行命令并展示输出目录,不承诺固定运行耗时。
  5. 对照电压与电流曲线,解释净放出电量。
  6. 比较求解器容差和网格密度,区分数值检查与实验验证。
  7. 展示报告、来源版本和复现方法。