Giter Site home page Giter Site logo

noelo / battery-rul-estimation Goto Github PK

View Code? Open in Web Editor NEW

This project forked from michaelbosello/battery-rul-estimation

1.0 0.0 1.0 371 KB

Remaining Useful Life (RUL) estimation of Lithium-ion batteries using deep LSTMs

License: Apache License 2.0

Python 26.16% Jupyter Notebook 73.51% Dockerfile 0.33%

battery-rul-estimation's Introduction

Battery-state-estimation

To build base image for pipeline

podman build -t batterybase .
podman tag localhost/batterybase quay.io/noeloc/batterybase
podman push quay.io/noeloc/batterybase

Estimation of the Remaining Useful Life (RUL) of Lithium-ion batteries using Deep LSTMs.

Introduction

This repository provides the implementation of deep LSTMs for RUL estimation. The experiments have been performed on two datasets: the NASA Randomized Battery Usage Data Set and the UNIBO Powertools Dataset.

Paper

If you use this repo, please cite our paper:

To Charge or To Sell? EV Pack Useful Life Estimation via LSTMs and Autoencoders [URL]

@misc{bosello2021charge,
      title={To Charge or To Sell? EV Pack Useful Life Estimation via LSTMs and Autoencoders}, 
      author={Michael Bosello and Carlo Falcomer and Claudio Rossi and Giovanni Pau},
      year={2021},
      eprint={2110.03585},
      archivePrefix={arXiv},
      primaryClass={cs.LG}
}

Source code structure

The package data_processing contains the scripts that load the data from the two sets. unibo_powertools_data.py loads the data from the UNIBO dataset and compute the derived columns like the SOC one, while model_data_handler.py prepare the time series. nasa_random_data.py both loads and prepares the data of the NASA Randomized set. prepare_rul_data.py is used for both datasets; it calculates the integral of the current to obtain the RUL based on Ah, and it format the time series for the neural network.

The experiments directory contains the Jupyter notebooks defining the various experiments and LSTM models used. The results directory shows the plots of the results and the measurements like RMSE, MAE, etc.

Quick start

1) Install requirements

Python packages

pip install tensorflow
pip install pandas
pip install sklearn
pip install scipy
pip install plotly
pip install jupyterlab

Let Plotly work in Jupyterlab

  1. Install node

  2. jupyter labextension install jupyterlab-plotly

2) Download the datasets

Download the NASA Randomized Battery Dataset and put its content in the directory battery-state-estimation/data/nasa-randomized/

Download the UNIBO dataset and put its content in the directory battery-state-estimation/data/unibo-powertools-dataset/

3) Run one of the notebooks

Run one of the notebooks in the experiments directory. You can switch between training a new model or loading an existing one by toggling the value of IS_TRAINING at the top of the notebook (just define the model file name in RESULT_NAME).

Check out the results directory if you want to see the results obtained by us.

If you want to run the notebook on Google Colab, load the repository in your Google Drive and set to True the variable IS_COLAB at the top of the notebook. This will allow the notebook to find the datasets and to save the results in your Drive.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.