GithubHelp home page GithubHelp logo

pinn4soh's Introduction

PINN4SOH

This code is for our paper: Physics-informed neural network for lithium-ion battery degradation stable modeling and prognosis

1. System requirements

python version: 3.7.10

Package Version
torch 1.7.1
sklearn 0.24.2
numpy 1.20.3
pandas 1.3.5
matplotlib 3.3.4
scienceplots

2. Installation guide

If you are not familiar with Python and Pytorch framework, you can install Anaconda first and use Anaconda to quickly configure the environment.

2.1 Create environment

conda create -n new_environment python=3.7.10

2.2 Activate environment

conda activate new_environment

2.3 Install dependencies

conda install pytorch=1.7.1
conda install scikit-learn=0.24.2 numpy=1.20.3 pandas=1.3.5 matplotlib=3.3.4
pip install scienceplots      # for beautiful plots

3. Demo

We provide a detailed demo of our code running on the XJTU dataset.

  1. Run the main_XJTU.py file to train our model. The program will generate a folder named results and save the results in it.
  2. Run the main_comparison.py file. You can change setattr(args,'model','MLP') to select the CNN or MLP model. It will generate a folder in the results to save the results of the corresponding model (CNN or MLP).
  3. Run the results analysis/XJTU results.py file. It will process the results in Step one and generate the XJTU_results.xlsx file. At the same time, the results of each batch in the XJTU dataset will also be printed on the Command Console, corresponding to the results in Table 2 of our manuscript.
  4. Run the results analysis/Comparision results.py file to generate the XJTU-MLP_results.xlsx file and save it in the results folder. The results of each batch in the XJTU data set will also be printed on the Command Console, corresponding to the results in Table 2 of our manuscript.

Note: As we all know, the training process of neural network models is random, and the volatility of regression models is often greater than that of classification models. Therefore, the results obtained from the above process are not expected to be exactly identical to those mentioned in our manuscript. However, it is evident that the results obtained from our method are superior to those of MLP and CNN.

In addition, we also provide the results of our training, which are saved in the results folder and results analysis folder. These results correspond exactly to the data in our manuscript.

What's more, we also provide the codes corresponding to the Figures in our manuscript, which are saved in the plotter folder. You can use these codes to draw the Figures in the manuscript.

4. Additional information

The data in the data folder is preprocessed data. Raw data can be obtained from the following links:

  1. XJTU dataset: link
  2. TJU dataset: link
  3. HUST dataset: link
  4. MIT dataset: link

We generated a comprehensive dataset consisting of 55 lithium-nickel-cobalt-manganese-oxide (NCM) batteries. It is available at: Link

https://github.com/wang-fujin/PINN4SOH/blob/main/xjtu%20battery%20dataset.png

pinn4soh's People

Contributors

wang-fujin avatar

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.