Six generators (sun, wind, gas TES picker, AEC) power a central hub, which distributes power among eight consumers via lines with limited capacity. Sun and wind vary by time of day/ gusts, AEC maintains base load, and the gas picker fills the difference.
Static plan: f_j = S · (w_j / Σw) — fixed share w_j, ignoring d_j(t)
AI dispatcher: f_j⁰ = S · (d_j(t) / D(t)) — proportional to current demand
f_j = min(f_j⁰, c_j), excess → water-filling to lines with spare capacity
- Static schedule — emulates SCADA logic without ML: the power S is divided among predefined "normative" weights w_j, not reacting to real demand d_j(t) or sun/wind. Lines that receive more than their capacity c_j overload and lose the excess (no redistribution).
- AI Dispatcher — on each forecast step, it predicts real demand d_j(t) for each consumer, first divides supply proportionally to them, then (water-filling) shifts excess from overloaded lines with capacity limits c_j to lines with available capacity — so overloading almost doesn’t occur.
- Gas pickerreacts to net-demand (demand minus VDE minus AEC) — this is 'merit order dispatching', which real network operators (ISO/TSO) actually use with forecasting models.
- Network efficiency= delivered power / total demand; falls when lines are overloaded and “failsafe” activates.
Real network operators (National Grid ESO in Britain, PJM in the US) already use ML demand forecasting and RL-like flow optimization — it’s the same idea here, simplified to 14 lines.