前面几篇文章介绍了PyBaMM模型环境搭建,以及如何使用所有默认参数设置运行PyBaMM模型,而且还可以下载官方的教程和案例。
官方案例(后缀名.py)可以直接利用python程序(Spyder)打开运行计算。另外,官方文件还包括大量的交互式可编程教程(后缀名.ipynb),本文主要演示学习这些文件的方法。
鼠标右键点击以下图标(Jupyter Notebook),以管理员身份运行程序。
弹出以下界面,该窗口不能关闭。
随后,自动打开了一个浏览器页面,在浏览器界面可以实现交互式python编程,并运行代码,查看结果。
如下图所示,点击Upload,选择需要的后缀名.ipynb文件。
点击Upload,上载文件。
点击文件,进入文件界面。
详细界面内开始交互式学习编程,界面包括菜单栏,编辑功能、运行代码等;说明文字;代码编辑和结果输出区域。
在浏览器界面内,我们可以编辑代码,运行程序,并查看输出结果。
以下是教程4部分示例说明
针对自己的实际电池,参数需要修改,PyBaMM也允许调整这些参数设置。本文来源于官方教程:如何修改PyBaMM中电池模型的的参数值。
编程时,首先将PyBaMM导入python中
%pip install pybamm -q #安装PyBaMM库,详见环境搭建文章
import pybamm
import os #文件/目录方法
os.chdir(pybamm.__path__[0]+'/..') #改变工作目录
PyBaMM库有许多内置的参数集,可以通过以下操作方法选择。
chemistry = pybamm.parameter_sets.Chen2020
变量chemistry是一个字典,其中包含每个组件的相应参数子集。运行以下代码:
chemistry
输出结果为:
{'chemistry': 'lithium-ion',
'cell': 'LGM50_Chen2020',
'anode': 'graphite_Chen2020',
'separator': 'separator_Chen2020',
'cathode': 'nmc_Chen2020',
'electrolyte': 'lipf6_Nyman2008',
'experiment': '1C_discharge_from_full_Chen2020',
'sei': 'example',
'citation': 'Chen2020'}
现在,我们可以将 "chemistry"赋值到ParameterValues中,以创建参数值的字典。
parameter_values = pybamm.ParameterValues(chemistry=chemistry)
运行下面代码可以看到所有存储在字典中的参数值
parameter_values
输出结果(部分展示)为:
{'Cell capacity [A.h]': 5.0,
'Cell cooling surface area [m2]': 0.0053100000000000005,
'Cell volume [m3]': 2.42e-05,
'Current function [A]': 5.0,
'EC diffusivity [m2.s-1]': 2e-18,
'EC initial concentration in electrolyte [mol.m-3]': 4541.0,
'Electrode height [m]': 0.065,
'Electrode width [m]': 1.58,
'Initial concentration in electrolyte [mol.m-3]': 1000.0,
'Initial concentration in negative electrode [mol.m-3]': 29866.0,
'Initial concentration in positive electrode [mol.m-3]': 17038.0,
'Initial inner SEI thickness [m]': 2.5e-09,
'Initial outer SEI thickness [m]': 2.5e-09,
......}