简介
PyBaMM(Python Battery Mathematical Modelling)是一个开源的电池仿真功能包,旨在加速电建模的研究。
广义上,PyBaMM包含三个部分:①、用于编写和求解微分方程组的框架 ②、丰富的电池模型和参数库 ③、模拟实验结果和可视化的工具
同时,PyBaMM有极强的灵活性和可拓展性,基于python的开发环境,使得PyBaMM可以方便快捷的与python中其他的功能包进行融合使用,极大的提高了电池建模和仿真,以及数据分析的效率。
点此查看:PyBaMM官方文档
PyBaMM安装
由于PyBaMM只支持在python3.8 和 python3.9环境下安装,且安装可能会和现有的功能包产生冲突,导致安装失败,所以笔者推荐使用Anaconda构建一个纯净的python3.9环境,在此环境下使用命令安装pybamm功能包即可:
pip install pybamm
有关安装的更多问题请点击:
简单仿真示例
首先进行一个简单的仿真:
import pybamm
model = pybamm.lithium_ion.DFN() # 使用锂离子电池库中的DFN模型
sim = pybamm.Simulation(model) # 使用Simulation对模型进行仿真
sim.solve([0, 3600]) # 仿真时间为3600秒
sim.plot() # 画出仿真图像 图像设置为默认
运行结果如图:

4.程序详解
上面的程序实现了一个锂离子电池DFN(P2D)模型的简单仿真示例,下边对使用到的类进行详解:
电池模型:
PyBaMM中集成了多种电池模型,例如锂离子电池的DFN(即P2D)模型、单粒子模型(SPM)等,以及铅酸电池模型和其他子模型。我们可以在PyBaMM官方提供的接口文档中查询到pybamm包含的所有模型。
点此查看:PyBaMM官方电池模型

如果要使用pybamm中的电池模型,我们只需调用相关的类即可:
model = pybamm.lithium_ion.DFN() # 使用锂离子电池库中的DFN模型
并且,我们也可以同时调用多个模型,方便我们进行对比:
import pybamm
models = [
pybamm.lithium_ion.SPM(),
pybamm.lithium_ion.SPM(),
pybamm.lithium_ion.DFN(),
]
sims = []
for model in models:
sim = pybamm.Simulation(model)
sim.solve([0, 3600])
sims.append(sim)
pybamm.dynamic_plot(sims, time_unit="seconds") # 在一张图上打印三个不同模型求解出的变量
这样我们就在一张图上画出了三个模型的求解结果:
