Skip to main content

A package for the quantitative analysis of differential capacity data!

Project description

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]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

DiffCapAnalyzer-0.1.1.tar.gz (22.5 kB view details)

Uploaded Source

Built Distribution

DiffCapAnalyzer-0.1.1-py3-none-any.whl (28.0 kB view details)

Uploaded Python 3

File details

Details for the file DiffCapAnalyzer-0.1.1.tar.gz.

File metadata

  • Download URL: DiffCapAnalyzer-0.1.1.tar.gz
  • Upload date:
  • Size: 22.5 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for DiffCapAnalyzer-0.1.1.tar.gz
Algorithm Hash digest
SHA256 438922b53c4fd2ef8b6033a85fd9fa4cceeaddb290eee8ad045f3852e1731847
MD5 3c64891e32db37d22fe82c2937eababa
BLAKE2b-256 dfef6b4f9e6e2996567051b6986a848e5a36dc92b17d407caf862e10c929c782

See more details on using hashes here.

File details

Details for the file DiffCapAnalyzer-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: DiffCapAnalyzer-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 28.0 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for DiffCapAnalyzer-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cf141cb1479021af0f98cf8d839ee6e7d8113976146fa4a46154dfcaa9f87763
MD5 1266a7dad41a3549c0e373e2cbe97bdb
BLAKE2b-256 2b7253a99084c55d564275ac95b8dcf44154bd50165ad87ce2e21fbe38f19629

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page