← All work
05 · In progress

Power-system stability & oscillation prediction

In one line

Forecasting oscillations on a power grid with graph neural networks, and whether a model trained on one grid survives a change to it.

Lab
EMPower Lab, Penn State EECS
Advisor
Prof. Yan Li
Funding
EECS Undergraduate Research Award
Period
Fall 2026 – Spring 2027
Stack
PyTorch, PyTorch Geometric
01

The problem

Phasor measurement units sample the grid tens of times a second and timestamp every reading against GPS, so hundreds of sensors report in lockstep. A disturbance shows up across many of them at once, which makes the data a very wide, very fast, strongly correlated time series.

Two common approaches both throw something away. Treat each sensor as its own series, and you lose the fact that they are wired to each other. Treat all of them as one flat vector, and the model has to rediscover the network’s layout from data, when that layout is already known.

02

Why a graph

The grid is not metaphorically a graph; it is one. Buses are nodes, transmission lines are edges, and how a disturbance travels is governed by that structure. A graph neural network can take the layout as given and learn over it, rather than spending capacity inferring it. The longer-term direction is to add the physics as well, constraining the model with how power flow actually behaves.

03

Three stages

  1. 1Forecast oscillations on a fixed network, starting from a small sample dataset with pending: four measured quantities per node.
  2. 2Hold up when the network changes: a line switched off, a node removed.
  3. 3Transfer to a grid the model has never seen, fine-tuning from what it learned instead of training from scratch.
04

The hard part

Stage 2 is where the question gets difficult. A model trained on one fixed graph can end up learning things specific to that graph’s particular nodes, and then it has nothing useful to say about a node that’s gone or a line that’s no longer there. That is the difference between transductive learning, which works on the graph it was trained on, and inductive learning, which generalizes to graphs it hasn’t seen.

Moving from one to the other isn’t a setting. Several things change at once: the architecture can’t hold parameters tied to particular nodes, the training data has to include networks with lines and nodes removed, the evaluation has to hold out whole topologies rather than stretches of time, and anything normalized per node has to be redone so it doesn’t depend on which node it is.

For stage 2 to work, the model has to learn how a node responds to its neighbourhood rather than what each particular node is. That same property is what stage 3 needs, so stage 2 is the hinge of the whole project.

05

Notes as I go

Logpending: dated research notes, added as the work goes
06

Why this, alongside markets

Grid data and market data share a shape. Both are spatio-temporal: many series on a network, evolving over time. Both are strongly correlated across series, and in both the correlations change with the regime. Under stress they tighten sharply. A line trip or a generator outage sets distant parts of a grid oscillating together, the way a crisis or a sell-off makes stocks that normally move independently fall as one. In both, a disturbance travels along the network, and the rare days matter far more than the average one.

Both networks also change shape. Lines are switched in and out of a grid; companies list, delist and change their relationships in a market. So what stage 2 asks matters beyond the grid.

The difference is useful too. A grid’s layout is known, while a market’s has to be inferred. That makes the grid a cleaner place to test methods that, in markets, also have to learn the graph.

Read previousIs volatility-regime onset forecastable?Read nextSpatio-temporal forecasting for equity markets