Skip to content

Commit f0377a1

Browse files
authored
Merge pull request #502 from pybop-team/release-v24.9.1
Release v24.9.1
2 parents 99632b9 + b8b8f45 commit f0377a1

38 files changed

+1646
-271
lines changed

.all-contributorsrc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,15 @@
130130
"contributions": [
131131
"example"
132132
]
133+
},
134+
{
135+
"login": "Dibyendu-IITKGP",
136+
"name": "Dibyendu-IITKGP",
137+
"avatar_url": "https://avatars.githubusercontent.com/u/32595915?v=4",
138+
"profile": "https://github.com/Dibyendu-IITKGP",
139+
"contributions": [
140+
"example"
141+
]
133142
}
134143
],
135144
"contributorsPerLine": 7,

.github/workflows/scheduled_tests.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ on:
66
branches:
77
- main
88

9-
# runs every day at 09:00 UTC
9+
# runs every day at 03:00 UTC
1010
schedule:
11-
- cron: '0 9 * * *'
11+
- cron: '0 3 * * *'
1212

1313
# Check noxfile.py for associated environment variables
1414
env:

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ ci:
44

55
repos:
66
- repo: https://github.com/astral-sh/ruff-pre-commit
7-
rev: "v0.6.4"
7+
rev: "v0.6.5"
88
hooks:
99
- id: ruff
1010
args: [--fix, --show-fixes]

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,19 @@
44

55
## Bug Fixes
66

7+
- [#505](https://github.com/pybop-team/PyBOP/pull/505) - Bug fixes for `LogPosterior` with transformed `GaussianLogLikelihood` likelihood.
8+
9+
## Breaking Changes
10+
11+
# [v24.9.1](https://github.com/pybop-team/PyBOP/tree/v24.9.0) - 2024-09-16
12+
13+
14+
## Features
15+
16+
## Bug Fixes
17+
18+
- [#495](https://github.com/pybop-team/PyBOP/pull/495) - Bugfixes for Transformation class, adds `apply_transform` optional arg to `BaseCost` for transformation functionality.
19+
720
## Breaking Changes
821

922
# [v24.9.0](https://github.com/pybop-team/PyBOP/tree/v24.9.0) - 2024-09-10

CITATION.cff

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ authors:
1111
family-names: Courtier
1212
- given-names: David
1313
family-names: Howey
14-
version: "24.9.0" # Update this when you release a new version
14+
version: "24.9.1" # Update this when you release a new version
1515
repository-code: 'https://www.github.com/pybop-team/pybop'

README.md

Lines changed: 36 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@
1515
[![Open Issues](https://img.shields.io/github/issues/pybop-team/PyBOP)](https://github.com/pybop-team/PyBOP/issues/)
1616
[![License](https://img.shields.io/github/license/pybop-team/PyBOP?color=blue)](https://github.com/pybop-team/PyBOP/blob/develop/LICENSE)
1717
[![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/pybop-team/PyBOP/blob/develop/)
18+
[![nbviewer](https://raw.githubusercontent.com/jupyter/design/master/logos/Badges/nbviewer_badge.svg)](https://nbviewer.org/github/pybop-team/PyBOP/tree/develop/examples/notebooks/)
1819
[![Static Badge](https://img.shields.io/badge/https%3A%2F%2Fpybop-team.github.io%2Fpybop-bench%2F?label=Benchmarks)](https://pybop-team.github.io/pybop-bench/)
1920
[![Releases](https://img.shields.io/github/v/release/pybop-team/PyBOP?color=gold)](https://github.com/pybop-team/PyBOP/releases)
2021

2122
</div>
2223

23-
## PyBOP
2424
PyBOP provides a complete set of tools for parameterisation and optimisation of battery models, using both Bayesian and frequentist approaches, with [example workflows](https://github.com/pybop-team/PyBOP/tree/develop/examples/notebooks) to assist the user. PyBOP can be used to parameterise various battery models, including electrochemical and equivalent circuit models available in [PyBaMM](https://pybamm.org/). PyBOP prioritises clear and informative diagnostics for the user, while also allowing for advanced probabilistic methods.
2525

2626
The diagram below shows the conceptual framework of PyBOP. This package is currently under development, so users can expect the API to evolve with future releases.
@@ -54,44 +54,50 @@ To check that PyBOP is installed correctly, run one of the examples in the follo
5454
## Using PyBOP
5555
PyBOP has two intended uses:
5656

57-
1. Parameter estimation from battery test data.
57+
1. Parameter inference from battery test data.
5858

5959
2. Design optimisation under battery manufacturing/use constraints.
6060

6161
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.
6262

63-
### Notebooks
64-
PyBOP comes with a number of [example notebooks](https://github.com/pybop-team/PyBOP/blob/develop/examples), which can be found in the examples folder. A few noteworthy ones are listed below.
63+
### Jupyter Notebooks
6564

66-
- [Gravimetric design optimisation of a single particle model](https://github.com/pybop-team/PyBOP/blob/develop/examples/notebooks/spm_electrode_design.ipynb)
67-
- [Experimental GITT fitting of an ECM for an LG M50](https://github.com/pybop-team/PyBOP/blob/develop/examples/notebooks/LG_M50_ECM/1-single-pulse-circuit-model.ipynb)
68-
- [Compare PyBOP optimisers for parameter identification](https://github.com/pybop-team/PyBOP/blob/develop/examples/notebooks/multi_optimiser_identification.ipynb)
69-
- [Parameter identification for a spatial pouch cell model](https://github.com/pybop-team/PyBOP/blob/develop/examples/notebooks/pouch_cell_identification.ipynb)
65+
Explore our [example notebooks](https://github.com/pybop-team/PyBOP/blob/develop/examples) for hands-on demonstrations:
7066

71-
### Scripts
72-
Additional script-based examples can be found in the [examples directory](https://github.com/pybop-team/PyBOP/blob/develop/examples/scripts/). Some notable scripts are listed below.
67+
- [Gravimetric design optimisation (SPM)](https://github.com/pybop-team/PyBOP/blob/develop/examples/notebooks/spm_electrode_design.ipynb)
68+
- [GITT fitting of an ECM for an LG M50](https://github.com/pybop-team/PyBOP/blob/develop/examples/notebooks/LG_M50_ECM/1-single-pulse-circuit-model.ipynb)
69+
- [Non-linear constrained ECM parameter identification](https://github.com/pybop-team/PyBOP/blob/develop/examples/notebooks/ecm_trust-constr.ipynb)
70+
- [Optimiser comparison for parameter identification](https://github.com/pybop-team/PyBOP/blob/develop/examples/notebooks/multi_optimiser_identification.ipynb)
71+
- [Parameter identification for spatial pouch cell model](https://github.com/pybop-team/PyBOP/blob/develop/examples/notebooks/pouch_cell_identification.ipynb)
72+
73+
### Python Scripts
74+
75+
Find additional script-based examples in the [examples directory](https://github.com/pybop-team/PyBOP/blob/develop/examples/scripts/):
76+
77+
- [UKF parameter identification (SPM)](https://github.com/pybop-team/PyBOP/blob/develop/examples/scripts/spm_UKF.py)
78+
- [BPX format parameter import/export](https://github.com/pybop-team/PyBOP/blob/develop/examples/scripts/BPX_spm.py)
79+
- [Electrochemical Impendence Spectroscopy (EIS) parameter identification](https://github.com/pybop-team/PyBOP/blob/develop/examples/scripts/eis_fitting.py)
80+
- [Maximum a Posteriori parameter identification (SPM)](https://github.com/pybop-team/PyBOP/blob/develop/examples/scripts/BPX_spm.py)
81+
- [Gradient-based parameter identification (SPM)](https://github.com/pybop-team/PyBOP/blob/develop/examples/scripts/spm_AdamW.py)
7382

74-
- [Unscented Kalman filter parameter identification of a SPM](https://github.com/pybop-team/PyBOP/blob/develop/examples/scripts/spm_UKF.py)
75-
- [Import and export parameters using Faraday's BPX format](https://github.com/pybop-team/PyBOP/blob/develop/examples/scripts/BPX_spm.py)
76-
- [Maximum a posteriori parameter identification of a SPM](https://github.com/pybop-team/PyBOP/blob/develop/examples/scripts/BPX_spm.py)
77-
- [Gradient based parameter identification of a SPM](https://github.com/pybop-team/PyBOP/blob/develop/examples/scripts/spm_AdamW.py)
7883

7984
### Supported Methods
8085
The table below lists the currently supported [models](https://github.com/pybop-team/PyBOP/tree/develop/pybop/models), [optimisers](https://github.com/pybop-team/PyBOP/tree/develop/pybop/optimisers), and [cost functions](https://github.com/pybop-team/PyBOP/tree/develop/pybop/costs) in PyBOP.
8186

8287
<p align="center">
8388

84-
| Battery Models | Optimization Algorithms | Cost Functions |
85-
|-----------------------------------------------|-------------------------------------------------------------|------------------------------------------|
86-
| Single Particle Model (SPM) | Covariance Matrix Adaptation Evolution Strategy (CMA-ES) | Sum of Squared Errors (SSE) <tr></tr> |
87-
| Single Particle Model with Electrolyte (SPMe) | Particle Swarm Optimization (PSO) | Root Mean Squared Error (RMSE) <tr></tr> |
88-
| Doyle-Fuller-Newman (DFN) | Exponential Natural Evolution Strategy (xNES) | Gaussian Log Likelihood <tr></tr> |
89-
| Many Particle Model (MPM) | Separable Natural Evolution Strategy (sNES) | Gaussian Log Likelihood w/ known variance <tr></tr> |
90-
| Multi-Species Multi-Reactants (MSMR) | Adaptive Moment Estimation with Weight Decay (AdamW) | Maximum a Posteriori (MAP) <tr></tr> |
91-
| Equivalent Circuit Models (ECM) | Improved Resilient Backpropagation (iRProp-) | Unscented Kalman Filter (UKF) <tr></tr> |
92-
| | SciPy Minimize & Differential Evolution | Gravimetric Energy Density <tr></tr> |
93-
| | Gradient Descent| Volumetric Energy Density<tr></tr> |
94-
| | Nelder-Mead | <tr></tr> |
89+
| Battery Models | Optimization Algorithms | Cost Functions |
90+
|-----------------------------------------------|----------------------------------------------------------|------------------------------------------|
91+
| Single Particle Model (SPM) | Covariance Matrix Adaptation Evolution Strategy (CMA-ES) | Sum of Squared Errors (SSE) <tr></tr> |
92+
| Single Particle Model with Electrolyte (SPMe) | Particle Swarm Optimization (PSO) | Root Mean Squared Error (RMSE) <tr></tr> |
93+
| Doyle-Fuller-Newman (DFN) | Exponential Natural Evolution Strategy (xNES) | Minkowski <tr></tr> |
94+
| Many Particle Model (MPM) | Separable Natural Evolution Strategy (sNES) | Sum of Power <tr></tr> |
95+
| Multi-Species Multi-Reactants (MSMR) | Adaptive Moment Estimation with Weight Decay (AdamW) | Gaussian Log Likelihood <tr></tr> |
96+
| Weppner-Huggins | Improved Resilient Backpropagation (iRProp-) | Log Posterior <tr></tr> |
97+
| Equivalent Circuit Models (ECM) | SciPy Minimize & Differential Evolution | Unscented Kalman Filter (UKF) <tr></tr> |
98+
| | Cuckoo Search | Gravimetric Energy Density <tr></tr> |
99+
| | Gradient Descent | Volumetric Energy Density<tr></tr> |
100+
| | Nelder-Mead | <tr></tr> |
95101

96102
</p>
97103

@@ -106,6 +112,10 @@ PyBOP aims to foster a broad consortium of developers and users, building on and
106112

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

115+
## License
116+
117+
PyBOP is released under the [BSD 3-Clause License](https://github.com/pybop-team/PyBOP/blob/develop/LICENSE).
118+
109119
## Contributors ✨
110120

111121
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
@@ -130,6 +140,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
130140
<td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/muhammedsogut/"><img src="https://avatars.githubusercontent.com/u/34511375?v=4?s=100" width="100px;" alt="Muhammed Nedim Sogut"/><br /><sub><b>Muhammed Nedim Sogut</b></sub></a><br /><a href="https://github.com/pybop-team/PyBOP/commits?author=muhammedsogut" title="Code">💻</a></td>
131141
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MarkBlyth"><img src="https://avatars.githubusercontent.com/u/20501619?v=4?s=100" width="100px;" alt="MarkBlyth"/><br /><sub><b>MarkBlyth</b></sub></a><br /><a href="https://github.com/pybop-team/PyBOP/commits?author=MarkBlyth" title="Code">💻</a></td>
132142
<td align="center" valign="top" width="14.28%"><a href="https://github.com/f-g-r-i-m-m"><img src="https://avatars.githubusercontent.com/u/137511310?v=4?s=100" width="100px;" alt="f-g-r-i-m-m"/><br /><sub><b>f-g-r-i-m-m</b></sub></a><br /><a href="#example-f-g-r-i-m-m" title="Examples">💡</a></td>
143+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Dibyendu-IITKGP"><img src="https://avatars.githubusercontent.com/u/32595915?v=4?s=100" width="100px;" alt="Dibyendu-IITKGP"/><br /><sub><b>Dibyendu-IITKGP</b></sub></a><br /><a href="#example-Dibyendu-IITKGP" title="Examples">💡</a></td>
133144
</tr>
134145
</tbody>
135146
</table>

docs/_static/switcher.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
"url": "https://pybop-docs.readthedocs.io/en/latest/"
55
},
66
{
7-
"name": "v24.9.0 (stable)",
8-
"version": "v24.9.0",
9-
"url": "https://pybop-docs.readthedocs.io/en/v24.9.0/",
7+
"name": "v24.9 (stable)",
8+
"version": "v24.9",
9+
"url": "https://pybop-docs.readthedocs.io/en/v24.9.1/",
1010
"preferred": true
1111
},
1212
{
File renamed without changes.
File renamed without changes.

examples/notebooks/LG_M50_ECM/data/LGM50_5Ah_RateTest.mat renamed to examples/data/LG_M50_ECM/data/LGM50_5Ah_RateTest.mat

File renamed without changes.

0 commit comments

Comments
 (0)