Background

Equivalent circuit networks (ECNs) are routinely used in industry to model lithium-ion batteries, where networks of voltage sources, resistors and capacitors are used to mimic the behaviour of real-world batteries. The Electrochemical Science and Engineering (ESE) group within the Department of Mechanical Engineering has been using models of this type, alongside physics-based models, for years, and has published multiple papers on lithium-ion battery design.

ECN-based models are significantly less computationally intensive than physics-based models, and can therefore reduce the demand on both computational resources and real-world laboratory tests. The ESE group therefore aimed to develop and publish an open-source software package that both academic and industry groups can use, in order to advance lithium-ion battery research and development.

Our Contribution

We reviewed the group's existing code and developed it into a platform-independent command-line tool that engineers can use to run simulations of lithium-ion batteries under configurable charge/discharge scenarios. This was published in a public GitHub repository alongside a journal publication.

In order to take the project further, we decided to redevelop the package from the ground up, with a new architecture that would improve user-friendliness, run-time interactivity, input validation, as well as enable granular software testing and enhancements through plugins/extensions.

In addition to software development, we provided researchers within the ESE group with training on version control using git and GitHub for software version control and collaboration, and advised on the architecture of another software package developed within their group: PyProBE.

Outcomes

The group's original code is now available for public access via GitHub, providing a reproducible environment in which users can reproduce the results presented in the journal publication, and perform their own simulations using a configuration file, rather than needing to manually edit parts of the codebase.

Development of the redesigned package is well underway, with unit and regression tests, user-facing and developer documentation, quality assurance tooling as well as a continuous integration and continuous delivery pipeline in place from the outset. We also have a submission to the Journal of Open Source Software in preparation.