Skip to main content

DiffCapAnalyzer Build Status Python status

Package for Battery Cycling Data Visualization and Analysis

This package is intended to quantitatively analyze raw cycling data by identifying and parameterizing peaks found in the differential capacity plots. Differential capacity plots (dQ/dV) can be very powerful for uncovering battery performance characteristics, as the peaks that appear in these plots correspond to the various electrochemical events. However, because of the large amount of data gathered during cycing experiments, many researchers report subsets of cycles and purely qualitative conclusions. This package adds the ability to quantify this type of analysis by cleaning battery cycling datasets and obtaining peak locations, widths, amplitudes, and other descriptors for every charge/discharge cycle in the data. To this end, this tool develops individualized fitted models for each charge and discharge cycle in the data set, comprised of a gaussian baseline and pseudo-voigt distributions at each peak location.

Additionally, there is a DASH based visualization app that can be used as the user interface. Users can upload raw cycling data, either collected via a MACCOR or an Arbin cycler. The app will then process the data and add a few files to the database: the raw data, the cleaned data, and the peak descriptors for every cycle. The app also allows users to scroll through cycles and better understand the differential capacity curves. Additionally, there is a section to evaluate the fit of the gaussian baseline, and tailor the peak finding process. The user can also download the peak descriptors using the "Download CSV" file button in the app.

Additionally, some machine learning was done to classify between two different cathode chemistries, LiCoO2 and LiFePO4. Data sets for these chemistries were obtained from the CALCE website(https://web.calce.umd.edu/batteries/data.htm). Once this data was cleaned and labelled, a 20-80 test-train split was done and a support vector classifier was utilized, with a final test set accuracy of 77%.

Software Dependencies

  • Python3
  • For python packages see requirements.txt

How to Install

To run the app and fully utilize DiffCapAnalyzer and the corresponding examples, simply clone this repo an from the top directory run:

pip install -Ur requirements.txt

This will install all packages necessary for DiffCapAnalyzer.

To use DiffCapAnalyzer outside of the app, you can also pip install:

pip install diffcapanalyzer 

This will install the DiffCapAnalyzer modules for use in the example notebooks, or for using the core modules outside of the Dash app.

Dash App

To run the app run the following in terminal:

python app.py

Which should return

 * Running on http://someurl/ (Press CTRL+C to quit)

Type or copy that URL in browser to launch the app locally.

Organization of the project

|   app.py
|   LICENSE
|   README.md
|   requirements.txt
|   runTests
|   setup.py
|   __init__.py
|
+---data
|   +---ARBIN
|   |   |   README.md
|   |   |
|   |   +---CS2_33
|   |   |
|   |   \---K2_016
|   |
|   +---databases
|   |       dQdV.db
|   |       init_database.db
|   |
|   +---MACCOR
|   |       example_data.csv
|   |
|   \---ML_data
|           c_descriptors.xlsx
|           descriptors_without_heights.xlsx
|           final_descriptors.xlsx
|           k_descriptors.xlsx
|           svc_model.sav
|           svc_results.png
|
+---diffcapanalyzer
|       app_helper_functions.py
|       chachifuncs.py
|       databasefuncs.py
|       databasewrappers.py
|       descriptors.py
|       __init__.py
|
+---docs
|   |   Poster.pdf
|   |
|   +---images
|   |       diagram.png
|   |
|   \---paper
|       |   paper.md
|       |
|       \---images
|               cleaning_dqdv.png
|               fitting_dqdv.png
|
+---examples
|   |   ProcessData_PlotDescriptors_Examples.ipynb
|   |
|   \---ML
|           SVC_Model.ipynb
|
\---tests
    |   test_app_helper_functions.py
    |   test_chachifuncs.py
    |   test_databasefuncs.py
    |   test_databasewrappers.py
    |   test_descriptors.py
    |   __init__.py
    |
    \---test_data
            test_data.csv
            test_data_mac.csv

Data Requirements

At the moment, the package can only process CSV files and relies on specific column headers for each type of file (Arbin vs. Maccor). Please reference the data directory for example files. The column headers for each data type must include and appear exactly as the following:

  • Arbin:
    • Cycle_Index
    • Data_Point
    • Voltage(V)
    • Current(A)
    • Discharge_Capacity(Ah)
    • Charge_Capacity(Ah)
    • Step_Index
  • MACCOR:
    • Rec
    • Cycle C Step
    • TestTime
    • StepTime
    • Cap. [Ah]
    • Voltage [V]
    • Md
    • Current [A]

Metadata

Release files for DiffCapAnalyzer 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for DiffCapAnalyzer 0.1.1
File Size Uploaded
DiffCapAnalyzer-0.1.1.tar.gz 22.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for DiffCapAnalyzer 0.1.1
File Interpreter ABI Platform
DiffCapAnalyzer-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 50.5 kB

Release files / DiffCapAnalyzer-0.1.1.tar.gz

Download URL DiffCapAnalyzer-0.1.1.tar.gz
Size 22.5 kB
Tags Source
SHA-256 checksum
How to use checksums
438922b53c4fd2ef8b6033a85fd9fa4cceeaddb290eee8ad045f3852e1731847
BLAKE2b-256 checksum
How to use checksums
dfef6b4f9e6e2996567051b6986a848e5a36dc92b17d407caf862e10c929c782
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/47.1.1 requests-toolbelt/0.8.0 tqdm/4.41.1 CPython/3.6.3

Release files / DiffCapAnalyzer-0.1.1-py3-none-any.whl

Download URL DiffCapAnalyzer-0.1.1-py3-none-any.whl
Size 28.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cf141cb1479021af0f98cf8d839ee6e7d8113976146fa4a46154dfcaa9f87763
BLAKE2b-256 checksum
How to use checksums
2b7253a99084c55d564275ac95b8dcf44154bd50165ad87ce2e21fbe38f19629
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/47.1.1 requests-toolbelt/0.8.0 tqdm/4.41.1 CPython/3.6.3

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page