PYBAMM / 已运行示例
第一次模拟电池充放电
从一个已运行的 Chen2020 例子开始,读懂输入工况和三条曲线。这是参考模型仿真,不是实测电池数据。
先看这次得到了什么
三张图共用同一时间轴。本例正电流表示放电,负电流表示充电,零电流表示静置。

查看原尺寸曲线图
- 电压范围
- 3.8655–4.1429 V
- 累计放出电量
- 0.4167 Ah
- 累计充入电量
- 0.4167 Ah
- 最终净放出电量
- ≈0 Ah
为什么净放出电量会回到接近零?
净放出电量是放电时流出的电量,减去充电时流入的电量。它不是电芯的总容量。充回近似相同的电量后,这个累计值会接近零;不代表电池没有容量、荷电状态精确回到原值,或没有能量损失,也不能据此判断寿命。
看懂我们给了模型什么
本例使用单颗粒模型(SPM)和 Chen2020 参数集。SPM 将每个电极用一个代表性颗粒近似,本例不解析完整电解液输运。这是教学案例,不是针对你自己的电池拟合。
- 初始荷电状态
- 80%
- 温度
- 298.15 K (25 °C)
- 标称容量
- 5 Ah
- 采样间隔
- 10 s
C 倍率用标称容量换算电流。本例中,0.5C × 5 Ah = 2.5 A。放电步骤取正电流,充电步骤取负电流。
| 步骤 | 模拟时间 | 电流 | 起始 → 结束电压 |
|---|---|---|---|
| 1. 放电 | 0–600 s | 2.5 A | 3.9821 → 3.8655 V |
| 2. 静置 | 600–720 s | 0 A | 3.9224 → 3.9478 V |
| 3. 充电 | 720–1,320 s | -2.5 A | 4.005 → 4.1429 V |
每一步都有明确时长,报告记录实际停止原因。本例没有演示电压截止事件,也没有测试硬件工况极限。第一次复现请保留随附工况文件不变。
在自己的项目中复现
下载示例包并解压到一个新目录。先准备好 Python 3.12,再在该目录打开终端,选择下方对应系统的命令。
- 创建独立 Python 环境,按锁文件安装依赖版本;安装依赖需要联网。
- 将随附工况运行到新的 my-run 目录,再把图件输出到 my-figures,保留参考结果不变。
- 把自己的报告和曲线与参考结果对照。运行耗时和细小数值差异取决于环境。
锁文件记录本次 Windows/Python 3.12 环境,macOS 和 Linux 需要兼容的安装包。安装失败时,先核对 Python 版本、架构和报错,再决定如何适配,不要盲目改版本。requirements.txt 列出直接依赖,可供检查后适配;改动需记录并重新核对结果。
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 安装与首次使用指南看图之后,还要看检查结果
本次把基准计算与更严格的求解器容差、更密的网格分别对照。报告在每个对应步骤内取 101 个插值点比较;下表只是这些采样点上的最大变化,不是全局误差上限,也不是收敛证明。
| 对照 | 对照采样点的最大电压变化 |
|---|---|
| 基准 → 更严格求解器容差 | 0.001 mV |
| 严格容差下,网格 20 → 40 | 2.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 的参考参数集,本例没有使用实测数据。
下载完整复现材料
示例包包含仿真与绘图脚本、原始工况、依赖清单、参考 CSV 与报告、图件、README、录屏讲稿和各组件许可说明。
资源下载需登录账号,登录后继续下载。
示例包 1.0.1 · 400,982 bytes
SHA-256: 9088ac565a8984a921ae9b58a9d5f704c69068c039ace1231d6864b0a5767464
5–7 分钟录屏提纲
可按下列顺序录制上面的实际案例。这里只提供录屏提纲,示例包附有中文讲稿。
- 说明这是参考仿真,以及本例要回答的问题。
- 读懂三步工况、初始荷电状态和温度。
- 下载示例,打开新项目,说明所需环境。
- 运行命令并展示输出目录,不承诺固定运行耗时。
- 对照电压与电流曲线,解释净放出电量。
- 比较求解器容差和网格密度,区分数值检查与实验验证。
- 展示报告、来源版本和复现方法。