Research·Complex Energy Systems·R&D Demonstrator

Dispatching a fleet from the shape of its demand

Coordinating generation, storage and grid assets as one fleet usually means a combinatorial optimisation that explodes with scale. We asked a different question: can the structure of the demand signal itself tell each asset what to do — fast enough, and cheap enough, to run on a Raspberry Pi?

Type
R&D demonstrator
Domain
Complex energy systems
Method
Discrete Wavelet Transform
The win
Near-optimal dispatch on a Raspberry Pi
At a glance

Full Stack Energy developed and evaluated a novel control approach for coordinating mixed energy systems — generation, storage and grid-connected assets operating as a single fleet. Instead of solving a unit-commitment and economic-dispatch problem (a combinatorial explosion that scales badly and needs commercial solvers), the method uses the Discrete Wavelet Transform to decompose the demand signal by timescale and map each band to the asset class best suited to serve it. It reaches within 2.3% of the mathematically optimal solution, dispatches a 72-generator fleet in 0.2 milliseconds, and runs as a 90KB dependency-free binary on a Raspberry Pi.

  • TypeR&D demonstrator / prototype
  • DomainComplex energy systems
  • MethodDiscrete Wavelet Transform (DWT)
  • ComplexityO(N log N) — no exponential blow-up
  • Footprint90KB binary · sub-ms · Raspberry Pi
  • ValidationSynthetic · IEEE test systems · EirGrid
01The question

Why not just solve the optimisation?

Mixed energy systems share a common failure mode. Individual assets work fine in isolation, but system-level behaviour is poor: batteries cycle inefficiently, grid import is mistimed, backup generators fire when they shouldn’t, and operational decisions bear no relation to the cost signals that determine whether a site makes or loses money.

The standard engineering response is to formulate this as a unit-commitment and economic-dispatch problem, solved with mixed-integer linear programming (MILP) or dynamic programming. These find near-optimal solutions, but they scale badly, require commercial solver licences, and assume infrastructure many real-world sites simply don’t have. A 72-generator fleet has 2⁷² possible on/off states per time interval — more than the number of grains of sand on Earth.

So this project asked a different question: rather than solving a combinatorial explosion at every timestep, can the structure of the demand signal itself be used to derive dispatch decisions?

A power demand signal decomposed into four stacked panels: the original signal with its baseload approximation on top, then Detail Level 3 (diurnal scale), Detail Level 2 (hourly scale) and Detail Level 1 (sub-hourly fast transients).
Wavelet decomposition of a demand profile into a baseload band plus diurnal, hourly and sub-hourly detail — each mapped to the asset class best suited to serve it.
Cost comparison table: Wavelet (cost-weighted) €869, Wavelet (reactive) €906, Priority list €840, DP (optimal) €690.
Cost comparison across dispatch strategies — the wavelet method lands close to the optimal dynamic-programming benchmark at a fraction of the compute.
02The method

Split the demand like an equalizer splits music

Electricity demand isn’t a flat number to be met — it’s a layered signal. The Discrete Wavelet Transform separates those layers, and each layer maps cleanly onto the asset built to serve it.

methodDiscrete Wavelet Transform · preserves when a transient happens, unlike Fourier
mappingFrequency band → asset response time · structured reconstruction, not combinatorial search
commitmentImplicit — thermal commitment emerges from band signals + hysteresis
footprint90KB binary · O(N log N) · sub-ms · runs on a Raspberry Pi

Electricity demand isn't a number to be met — it's a signal with layers. Split it the way an equalizer splits music, and each asset already knows which part it should play.

Lead Engineer, Full Stack Energy
03The results

Near-optimal, instant, and honest about its limits

The method was evaluated across synthetic benchmarks, IEEE standard test systems and real Irish grid data from EirGrid. On a microgrid fleet (8 assets, 4 classes) it came within 2.3% of the mathematically optimal solution on 7-day profiles — a result that would otherwise require exhaustive dynamic programming — and outperformed conventional merit-order scheduling by 36–42% on total cost. On the IEEE RTS-GMLC benchmark (72 generators, 48 hours), where the optimal is computationally intractable, it dispatched the entire fleet in 0.2 milliseconds.

The EirGrid results were more nuanced — and that nuance is a central finding, not a caveat. After subtracting volatile wind, the residual load loses its multi-scale structure (96% of variance sits in the baseload band), so the wavelet decomposition stays correct but adds less over simpler methods; on gross demand profiles, which retain their diurnal structure, it showed 18–20% improvement pathways. In short: the method’s effectiveness correlates with the spectral richness of the signal.

A companion case study applied it to a real 60-lodge Irish holiday park — micro-hydro, wind, distributed solar, seven independently-owned batteries, diesel backup and a metered grid connection. The wavelet dispatch coordinated all of it as a single system, kept the diesel generator off throughout normal operation, and identified which asset class would hit capacity first as the park grows — feeding directly into capital-planning decisions.

2.3%
from optimal on a 7-day microgrid
0.2 ms
to dispatch 72 generators
90 KB
binary, running on a Raspberry Pi
04From the team

What we’d tell you over coffee

The honest headline of this work is the EirGrid result. It would have been easy to bury the fact that the method adds less value once you strip out wind and the signal flattens into baseload — but that finding, that effectiveness tracks the spectral richness of the demand, is genuinely useful. It tells you exactly which sites the technique is right for, which is worth more than a flattering benchmark.

The part that excites us commercially is the footprint. A 90KB binary with sub-millisecond execution on a Raspberry Pi means you can put genuine real-time coordination on sites that could never justify a commercial solver licence or guarantee cloud connectivity. That’s the difference between a clever paper and something you can actually deploy.

Wavelets (DWT)DispatchUnit CommitmentEdgeMicrogridR&D
05FAQ

Common questions about wavelet-based dispatch

It's a control method that decomposes the electricity demand signal by timescale using the Discrete Wavelet Transform, then maps each frequency band to the asset class best suited to serve it — baseload generation for slow demand, flexible plant for daily variation, fast storage for transients. Dispatch emerges from the signal's structure instead of solving a combinatorial unit-commitment problem.

Because it scales badly. A 72-generator fleet has more possible on/off states per interval than there are grains of sand on Earth, and MILP or dynamic-programming solvers need commercial licences and infrastructure many sites lack. The wavelet method is O(N log N) in signal length, so there's no exponential blow-up — it runs as a 90KB dependency-free binary on a Raspberry Pi and dispatches 72 generators in 0.2 milliseconds.

On a 7-day microgrid it came within 2.3% of the mathematically optimal solution and beat conventional merit-order scheduling by 36–42% on cost. Crucially, its effectiveness tracks the spectral richness of the demand signal — on EirGrid residual load dominated by baseload it adds less, while signals that retain diurnal structure show 18–20% improvement pathways.

Got a coordination problem that breaks the usual solvers?

When MILP won't scale or won't fit on-site, a signal-structure approach can. We bring research-grade methods to real dispatch problems. Let's talk.