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

Add documentation discussing storage scheduling use cases in more detail #693

Closed
Flix6x opened this issue May 22, 2023 · 3 comments · Fixed by #885
Closed

Add documentation discussing storage scheduling use cases in more detail #693

Flix6x opened this issue May 22, 2023 · 3 comments · Fixed by #885

Comments

@Flix6x
Copy link
Contributor

Flix6x commented May 22, 2023

By now we have accumulated quite some scheduling options (see https://flexmeasures.readthedocs.io/en/latest/api/notation.html#flex-model, and https://flexmeasures.readthedocs.io/en/latest/api/v3_0.html#post--api-v3_0-sensors-(id)-schedules-trigger)) that aren't really explained in detail anywhere else. I suggest we add a new documentation section (e.g. to https://flexmeasures.readthedocs.io/en/latest/tut/forecasting_scheduling.html or to https://flexmeasures.readthedocs.io/en/latest/api/notation.html#flex-model) where we can discuss some scheduling problems. There we can then also address the case detailed in #575, and what the client can do to set up this problem as a feasible scheduling problem. This will require some combination of using the soc-maxima and soc-minima fields, instead of the soc-max and soc-targets fields. Something like:

  • setting soc-maxima to a list of values equal to the normally preferred maximum value, for each time step, but excluding some time range around each soc-target (to make the problem feasible),
  • setting the soc-minima to a list of 100% values, for each soc-target datetime.

Originally posted by @Flix6x in #680 (comment)

And from #679: The storage efficiency field could also use some more explanation. For example, a storage efficiency of 99 percent per (absolute) day, for scheduling a 1-hour resolution sensor, should be passed as a storage efficiency of 0.99**(1/24).

@victorgarcia98
Copy link
Contributor

Good idea 😄

I think we should have a major section for scheduling and different subpages for, not exclusively, explaining the following:

  • The general model, i.e., linear_optimization.py (constraints, cost function, variables...)
  • StorageScheduler, input parameters, how does it fill the constraints (i.e. maxima, minima, min, max, storage losses...)
  • Use cases, i.e how to use the input parameters to describe some real life situations (e.g. use minima to approximate to a target SOC, how to model availability of a EV, ...).

@nhoening
Copy link
Contributor

Just noting that this is a high-value issue in my mind.
Scheduling is the reason why FlexMeasures exists, so the explanations here mean a lot.

Examples help users. We have the API docs and the tutorial which both handle an example but the docs should be the place where someone can start. Maybe a little repitition wouldn't hurt, even. For instance, what's in the API documentation often isn't read by non-developers.

@nhoening
Copy link
Contributor

I see two PRs for this:

  • Main conceptual section for scheduling, types of schedulers, use cases
  • Latex model of the linear programming model in the storage scheduler and shifting scheduler

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

Successfully merging a pull request may close this issue.

3 participants