Skip to content

Decomposed Gaussian Processes for parameter estimation #972

Open

Description

@derek-slack

Feature description

I have created a methodology utilizing decomposed GPs to estimate parameters. The creation of a GP parameter in PyBop is shown as follows:

GP_options = {'Number of terms':5,'Constant mean':8,'div_arg':[[1,2],[0,2]], 'exp':False}

GP_param_neg = pybop.FoKLGP(
    "Positive electrode exchange-current density [A.m-2]",
    parameter_values=parameter_values, options=GP_options, 
    twoway=True)

new_parameters = GP_param_neg.get_parameter_values()

The rest of the workflow stays the same from here.

Motivation

Parameters are non-linear functions of the state of the cell. Utilizing decomposed GPs for model fitting is a way to capture the changes in the parameters with these state changes in ways predicting them as a constant might not be able to.

Decomposed GPs are easily implemented within PyBOPs workflow. The decomposition of the kernel function is precomputed, and only the weights of each basis function need to be sampled to evaluate a GP. These weights are created to be PyBOP.Gaussian() parameters.

Possible implementation

I have created an initial working implementation and an example scripts. The GPs showed the same accuracy as PyBOP models in experimental and simulated data sets. It was accurately able to recreate the general behavior of the Positive electrode exchange-current density [A.m-2] parameter in the Chen2020 parameter set.

Additional context

I just wanted to showcase the functionality added, see if there was any interest on PyBOP's end to further develop this implementation
https://github.com/derek-slack/PyBOP-GP-Parameter-Estimation

Activity

  1. derek-slack commented on Aug 13, 2026

    @derek-slack
    Author

    Here is an example of the capability of utilizing decomposed GPs to fit to functions. The Chen2020 parameter set was used to generate a set of pulse data for a DFN model. This was used to train a fitting of the Positive electrode exchange current density [A.m-2], and fit implicitly to only Voltage [V] data The estimated parameter is a function of the concentration at the surface and concentration of the electrolyte.

    The resulting fit is shown below:

    Image

    It was able to get a good fit of the changing behavior the exchange current density through both charging and discharging. This methodology provides an opportunity for an experienced user to resolve function fits of parameters for their cells.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions