Skip to main content

Python Battery Optimisation and Parameterisation

Project description

The PyBOP logo.

Python Battery Optimisation and Parameterisation

Scheduled Contributors Python Versions from PEP 621 TOML Codecov License Open in Colab nbviewer Static Badge Releases

Main Branch Examples Develop Branch Examples

PyBOP provides tools for the parameterisation and optimisation of battery models, using both Bayesian and frequentist approaches, with example workflows to assist the user. PyBOP can be used to parameterise various battery models, including the electrochemical and equivalent circuit models available in PyBaMM.

📌 PyBOP v25.10 presents a major restructure of PyBOP's base classes. We move from setting up a model, problem, cost, then optimiser to defining a simulator, cost, problem, and then optimiser. A pybop.pybamm.Simulator is designed to simulate a pybamm.BaseModel. Optimisation parameters can be passed through a pybamm.ParameterValues class. To understand how to update your use of PyBOP, please take a look at the example notebooks and scripts.

A diagram showing the PyBOP logo surrounded by connections to experimental data as an input, forward simulations provided by PyBaMM, results for parameteriation and design optimisation, as well as funding bodies (the Faraday Institution, EU IntelLiGent and DigiBatt projects).

A diagram showing the main PyBOP classes: the Simulator and Cost, which together define the optimisation Problem, and the Optimiser or Sampler which generates the Result.

💻 Installation

Within your virtual environment, install PyBOP:

pip install pybop

To install the most recent state of PyBOP, install from the develop branch,

pip install git+https://github.com/pybop-team/PyBOP.git@develop

To install a previous version of PyBOP, use the following template and replace the version number:

pip install pybop==v24.3

To check that PyBOP is installed correctly, run one of the examples in the following section. For a development installation, see the Contribution Guide. More installation information is available in our documentation and the extended installation instructions for PyBaMM.

💡 Use Cases

PyBOP has two intended uses:

  1. Parameter inference from battery test data.

  2. Design optimisation under battery manufacturing/use constraints.

These include a wide variety of optimisation problems that require careful consideration due to the choice of battery model, data availability and/or the choice of design parameters.

Publications

Please take inspiration from the following journal articles which show how PyBOP is being used for research:

Jupyter Notebooks

Explore our example notebooks for hands-on demonstrations:

Python Scripts

Find additional script-based examples in the examples directory:

Grouped Models

In addition to the models available in PyBaMM, PyBOP currently hosts some grouped-parameter versions of common battery models which are purpose-built for parameter esimation and can be found under models.

👉 Code of Conduct

PyBOP aims to foster a broad consortium of developers and users, building on and learning from the success of the PyBaMM community. Our values are:

  • Inclusivity and fairness (those who wish to contribute may do so, and their input is appropriately recognised)

  • Interoperability (modularity for maximum impact and inclusivity)

  • User-friendliness (putting user requirements first via user-assistance & workflows)

📃 License

PyBOP is released under the BSD 3-Clause License.

🌟 Contributing

We would like to thank all contributors to PyBOP. Contributions are welcome! See CONTRIBUTING.md for ways to get started.

The original PyBOP developers were supported by research funding from the Faraday Institution, UK Research and Innovation, and Horizon Europe IntelLiGent Consortium.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pybop-25.11.tar.gz (109.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pybop-25.11-py3-none-any.whl (145.3 kB view details)

Uploaded Python 3

File details

Details for the file pybop-25.11.tar.gz.

File metadata

  • Download URL: pybop-25.11.tar.gz
  • Upload date:
  • Size: 109.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pybop-25.11.tar.gz
Algorithm Hash digest
SHA256 c6acb0858a82d5a8858d8fa0da6516598ad42def460083d5aa1f225034222804
MD5 57f4f7b6f6e566a9707e95a54cac3f64
BLAKE2b-256 3aa62344549d7dc39d34118e58b7f380e629bce5e27b6e5d99b7fc75b0d7cdb1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybop-25.11.tar.gz:

Publisher: release_action.yaml on pybop-team/PyBOP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybop-25.11-py3-none-any.whl.

File metadata

  • Download URL: pybop-25.11-py3-none-any.whl
  • Upload date:
  • Size: 145.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pybop-25.11-py3-none-any.whl
Algorithm Hash digest
SHA256 b6806cf458c2459f856975bbd9cb923b790817be3ef6b1fd6293c2e937aea039
MD5 ddfa8494474ff03b89a2c8628d0cb6f4
BLAKE2b-256 7a45a497f62b3e58dc10167ed546b2d24fbe1b656c9321e6727c2cd1c5a7a479

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybop-25.11-py3-none-any.whl:

Publisher: release_action.yaml on pybop-team/PyBOP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page