• Energy

Schneider Electric: Quantum Optimisation for Smart Grid Energy Management

Schneider Electric

Schneider Electric applied quantum annealing to real-time energy management optimisation for smart grids, minimising cost and carbon intensity across distributed energy resources including solar, storage, and demand response.

Key Outcome
D-Wave hybrid solver reduced smart grid dispatch optimisation time from 45 seconds to 8 seconds for 200-node grid instances, enabling real-time energy management at grid scale.

The Challenge

Smart grids integrate solar generation, battery storage, controllable loads, and grid import and export into a unified energy management system. At every dispatch interval (typically every 5 to 15 minutes), an energy management controller must decide how much power to draw from each resource to minimise cost and carbon intensity while satisfying all load requirements and respecting physical constraints such as battery charge limits and ramp rates.

For a commercial building campus or industrial microgrid with dozens of resources, this dispatch problem is a mixed-integer optimisation: the on/off status of controllable assets (diesel backup generators, large HVAC units, electric vehicle chargers) introduces binary variables that make the problem NP-hard in the general case. Classical solvers handle small instances quickly, but as Schneider Electric’s EcoStruxure platform expanded to cover larger grid networks with hundreds of controllable nodes, the dispatch solver became a bottleneck. A 200-node grid instance was taking 45 seconds to solve classically, placing real-time operation at risk during rapid grid events such as sudden solar ramp-downs or unexpected demand spikes.

Schneider Electric’s advanced research team collaborated with D-Wave to evaluate whether quantum annealing could accelerate the binary dispatch problem while maintaining or improving solution quality.

The Quantum Approach

The energy management problem was cast as a binary optimisation. Each controllable asset at each dispatch interval received a binary variable: xi=1x_i = 1 if asset ii is operating, xi=0x_i = 0 if curtailed or offline. Continuous resource dispatch (solar output, battery charge rate) was discretised into four power levels, converted to a one-hot binary encoding. The objective minimised the weighted sum of energy cost and carbon intensity, subject to load-balance constraints (total generation must equal total demand at each node) and operational constraints (battery state-of-charge bounds, asset ramp limits).

D-Wave’s Leap hybrid solver was used rather than the pure quantum sampler: large problem instances (200 nodes) exceeded the capacity of the D-Wave Advantage QPU for direct embedding, so the hybrid solver decomposed the problem into quantum-amenable subproblems and coordinated solutions classically.

import numpy as np
from dwave.system import LeapHybridSampler
from dimod import BinaryQuadraticModel

# Grid parameters
N_ASSETS = 200       # controllable assets (solar inverters, storage, HVAC, EVs)
N_LEVELS = 4         # discrete power levels per asset
N_QUBITS = N_ASSETS * N_LEVELS   # one-hot encoding

# Cost vector: cost per unit power for each asset at each level ($/kWh)
cost = np.random.uniform(0.05, 0.25, (N_ASSETS, N_LEVELS))

# Carbon intensity per asset per level (kgCO2/kWh)
carbon = np.random.uniform(0.0, 0.4, (N_ASSETS, N_LEVELS))

# Demand vector: required load at each node (kW)
demand = np.random.uniform(10, 100, N_ASSETS)

# Power output per asset per level (kW)
power = np.array([[0, 25, 50, 100]] * N_ASSETS, dtype=float)

CARBON_WEIGHT = 0.3  # weighting on carbon vs cost

bqm = BinaryQuadraticModel('BINARY')

# Add variables and linear objective terms
for i in range(N_ASSETS):
    for r in range(N_LEVELS):
        var = f"x_{i}_{r}"
        obj_coeff = cost[i, r] + CARBON_WEIGHT * carbon[i, r]
        bqm.add_variable(var, obj_coeff)

# One-hot constraint: each asset operates at exactly one power level
LAMBDA_ONEHOT = 10.0
for i in range(N_ASSETS):
    # Penalty: (sum_r x_{i,r} - 1)^2
    for r in range(N_LEVELS):
        bqm.add_variable(f"x_{i}_{r}", LAMBDA_ONEHOT * (1 - 2))
        for r2 in range(r + 1, N_LEVELS):
            bqm.add_interaction(f"x_{i}_{r}", f"x_{i}_{r2}", 2 * LAMBDA_ONEHOT)

# Load balance penalty: (sum_i sum_r power[i,r]*x_{i,r} - total_demand)^2
# Simplified: apply per-node balance constraint
LAMBDA_BALANCE = 5.0
total_demand = demand.sum()
for i in range(N_ASSETS):
    for r in range(N_LEVELS):
        # Linear contribution from expanding the squared constraint
        linear_contrib = LAMBDA_BALANCE * power[i, r] * (power[i, r] - 2 * total_demand)
        bqm.add_variable(f"x_{i}_{r}", linear_contrib)
        for j in range(i + 1, N_ASSETS):
            for r2 in range(N_LEVELS):
                cross = 2 * LAMBDA_BALANCE * power[i, r] * power[j, r2]
                bqm.add_interaction(f"x_{i}_{r}", f"x_{j}_{r2}", cross)

sampler = LeapHybridSampler()
result = sampler.sample(bqm, time_limit=8)  # 8 second time budget

best = result.first.sample
dispatch = {f"asset_{i}": next(r for r in range(N_LEVELS)
            if best.get(f"x_{i}_{r}", 0) > 0.5) for i in range(N_ASSETS)}
print(f"Dispatch solved. BQM energy: {result.first.energy:.2f}")

Dispatch quality was measured as total energy cost plus carbon penalty, compared against a classical mixed-integer linear programming solver (CPLEX) with a 45-second time limit.

Results and Implications

D-Wave’s hybrid solver produced dispatch solutions for 200-node grid instances in 8 seconds, a 5.6-fold reduction from the 45-second classical CPLEX runtime. Solution quality was within 2.1% of the CPLEX optimal on average, a margin acceptable for real-time grid operation where speed of response outweighs marginal cost differences.

The 8-second solve time is within the operational window for Schneider Electric’s 15-minute dispatch cycle, enabling genuine real-time optimisation rather than predictive pre-scheduling. During simulated solar ramp events (a 30% drop in solar output over 90 seconds), the quantum hybrid approach updated dispatch plans three times within the ramp window, compared to once for the classical solver, resulting in 12% lower demand-response activation costs.

Schneider Electric integrated the D-Wave hybrid solver into a prototype version of their EcoStruxure Microgrid Advisor platform, tested at a 200-asset industrial campus in France. The trial validated the solver latency improvement in a live grid environment, with the quantum-hybrid dispatch achieving 4.3% lower average energy cost over a two-week trial period compared to the standard rule-based controller baseline. Schneider Electric plans to productionise the integration with D-Wave Leap for enterprise microgrid customers with 100 or more controllable assets.