Bohrium
robot
新建

空间站广场

论文
Notebooks
比赛
课程
Apps
我的主页
我的Notebooks
我的论文库
我的足迹

我的工作空间

任务
节点
文件
数据集
镜像
项目
数据库
公开
电芯电化学仿真:循环老化仿真简介
中文
锂电池
中文锂电池
KaiqiYang
发布于 2023-09-24
推荐镜像 :Basic Image:bohrium-notebook:2023-04-07
推荐机型 :c2_m4_cpu
赞 3
2
9
通过电化学仿真方法模拟电池老化循环
锂电池与电化学模型的相关背景和介绍
电化学模型的基本原理
电化学模型模拟电池短期性能
电化学模型模拟电池循环老化过程
总结计算结果
参考工作

通过电化学仿真方法模拟电池老化循环

代码
文本

本notebook介绍了通过电化学仿真方法模拟电池上百甚至上千循环的方法,主要的原理在于通过在电化学模型中引入老化机理,并且不断进行充放电循环的模拟,使得老化过程对电池性能的影响逐渐积累,在模拟长时间的循环过程中抓紧体现电池容量随循环的衰减。 notebook会分为几个部分介绍,一部分在于简单描述基本的电化学模型,进一步会针对老化机理的引入,最后会通过开源计算工具将相关的老化模型实现。本notebook改编自github

代码
文本

锂电池与电化学模型的相关背景和介绍

代码
文本

本章节会首先简单介绍锂电池的简单背景和基于锂电池应用电化学模型的基础。

锂电池是一种以锂为活性物质的电池,具有高能量密度、低自放电率、长寿命等优点。自20世纪70年代以来,锂电池逐渐成为各类电子产品、电动工具、电动汽车等领域的主要电源。锂离子电池是目前最常见的一种锂电池类型,其具有高能量密度、无记忆效应、低自放电等特点,使得锂离子电池在众多电子产品中得到广泛应用。锂离子电池主要由正极(Cathode)、负极(Anode)、电解液(Electrolyte)和隔离膜(Separator)等组成。其中,正极通常采用锂化合物氧化物(如LiCoO2、LiMn2O4、LiFePO4等)作为活性材料,负极通常采用石墨、硅等含锂材料作为活性材料。电解液是锂离子在电池内部传输的介质,主要由锂盐(如LiPF6、LiClO4等)和有机溶剂(如EC、DMC、DEC等)组成。隔离膜是位于正负极之间的薄膜材料,其作用是阻止正负极之间的直接接触,防止短路,同时允许锂离子在其中自由传输。

image.png

锂离子电池的工作原理主要包括充电过程和放电过程两个方面。锂离子电池的工作原理是通过锂离子在正负极之间的往复移动以及电子在外部电路中的流动实现能量的储存与释放。其性能主要受正负极材料、电解液、隔离膜等组成部分的影响。具体来说:

  1. 充电过程:在充电过程中,外部电源对电池施加正向电压。此时,正极中的锂原子失去电子变成锂离子(Li+),并通过电解液在隔离膜上自由传输到负极。与此同时,正极中失去的电子通过外部电路流向负极。当锂离子到达负极后,它们与负极的活性材料结合,形成锂化合物,从而使负极获得电子补充。在充电过程中,锂离子从正极向负极移动,电子则通过外部电路从正极流向负极。

  2. 放电过程:在放电过程中,锂离子电池为外部负载提供电能。与充电过程相反,此时负极中的锂与活性材料脱离,形成锂离子(Li+)和电子,锂离子通过隔离膜和电解液再次回到正极。与此同时,电子通过外部电路从负极流向正极,为外部负载提供电能。当锂离子到达正极后,它们与正极的活性材料结合,补充正极的电子。在放电过程中,锂离子从负极向正极移动,电子则通过外部电路从负极流向正极。

基于对锂离子电池工作原理的理解,二十世纪九十年代中期,美国加州大学伯克利分校的M. Doyle、T.F. Fuller和J. Newman以多孔电极和浓溶液理论建立了伪二维(P2D: Pseudo-Two-Dimensional)模型,奠定了电化学机理模型的基础。该模型采用一系列偏微分方程和代数方程组精确描述了电池内部锂离子的扩散与迁移、活性粒子表面电化学反应等物理、化学现象。迄今为止,大多数电化学模型都是在该模型基础上衍生和发展而来的。电化学模型是一种第一原理模型,不仅可以准确仿真动力电池外特性,还可以对动力电池内部特性变化(如电极与电解液中锂离子浓度、反应过电势等难以实测的电池内部物理量)进行仿真。与其他动力电池模型相比,电化学模型能深入描述动力电池内部的微观反应,具有更明确的物理含义。P2D模型具有通用性和可扩展性,适用于不同材料体系的电池,并可以发展和延伸为更复杂的多场耦合模型。因此,P2D模型在电池建模过程中扮演了不可替代的角色。

通过锂电池仿真方法,可以深入了解锂电池内部的物理化学过程,提高锂电池性能的研究效率。锂电池仿真方法在锂电池研究和应用中具有重要作用,主要体现在以下几个方面:

  1. 优化锂电池设计:通过锂电池仿真方法,可以分析和比较不同锂电池结构、材料和工艺参数对电池性能的影响,从而优化锂电池的设计和制造。

  2. 提高锂电池性能:锂电池仿真方法可以帮助研究人员深入了解锂电池内部的物理化学过程,从而找到提高锂电池性能的有效途径。

  3. 评估锂电池安全性:通过对锂电池在各种工况下的仿真分析,可以评估锂电池的热失控、短路等安全风险,为提高锂电池安全性提供依据。

  4. 指导锂电池应用:锂电池仿真方法可以帮助工程师针对不同的应用场景选择合适的锂电池类型、规格和管理策略,提高锂电池在实际应用中的性能和可靠性。

代码
文本

电化学模型的基本原理

P2D模型仿真了锂电池在充放电过程中:

  • 电解液中锂离子的迁移电导过程 – 欧姆定律
  • 电解液中锂离子的扩散过程 – Maxwell Stefan方程
  • 正负极颗粒内部锂的扩散过程 – 菲克定律
  • 正负极导电网络内电子的电导过程 – 欧姆定律
  • 电解液-颗粒界面处的脱嵌锂反应 – BV方程

P2D模型的原理:

  • 电荷守恒
  • 物质守恒
  • 法拉第定律
  • 电中性

P2D模型的建立可以囊括锂离子电池的所有基本组成,包括电极(正极、负极)、隔膜、电解液和集流体。

image.png

在基本组成的基础上,P2D模型的有3条核心假设:

  • 电极材料是球状颗粒组成;
  • 不考虑双电层效应;
  • 正负极集流体电导率非常高,因此集流体在y 轴和 z 轴没有明显的变化, 换言之, 电化学反应动力学只在x轴起作用。

这3条核心假设从3个层次简化了电池的模型构建过程:球状颗粒的规则多孔结构,避免了实际中的活性物质的复杂结构和颗粒分布等,算是最基本的物理简化方法。 再有,规避双电层效应,可极大简化离子在电解液和电极表面的分布状态。而将电化学动力学限制在x轴方向,进一步方便了数学处理。

电化学模型研究电荷转移和物质转移两个过程,基于此,从这两个角度进一步拆解P2D模型。

第一,物质转移,也就是锂离子的运动,发生在两个位置,一个是电解质中,一个是活性材料颗粒内部。

  1. 在电解液中,锂离子的移动形式(或者说传质过程)是扩散与迁移。P2D模型不考虑对流。其中,扩散取决于(浓度梯度和液相扩散系数),迁移取决于(液相中电势分布)。(传质基础请参见离子运动的三种方式)

  2. 在电极材料颗粒内部,锂离子发生固相扩散,利用Fick第二定律描述,取决于固相扩散系数和颗粒中锂的浓度梯度。

第二,电荷转移,发生在电极颗粒表面,也就是电解液和电极界面上,采用Bulter—Volmer方程描述,核心因素是分析出交换电流密度。(BV方程基础可参见圆的方块:电化学动力学的核心:Butler–Volmer公式)

综合来看,P2D模型是在这三层简化的基础上,通过建立电荷平衡和物料平衡,完成对整个模型的分析。

对于构建模型,我们也从物质转移和电荷转移两个层面上解释:首先,物质转移,发生在两个位置,电解质中(液相)和材料颗粒内部(固相)。因此,要分别分析二者的传质过程。材料颗粒内部(固相),采用Fick第二定律,需要分析固相扩散系数()和颗粒中锂的浓度梯度()。锂守恒扩散方程需要在电极区域的每个离散空间位置求解。 锂守恒方程在球形粒子的r维中被求解 - 伪二维。 这就是为什么该模型在文献中经常被称为纽曼的P2D模型。

电解质中(液相),锂离子的扩散可以通过上述固相的表面浓度和锂离子的交换通量()来建立平衡。

而交换通量可以通过与交换电流间建立关系来确定,此时就需要在电解液和电极界面上采用Bulter—Volmer方程,

其中,过电位表示为

以上的数理分析只列出了最基础的公式,具体的边界条件和精确求解过程十分复杂,感兴趣的同学可以阅读参考文献

代码
文本

电化学模型模拟电池短期性能

PyBaMM可以简单的完成基础电化学模型的模拟过程,完成计算后的结果展示和提取非常方便,此处展示一个简单的电化学模型计算案例,主要展示PyBaMM工具的使用流程。

代码
文本

首先安装计算需要用到的开源电化学计算软件PyBaMM。

代码
文本
[1]
%pip install pybamm -q # install PyBaMM if it is not installed
import pybamm
import matplotlib.pyplot as plt
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Note: you may need to restart the kernel to use updated packages.
代码
文本

PyBaMM内置了多套参数,可以从此链接参考相关的内容。

代码
文本
[7]
# 选择 DFN(Doyle-Fuller-Newman)模型,DFN模型就是常说的P2D模型,DFN为三个开发者的姓名缩写。
model = pybamm.lithium_ion.DFN()
# 选择一套参数
parameter_values = pybamm.ParameterValues("Chen2020")
代码
文本

可以看到参数变量中包含非常多相关的参数,而修改参数则可以模拟电池的不同设计、应用场景:

代码
文本
[3]
parameter_values
{'Ambient temperature [K]': 298.15,
 'Boltzmann constant [J.K-1]': 1.380649e-23,
 'Bulk solvent concentration [mol.m-3]': 2636.0,
 'Cation transference number': 0.2594,
 'Cell cooling surface area [m2]': 0.00531,
 'Cell thermal expansion coefficient [m.K-1]': 1.1e-06,
 'Cell volume [m3]': 2.42e-05,
 'Contact resistance [Ohm]': 0,
 '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,
 'Electrolyte conductivity [S.m-1]': <function electrolyte_conductivity_Nyman2008 at 0x7f4f32e48430>,
 'Electrolyte diffusivity [m2.s-1]': <function electrolyte_diffusivity_Nyman2008 at 0x7f4f32e4d040>,
 'Electron charge [C]': 1.602176634e-19,
 'Faraday constant [C.mol-1]': 96485.33212,
 'Ideal gas constant [J.K-1.mol-1]': 8.314462618,
 '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,
 'Initial temperature [K]': 298.15,
 'Inner SEI electron conductivity [S.m-1]': 8.95e-14,
 'Inner SEI lithium interstitial diffusivity [m2.s-1]': 1e-20,
 'Inner SEI open-circuit potential [V]': 0.1,
 'Inner SEI partial molar volume [m3.mol-1]': 9.585e-05,
 'Inner SEI reaction proportion': 0.5,
 'Lithium interstitial reference concentration [mol.m-3]': 15.0,
 'Lower voltage cut-off [V]': 2.5,
 'Maximum concentration in negative electrode [mol.m-3]': 33133.0,
 'Maximum concentration in positive electrode [mol.m-3]': 63104.0,
 'Negative current collector conductivity [S.m-1]': 58411000.0,
 'Negative current collector density [kg.m-3]': 8960.0,
 'Negative current collector specific heat capacity [J.kg-1.K-1]': 385.0,
 'Negative current collector thermal conductivity [W.m-1.K-1]': 401.0,
 'Negative current collector thickness [m]': 1.2e-05,
 'Negative electrode Bruggeman coefficient (electrode)': 0,
 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5,
 'Negative electrode OCP [V]': <function graphite_LGM50_ocp_Chen2020 at 0x7f4f32e4d3a0>,
 'Negative electrode OCP entropic change [V.K-1]': 0.0,
 'Negative electrode active material volume fraction': 0.75,
 'Negative electrode charge transfer coefficient': 0.5,
 'Negative electrode conductivity [S.m-1]': 215.0,
 'Negative electrode density [kg.m-3]': 1657.0,
 'Negative electrode diffusivity [m2.s-1]': 3.3e-14,
 'Negative electrode double-layer capacity [F.m-2]': 0.2,
 'Negative electrode exchange-current density [A.m-2]': <function graphite_LGM50_electrolyte_exchange_current_density_Chen2020 at 0x7f4f32e4d310>,
 'Negative electrode porosity': 0.25,
 'Negative electrode reaction-driven LAM factor [m3.mol-1]': 0.0,
 'Negative electrode specific heat capacity [J.kg-1.K-1]': 700.0,
 'Negative electrode thermal conductivity [W.m-1.K-1]': 1.7,
 'Negative electrode thickness [m]': 8.52e-05,
 'Negative particle radius [m]': 5.86e-06,
 'Nominal cell capacity [A.h]': 5.0,
 'Number of cells connected in series to make a battery': 1.0,
 'Number of electrodes connected in parallel to make a cell': 1.0,
 'Outer SEI open-circuit potential [V]': 0.8,
 'Outer SEI partial molar volume [m3.mol-1]': 9.585e-05,
 'Outer SEI solvent diffusivity [m2.s-1]': 2.5000000000000002e-22,
 'Positive current collector conductivity [S.m-1]': 36914000.0,
 'Positive current collector density [kg.m-3]': 2700.0,
 'Positive current collector specific heat capacity [J.kg-1.K-1]': 897.0,
 'Positive current collector thermal conductivity [W.m-1.K-1]': 237.0,
 'Positive current collector thickness [m]': 1.6e-05,
 'Positive electrode Bruggeman coefficient (electrode)': 0,
 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5,
 'Positive electrode OCP [V]': <function nmc_LGM50_ocp_Chen2020 at 0x7f4f32e4d1f0>,
 'Positive electrode OCP entropic change [V.K-1]': 0.0,
 'Positive electrode active material volume fraction': 0.665,
 'Positive electrode charge transfer coefficient': 0.5,
 'Positive electrode conductivity [S.m-1]': 0.18,
 'Positive electrode density [kg.m-3]': 3262.0,
 'Positive electrode diffusivity [m2.s-1]': 4e-15,
 'Positive electrode double-layer capacity [F.m-2]': 0.2,
 'Positive electrode exchange-current density [A.m-2]': <function nmc_LGM50_electrolyte_exchange_current_density_Chen2020 at 0x7f4f32e4d0d0>,
 'Positive electrode porosity': 0.335,
 'Positive electrode reaction-driven LAM factor [m3.mol-1]': 0.0,
 'Positive electrode specific heat capacity [J.kg-1.K-1]': 700.0,
 'Positive electrode thermal conductivity [W.m-1.K-1]': 2.1,
 'Positive electrode thickness [m]': 7.56e-05,
 'Positive particle radius [m]': 5.22e-06,
 'Ratio of lithium moles to SEI moles': 2.0,
 'Reference temperature [K]': 298.15,
 'SEI growth activation energy [J.mol-1]': 0.0,
 'SEI kinetic rate constant [m.s-1]': 1e-12,
 'SEI open-circuit potential [V]': 0.4,
 'SEI reaction exchange current density [A.m-2]': 1.5e-07,
 'SEI resistivity [Ohm.m]': 200000.0,
 'Separator Bruggeman coefficient (electrolyte)': 1.5,
 'Separator density [kg.m-3]': 397.0,
 'Separator porosity': 0.47,
 'Separator specific heat capacity [J.kg-1.K-1]': 700.0,
 'Separator thermal conductivity [W.m-1.K-1]': 0.16,
 'Separator thickness [m]': 1.2e-05,
 'Thermodynamic factor': 1.0,
 'Total heat transfer coefficient [W.m-2.K-1]': 10.0,
 'Upper voltage cut-off [V]': 4.2,
 'citations': ['Chen2020']}
代码
文本
[4]
# 将模型和使用的参数载入Simulation中
sim = pybamm.Simulation(model, parameter_values=parameter_values)
# 设定计算的时间(单位:s)
sim.solve([0, 3600])
#直接plot就可以输出随时间变化的几条重要曲线, 拖动下方时间按钮就可以查看不同时间点的结果。
sim.plot()
<pybamm.plotting.quick_plot.QuickPlot at 0x7f4f32d60520>
代码
文本

想要改变模型中的参数,可以直接对parameter_values里对应的参数进行修改即可:

代码
文本
[10]
# 将原本的放电电流从5A改为10A
print(parameter_values["Current function [A]"])
parameter_values["Current function [A]"] = 10
sim = pybamm.Simulation(model, parameter_values=parameter_values)
sim.solve([0, 3600])
sim.plot()
10
<pybamm.plotting.quick_plot.QuickPlot at 0x7f4f30494610>
代码
文本

前面的案例中把电流参数变为了一个常数,而实际上的电池使用工况要更加复杂,pybamm支持使用Experiment的方法定义复杂的自定义工况,这里做一个简单介绍,因为在循环中也同样需要Experiment来定义循环工况。

代码
文本
[11]
# 定义Pybamm中的Experiment,Experiment可以把相应的充放电流程写入,需要包含 Discharge, Rest, Charge等几个充放电的关键词。
experiment = pybamm.Experiment(
[
("Discharge at C/10 for 10 hours or until 3.3 V",
"Rest for 1 hour",
"Charge at 1 A until 4.1 V",
"Hold at 4.1 V until 50 mA",
"Rest for 1 hour"),
]
)
代码
文本
[13]
# 更新simulation
sim = pybamm.Simulation(model, experiment=experiment)
sim.solve()
sim.plot()
<pybamm.plotting.quick_plot.QuickPlot at 0x7f4f2e028250>
代码
文本

电化学模型模拟电池循环老化过程

代码
文本

在notebook中,先考虑较为简单的单个老化机理的模型,实现通过SEI膜增长导致的线性容量衰减过程,并且将参数进行调整,是副反应的速度加快,在较少圈数就能让容量衰减20%。SEI膜生长是电池常见的老化行为。

在这里我们使用了SEI生长,并且是EC-reaction-limited的模式,激活此功能也只需要在选择模型时添加选项则可,具体是模拟了EC分子在SEI成膜过程中的消耗作用,2C2H4CO3 + 2e- + 2Li+ -> (CH2OCO2Li)2 + C2H4。老化相当于在正常的B-V方程脱嵌中,加入新的反应方程。 具体老化模型加入的方法可以参考论文

代码
文本
[14]
# 选定一套默认的参数作为起始状态
parameter_values = pybamm.ParameterValues("Mohtat2020")
# 将关于SEI膜生长速度的参数进行更新
parameter_values.update({"SEI kinetic rate constant [m.s-1]": 1e-14})
model = pybamm.lithium_ion.DFN({"SEI": "ec reaction limited"})
代码
文本

把电池初始化到100% SOC的状态

代码
文本
[16]
# 设置正负极中的化学计量数为100%SOC对应的状态
parameter_values.set_initial_stoichiometries(1);
代码
文本

使用Experiment方法,并且让Experiment中包含的计算重复500遍,则会是模型跑500个循环。

代码
文本
[20]
pybamm.set_logging_level("NOTICE")

experiment = pybamm.Experiment([
("Discharge at 1C until 3V",
"Rest for 1 hour",
"Charge at 1C until 4.2V",
"Hold at 4.2V until C/50")
] * 500,
termination="80% capacity" # 设置在80%容量处停止
)
sim = pybamm.Simulation(model, experiment=experiment, parameter_values=parameter_values)
sol = sim.solve()
2023-09-24 17:11:36.440 - [NOTICE] callbacks.on_cycle_start(172): Cycle 1/500 (195.887 us elapsed) --------------------
2023-09-24 17:11:36.441 - [NOTICE] callbacks.on_step_start(180): Cycle 1/500, step 1/4: Discharge at 1C until 3V
At t = 256.845, , mxstep steps taken before reaching tout.
2023-09-24 17:11:53.319 - [NOTICE] callbacks.on_step_start(180): Cycle 1/500, step 2/4: Rest for 1 hour
2023-09-24 17:11:53.716 - [NOTICE] callbacks.on_step_start(180): Cycle 1/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:11:54.220 - [NOTICE] callbacks.on_step_start(180): Cycle 1/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:11:55.607 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.940 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:11:55.608 - [NOTICE] callbacks.on_cycle_start(172): Cycle 2/500 (19.168 s elapsed) --------------------
2023-09-24 17:11:55.608 - [NOTICE] callbacks.on_step_start(180): Cycle 2/500, step 1/4: Discharge at 1C until 3V
At t = 169.714, , mxstep steps taken before reaching tout.
At t = 169.714, , mxstep steps taken before reaching tout.
At t = 49.7141, , mxstep steps taken before reaching tout.
At t = 49.7141, , mxstep steps taken before reaching tout.
2023-09-24 17:12:05.424 - [NOTICE] callbacks.on_step_start(180): Cycle 2/500, step 2/4: Rest for 1 hour
2023-09-24 17:12:05.655 - [NOTICE] callbacks.on_step_start(180): Cycle 2/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:12:05.983 - [NOTICE] callbacks.on_step_start(180): Cycle 2/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:12:07.007 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.912 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:12:07.008 - [NOTICE] callbacks.on_cycle_start(172): Cycle 3/500 (30.568 s elapsed) --------------------
2023-09-24 17:12:07.010 - [NOTICE] callbacks.on_step_start(180): Cycle 3/500, step 1/4: Discharge at 1C until 3V
At t = 149.119, , mxstep steps taken before reaching tout.
At t = 149.119, , mxstep steps taken before reaching tout.
2023-09-24 17:12:10.412 - [NOTICE] callbacks.on_step_start(180): Cycle 3/500, step 2/4: Rest for 1 hour
2023-09-24 17:12:10.634 - [NOTICE] callbacks.on_step_start(180): Cycle 3/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:12:10.978 - [NOTICE] callbacks.on_step_start(180): Cycle 3/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:12:12.014 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.884 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:12:12.016 - [NOTICE] callbacks.on_cycle_start(172): Cycle 4/500 (35.576 s elapsed) --------------------
2023-09-24 17:12:12.018 - [NOTICE] callbacks.on_step_start(180): Cycle 4/500, step 1/4: Discharge at 1C until 3V
At t = 128.922, , mxstep steps taken before reaching tout.
At t = 128.922, , mxstep steps taken before reaching tout.
2023-09-24 17:12:17.894 - [NOTICE] callbacks.on_step_start(180): Cycle 4/500, step 2/4: Rest for 1 hour
2023-09-24 17:12:18.128 - [NOTICE] callbacks.on_step_start(180): Cycle 4/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:12:18.461 - [NOTICE] callbacks.on_step_start(180): Cycle 4/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:12:19.483 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.857 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:12:19.484 - [NOTICE] callbacks.on_cycle_start(172): Cycle 5/500 (43.044 s elapsed) --------------------
2023-09-24 17:12:19.486 - [NOTICE] callbacks.on_step_start(180): Cycle 5/500, step 1/4: Discharge at 1C until 3V
At t = 109.103, , mxstep steps taken before reaching tout.
At t = 109.103, , mxstep steps taken before reaching tout.
At t = 109.103, , mxstep steps taken before reaching tout.
At t = 49.1029, , mxstep steps taken before reaching tout.
2023-09-24 17:12:26.187 - [NOTICE] callbacks.on_step_start(180): Cycle 5/500, step 2/4: Rest for 1 hour
2023-09-24 17:12:26.410 - [NOTICE] callbacks.on_step_start(180): Cycle 5/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:12:26.737 - [NOTICE] callbacks.on_step_start(180): Cycle 5/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:12:27.754 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.830 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:12:27.755 - [NOTICE] callbacks.on_cycle_start(172): Cycle 6/500 (51.315 s elapsed) --------------------
2023-09-24 17:12:27.755 - [NOTICE] callbacks.on_step_start(180): Cycle 6/500, step 1/4: Discharge at 1C until 3V
At t = 89.6451, , mxstep steps taken before reaching tout.
At t = 89.6451, , mxstep steps taken before reaching tout.
At t = 89.6451, , mxstep steps taken before reaching tout.
2023-09-24 17:12:32.809 - [NOTICE] callbacks.on_step_start(180): Cycle 6/500, step 2/4: Rest for 1 hour
2023-09-24 17:12:33.035 - [NOTICE] callbacks.on_step_start(180): Cycle 6/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:12:33.380 - [NOTICE] callbacks.on_step_start(180): Cycle 6/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:12:34.418 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.804 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:12:34.419 - [NOTICE] callbacks.on_cycle_start(172): Cycle 7/500 (57.979 s elapsed) --------------------
2023-09-24 17:12:34.420 - [NOTICE] callbacks.on_step_start(180): Cycle 7/500, step 1/4: Discharge at 1C until 3V
At t = 70.532, , mxstep steps taken before reaching tout.
At t = 70.532, , mxstep steps taken before reaching tout.
At t = 70.532, , mxstep steps taken before reaching tout.
2023-09-24 17:12:41.450 - [NOTICE] callbacks.on_step_start(180): Cycle 7/500, step 2/4: Rest for 1 hour
2023-09-24 17:12:41.684 - [NOTICE] callbacks.on_step_start(180): Cycle 7/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:12:42.010 - [NOTICE] callbacks.on_step_start(180): Cycle 7/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:12:43.555 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.778 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:12:43.556 - [NOTICE] callbacks.on_cycle_start(172): Cycle 8/500 (1 minute, 7 seconds elapsed) --------------------
2023-09-24 17:12:43.559 - [NOTICE] callbacks.on_step_start(180): Cycle 8/500, step 1/4: Discharge at 1C until 3V
At t = 51.7485, , mxstep steps taken before reaching tout.
At t = 51.7485, , mxstep steps taken before reaching tout.
At t = 51.7485, , mxstep steps taken before reaching tout.
At t = 51.7485, , mxstep steps taken before reaching tout.
2023-09-24 17:13:28.950 - [NOTICE] callbacks.on_step_start(180): Cycle 8/500, step 2/4: Rest for 1 hour
2023-09-24 17:13:29.174 - [NOTICE] callbacks.on_step_start(180): Cycle 8/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:13:29.493 - [NOTICE] callbacks.on_step_start(180): Cycle 8/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:13:30.509 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.753 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:13:30.510 - [NOTICE] callbacks.on_cycle_start(172): Cycle 9/500 (1 minute, 54 seconds elapsed) --------------------
2023-09-24 17:13:30.513 - [NOTICE] callbacks.on_step_start(180): Cycle 9/500, step 1/4: Discharge at 1C until 3V
2023-09-24 17:13:30.848 - [NOTICE] callbacks.on_step_start(180): Cycle 9/500, step 2/4: Rest for 1 hour
2023-09-24 17:13:31.065 - [NOTICE] callbacks.on_step_start(180): Cycle 9/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:13:31.391 - [NOTICE] callbacks.on_step_start(180): Cycle 9/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:13:32.399 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.728 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:13:32.400 - [NOTICE] callbacks.on_cycle_start(172): Cycle 10/500 (1 minute, 56 seconds elapsed) --------------------
2023-09-24 17:13:32.402 - [NOTICE] callbacks.on_step_start(180): Cycle 10/500, step 1/4: Discharge at 1C until 3V
2023-09-24 17:13:32.743 - [NOTICE] callbacks.on_step_start(180): Cycle 10/500, step 2/4: Rest for 1 hour
2023-09-24 17:13:32.963 - [NOTICE] callbacks.on_step_start(180): Cycle 10/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:13:33.294 - [NOTICE] callbacks.on_step_start(180): Cycle 10/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:13:34.304 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.703 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:13:34.305 - [NOTICE] callbacks.on_cycle_start(172): Cycle 11/500 (1 minute, 58 seconds elapsed) --------------------
2023-09-24 17:13:34.307 - [NOTICE] callbacks.on_step_start(180): Cycle 11/500, step 1/4: Discharge at 1C until 3V
At t = 537.24, , mxstep steps taken before reaching tout.
At t = 57.2397, , mxstep steps taken before reaching tout.
At t = 57.2397, , mxstep steps taken before reaching tout.
At t = 57.2397, , mxstep steps taken before reaching tout.
2023-09-24 17:13:40.951 - [NOTICE] callbacks.on_step_start(180): Cycle 11/500, step 2/4: Rest for 1 hour
2023-09-24 17:13:41.180 - [NOTICE] callbacks.on_step_start(180): Cycle 11/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:13:41.510 - [NOTICE] callbacks.on_step_start(180): Cycle 11/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:13:42.523 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.679 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:13:42.524 - [NOTICE] callbacks.on_cycle_start(172): Cycle 12/500 (2 minutes, 6 seconds elapsed) --------------------
2023-09-24 17:13:42.525 - [NOTICE] callbacks.on_step_start(180): Cycle 12/500, step 1/4: Discharge at 1C until 3V
At t = 519.643, , mxstep steps taken before reaching tout.
At t = 39.6433, , mxstep steps taken before reaching tout.
At t = 39.6433, , mxstep steps taken before reaching tout.
At t = 39.6433, , mxstep steps taken before reaching tout.
2023-09-24 17:13:52.881 - [NOTICE] callbacks.on_step_start(180): Cycle 12/500, step 2/4: Rest for 1 hour
2023-09-24 17:13:53.105 - [NOTICE] callbacks.on_step_start(180): Cycle 12/500, step 3/4: Charge at 1C until 4.2V
At t = 524.993, , mxstep steps taken before reaching tout.
2023-09-24 17:14:13.247 - [NOTICE] callbacks.on_step_start(180): Cycle 12/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:14:14.283 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.655 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:14:14.284 - [NOTICE] callbacks.on_cycle_start(172): Cycle 13/500 (2 minutes, 38 seconds elapsed) --------------------
2023-09-24 17:14:14.286 - [NOTICE] callbacks.on_step_start(180): Cycle 13/500, step 1/4: Discharge at 1C until 3V
At t = 502.315 and h = 6.62026e-15, the corrector convergence failed repeatedly or with |h| = hmin.
2023-09-24 17:14:14.947 - [NOTICE] callbacks.on_step_start(180): Cycle 13/500, step 2/4: Rest for 1 hour
2023-09-24 17:14:15.184 - [NOTICE] callbacks.on_step_start(180): Cycle 13/500, step 3/4: Charge at 1C until 4.2V
At t = 507.903, , mxstep steps taken before reaching tout.
2023-09-24 17:14:34.938 - [NOTICE] callbacks.on_step_start(180): Cycle 13/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:14:35.955 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.631 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:14:35.956 - [NOTICE] callbacks.on_cycle_start(172): Cycle 14/500 (3 minutes, 0 seconds elapsed) --------------------
2023-09-24 17:14:35.958 - [NOTICE] callbacks.on_step_start(180): Cycle 14/500, step 1/4: Discharge at 1C until 3V
At t = 485.246, , mxstep steps taken before reaching tout.
2023-09-24 17:14:37.885 - [NOTICE] callbacks.on_step_start(180): Cycle 14/500, step 2/4: Rest for 1 hour
2023-09-24 17:14:38.105 - [NOTICE] callbacks.on_step_start(180): Cycle 14/500, step 3/4: Charge at 1C until 4.2V
At t = 491.061, , mxstep steps taken before reaching tout.
2023-09-24 17:15:00.243 - [NOTICE] callbacks.on_step_start(180): Cycle 14/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:15:01.262 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.608 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:15:01.263 - [NOTICE] callbacks.on_cycle_start(172): Cycle 15/500 (3 minutes, 25 seconds elapsed) --------------------
2023-09-24 17:15:01.263 - [NOTICE] callbacks.on_step_start(180): Cycle 15/500, step 1/4: Discharge at 1C until 3V
At t = 468.425, , mxstep steps taken before reaching tout.
At t = 228.425, , mxstep steps taken before reaching tout.
At t = 108.425, repeated recoverable residual errors.
At t = 48.4248, , mxstep steps taken before reaching tout.
2023-09-24 17:15:07.712 - [NOTICE] callbacks.on_step_start(180): Cycle 15/500, step 2/4: Rest for 1 hour
2023-09-24 17:15:07.934 - [NOTICE] callbacks.on_step_start(180): Cycle 15/500, step 3/4: Charge at 1C until 4.2V
At t = 474.457, , mxstep steps taken before reaching tout.
2023-09-24 17:15:09.713 - [NOTICE] callbacks.on_step_start(180): Cycle 15/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:15:10.741 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.585 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:15:10.742 - [NOTICE] callbacks.on_cycle_start(172): Cycle 16/500 (3 minutes, 34 seconds elapsed) --------------------
2023-09-24 17:15:10.744 - [NOTICE] callbacks.on_step_start(180): Cycle 16/500, step 1/4: Discharge at 1C until 3V
At t = 451.844, , mxstep steps taken before reaching tout.
At t = 211.844, , mxstep steps taken before reaching tout.
At t = 91.8442, , mxstep steps taken before reaching tout.
2023-09-24 17:15:35.747 - [NOTICE] callbacks.on_step_start(180): Cycle 16/500, step 2/4: Rest for 1 hour
2023-09-24 17:15:35.973 - [NOTICE] callbacks.on_step_start(180): Cycle 16/500, step 3/4: Charge at 1C until 4.2V
At t = 458.083, , mxstep steps taken before reaching tout.
2023-09-24 17:15:57.644 - [NOTICE] callbacks.on_step_start(180): Cycle 16/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:15:58.658 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.563 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:15:58.659 - [NOTICE] callbacks.on_cycle_start(172): Cycle 17/500 (4 minutes, 22 seconds elapsed) --------------------
2023-09-24 17:15:58.660 - [NOTICE] callbacks.on_step_start(180): Cycle 17/500, step 1/4: Discharge at 1C until 3V
At t = 435.496, , mxstep steps taken before reaching tout.
At t = 195.496, , mxstep steps taken before reaching tout.
At t = 75.496, , mxstep steps taken before reaching tout.
2023-09-24 17:16:03.822 - [NOTICE] callbacks.on_step_start(180): Cycle 17/500, step 2/4: Rest for 1 hour
2023-09-24 17:16:04.046 - [NOTICE] callbacks.on_step_start(180): Cycle 17/500, step 3/4: Charge at 1C until 4.2V
At t = 441.932, , mxstep steps taken before reaching tout.
2023-09-24 17:16:05.847 - [NOTICE] callbacks.on_step_start(180): Cycle 17/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:16:07.179 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.541 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:16:07.180 - [NOTICE] callbacks.on_cycle_start(172): Cycle 18/500 (4 minutes, 31 seconds elapsed) --------------------
2023-09-24 17:16:07.181 - [NOTICE] callbacks.on_step_start(180): Cycle 18/500, step 1/4: Discharge at 1C until 3V
At t = 419.372, , mxstep steps taken before reaching tout.
At t = 179.372, , mxstep steps taken before reaching tout.
At t = 59.3717, , mxstep steps taken before reaching tout.
At t = 59.3717, , mxstep steps taken before reaching tout.
2023-09-24 17:16:47.095 - [NOTICE] callbacks.on_step_start(180): Cycle 18/500, step 2/4: Rest for 1 hour
2023-09-24 17:16:47.316 - [NOTICE] callbacks.on_step_start(180): Cycle 18/500, step 3/4: Charge at 1C until 4.2V
At t = 425.998, , mxstep steps taken before reaching tout.
2023-09-24 17:16:49.083 - [NOTICE] callbacks.on_step_start(180): Cycle 18/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:16:50.098 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.519 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:16:50.099 - [NOTICE] callbacks.on_cycle_start(172): Cycle 19/500 (5 minutes, 14 seconds elapsed) --------------------
2023-09-24 17:16:50.101 - [NOTICE] callbacks.on_step_start(180): Cycle 19/500, step 1/4: Discharge at 1C until 3V
At t = 403.464, , mxstep steps taken before reaching tout.
At t = 163.464, , mxstep steps taken before reaching tout.
At t = 43.4639, , mxstep steps taken before reaching tout.
At t = 43.4639, , mxstep steps taken before reaching tout.
2023-09-24 17:17:10.994 - [NOTICE] callbacks.on_step_start(180): Cycle 19/500, step 2/4: Rest for 1 hour
2023-09-24 17:17:11.210 - [NOTICE] callbacks.on_step_start(180): Cycle 19/500, step 3/4: Charge at 1C until 4.2V
At t = 410.27 and h = 6.46598e-14, the corrector convergence failed repeatedly or with |h| = hmin.
2023-09-24 17:17:11.832 - [NOTICE] callbacks.on_step_start(180): Cycle 19/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:17:12.846 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.497 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:17:12.847 - [NOTICE] callbacks.on_cycle_start(172): Cycle 20/500 (5 minutes, 36 seconds elapsed) --------------------
2023-09-24 17:17:12.848 - [NOTICE] callbacks.on_step_start(180): Cycle 20/500, step 1/4: Discharge at 1C until 3V
At t = 387.766, , mxstep steps taken before reaching tout.
At t = 147.766, , mxstep steps taken before reaching tout.
2023-09-24 17:17:16.316 - [NOTICE] callbacks.on_step_start(180): Cycle 20/500, step 2/4: Rest for 1 hour
2023-09-24 17:17:16.537 - [NOTICE] callbacks.on_step_start(180): Cycle 20/500, step 3/4: Charge at 1C until 4.2V
At t = 394.745 and h = 5.9046e-15, the corrector convergence failed repeatedly or with |h| = hmin.
2023-09-24 17:17:17.145 - [NOTICE] callbacks.on_step_start(180): Cycle 20/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:17:18.154 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.476 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:17:18.155 - [NOTICE] callbacks.on_cycle_start(172): Cycle 21/500 (5 minutes, 42 seconds elapsed) --------------------
2023-09-24 17:17:18.156 - [NOTICE] callbacks.on_step_start(180): Cycle 21/500, step 1/4: Discharge at 1C until 3V
At t = 372.271, , mxstep steps taken before reaching tout.
At t = 132.271, , mxstep steps taken before reaching tout.
2023-09-24 17:17:24.884 - [NOTICE] callbacks.on_step_start(180): Cycle 21/500, step 2/4: Rest for 1 hour
2023-09-24 17:17:25.104 - [NOTICE] callbacks.on_step_start(180): Cycle 21/500, step 3/4: Charge at 1C until 4.2V
At t = 379.416, , mxstep steps taken before reaching tout.
2023-09-24 17:17:45.065 - [NOTICE] callbacks.on_step_start(180): Cycle 21/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:17:46.074 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.454 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:17:46.075 - [NOTICE] callbacks.on_cycle_start(172): Cycle 22/500 (6 minutes, 10 seconds elapsed) --------------------
2023-09-24 17:17:46.078 - [NOTICE] callbacks.on_step_start(180): Cycle 22/500, step 1/4: Discharge at 1C until 3V
At t = 356.972, , mxstep steps taken before reaching tout.
At t = 116.972, , mxstep steps taken before reaching tout.
At t = 116.972, , mxstep steps taken before reaching tout.
At t = 56.972, , mxstep steps taken before reaching tout.
2023-09-24 17:17:55.213 - [NOTICE] callbacks.on_step_start(180): Cycle 22/500, step 2/4: Rest for 1 hour
2023-09-24 17:17:55.425 - [NOTICE] callbacks.on_step_start(180): Cycle 22/500, step 3/4: Charge at 1C until 4.2V
At t = 364.277, , mxstep steps taken before reaching tout.
2023-09-24 17:17:57.181 - [NOTICE] callbacks.on_step_start(180): Cycle 22/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:17:58.195 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.434 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:17:58.196 - [NOTICE] callbacks.on_cycle_start(172): Cycle 23/500 (6 minutes, 22 seconds elapsed) --------------------
2023-09-24 17:17:58.197 - [NOTICE] callbacks.on_step_start(180): Cycle 23/500, step 1/4: Discharge at 1C until 3V
At t = 341.864, , mxstep steps taken before reaching tout.
At t = 101.864, , mxstep steps taken before reaching tout.
At t = 101.864, , mxstep steps taken before reaching tout.
At t = 41.8642, , mxstep steps taken before reaching tout.
2023-09-24 17:18:04.665 - [NOTICE] callbacks.on_step_start(180): Cycle 23/500, step 2/4: Rest for 1 hour
2023-09-24 17:18:04.883 - [NOTICE] callbacks.on_step_start(180): Cycle 23/500, step 3/4: Charge at 1C until 4.2V
At t = 349.323, , mxstep steps taken before reaching tout.
2023-09-24 17:18:09.209 - [NOTICE] callbacks.on_step_start(180): Cycle 23/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:18:10.222 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.413 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:18:10.223 - [NOTICE] callbacks.on_cycle_start(172): Cycle 24/500 (6 minutes, 34 seconds elapsed) --------------------
2023-09-24 17:18:10.223 - [NOTICE] callbacks.on_step_start(180): Cycle 24/500, step 1/4: Discharge at 1C until 3V
At t = 326.942, , mxstep steps taken before reaching tout.
At t = 86.9416, , mxstep steps taken before reaching tout.
At t = 86.9416, , mxstep steps taken before reaching tout.
2023-09-24 17:18:15.210 - [NOTICE] callbacks.on_step_start(180): Cycle 24/500, step 2/4: Rest for 1 hour
2023-09-24 17:18:15.428 - [NOTICE] callbacks.on_step_start(180): Cycle 24/500, step 3/4: Charge at 1C until 4.2V
At t = 334.548, , mxstep steps taken before reaching tout.
2023-09-24 17:18:17.219 - [NOTICE] callbacks.on_step_start(180): Cycle 24/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:18:18.235 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.393 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:18:18.236 - [NOTICE] callbacks.on_cycle_start(172): Cycle 25/500 (6 minutes, 42 seconds elapsed) --------------------
2023-09-24 17:18:18.237 - [NOTICE] callbacks.on_step_start(180): Cycle 25/500, step 1/4: Discharge at 1C until 3V
At t = 312.199, , mxstep steps taken before reaching tout.
At t = 72.1988, , mxstep steps taken before reaching tout.
At t = 72.1988, , mxstep steps taken before reaching tout.
2023-09-24 17:18:25.292 - [NOTICE] callbacks.on_step_start(180): Cycle 25/500, step 2/4: Rest for 1 hour
2023-09-24 17:18:25.504 - [NOTICE] callbacks.on_step_start(180): Cycle 25/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:18:25.791 - [NOTICE] callbacks.on_step_start(180): Cycle 25/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:18:26.808 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.373 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:18:26.809 - [NOTICE] callbacks.on_cycle_start(172): Cycle 26/500 (6 minutes, 50 seconds elapsed) --------------------
2023-09-24 17:18:26.810 - [NOTICE] callbacks.on_step_start(180): Cycle 26/500, step 1/4: Discharge at 1C until 3V
At t = 297.631, , mxstep steps taken before reaching tout.
At t = 57.6307, , mxstep steps taken before reaching tout.
At t = 57.6307, , mxstep steps taken before reaching tout.
At t = 57.6307, , mxstep steps taken before reaching tout.
2023-09-24 17:18:33.205 - [NOTICE] callbacks.on_step_start(180): Cycle 26/500, step 2/4: Rest for 1 hour
2023-09-24 17:18:33.424 - [NOTICE] callbacks.on_step_start(180): Cycle 26/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:18:33.716 - [NOTICE] callbacks.on_step_start(180): Cycle 26/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:18:34.724 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.353 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:18:34.725 - [NOTICE] callbacks.on_cycle_start(172): Cycle 27/500 (6 minutes, 58 seconds elapsed) --------------------
2023-09-24 17:18:34.728 - [NOTICE] callbacks.on_step_start(180): Cycle 27/500, step 1/4: Discharge at 1C until 3V
At t = 283.233, , mxstep steps taken before reaching tout.
At t = 43.2325 and h = 6.40709e-15, the corrector convergence failed repeatedly or with |h| = hmin.
At t = 43.2325 and h = 1.2986e-13, the corrector convergence failed repeatedly or with |h| = hmin.
At t = 43.2325 and h = 5.47489e-14, the corrector convergence failed repeatedly or with |h| = hmin.
2023-09-24 17:18:37.474 - [NOTICE] callbacks.on_step_start(180): Cycle 27/500, step 2/4: Rest for 1 hour
2023-09-24 17:18:37.691 - [NOTICE] callbacks.on_step_start(180): Cycle 27/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:18:37.976 - [NOTICE] callbacks.on_step_start(180): Cycle 27/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:18:38.992 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.333 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:18:38.993 - [NOTICE] callbacks.on_cycle_start(172): Cycle 28/500 (7 minutes, 3 seconds elapsed) --------------------
2023-09-24 17:18:38.994 - [NOTICE] callbacks.on_step_start(180): Cycle 28/500, step 1/4: Discharge at 1C until 3V
At t = 269, , mxstep steps taken before reaching tout.
2023-09-24 17:18:42.518 - [NOTICE] callbacks.on_step_start(180): Cycle 28/500, step 2/4: Rest for 1 hour
2023-09-24 17:18:42.735 - [NOTICE] callbacks.on_step_start(180): Cycle 28/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:18:43.028 - [NOTICE] callbacks.on_step_start(180): Cycle 28/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:18:44.035 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.314 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:18:44.036 - [NOTICE] callbacks.on_cycle_start(172): Cycle 29/500 (7 minutes, 8 seconds elapsed) --------------------
2023-09-24 17:18:44.038 - [NOTICE] callbacks.on_step_start(180): Cycle 29/500, step 1/4: Discharge at 1C until 3V
At t = 254.927, , mxstep steps taken before reaching tout.
2023-09-24 17:18:45.936 - [NOTICE] callbacks.on_step_start(180): Cycle 29/500, step 2/4: Rest for 1 hour
2023-09-24 17:18:46.154 - [NOTICE] callbacks.on_step_start(180): Cycle 29/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:18:46.440 - [NOTICE] callbacks.on_step_start(180): Cycle 29/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:18:47.800 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.294 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:18:47.801 - [NOTICE] callbacks.on_cycle_start(172): Cycle 30/500 (7 minutes, 11 seconds elapsed) --------------------
2023-09-24 17:18:47.803 - [NOTICE] callbacks.on_step_start(180): Cycle 30/500, step 1/4: Discharge at 1C until 3V
At t = 241.012, , mxstep steps taken before reaching tout.
2023-09-24 17:19:07.619 - [NOTICE] callbacks.on_step_start(180): Cycle 30/500, step 2/4: Rest for 1 hour
2023-09-24 17:19:07.838 - [NOTICE] callbacks.on_step_start(180): Cycle 30/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:19:08.128 - [NOTICE] callbacks.on_step_start(180): Cycle 30/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:19:09.147 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.275 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:19:09.148 - [NOTICE] callbacks.on_cycle_start(172): Cycle 31/500 (7 minutes, 33 seconds elapsed) --------------------
2023-09-24 17:19:09.150 - [NOTICE] callbacks.on_step_start(180): Cycle 31/500, step 1/4: Discharge at 1C until 3V
At t = 227.249, , mxstep steps taken before reaching tout.
At t = 227.249, , mxstep steps taken before reaching tout.
At t = 107.249, , mxstep steps taken before reaching tout.
At t = 47.249, , mxstep steps taken before reaching tout.
2023-09-24 17:19:15.628 - [NOTICE] callbacks.on_step_start(180): Cycle 31/500, step 2/4: Rest for 1 hour
2023-09-24 17:19:15.845 - [NOTICE] callbacks.on_step_start(180): Cycle 31/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:19:16.136 - [NOTICE] callbacks.on_step_start(180): Cycle 31/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:19:17.151 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.256 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:19:17.151 - [NOTICE] callbacks.on_cycle_start(172): Cycle 32/500 (7 minutes, 41 seconds elapsed) --------------------
2023-09-24 17:19:17.154 - [NOTICE] callbacks.on_step_start(180): Cycle 32/500, step 1/4: Discharge at 1C until 3V
At t = 213.635, , mxstep steps taken before reaching tout.
At t = 213.635 and h = 1.20859e-13, the corrector convergence failed repeatedly or with |h| = hmin.
At t = 93.6349, , mxstep steps taken before reaching tout.
2023-09-24 17:19:20.697 - [NOTICE] callbacks.on_step_start(180): Cycle 32/500, step 2/4: Rest for 1 hour
2023-09-24 17:19:20.916 - [NOTICE] callbacks.on_step_start(180): Cycle 32/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:19:21.204 - [NOTICE] callbacks.on_step_start(180): Cycle 32/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:19:22.217 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.238 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:19:22.218 - [NOTICE] callbacks.on_cycle_start(172): Cycle 33/500 (7 minutes, 46 seconds elapsed) --------------------
2023-09-24 17:19:22.221 - [NOTICE] callbacks.on_step_start(180): Cycle 33/500, step 1/4: Discharge at 1C until 3V
At t = 200.166, , mxstep steps taken before reaching tout.
At t = 200.166, , mxstep steps taken before reaching tout.
At t = 80.1658, , mxstep steps taken before reaching tout.
2023-09-24 17:19:28.333 - [NOTICE] callbacks.on_step_start(180): Cycle 33/500, step 2/4: Rest for 1 hour
2023-09-24 17:19:28.552 - [NOTICE] callbacks.on_step_start(180): Cycle 33/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:19:28.842 - [NOTICE] callbacks.on_step_start(180): Cycle 33/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:19:29.861 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.219 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:19:29.862 - [NOTICE] callbacks.on_cycle_start(172): Cycle 34/500 (7 minutes, 53 seconds elapsed) --------------------
2023-09-24 17:19:29.865 - [NOTICE] callbacks.on_step_start(180): Cycle 34/500, step 1/4: Discharge at 1C until 3V
At t = 186.838 and h = 2.25828e-15, the corrector convergence failed repeatedly or with |h| = hmin.
At t = 186.838, , mxstep steps taken before reaching tout.
At t = 66.8382, , mxstep steps taken before reaching tout.
2023-09-24 17:19:38.652 - [NOTICE] callbacks.on_step_start(180): Cycle 34/500, step 2/4: Rest for 1 hour
2023-09-24 17:19:38.875 - [NOTICE] callbacks.on_step_start(180): Cycle 34/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:19:39.170 - [NOTICE] callbacks.on_step_start(180): Cycle 34/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:19:40.182 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.201 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:19:40.183 - [NOTICE] callbacks.on_cycle_start(172): Cycle 35/500 (8 minutes, 4 seconds elapsed) --------------------
2023-09-24 17:19:40.184 - [NOTICE] callbacks.on_step_start(180): Cycle 35/500, step 1/4: Discharge at 1C until 3V
At t = 173.649, , mxstep steps taken before reaching tout.
At t = 173.649, , mxstep steps taken before reaching tout.
At t = 53.6487, , mxstep steps taken before reaching tout.
At t = 53.6487, , mxstep steps taken before reaching tout.
2023-09-24 17:19:52.766 - [NOTICE] callbacks.on_step_start(180): Cycle 35/500, step 2/4: Rest for 1 hour
2023-09-24 17:19:52.985 - [NOTICE] callbacks.on_step_start(180): Cycle 35/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:19:53.276 - [NOTICE] callbacks.on_step_start(180): Cycle 35/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:19:54.285 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.183 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:19:54.286 - [NOTICE] callbacks.on_cycle_start(172): Cycle 36/500 (8 minutes, 18 seconds elapsed) --------------------
2023-09-24 17:19:54.287 - [NOTICE] callbacks.on_step_start(180): Cycle 36/500, step 1/4: Discharge at 1C until 3V
At t = 160.595, , mxstep steps taken before reaching tout.
At t = 160.595, , mxstep steps taken before reaching tout.
At t = 40.5946, , mxstep steps taken before reaching tout.
At t = 40.5946, , mxstep steps taken before reaching tout.
2023-09-24 17:20:02.972 - [NOTICE] callbacks.on_step_start(180): Cycle 36/500, step 2/4: Rest for 1 hour
2023-09-24 17:20:03.189 - [NOTICE] callbacks.on_step_start(180): Cycle 36/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:20:03.476 - [NOTICE] callbacks.on_step_start(180): Cycle 36/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:20:04.483 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.165 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:20:04.484 - [NOTICE] callbacks.on_cycle_start(172): Cycle 37/500 (8 minutes, 28 seconds elapsed) --------------------
2023-09-24 17:20:04.487 - [NOTICE] callbacks.on_step_start(180): Cycle 37/500, step 1/4: Discharge at 1C until 3V
At t = 147.672, , mxstep steps taken before reaching tout.
At t = 147.672, , mxstep steps taken before reaching tout.
2023-09-24 17:20:07.838 - [NOTICE] callbacks.on_step_start(180): Cycle 37/500, step 2/4: Rest for 1 hour
2023-09-24 17:20:08.056 - [NOTICE] callbacks.on_step_start(180): Cycle 37/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:20:08.350 - [NOTICE] callbacks.on_step_start(180): Cycle 37/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:20:09.358 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.148 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:20:09.359 - [NOTICE] callbacks.on_cycle_start(172): Cycle 38/500 (8 minutes, 33 seconds elapsed) --------------------
2023-09-24 17:20:09.361 - [NOTICE] callbacks.on_step_start(180): Cycle 38/500, step 1/4: Discharge at 1C until 3V
At t = 134.878 and h = 2.0576e-14, the corrector convergence failed repeatedly or with |h| = hmin.
At t = 134.878, , mxstep steps taken before reaching tout.
2023-09-24 17:20:11.576 - [NOTICE] callbacks.on_step_start(180): Cycle 38/500, step 2/4: Rest for 1 hour
2023-09-24 17:20:11.794 - [NOTICE] callbacks.on_step_start(180): Cycle 38/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:20:12.089 - [NOTICE] callbacks.on_step_start(180): Cycle 38/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:20:13.102 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.130 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:20:13.103 - [NOTICE] callbacks.on_cycle_start(172): Cycle 39/500 (8 minutes, 37 seconds elapsed) --------------------
2023-09-24 17:20:13.105 - [NOTICE] callbacks.on_step_start(180): Cycle 39/500, step 1/4: Discharge at 1C until 3V
At t = 122.21, , mxstep steps taken before reaching tout.
At t = 122.21, , mxstep steps taken before reaching tout.
2023-09-24 17:20:16.574 - [NOTICE] callbacks.on_step_start(180): Cycle 39/500, step 2/4: Rest for 1 hour
2023-09-24 17:20:16.795 - [NOTICE] callbacks.on_step_start(180): Cycle 39/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:20:17.092 - [NOTICE] callbacks.on_step_start(180): Cycle 39/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:20:18.102 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.113 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:20:18.103 - [NOTICE] callbacks.on_cycle_start(172): Cycle 40/500 (8 minutes, 42 seconds elapsed) --------------------
2023-09-24 17:20:18.103 - [NOTICE] callbacks.on_step_start(180): Cycle 40/500, step 1/4: Discharge at 1C until 3V
At t = 109.665, , mxstep steps taken before reaching tout.
At t = 109.665, , mxstep steps taken before reaching tout.
At t = 109.665, , mxstep steps taken before reaching tout.
At t = 49.6649 and h = 3.79833e-14, the corrector convergence failed repeatedly or with |h| = hmin.
2023-09-24 17:20:23.879 - [NOTICE] callbacks.on_step_start(180): Cycle 40/500, step 2/4: Rest for 1 hour
2023-09-24 17:20:24.098 - [NOTICE] callbacks.on_step_start(180): Cycle 40/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:20:24.391 - [NOTICE] callbacks.on_step_start(180): Cycle 40/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:20:25.397 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.095 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:20:25.398 - [NOTICE] callbacks.on_cycle_start(172): Cycle 41/500 (8 minutes, 49 seconds elapsed) --------------------
2023-09-24 17:20:25.400 - [NOTICE] callbacks.on_step_start(180): Cycle 41/500, step 1/4: Discharge at 1C until 3V
At t = 97.2401, , mxstep steps taken before reaching tout.
At t = 97.2401, , mxstep steps taken before reaching tout.
At t = 97.2401, , mxstep steps taken before reaching tout.
At t = 37.2401, , mxstep steps taken before reaching tout.
At t = 37.2401, , mxstep steps taken before reaching tout.
2023-09-24 17:20:33.402 - [NOTICE] callbacks.on_step_start(180): Cycle 41/500, step 2/4: Rest for 1 hour
2023-09-24 17:20:33.619 - [NOTICE] callbacks.on_step_start(180): Cycle 41/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:20:33.916 - [NOTICE] callbacks.on_step_start(180): Cycle 41/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:20:34.931 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.078 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:20:34.932 - [NOTICE] callbacks.on_cycle_start(172): Cycle 42/500 (8 minutes, 58 seconds elapsed) --------------------
2023-09-24 17:20:34.934 - [NOTICE] callbacks.on_step_start(180): Cycle 42/500, step 1/4: Discharge at 1C until 3V
At t = 84.9331, , mxstep steps taken before reaching tout.
At t = 84.9331, , mxstep steps taken before reaching tout.
At t = 84.9331, , mxstep steps taken before reaching tout.
2023-09-24 17:20:54.693 - [NOTICE] callbacks.on_step_start(180): Cycle 42/500, step 2/4: Rest for 1 hour
2023-09-24 17:20:54.909 - [NOTICE] callbacks.on_step_start(180): Cycle 42/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:20:55.205 - [NOTICE] callbacks.on_step_start(180): Cycle 42/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:20:56.216 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.062 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:20:56.217 - [NOTICE] callbacks.on_cycle_start(172): Cycle 43/500 (9 minutes, 20 seconds elapsed) --------------------
2023-09-24 17:20:56.219 - [NOTICE] callbacks.on_step_start(180): Cycle 43/500, step 1/4: Discharge at 1C until 3V
At t = 72.7413, , mxstep steps taken before reaching tout.
At t = 72.7413, , mxstep steps taken before reaching tout.
At t = 72.7413, , mxstep steps taken before reaching tout.
2023-09-24 17:21:20.973 - [NOTICE] callbacks.on_step_start(180): Cycle 43/500, step 2/4: Rest for 1 hour
2023-09-24 17:21:21.192 - [NOTICE] callbacks.on_step_start(180): Cycle 43/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:21:21.503 - [NOTICE] callbacks.on_step_start(180): Cycle 43/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:21:22.524 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.045 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:21:22.525 - [NOTICE] callbacks.on_cycle_start(172): Cycle 44/500 (9 minutes, 46 seconds elapsed) --------------------
2023-09-24 17:21:22.526 - [NOTICE] callbacks.on_step_start(180): Cycle 44/500, step 1/4: Discharge at 1C until 3V
At t = 60.6624, , mxstep steps taken before reaching tout.
At t = 60.6624, , mxstep steps taken before reaching tout.
At t = 60.6624, , mxstep steps taken before reaching tout.
2023-09-24 17:21:46.106 - [NOTICE] callbacks.on_step_start(180): Cycle 44/500, step 2/4: Rest for 1 hour
2023-09-24 17:21:46.322 - [NOTICE] callbacks.on_step_start(180): Cycle 44/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:21:46.628 - [NOTICE] callbacks.on_step_start(180): Cycle 44/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:21:48.041 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.028 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:21:48.042 - [NOTICE] callbacks.on_cycle_start(172): Cycle 45/500 (10 minutes, 12 seconds elapsed) --------------------
2023-09-24 17:21:48.043 - [NOTICE] callbacks.on_step_start(180): Cycle 45/500, step 1/4: Discharge at 1C until 3V
At t = 48.694 and h = 1.48969e-14, the corrector convergence failed repeatedly or with |h| = hmin.
At t = 48.694, , mxstep steps taken before reaching tout.
At t = 48.694, , mxstep steps taken before reaching tout.
At t = 48.694, , mxstep steps taken before reaching tout.
2023-09-24 17:21:56.926 - [NOTICE] callbacks.on_step_start(180): Cycle 45/500, step 2/4: Rest for 1 hour
2023-09-24 17:21:57.146 - [NOTICE] callbacks.on_step_start(180): Cycle 45/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:21:57.446 - [NOTICE] callbacks.on_step_start(180): Cycle 45/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:21:58.456 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 4.012 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:21:58.457 - [NOTICE] callbacks.on_cycle_start(172): Cycle 46/500 (10 minutes, 22 seconds elapsed) --------------------
2023-09-24 17:21:58.460 - [NOTICE] callbacks.on_step_start(180): Cycle 46/500, step 1/4: Discharge at 1C until 3V
At t = 36.834, , mxstep steps taken before reaching tout.
At t = 36.834 and h = 3.37611e-15, the corrector convergence failed repeatedly or with |h| = hmin.
At t = 36.834, , mxstep steps taken before reaching tout.
At t = 36.834, , mxstep steps taken before reaching tout.
At t = 36.834, , mxstep steps taken before reaching tout.
2023-09-24 17:22:46.068 - [NOTICE] callbacks.on_step_start(180): Cycle 46/500, step 2/4: Rest for 1 hour
2023-09-24 17:22:46.285 - [NOTICE] callbacks.on_step_start(180): Cycle 46/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:22:46.593 - [NOTICE] callbacks.on_step_start(180): Cycle 46/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:22:47.609 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 3.995 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:22:47.610 - [NOTICE] callbacks.on_cycle_start(172): Cycle 47/500 (11 minutes, 11 seconds elapsed) --------------------
2023-09-24 17:22:47.612 - [NOTICE] callbacks.on_step_start(180): Cycle 47/500, step 1/4: Discharge at 1C until 3V
2023-09-24 17:22:47.911 - [NOTICE] callbacks.on_step_start(180): Cycle 47/500, step 2/4: Rest for 1 hour
2023-09-24 17:22:48.129 - [NOTICE] callbacks.on_step_start(180): Cycle 47/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:22:48.439 - [NOTICE] callbacks.on_step_start(180): Cycle 47/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:22:49.466 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 3.979 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:22:49.467 - [NOTICE] callbacks.on_cycle_start(172): Cycle 48/500 (11 minutes, 13 seconds elapsed) --------------------
2023-09-24 17:22:49.468 - [NOTICE] callbacks.on_step_start(180): Cycle 48/500, step 1/4: Discharge at 1C until 3V
2023-09-24 17:22:49.770 - [NOTICE] callbacks.on_step_start(180): Cycle 48/500, step 2/4: Rest for 1 hour
2023-09-24 17:22:49.990 - [NOTICE] callbacks.on_step_start(180): Cycle 48/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:22:50.291 - [NOTICE] callbacks.on_step_start(180): Cycle 48/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:22:51.310 - [NOTICE] callbacks.on_cycle_end(194): Capacity is now 3.963 Ah (originally 4.940 Ah, will stop at 3.952 Ah)
2023-09-24 17:22:51.311 - [NOTICE] callbacks.on_cycle_start(172): Cycle 49/500 (11 minutes, 15 seconds elapsed) --------------------
2023-09-24 17:22:51.312 - [NOTICE] callbacks.on_step_start(180): Cycle 49/500, step 1/4: Discharge at 1C until 3V
2023-09-24 17:22:51.632 - [NOTICE] callbacks.on_step_start(180): Cycle 49/500, step 2/4: Rest for 1 hour
2023-09-24 17:22:51.855 - [NOTICE] callbacks.on_step_start(180): Cycle 49/500, step 3/4: Charge at 1C until 4.2V
2023-09-24 17:22:52.155 - [NOTICE] callbacks.on_step_start(180): Cycle 49/500, step 4/4: Hold at 4.2V until C/50
2023-09-24 17:22:53.182 - [NOTICE] callbacks.on_cycle_end(199): Stopping experiment since capacity (3.947 Ah) is below stopping capacity (3.952 Ah).
2023-09-24 17:22:53.185 - [NOTICE] callbacks.on_experiment_end(220): Finish experiment simulation, took 11 minutes, 17 seconds
代码
文本

总结计算结果

代码
文本

计算完成后可以进一步的将这个计算过程中相关的结果提取,但是由于循环数据量过大,信号结果比较混乱。

代码
文本
[21]
sol.plot(["Current [A]", "Voltage [V]"])
<pybamm.plotting.quick_plot.QuickPlot at 0x7f4f2c18e130>
代码
文本

可以使用 summary variables来展示随循环变化的重要信息, Some of the variables also have "Change in ...", which is how much that variable changes over each cycle. This can be achieved by using plot_summary_variables method of pybamm, which can also be used to compare "summary variables" extracted from 2 or more solutions.

代码
文本
[25]
#展示随定义的随循环变化的 summary_variables
sorted(sol.summary_variables.keys())
['Capacity [A.h]',
 'Capacity [mA.h.cm-2]',
 'Change in local ECM resistance [Ohm]',
 'Change in loss of active material in negative electrode [%]',
 'Change in loss of active material in positive electrode [%]',
 'Change in loss of capacity to SEI [A.h]',
 'Change in loss of capacity to SEI on cracks [A.h]',
 'Change in loss of capacity to lithium plating [A.h]',
 'Change in loss of lithium inventory [%]',
 'Change in loss of lithium inventory, including electrolyte [%]',
 'Change in loss of lithium to SEI [mol]',
 'Change in loss of lithium to SEI on cracks [mol]',
 'Change in loss of lithium to lithium plating [mol]',
 'Change in negative electrode capacity [A.h]',
 'Change in positive electrode capacity [A.h]',
 'Change in throughput capacity [A.h]',
 'Change in throughput energy [W.h]',
 'Change in time [h]',
 'Change in time [s]',
 'Change in total capacity lost to side reactions [A.h]',
 'Change in total lithium [mol]',
 'Change in total lithium in electrolyte [mol]',
 'Change in total lithium in negative electrode [mol]',
 'Change in total lithium in particles [mol]',
 'Change in total lithium in positive electrode [mol]',
 'Change in total lithium lost [mol]',
 'Change in total lithium lost from electrolyte [mol]',
 'Change in total lithium lost from particles [mol]',
 'Change in total lithium lost to side reactions [mol]',
 'Cyclable lithium capacity [A.h]',
 'Cyclable lithium capacity [mA.h.cm-2]',
 'Cycle number',
 'Formation capacity loss [A.h]',
 'Formation capacity loss [mA.h.cm-2]',
 'Local ECM resistance [Ohm]',
 'Loss of active material in negative electrode [%]',
 'Loss of active material in positive electrode [%]',
 'Loss of capacity to SEI [A.h]',
 'Loss of capacity to SEI on cracks [A.h]',
 'Loss of capacity to lithium plating [A.h]',
 'Loss of lithium inventory [%]',
 'Loss of lithium inventory, including electrolyte [%]',
 'Loss of lithium to SEI [mol]',
 'Loss of lithium to SEI on cracks [mol]',
 'Loss of lithium to lithium plating [mol]',
 'Maximum measured discharge capacity [A.h]',
 'Maximum theoretical energy [W.h]',
 'Maximum voltage [V]',
 'Measured capacity [A.h]',
 'Minimum measured discharge capacity [A.h]',
 'Minimum voltage [V]',
 'NPR',
 'Negative electrode capacity [A.h]',
 'Negative electrode capacity [mA.h.cm-2]',
 'Negative electrode excess capacity ratio',
 'Negative positive ratio',
 'Positive electrode capacity [A.h]',
 'Positive electrode capacity [mA.h.cm-2]',
 'Positive electrode excess capacity ratio',
 'Practical NPR',
 'Practical negative positive ratio',
 'Q',
 'Q_Li',
 'Q_n',
 'Q_n * (x_100 - x_0)',
 'Q_p',
 'Q_p * (y_0 - y_100)',
 'Throughput capacity [A.h]',
 'Throughput energy [W.h]',
 'Time [h]',
 'Time [s]',
 'Total capacity lost to side reactions [A.h]',
 'Total lithium [mol]',
 'Total lithium in electrolyte [mol]',
 'Total lithium in negative electrode [mol]',
 'Total lithium in particles [mol]',
 'Total lithium in positive electrode [mol]',
 'Total lithium lost [mol]',
 'Total lithium lost from electrolyte [mol]',
 'Total lithium lost from particles [mol]',
 'Total lithium lost to side reactions [mol]',
 'Un(x_0)',
 'Un(x_100)',
 'Up(y_0)',
 'Up(y_0) - Un(x_0)',
 'Up(y_100)',
 'Up(y_100) - Un(x_100)',
 'n_Li',
 'x_0',
 'x_100',
 'x_100 - x_0',
 'y_0',
 'y_0 - y_100',
 'y_100']
代码
文本

对于一个铁定的模型的summary variables可以通过列表展示。

代码
文本
[27]
model.summary_variables
['Time [s]',
 'Time [h]',
 'Throughput capacity [A.h]',
 'Throughput energy [W.h]',
 'Loss of lithium inventory [%]',
 'Loss of lithium inventory, including electrolyte [%]',
 'Total lithium [mol]',
 'Total lithium in electrolyte [mol]',
 'Total lithium in particles [mol]',
 'Total lithium lost [mol]',
 'Total lithium lost from particles [mol]',
 'Total lithium lost from electrolyte [mol]',
 'Loss of lithium to SEI [mol]',
 'Loss of capacity to SEI [A.h]',
 'Total lithium lost to side reactions [mol]',
 'Total capacity lost to side reactions [A.h]',
 'Local ECM resistance [Ohm]',
 'Negative electrode capacity [A.h]',
 'Loss of active material in negative electrode [%]',
 'Total lithium in negative electrode [mol]',
 'Loss of lithium to lithium plating [mol]',
 'Loss of capacity to lithium plating [A.h]',
 'Loss of lithium to SEI on cracks [mol]',
 'Loss of capacity to SEI on cracks [A.h]',
 'Positive electrode capacity [A.h]',
 'Loss of active material in positive electrode [%]',
 'Total lithium in positive electrode [mol]']
代码
文本

因为这里只采用了一种老化模式,只导致了活性锂的损失(Loss of lithium inventory),活性材料的损失在模型中没有考虑。(Loss of active material in positive/negative electrode)。

代码
文本
[28]
pybamm.plot_summary_variables(sol)
代码
文本

对于每一个循环的数据,可以单独画图,并且提取出数据。

代码
文本
[33]
fig, ax = plt.subplots(1,2,figsize=(10,5))
for cycle in sol.cycles:
if cycle is not None:
t = cycle["Time [h]"].data - cycle["Time [h]"].data[0]
ax[0].plot(t, cycle["Current [A]"].data)
ax[0].set_xlabel("Time [h]")
ax[0].set_title("Current [A]")
ax[1].plot(t, cycle["Voltage [V]"].data)
ax[1].set_xlabel("Time [h]")
ax[1].set_title("Voltage [V]")
代码
文本

参考工作

代码
文本

notebook参考了相关的pybamm中的文献

代码
文本
[19]
pybamm.print_citations()
[1] Joel A. E. Andersson, Joris Gillis, Greg Horn, James B. Rawlings, and Moritz Diehl. CasADi – A software framework for nonlinear optimization and optimal control. Mathematical Programming Computation, 11(1):1–36, 2019. doi:10.1007/s12532-018-0139-4.
[2] Chang-Hui Chen, Ferran Brosa Planella, Kieran O'Regan, Dominika Gastol, W. Dhammika Widanage, and Emma Kendrick. Development of Experimental Techniques for Parameterization of Multi-scale Lithium-ion Battery Models. Journal of The Electrochemical Society, 167(8):080534, 2020. doi:10.1149/1945-7111/ab9050.
[3] Marc Doyle, Thomas F. Fuller, and John Newman. Modeling of galvanostatic charge and discharge of the lithium/polymer/insertion cell. Journal of the Electrochemical society, 140(6):1526–1533, 1993. doi:10.1149/1.2221597.
[4] Charles R. Harris, K. Jarrod Millman, Stéfan J. van der Walt, Ralf Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, Julian Taylor, Sebastian Berg, Nathaniel J. Smith, and others. Array programming with NumPy. Nature, 585(7825):357–362, 2020. doi:10.1038/s41586-020-2649-2.
[5] Scott G. Marquis, Valentin Sulzer, Robert Timms, Colin P. Please, and S. Jon Chapman. An asymptotic derivation of a single particle model with electrolyte. Journal of The Electrochemical Society, 166(15):A3693–A3706, 2019. doi:10.1149/2.0341915jes.
[6] Peyman Mohtat, Suhak Lee, Jason B Siegel, and Anna G Stefanopoulou. Towards better estimability of electrode-specific state of health: decoding the cell expansion. Journal of Power Sources, 427:101–111, 2019.
[7] Peyman Mohtat, Suhak Lee, Valentin Sulzer, Jason B. Siegel, and Anna G. Stefanopoulou. Differential Expansion and Voltage Model for Li-ion Batteries at Practical Charging Rates. Journal of The Electrochemical Society, 167(11):110561, 2020. doi:10.1149/1945-7111/aba5d1.
[8] Valentin Sulzer, Scott G. Marquis, Robert Timms, Martin Robinson, and S. Jon Chapman. Python Battery Mathematical Modelling (PyBaMM). Journal of Open Research Software, 9(1):14, 2021. doi:10.5334/jors.309.
[9] Pauli Virtanen, Ralf Gommers, Travis E. Oliphant, Matt Haberland, Tyler Reddy, David Cournapeau, Evgeni Burovski, Pearu Peterson, Warren Weckesser, Jonathan Bright, and others. SciPy 1.0: fundamental algorithms for scientific computing in Python. Nature Methods, 17(3):261–272, 2020. doi:10.1038/s41592-019-0686-2.
[10] Andrew Weng, Jason B Siegel, and Anna Stefanopoulou. Differential voltage analysis for battery manufacturing process control. arXiv preprint arXiv:2303.07088, 2023.
[11] Xiao Guang Yang, Yongjun Leng, Guangsheng Zhang, Shanhai Ge, and Chao Yang Wang. Modeling of lithium plating induced aging of lithium-ion batteries: transition from linear to nonlinear aging. Journal of Power Sources, 360:28–40, 2017. doi:10.1016/j.jpowsour.2017.05.110.

代码
文本
中文
锂电池
中文锂电池
已赞3
本文被以下合集收录
电化学-电池计算
hjchen
更新于 2024-06-13
7 篇9 人关注
电芯
Piloteye
更新于 2024-07-22
17 篇3 人关注
推荐阅读
公开
基于卷积神经网络的锂电池老化模式分析
中文锂电池Deep Learning
中文锂电池Deep Learning
KaiqiYang
发布于 2023-09-01
6 转存文件
公开
全固态电池:新的锂电池技术以及电化学仿真如何构建新的固态仿真模型
中文电池
中文电池
KaiqiYang
发布于 2023-10-19
5 赞7 转存文件