DOI: 10.5281/zenodo.13142016
title: Code and measurement data - Capacity and internal resistance diagnosis of batteries with voltage-controlled models

description: This dataset contains the research data (Matlab code, measurement data, figure files) of the journal article:  Wolfgang G. Bessler, “Capacity and resistance diagnosis of batteries with voltage-controlled models,” J. Electrochem. Soc. 171, 080510 (2024), https://doi.org/10.1149/1945-7111/ad6938.

Abstract:

Capacity and internal resistance are key properties of batteries determining energy content and power capability. We present a novel algorithm for estimating the absolute values of capacity and internal resistance from voltage and current data. The algorithm is based on voltage-controlled models (VCM). Experimentally-measured voltage is used as input variable to an equivalent circuit model. The simulation gives current as output, which is compared to the experimentally-measured current. We show that capacity loss and resistance increase lead to characteristic fingerprints in the current output of the simulation. In order to exploit these fingerprints, a theory is developed for calculating capacity and resistance from the difference between simulated and measured current. The findings are cast into an algorithm for operando diagnosis of batteries operated with arbitrary load profiles. The algorithm is demonstrated using cycling data from lithium-ion pouch cells operated on full cycles, shallow cycles, and dynamic cycles typical for electric vehicles. Capacity and internal resistance of a “fresh” cell was estimated with high accuracy (mean absolute errors of 0.9 % and 1.8 %, respectively). For an “aged” cell, the algorithm required adaptation of the model’s open-circuit voltage curve in order to obtain high accuracies.

 

Copyright and IP information:

Copyright 2024 by Wolfgang G. Bessler. The Matlab codes and the research data provided here are under CC-BY-NC-4.0 license (Creative Commons Attribution Non Commercial 4.0 International). Please note that the algorithms themselves are subject to intellectual property rights, including, but not necessarily limited to, German patent DE102022129314 and international patent WO2024/099513A1. Any use of the codes and algorithms presented here is subject to these property rights.

Quick start:

Copy all files into one folder. Open and run capacityAndResistanceDiagnosisFigures8and10.m with Matlab. Observe the reproduction of Figure 8 of the paper.

Description of the files:

Matlab code (tested using versions R2019a and R2022b):



capacityAndResistanceDiagnosisFigures8and10.m: this is the main Matlab script. It performs the capacity and resistance diagnosis on experimental data V(t) and I(t). The script reproduces Figures 8 ("fresh" cell) or 10 ("aged" cell) of the paper, depending on which lines you uncomment in upper part of the script.

calculateDeltaR.m, calculatefC.m: functions that evalue deltaR and fC, which are two key outputs of the diagnosis algorithm. 

simulateVCMSimple.m, simulateVCMDynamic.m: functions that simulate the voltage-controlled equivalent circuit models (either "simple" of "dynamic"). Input is V(t), output are I(t) and SOC(t).

interpolateCurve.m: performs linear interpolation of the OCV(SOC) curve. We use this because Matlab's interp1() function is awfully slow.


Experimental data:



Experimental_data_fresh_cell.csv: Tabulated experimental data (time, current, voltage, temperature) of the long-term experiment (99 h total with 1 s resolution) of a "fresh" lithium-ion cell. The cell is initally completely discharged. The data consist of full cycling, shallow cycling, and WLTP cycling.

Experimental_data_aged_cell.csv: Tabulated experimental data (time, current, voltage, temperature) of the long-term experiment (85 h total with 1 s resolution) of a "pre-aged" lithium-ion cell. The cell is initally completely discharged. The data consist of full cycling, shallow cycling, and WLTP cycling.

OCV_vs_SOC_curve_fresh_cell.csv: Tabulated experimentally-derived open-circuit voltage (OCV) as function of state of charge (SOC) of the "fresh" lithium-ion cell. 1001 data points between SOC = 0 and SOC = 1 in increments of 0.001.

OCV_vs_SOC_curve_aged_cell.csv: Tabulated experimentally-derived open-circuit voltage (OCV) as function of state of charge (SOC) of the "aged" lithium-ion cell. 1001 data points between SOC = 0 and SOC = 1 in increments of 0.001.


Figure files:



Figures.zip: contains .emf (Windows format) and .fig (Matlab format) versions of Figures 2-10 of the paper.