Skip to main content

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).

Metadata

Release files for BatteryRateCap 0.1.2

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

Source distribution (sdist)

Source distribution for BatteryRateCap 0.1.2
File Size Uploaded
BatteryRateCap-0.1.2.tar.gz 7.4 kB Details

Built distribution (wheel)

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

Total release size: 12.5 kB

Release files / BatteryRateCap-0.1.2.tar.gz

Download URL BatteryRateCap-0.1.2.tar.gz
Size 7.4 kB
Tags Source
SHA-256 checksum
How to use checksums
dec215b5aa4653eb91992a0ff2d6c2e59a21e9f561eb4c82a1de27c3a39b73ea
BLAKE2b-256 checksum
How to use checksums
87a5d0778b9e94993fa412ac49fe347d3cd4f6d9bb2ead78a09772f2cc28f920
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.7.4

Release files / BatteryRateCap-0.1.2-py3-none-any.whl

Download URL BatteryRateCap-0.1.2-py3-none-any.whl
Size 5.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
69a8f09af2b06d7b555f9c945d1bc63613e42a4e1e08253a2983b69bc2284567
BLAKE2b-256 checksum
How to use checksums
b14e1e3417b7c6631398e212338003f16c9ef3fc0fd70dddac3ea2a6a78ab829
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.7.4

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

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