Awesome
Universal Battery Database
The Universal Battery Database is an open source software for managing Lithium-ion cell data. Its primary purposes are:
- Organize and parse experimental measurement (e.g. long term cycling and electrochemical impedance spectroscopy) data files of Lithium-ion cells.
- Perform sophisticated modelling using machine learning and physics-based approaches.
- Describe and organize the design and chemistry information of cells (e.g. electrodes, electrolytes, geometry), as well as experimental conditions (e.g. temperature).
- Automatically refresh a database as new data comes in.
- Visualize experimental results.
- Quickly search and find data of interest.
- Quality control.
The Universal Battery Database was developed at the Jeff Dahn Research Group at Dalhousie University.
Table of Contents
- Preliminary Results
- Data Management Software Demo
- Installation
- Using the Software
- Physics and Computer Science Behind the Software
- Contributing
Preliminary Results
Figure 1: Model measurements and make predictions using ml_smoothing.py
.
Data Management Software Demo
Figure 2: Fix anomologous cycling data using the web browser provided by manage.py
.
Installation
Prerequisites
Two Installation Options
- If you only want to play around with modelling and you have a compiled dataset from somewhere else, you can install without a database. This option is simpler and you can always install a database later.
- If you want to use the full database features such as parsing and organising experimental data and metadata, you should install with a database.
Using the Software
Use manage.py
to see the web page and use its analytic features.
Use ml_smoothing.py
to use the machine learning model and see the results.
Physics and Computer Science Behind the Software
We hypothesize that we can make good generalizations by approximating the functions that map one degradation mechanism to another using neural networks.
We aim to develop a theory of lithium-ion cells. We first break down the machine learning problem into smaller sub-problems. From there, we develop frameworks to convert the theory to practical implementations. Finally, we apply the method to experimental data and evaluate the result.
Contributing
Code Conventions
Generally, we follow Google's Python Style Guide.