← Back to portfolio

Portfolio project · Python · PyPSA · BESS · Streamlit

Exploratory PyPSA-NL Grid Congestion and BESS Learning Project

A Netherlands-inspired exploratory modelling workflow for learning PyPSA concepts around renewable growth, grid bottlenecks, storage siting and flexible connection strategies. This sits as supporting evidence below the main energy-systems projects, not as a headline track.

Grid congestion dashboard concept for PyPSA, BESS and flexible connection analysis

Engineering contribution

  • Built a simplified regional PyPSA grid model with provincial buses, inter-regional corridors, renewable generation, backup generation and storage/flexibility options.
  • Developed scenario workflows for base constrained grid, high solar, high offshore wind, BESS placement, flexible connection contracts, targeted reinforcement and combined BESS/flexibility cases.
  • Implemented a BESS siting and sizing sweep across regions, MW ratings and durations, ranking options using renewable dispatch gain, backup reduction, congestion-cost proxy relief and line-overload reduction.
  • Added flexible connection logic to represent lower available connection capacity during congested hours and normal access during uncongested hours.
  • Built a Streamlit dashboard with scenario comparison, hourly flows, bottleneck/N-1 screening, BESS results, validation checks and report exports.
  • Documented the model transparently as a simplified Netherlands-inspired screening model, not a validated Dutch TSO operational grid model.

Exploratory work

What I did

  1. PyPSA-NL setup: cloned the published Dutch transmission-network model and stepped through the data preparation (network topology, line capacities, generator portfolio, demand timeseries) until I had a reproducible solve on my machine.
  2. Congestion screening: ran a representative weekly snapshot and identified the most-loaded lines under the baseline. Mapped the result against published TenneT congestion notices to sanity-check the model behaviour.
  3. BESS placement screening: added candidate battery storage at three congestion-hotspot nodes (5 MW / 20 MWh each) and compared shadow-price reduction across snapshots.
  4. Dashboard: built a Streamlit interface that plots node loadings, line flows and the BESS dispatch overlay — used for the learning bundle deliverable.

Disclosure: this project is presented as exploratory learning, not as a definitive grid study. The model is a public reference; calibration to TenneT operational data was not performed.

What I learned

Takeaways from the learning project

  • PyPSA's network-LP framing makes congestion + storage screening fast — the bottleneck is data preparation, not the solve.
  • Shadow-price-driven BESS placement gives directionally useful screening but is not a substitute for full investment-grade DCOPF + multi-year capacity expansion.
  • Working with the published model exposed which assumptions are robust to the dataset and which need operational calibration before any conclusion is defensible.
  • The learning carries over directly to MILP dispatch work in the district-heating case and to the multi-vector PyNEXUS model elsewhere in the portfolio.

Honest limitations

Why this is framed as learning

  • The network model is published reference data, not validated against TenneT operational measurements.
  • Demand and renewable profiles use generic snapshots, not the actual weather year + dispatch outturn for the period.
  • BESS placement is a single-snapshot screening, not a full year-round capacity-expansion optimisation.
  • No Nāˆ’1 contingency analysis was attempted, which a real grid-flexibility study would require.

Relevance

Why this matters

This project is retained as transparent exploratory evidence: it helped develop working familiarity with PyPSA-style grid modelling, BESS screening, congestion interpretation and dashboard communication. The stronger grid evidence in the portfolio remains the distribution-grid coursework and the stronger energy-systems evidence remains IDA ICE, HOMER Pro, LEAP, dispatch optimisation and forecasting.