Skip to content

Unit commitment-esque model for microgrids #65

@simonbowly

Description

@simonbowly

Why this Mod?

To give a gentler alternative to the very complex ACOPF mods, a unit commitment mod would be a useful addition. However, the classic example of a few big coal plants serving some smoke-belching factories is not so nice since (a) it's a bit tired, (b) the explanation involves many dirty words, and (c) it's not so likely that a small country would build their power grid on top of the optimods.

It would be more interesting to demonstrate usability for microgrids or household scale power usage. So we could include:

  • demand profiles,
  • solar generation patterns,
  • battery charge/discharge,
  • load-shedding for HVAC systems, and,
  • bribing your neighbours with the promise of baked goods if they pedal a dynamo for an hour so you can keep hacking.

Design requirements

Verify the mod will meet the following criteria:

  • Self-contained: the user doesn't need to interact directly with gurobipy
    objects when using the function or class exposed by the mod.
  • Stateless: data-in data-out, no follow-up optimization steps, and gurobipy
    objects are disposed as soon as solutions are retrieved.
  • Covers a well-known concept from a non-optimization field. In particular,
    we must be able to explain what the Mod does using domain-specific terminology
    without reference to the mathematical model.
  • Clear purpose / single focus. There may be natural parameters to switch on/off
    various side-constraints, but these should be kept to a minimum.

What will the API be?

Pandas is the natural input format. It may make sense to build this mod as a class to separate static infrastructure from dynamic operation concerns to support scenario modeling, e.g.

grid = MicroGrid(loads, storage, generators)
grid.operation_plan(demand_profile, solar_profile, wind_profile)

We probably don't need network layout information for microgrids, and can focus on meeting demand over time.

Additional context

A quick search reveals plenty of recent literature we could reference:

Many papers refer also to ML for demand forecasting, so this is also a good opportunity to talk about the "what next" after you've applied all your fancy machine learning tricks.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions