Smrity Mallik · SimulationCode on GitHub

Simulation environment · energy grid · redispatch

GridSimEnv: resolve a grid congestion at minimum cost

In this hour the market schedule sends more power from the windy north to the demand in the south than the line can carry. Cut the flow by redispatch: reduce generation in the north, raise it by the same amount in the south. Find the cheapest plan, then watch the 3D grid, the pylons and the charts react.

What is real and what is assumed: the hourly German wind series is real (SMARD, 12,961 hours). The two-zone grid, the share of wind sent north to south (20 %), the line limit (72 % of the scheduled flow), the plant limits and all prices are stylised assumptions. The 3D plants and pylons are illustrative. The problem has a provable optimum, so every plan can be graded.

← NORTH: wind farms, lignite and gas plantsSOUTH: city, gas peaker, coal reserve, hydro →
line overloadedcongestion resolvedflow within limitsmoke ~ plant outputDrag to rotate, scroll to zoom. Turbines: number follows the wind, spin follows the wind, stopped red ones are curtailed.
German wind-
Scheduled flow-
Line limit-
Must redispatch-
Flow after plan-
Your cost-
Optimum cost-
Score-

Your plan (MW)

OptionSideMax MWPrice EUR/MWYour MW

Live charts

Wind around this hour (±24 h)

Real SMARD series. The dot is the hour you are looking at.

Flow, limit and excess, last 24 hours

Scheduled north-south flow against the line limit. The gap is what redispatch must remove.

Line loading now

Before your plan, the limit, and after your plan.

Cost: your plan, naive rule, optimum

EUR for this hour. Updates as you type.

MW per option: yours and the optimum

The optimum uses the cheapest options first on each side.

Merit order (price against cumulative MW)

Steps: cheapest to dearest on each side. The vertical line is the redispatch needed. The optimum buys everything left of it.

Running cost while playing hours

Press Play. The naive rule and the optimum are added up hour by hour.

Mean score over 500 real wind hours

Computed in Python (simulation/evaluate.py) with the exact linear-programme optimum. 1.0 = optimal.

Scores over 500 real wind hours

RuleValid plansMean scoreMean cost (EUR per hour)