Coder Social home page Coder Social logo

ntm_physical_based_battery_model's Introduction

Physical_Based_Battery_Model

MSc repository for a PSO Optimisation for a DFN model coded in Julia (PETLION.jl x Metaheurtics.jl)

See the running code section about how to run Julia code - Julia 1.6.4 or later required

Thesis is attached here

Background

This project looks into the data-driven techniques used for improving Physical Battery Models (PBM). In order to create a PBM there are 26 parameters which drive the output of terminal voltage for a cell using a DFN model. The cost and time required to obtain these values experimentally is significant and still does come short on truly fitting OCV in high dynamic cases, so being able to optimise these experimentally obtained values can improve the fitness of terminal voltage.

These 26 parameters have different levels of sensitivity for how they impact terminal voltage behaviour, so understanding the strongest parameters to target can help reduce the computational speed to get a high fitting result.

The Particle Swarm Optimisation (PSO) uses artificial lives of a population of particles to hone into the global optimal result for a specified objective function (Voltage RMSE).

Methodology

A One at Time (OAT) Sensitivity Analysis was conducted to ensure the 6 strongest parameters to build into the PSO, in where it would prove RMSE is suitable for an optimiser. The overall method for combining the DFN to PSO is presented below:

image

Results - OAT SI

The RMSE Terminal Voltage for 6 strongest parameters are below which shows good reduced RMSE to Chen2020 Identified Parameters with PETLION:

image

Which presented the following rank of Sensitivity Index (SI):

image

This confirms that Cathode Thickness (Lp) is the most Sensitive to Terminal Voltage Response.

Results - PSO DFN (Virtual Model Validation)

Running a simulation where it is comparing with a PETLION Baseline of a GITT cycle where it is solely optimising Lp, the PSO can minimize RMSE to accurately reproduce the value of Lp without the prior information of the value:

anim- l_p convergence

This was repeated on the 6 parameters and shows clearly the PSO can identify parameters when doing one parameter at a time with just virtual data:

image

Now the challenge is to do it with a data-driven approach!

Results - PSO DFN (Real Data Validation)

This was fed with the WLTP drive cycle with all 6 parameters as unknowns to show how robust it is at fitting OCV and adapting parameters to achieve this, below shows a comparison of the Chen2020 response to the PSO driven response:

image

This yielded a 38% improvement in fitness of RMSE voltage which is clearly evident in capturing the dynamics! Summarized below is the change in parameter values:

image

Running Code (Temporary)

Post submission will make a package for all the functions under a new branch!

To obtain the PETLION library of the LGM50

import Pkg; Pkg.add("https://github.com/NTmuir/PETLION.jl.git")

To add the PSO package see Metaheuristics.jl to add package

Then load the OAT.jl function and Run PSO_tester_PETLION_real_data_WLTP.jl

To see validation data run DriveCycle Comparison.jl

References

PBM tool orgin

PSO tool orgin

ntm_physical_based_battery_model's People

Contributors

ntmuir avatar

Stargazers

 avatar  avatar  avatar

Watchers

 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.