A Python package for battery rate capability analysis.
Project description
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).
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.
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).
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.
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.
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 BatRateCap 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 maintainer Doris Hung at dhung@uw.edu.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for BatteryRateCap-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7031776520c9373220e9028729e692efd797fc9cecc8b3ece6bc4625cf7a274 |
|
MD5 | 2aefe59eb8485cc7b9fc58b57d689953 |
|
BLAKE2b-256 | b51a9f6926976d70ffb63e7c42af47e297364392f07f657c5947b3e4fd3d9d62 |