Skip to content

Machine relearning of kinetic and flux models by neural networks

License

Notifications You must be signed in to change notification settings

BeckResearchLab/Neuralizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neuralizer

Neuralizer logo

Neuralizer, is a tool to find substitute neural network model for complicated physics based, kinetic & flux models. Examples include: P2D model of Li-ion battery [Murbach2017](Murbach, M. D. & Schwartz, D. T). Models of these types are typically composed of a complex set of PDE or ODEs. This makes solving these models computationally complex and expensive. Moreover, using these models that take seconds to solve prohibits them from being used in real-time situations like process control that require subsecond solutions. In contrast, neural network models are less time-consuming and computionally expensive to use for producing solutions and when properly trained, can provide nearly as accurate predictions as the complete physics, kinetic or flux based model.

The module is built on top of Keras and Tensorflow. It also depends on the other usual suspects of the scientific Python stack such as pandas, scikit-learn and numpy.

Organization of project

Neuralizer/
  |- README.md
  |- neuralizer/
     |- __init__.py
     |- data_process.py
     |- model_create.py
     |- param_record.py
     |- parameter.py
     |- latest.json
     |- Example notebook.ipynb
     |- data/
        |- ...
     |- tests/
        |- ...
     |- Results
        |- ...
  |- doc/
     | - ...
  |- setup.py
  |- LICENSE

Use cases

  • Preprocess the sensitivity analysis results of a physics based, kinetic or flux model
  • Find a set of neural network hyperparameters that yield a high quality surrogate model
  • For a given surrogate model, evaluate the model against physics based, kinetic or flux model
  • Run the neural network surrogate model

Getting started

  • Install conda
  • Create a virtual environment using conda and the environment.yml file supplied in this repository
  • Use the virtual environment to proprocess the input with data_process.py
  • Do coarse and broader search first with parameter.py
  • After Getting a bucket of better paramter combinations, do complete search with complete_search.py
  • The intermediate, latest and best results along with their configuration are stored in Results

References

Murbach, M. D. & Schwartz, D. T. Analysis of Li-ion battery electrochemical impedance spectroscopy data: An easy-to-implement approach for physics-based parameter estimation using an open-source tool. Journal of The Electrochemical Society 165, A297-A304 (2018).

About

Machine relearning of kinetic and flux models by neural networks

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages