Signaloid Cloud Compute Engine

Use Case Family:

Engineering

Use Case

Battery Energy Storage System Modeling

The state of charge (SoC) of a battery is its remaining capacity as a percentage of its total capacity. Determining the state of charge of a battery is a critical task in battery-powered portable electronics. It is also an increasingly commercially important in Battery Energy Storage Systems (BESSs), which store energy generated by renewable energy sources for later use or for selling back to the grid. Better estimation of a BESS's state of charge and any associated uncertainty, makes it possible for renewable energy providers to better take part in dynamic energy markets. Better estimates of the state of charge and its uncertainty for BESSs could mean the difference between their commercial success and operating at a loss. This use case implements dynamic estimation of the uncertainty of the SoC of a BESS, given the battery discharge curve which is determined by the battery's chemistry and given a single measurement of the battery terminal voltage at a given state of charge. The status quo and competing method for this task is using a Monte Carlo simulation over the uncertainty in battery terminal voltage to determine the uncertainty in SoC. The number of Monte Carlo iterations needed to provide a converged estimate is typically thousands to hundreds of thousands.

As a battery is discharged, its output voltage decreases. The animation at the bottom of this page shows the discharge curve of a Panasonic CGR-17500 Li-Ion cell. The steep start, flat middle, and steep end is characteristic of the Li-Ion chemistry. In the absence of measurement uncertainty, the state of charge can be determined exactly from the voltage. Because, at a given state of charge, a battery's cell voltage depends on phenomena ranging from its temperature to lack of precision in the voltage measurement, the translation from the cell voltage leads to an estimate of the SoC that is also uncertain. Even small uncertainties in cell voltage can translate to large uncertainties in SoC, as the animation below shows. Because the way the cell voltage uncertainty translates to SoC uncertainty depends on the slope of the discharge curve at a given state of charge, assuming a fixed SoC estimation uncertainty could lead to inaccurate SoC estimates, impacting the commercial viability of a BESS.

An implementation of uncertainty-quantified BESS SoC estimation on the Signaloid C0 processor runs approximately 334x faster than an already fast C-language Monte-Carlo-based implementation of the same model running on an AWS r7iz high-performance instance and the speedup enabled by Signaloid's technology also makes it possible to deploy BESS SoC estimation using edge hardware solutions.

Key Performance Indicator

Key Performance Indicator

Key Performance Indicator

Signaloid Platform Solution

Signaloid Platform Solution

Signaloid Platform Solution

Competing Solution

Competing Solution

Competing Solution

Signaloid Benefit

Signaloid Benefit

Signaloid Benefit

Speed for the same uncertainty quantification accuracy.

Speed for the same uncertainty quantification accuracy.

Speed for the same uncertainty quantification accuracy.

Run existing non-Monte-Carlo code and use either the Signaloid Compute Engine's automated ingestion of distribution information, or use the Signaloid UxHw API to set program variables as probability distributions.

Run existing non-Monte-Carlo code and use either the Signaloid Compute Engine's automated ingestion of distribution information, or use the Signaloid UxHw API to set program variables as probability distributions.

Run existing non-Monte-Carlo code and use either the Signaloid Compute Engine's automated ingestion of distribution information, or use the Signaloid UxHw API to set program variables as probability distributions.

Run existing Monte Carlo code, or, starting from non-Monte-Carlo code, modify code to implement Monte Carlo sampling, iteration, and aggregation of the results from the Monte Carlo iterations of the computation.

Run existing Monte Carlo code, or, starting from non-Monte-Carlo code, modify code to implement Monte Carlo sampling, iteration, and aggregation of the results from the Monte Carlo iterations of the computation.

Run existing Monte Carlo code, or, starting from non-Monte-Carlo code, modify code to implement Monte Carlo sampling, iteration, and aggregation of the results from the Monte Carlo iterations of the computation.

334x faster execution time than 827k-iteration Monte Carlo, while achieving same fidelity of full distribution result.

334x faster execution time than 827k-iteration Monte Carlo, while achieving same fidelity of full distribution result.

334x faster execution time than 827k-iteration Monte Carlo, while achieving same fidelity of full distribution result.

Animation of uncertainty in battery state of charge as a function of measurement uncertainty of battery terminal voltage.
Animation of uncertainty in battery state of charge as a function of measurement uncertainty of battery terminal voltage.
Animation of uncertainty in battery state of charge as a function of measurement uncertainty of battery terminal voltage.

Software running on the Signaloid platform (e.g., the Signaloid C0-microSD hardware module or the Signaloid Cloud Compute Engine) can efficiently calculate the distribution (uncertainty) of the BESS state of charge as a function of the battery terminal voltage. For a fixed uncertainty in measuring the battery terminal voltage (distribution projected on the left side of the vertical axis) , the uncertainty in the state of charge (distribution projected below the horizontal axis) can vary from having almost no uncertainty to have over 20 percentage points of uncertainty.


Note 1:

The underlying distribution representations are not literal histograms: The distribution plots use an adaptive algorithm to render a mutually-consistent and human-interpretable depiction for both the Signaloid distribution representations and the Monte Carlo samples, to permit qualitative comparison.

Note 2:

Because Monte Carlo works by statistical sampling, each set of multi-iteration Monte Carlo runs (e.g., each time a 200k-iteration Monte Carlo is run) will result in a slightly different final distribution. By contrast, the results from Signaloid's platform are completely deterministic and yield the same distribution each time, for a given Signaloid C0 core type. The performance improvement over Monte Carlo results above show the performance speedup of running on Signaloid's platform, compared to running a Monte Carlo on an AWS r7iz high-performance AWS instance, for the same quality of distribution while accounting for the variations inherent in Monte Carlo. To compare the quality of distribution, we run a large Monte Carlo until convergence (e.g., 1M iterations) and use this as a baseline or ground truth reference for distribution quality (not for performance). We then compare performance of the Signaloid solution against a Monte Carlo iteration count for which the output distributions of 100 out of 100 repetitions are all at smaller Wasserstein distance (than the Signaloid-core-executed algorithm's output distribution) to the output distribution of the baseline reference. Intuitively, this analysis gives the Monte Carlo iteration count that results in an output distribution that is never worse than the Signaloid-core-executed computation's output distribution. 334x speedup achieved when running on a Signaloid C0Pro-XL (Jupiter) core. Performance data based on Spring 2024 release of Signaloid's technology.