Skip to main content

A Python package for battery rate capability analysis.

Project description

Build Status

BatteryRateCap: A Python Package for Analyzing and Visualizing Battery Rate Capability

This pacakge is intended to faciliate battery rate capability analysis based on an empirical model approach developed by Tian et al.. A common phenomenon in intercalation batteries is decreasing battery capacity (mAh, mAh/g, or mAh/cm2) to increasing charge and discharge current rate (A, A/cm2, or 1/hour). Rate capability is a battery's ability to maintain its maxnimum theoretical capacity when charged and discharged at high current rates. According to Tian et al., a battery's capacity (Q) versus current rate (R) data, also called the capacity-rate data,can be analyzed using the following empirical model:

Q = Qmax ( 1 - (R $\tau$ )n (1-e-(R $\tau$ )-n))

By fitting the capcaity-rate data to the empirical model, we can obtain three fitting parameters that quantify the performace of a battery:

  • The characterictic time ( $\tau$ ) is associated with the time required to fully charge or discharge a battery. A smaller $\tau$ means higher rate capability.
  • The low rate specific capacity (Qmax) measures a battery's maximum theoretical capacity, which normalizes $\tau$ and n such that batteries made with different materials can be compared on the same scale.
  • The exponent n gives a physical interpretation of the rate-limiting transport mechanism in a battery. For more insight about the fitting parameters, please visit Tian et al.(2019) and Hung et al.(2022).

alt text

BatteryRateCap is composed of four components, each supports a function to allow or enhance the rate capability analysis approach developed by Tian et al. The interdependency bewteen components are shown in the diagram above, where a brief desciprtion of each component can be found below:

  • (A) a data conversion component to convert voltage-dicharge data and/or capacity-cycle data to capacity-rate data
  • (B) a curve-fitting component to fit experimental capacity-rate data to Tian et al's empirical model.
  • (C) a visulization component to plot the fitting parameters obtained from component (B) against other physical quantities such as the battery electrode thickness and porosity.
  • (D) a hypothesis testing component to compare different battery cases based on their rate capability charateristics and to detect outliers in a linear relationship.

Example Use Cases for Battery Researchers

Use case 1. Data Conversion

The data_converter module converts charge/discharge data (voltage versus capacity) and capacity-cycle data into rate-capacity data. Complete procedures and example codes on how to use the data_converter module are detailed in Demo/Demo_data_converter.ipynb. Below is an excerpt of the data_converter demo notebook, showing the output of how data_converter categorizes capacity data by their C-rate in a capacity-cycle dataset. The conversion from voltage-capacity to capacity-rate data does not involve any visuals, so no figures are shown here.
alt text

Use case 2. Data Fitting

The fitcaprate module fits capacity-rate data and attains fitting parameters, including charatersitic time, n value, and capacity Q as described in the introduction. Complete procedures and example codes on how to use the fitcaprate module can be found in Demo/Demo_fitcaprate.ipynb. Below is an excerpt of the fitcaprate demo notebook, showing the results of fitted curves (red dashed curves) found by fitcaprate for a set of battery capcity-rate data (blue dots).
alt text

Use case 3: Data visulization

The visualization module creates a panel plot that lays out 2D scatter plots of fitting parameters versus available battery design parameters realated to geometry and materials. Complete procedures and example codes on how to use the visualization module are detailed in Demo/Demo_visualization.ipynb. Below is an excerpt of the visualization demo notebook, showing the output panel plot.
alt text

Use case 4: Hypothesis testing

The correlationtest module determines whether a statistically-signicificant linear relationship exisits between found battery fitting parameters, which indicate the battery performance, and their desgin parameters related to geometry and materials. Complete procedures and example codes on how to use the correlationtest module are detailed in Demo/Demo_correlationtest. Below is an excerpt of the correlationtest demo notebook, showing how the module plots the best-fit linear regression line (in blue) between two target parameters and highlights potential outliers (in red) to the linear relationship. alt text

How to Install

BatteryRateCap can be installed by cloning the entire repoitory or via pip:

pip install BatteryRateCap

Software Dependency

  • Python >=3.6
  • See environment.yml for all Python package dependencies

Community Guidelines

If you encounter any issue using BatteryRateCap or would like to request an additional feature, please report using a Github issue. If you would like to directly contribute to this project, please email the reporsitory maintainers Doris Hung (dhung@uw.edu) and Praise Anyanwu (anyanc@uw.edu).

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

BatteryRateCap-0.1.2.tar.gz (7.4 kB view hashes)

Uploaded Source

Built Distribution

BatteryRateCap-0.1.2-py3-none-any.whl (5.1 kB view hashes)

Uploaded Python 3

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