Particle swarm optimisation is an optimisation method inspired by movement in a bird flock or fish school.

A particle swarm searching for the global minimum of a function. By Ephramac - Own work

A particle swarm searching for the global minimum of a function. By Ephramac - Own work

The authors of [1] propose particle swarm optimisation to Estimate most cell parameters at once using Thevenin equivalent circuit model and H-infinity filter state-of-charge estimator: Cell capacity, Cell internal resistance, and diffusion voltage and resistances all at once (but not some other parameters, such as Cell open-circuit voltage relationship, Coulombic efficiency, and Cell self-discharge rate).

The optimisation field has as many dimensions as there are cell parameters to estimate: six in this case (compare with the two-dimensional field on the picture above).

The objective function is the squared error between the actual measured voltage output the voltage output of Thevenin equivalent circuit model which uses the proposed set of cell parameters (coordinates of a particle) over some time. In the paper, the authors used 105-minute window (however, they didn't specify the time step, so it's unclear how many data points are there. But if we assume one the step of 1 second, it's about 6300 points):

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/906cd80f-33f6-4db4-bd0d-a3895dc54d82/Untitled.png

The authors also didn't specify how many particles in the swarm did they use.

Result: particle swarm optimisation algorithm converges after 600 iterations and finds the cell capacity with the mean absolute error of 0.74% and the internal resistance with mean absolute error of 1.7%. These algorithm is also robust to artificially added sensor noise.

I think the results are good and it's essential to Estimate most cell parameters at once.

However, the algorithm is very expensive to compute: on each of the 600 steps, for each particle (and we don't know how many particles were used), a 6300-step solution for a system of differential equations (see Thevenin equivalent circuit model) should be solved, and then the squared error against the actual measurements computed. There are apparently no ways to reduce the amount of computation done on all these steps and iterations.

To make the algorithm run faster, during distinct executions of the cell parameter estimation (if they happen once every several minutes or hours, for example), the global optimum point can be initialised with the parameters from the previous execution. It would be interesting to check if this makes the algorithm to converge faster than in 600 iterations.

It would also be interesting to compare the particle swarm optimisation with Stochastic estimator of cell parameters based on an electrical cell model in terms of efficiency and quality.

References

[1] Digital twin for battery systems: Cloud BMS with online SoC and SoH estimation