alvaroalva.com

Projects · 01

Grid controller, live

A small transmission grid runs in your browser. Flip between a naive dispatcher and a predictive controller, then break things — the difference you cause is measured honestly, live.

Simulation · synthetic grid · EIA demand replay — not a live utility
Clean replay: avoids 100.0% ± 0.0 Stressed (spike + line trip): avoids 79.2% ± 5.6 This pass: —

Verified over the full 14-day replay; spread across day-blocks. The controller's lookahead reads the replay as its forecast — perfect foresight by construction. Realistic ±3% forecast noise (toggle below) does not change its decisions here: its residual failures under stress come from the unforecastable line trip, not demand error.

CONTROLLER — NOISE OFF NOMINAL

DC power flow (linearized, lossless) · 10 fictional nodes · demand from the bundled EIA replay, scaled

—system demand
—violations avoided vs baseline
—worst line utilization
—replay clock

Redispatch moved this pass: — · anticipation costs movement

Events · newest first

    Dispatch · output vs capacity

    N-1 contingency scan · on demand

    line outworst util %critical line

    Not yet run this pass — trips each in-service line hypothetically at the current hour, through the same solver. Current dispatch, no response.

    Worst lines now

    System board · lines · live

    lineflow MWlimit MWutil %dirstatus

    System board · nodes · live

    nodetypeinj MW
    Line wall · utilization per line · replay so far

    One sparkline per line · faint rule = 100% limit · amber above it · ink cursor = room clock

    Node strip · injection / withdrawal per node

    MW vs time, per node · above zero = injection, below = withdrawal · ink cursor = room clock

    Intertie ribbon · West + South imports

    Import MW vs time · West = green · South = ink · ink cursor = room clock

    Forecast residual · what the controller believed

    forecast − actual at the 6 h edge · envelope = ±3% noise bound · flat zero with noise off = perfect foresight by construction

    What this is

    Giving the baseline eight times its step budget changes nothing — reacting after observation structurally concedes the violation hour.

    What this simulates

    A small transmission grid: three generators, two interties, five load centers, fourteen lines with hard capacity limits. Hourly demand is a two-week slice of real U.S. grid demand (EIA, public domain), scaled to this fictional system. Power flows follow a DC power-flow approximation — linearized and lossless, the standard planning simplification. The topology and every name on it are invented.

    The competition

    Two dispatchers compete on identical physics. The naive baseline spreads generation in proportion to capacity and corrects only after a limit has been crossed — one step, one hour late. The predictive controller reads the demand curve ahead and moves generation before the violation lands. Both use the same 25 MW redispatch step; the only difference is when they are allowed to act. Over this replay the baseline concedes 39 violation line-hours, the controller none — the pull-line above is the whole finding: it is lag, not budget.

    The honest fine print

    The controller's forecast is the replay itself — perfect foresight. Toggling realistic forecast noise (±3% at the six-hour edge) does not change its decisions here; when it does fail under stress — a tripped line during a demand spike — the failure comes from the unforecastable contingency, and the chip above says so. Anticipation is not free either: the controller moves about 45% more megawatts than the baseline to buy its zero.

    Provenance & depth

    Demand data: U.S. Energy Information Administration, public domain, bundled with the page. The same class of look-ahead dispatch problem I worked on for grid controllers at Sandia. Full write-ups on request — online@alvaroalva.com.

    Event wall · 0 events this pass · newest first