Skip to content

Energy Operations Research

Forecasting, optimisation, reliability and decision intelligence for renewable energy and BESS.

An open, executable textbook. Every important mathematical technique in it solves a recognisable operational problem from a real renewable-energy business: sharing a congested connection, dispatching a battery, timing a gearbox exchange around crane wind limits, deciding which of 26 turbines to fix first.

  • The book


    Intuition first, then mathematics, then a picture of what the mathematics means.

    What is Energy OR?

  • The labs


    Every practical chapter has a Google Colab notebook. No local install needed.

    Chapter 1 lab

  • The library


    energy_or holds the tested, reusable models that the book and the labs call.

    Engineering Lab 1

  • The visualisations


    Manim animations and live in-browser models show why an optimiser behaves as it does.

    Watch the first one

Start here

Two wind farms share a 100 MW connection. Farm A could export 70 MW, farm B 80 MW, and B's megawatt-hours are worth more. Who gets the connection? And what is one more megawatt of network actually worth?

That question is a linear program, and it is the first chapter of this book: 1 · Two wind farms, one connection.

Three tracks, one system

The book runs three tracks in parallel. Each modelling chapter is followed by an engineering lab that turns the model into something you could actually run.

Track Starts with Ends with
Mathematical optimisation LP, duality, shadow prices Stochastic, robust and multi-objective portfolio optimisation
Energy operations Dispatch behind a shared limit Fleet trading, maintenance, logistics and contracts in one model
Production engineering A tested Python package Observable, latency-budgeted, backtested decision services

See the full table of contents for the planned curriculum and what is available today.

What this book is not

It is not a replacement for AEMO documentation, and none of its models reproduce NEMDE. Where a chapter approximates a market process, it says so. Synthetic data is always labelled as synthetic.