Synthetic Lithium-Ion Battery Degradation Dataset for Remaining Useful Life Estimation
收藏资源简介:
Motivation The "Synthetic Lithium-Ion Battery Degradation Dataset for Remaining Useful Life Estimation" was created to support the development of machine learning models that can predict the remaining service life of lithium-ion based batteries. Due to the limited availability of real-world ageing data and freely accessible measurement data on battery ageing, synthetic ageing data was generated using physics-based simulation. Description This dataset contains ageing simulations of lithium-ion batteries, which were carried out using the PyBaMM framework (https://pybamm.org) . The simulations covered cell ageing during simple charge-discharge cycles as well as WLTC driving cycle simulations. The ageing simulations are based on the official PyBaMM example "Modelling coupled degradation mechanisms in PyBaMM" (https://docs.pybamm.org/en/v25.8.0/source/examples/notebooks/models/coupled-degradation.html). The simulations use the built-in DFN (Doyle-Fuller-Newman) model in PyBaMM with degradation mechanisms enabled. The "OKane2022" parameter set for the LG M50 cell, which is built into PyBaMM, was used as the starting point for parameterising the simulation model. However, to vary the ageing process, some of the ageing parameters were adjusted, as can be seen in the simulation metadata. Dataset Structure The dataset comprises multiple studies, each of which consists of several simulations of individual battery cells. The simulations within a given study share certain parameters, such as the type of the test cycle. The differences between the simulations within a study lie in the details. Therefore, the metadata for each individual simulation must always be consulted. README.md: This description. study_X.zip: Zip folder containing simulations of one study. metadata.json: Study metadata. simulation_XX.hdf5: HDF5 file containing data of one individual simulation. ATTRIBUTE "metadata": Simulation metadata formatted (json string) DATASET "cycle_data": Data on a test cycle by test cycle basis (e.g. SoH parameters) ATTRIBUTE "columns": Column names of the dataset table (json string) ATTRIBUTE "units": Units of the columns (json string) DATASET "time_series_data": Time series data based on the simulation time steps (e.g. voltage, current, etc.) ATTRIBUTE "columns": Column names of the dataset table (json string) ATTRIBUTE "units": Units of the columns (json string) import_simulation.py: Example python script importing the data of one simulation. Requirements.txt: List of required python packages to execute `import_simulation.py`. Cycle Data Column Description Unit TestCycle Test cycle number Time [s] Simulation time in seconds (simulated cell age) s BatteryCycle Number of equivalent full cycles (EFC) $N_{\text{EFC}} = \frac{Q_{\text{throughput}}}{2 \cdot Q_{\text{rated}}}$ Capacity [A.h] Remaining max capacity Ah Maximum theoretical energy [W.h] Remaining max energy Wh Time Series Data Column Description Unit Time [s] Simulation time in seconds (simulated cell age) s BatteryCycle Number of equivalent full cycles (EFC) $N_{\text{EFC}} = \frac{Q_{\text{throughput}}}{2 \cdot Q_{\text{rated}}}$ Voltage [V] Battery terminal voltage V Battery open-circuit voltage [V] Battery open-circuit voltage (OCV) V Current [A] Battery current (positive == discharge; negative == charge) V Volume-averaged cell temperature [C] Cell temperature (averaged) °C Ambient temperature [C] Ambient temperature °C Total heating [W] Total cell heating W Metadata structure "study"/ "simulation": General information about the study or simulation "batteryCyclesSimulated": Number of equivalent full cycles = throughput_capacity / (2 * rated_capacity) "testCyclesSimulated": The number of times the test cycle was repeated "timeDurationSimulated": The cell age simulated in seconds "experiment": Parameters describing the conducted experiment "testCycleType": "CC_CCCV" (constant current discharge and constant current constant voltage charge) or "DRIVE_CYCLE" (performing drive cycle) "isVariableTestCycle": When true, the test cycle parameters changes with each cycle (see test cycle variation) "startCycle": Parameters of the start cycle, which is performed once at the beginning "ccCccvCycle": Parameters of the CC-CCCV test cycle "driveCycle": Parameters of the performed drive cycles when `"testCycleType"` == "DRIVE_CYCLE" "chargeCycle": Parameters of the charge cycle, which is performed when simulating drive cycles "battery": Battery data, such as rated capacity or the remaining capacity at the end of the simulation "model": Information about the used simulation model (e.g. parameters, options, etc.) "parameterSet": The parameter set used to parameterize the model "parameter": Parameters listed here, override the ones in the parameter set "solver": Information about the used solver "mesh": Parameter of the used mesh Note: Not all fields may be present! Study Variation: The study metadata can contain fields with the name `"studyVariation"`, which indicates that the value of the parent field was varied between simulations of that study. Test Cycle Variation: The study and simulation metadata can contain fields with the name `"testCycleVariation"`, which contains the parameters that are varied between test cycles (only if "isVariableTestCycle" == true). Further Explanation Throughput capacity is the cumulative amount of charge that has flowed into and out of the battery. $$Q_{\text{throughput}} = \int |I(t)| \, dt$$ The throughput capacity is not provided in the data, but can be reconstructed from the battery cycles (equivalent full cycles - EFC) using the following formula: $$Q_{\text{throughput}} = 2 \cdot Q_{rated} \cdot N_{\text{EFC}}$$ The term test cycle refers to one iteration of the simulated stress profile. This can vary depending on the test cycle type: In the case of "testCycleType" == "DRIVE_CYCLE", the battery is discharged by performing several consecutive driving cycles before being recharged. This whole process constitutes one test cycle. After that, the next test cycle begins. In the case of "testCycleType" == "CC_CCCV" and "isVariableTestCycle" == false, one test cycle equals one discharge combined with the consecutive recharging. If "testCycleType" == "CC_CCCV" and "isVariableTestCycle" == true, one test cycle equals one discharge or charge, as several charging operations or discharging operations may be carried out in succession. License All datasets are copyright by Ostbayerische Technische Hochschule Amberg-Weiden and published under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International. This means that you must attribute the work in the manner specified by the authors, you may not use this work for commercial purposes and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same license. This dataset is made available for academic use only. However, we take your privacy seriously! If you find yourself or personal belongings in this dataset and feel unwell about it, please contact us at automotive@oth-aw.de and we will immediately remove the respective data from our server. Acknowledgement The authors gratefully acknowledge the following European Union -- Chips Joint Undertaking project for financial support including funding by the German Federal Ministry of Research, Technology and Space (BMFTR): PowerizeD (Grant Agreement No. 101096387, funding code 16MEE0217).



