Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unit commitment-esque model for microgrids #65

Open
simonbowly opened this issue May 18, 2023 · 0 comments
Open

Unit commitment-esque model for microgrids #65

simonbowly opened this issue May 18, 2023 · 0 comments

Comments

@simonbowly
Copy link
Member

simonbowly commented May 18, 2023

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant