How to use the ED/UC Simulator

Draw a network, decide which units run each hour and at what output, read the prices that follow. Every clip on this page is the real tool, recorded while it was used.

The short version

  1. Draw or load a network

    Start from a worked example in Quick Start, or drag buses, lines, units, loads and storage onto the diagram.

  2. Set the units and the loads

    A unit's rating, minimum, marginal cost and commitment limits; a load's peak and profile. The Dispatch tab sets the problem and the horizon.

  3. Run and read

    Press Run dispatch. Pick an hour or play the day on the diagram, then read the dispatch, the nodal prices and the commitment below.

Nothing is uploaded. The problem is built by PSA.js, a JavaScript port of PyPSA, and solved by HiGHS, both in your browser.

The screen

Inputs on the left, the diagram beside them, the results and the charts under it. Point at a part in the list to see where it is.

  1. Inputs

    Quick Start, save and open, then three tabs: Element, Dispatch and Labels. Run dispatch sits at the bottom. The chevrons fold the card to a slim Inputs rail.

  2. Parts

    Bus, node, line, transformer, generator, solar, wind, grid, load, storage and HVDC link. Under them: undo, redo and Clear.

  3. Diagram

    Your network, with one hour's outputs, flows and prices written on it. Above it: the Hour, β–Ά to play the day, the flow animation, Colour by and Share.

  4. Results

    Four figures (operating cost, average price, units running, congestion), then the charts: Dispatch, Nodal prices, commitment and storage, then the tables.

Top right, Tour replays a one minute walk through the tool, and Guide opens this page.

Quick Start

Four worked examples: the PJM 5-bus system over a day, Three units on one bus, a Solar and battery system, and Two areas joined by an HVDC link over three days. One click replaces the network, sets how it is solved, and runs it.

On a phone, press Full screen under a clip and turn the phone sideways to read it.

Open the inputs, pick an example
  1. Open the inputs

    On a first visit the card is folded to a rail, so the results have the room. Click Inputs to open it; it stays the way you leave it.

  2. Pick an example

    Hover a button to read what it holds. A click loads it and solves it.

  • The PJM 5-bus is a check. At its 18:00 peak it reproduces the nodal prices published by Li and Bo (2010).
  • Then make it yours. Change anything over the top of an example; Undo brings the last step back.

Draw a network

Buses first, then the units, loads and storage on them, and the branches between them. A single bus is enough for a dispatch with no network.

Two buses, a generator, solar, a load and a line
  1. Drop a bus

    Drag Bus (a bar) or Node (a dot) onto the diagram.

  2. Drop units and loads

    Drag a generator, solar, wind, grid, load or storage onto a bus. It snaps to it.

  3. Connect two buses

    Pick Line, Transformer or HVDC link, then drag from one bus to the other. Esc stops.

  4. Run it

    Run dispatch, or Ctrl Enter.

  • Solar and wind follow the weather. Their availability is a profile, so they run only as far as the sun or the wind allows; what they could have given and did not is curtailment.
  • Move and arrange. Drag anything to move it, empty space to pan, scroll to zoom. The arrow keys nudge a selection, R turns a bus upright.
  • Mistakes are cheap. Undo and redo sit under the parts. Clear empties the diagram after asking, and Undo brings it back.

Units and costs

Select a unit and the Element tab shows what decides when it runs: its type, rating, minimum stable loading and marginal cost, then its commitment and ramp limits.

Three units: the coal unit
  1. Select a unit

    Click it on the diagram. Type switches between generator, solar, wind and grid.

  2. Its cost

    A flat marginal cost, or one that rises with output, linear or quadratic. The curve under it reads the cost at any output.

  3. Commitment

    A committable unit is on or off each hour, with minimum up and down times, start-up, shut-down and no-load costs, and whether it runs before the first hour.

  • Ramping. How far a unit's output may rise or fall from one hour to the next, as a share of its rating.
  • Storage. Its power rating, hours at full power, round-trip efficiency, and whether it ends the horizon where it started.
  • HVDC link. Its rating, efficiency, and one way or both.

Load profiles

A load's Peak demand is scaled hour by hour by its profile. Solar and wind units have the same control, as their availability.

Three units: the demand made residential, its evening raised
  1. Select a load

    Click it on the diagram.

  2. Pick a profile

    System day, residential, commercial, industrial and more, or Custom to take every hour from a file.

  3. Drag a bar

    Each bar is an hour as a share of the peak. Drag across bars to draw a new shape; it stays marked edited.

  4. Vary it by weekday

    Daily variability adds a factor for each day of the week, under the week it makes.

The Dispatch tab

What is solved, over how long, and what the network is allowed to do.

Three units over three days
  1. Solve as

    Unit commitment, mixed-integer (exact) or linear (quick, a lower bound), or Economic dispatch with or without minimum outputs.

  2. Horizon

    Up to 30 days in one-hour steps, solved together, from the First hour. Built-in profiles follow the weekday.

  3. Profiles from a file

    ⬇ Template gives a CSV with a row per hour and a column per load and unit; Open file takes the hours back from CSV or Excel.

  4. Network and shedding

    Line limits on or off, and load shedding at the value of lost load instead of an infeasible problem.

  • Solver. The optimality gap of a mixed-integer run and a time limit for HiGHS.
  • Currency. The symbol every cost and price is shown in.

Hour by hour

The diagram shows one hour at a time: each unit's output, each branch's flow and loading, each bus's price.

PJM 5-bus through the day
  1. Drag the hour

    The slider above the diagram picks the hour; the date and time sit beside it.

  2. Play the day

    β–Ά steps through the hours; press it again to stop.

  3. Hover to read

    Hover or tap an element and the box under the diagram gives its values for that hour.

  • Colour by. Nodal price, branch loading, both or nothing. A full branch is what splits one price into many.

The charts

Every hour of the horizon at once. Each chart has its own Share menu and ⟳ to reset its zoom.

Three units: dispatch, prices, commitment
  1. Dispatch

    Each unit's output stacked in merit order, cheapest at the bottom, under the demand line. Any curtailment sits on top.

  2. Click an hour

    A click on any chart shows that hour on the diagram.

  3. Prices and commitment

    The price at every bus, and which units are on in each hour. With storage, a fourth chart follows its charge.

Results

Under the diagram: the answer in four figures; under the charts, every element's values in tables, then what the result assumes.

Figures and tables
  1. Four figures

    Operating cost, the load-weighted average price, units running at the peak, and the branch longest at its limit.

  2. Open the tables

    Results by element opens from its chevron.

  3. Pick a table

    Units, Buses, Branches or Hours. ⬇ CSV saves the one shown.

  • What this assumes. The last card lists what the result rests on for this network, such as how it was solved and the value of lost load.

Save, export and share

The tool keeps your network in this browser between visits. The rest makes something to keep or send.

Save, open and Share
  1. Save or open a file

    The two icons beside Quick Start write the whole network and its settings to a file, and read one back.

  2. Share

    The diagram as SVG, PNG or an animated GIF of the day, a copy to the clipboard, a link that opens your network, or an embed for a web page.

  • Every chart shares too. Each has the same menu, for that chart alone.

Shortcuts

  • Ctrl Enter run the dispatch
  • Ctrl Z undo
  • Ctrl Y redo
  • Ctrl D duplicate
  • Ctrl A select everything
  • Delete remove the selection
  • R turn a bus
  • ← β†’ ↑ ↓ nudge (with Shift, further)
  • Esc stop drawing, clear the selection

Ready to run one?

Open the tool