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

Reservoir module #1963

Open
SnippenE opened this issue Dec 9, 2024 · 1 comment
Open

Reservoir module #1963

SnippenE opened this issue Dec 9, 2024 · 1 comment
Labels
control Rule based control of physical layer

Comments

@SnippenE
Copy link

SnippenE commented Dec 9, 2024

As a user I want to be able to define reservoir management based on basic simple rules that later can be expanded to advanced specific set of operation rules. We might use the concepts and ideas of https://github.com/JohnRushKucharski/canteen and https://github.com/JohnRushKucharski/lattice.

@SnippenE SnippenE added this to Ribasim Dec 9, 2024
@github-project-automation github-project-automation bot moved this to To do in Ribasim Dec 9, 2024
@SnippenE SnippenE added the allocation Allocation layer label Dec 9, 2024
@gijsber gijsber added the control Rule based control of physical layer label Jan 21, 2025
@gijsber
Copy link
Contributor

gijsber commented Jan 21, 2025

Reservoir modelling discussion 21/1/2025

John, Fatima, Martijn, Maarten, Bart, Peter, Edwin, (Farid)

Task: build an example test model where the following modelling concepts are applied.
Result:
--> example for docu and test purposes
--> identify what we cannot model yet
--> identify where templates would be useful

Typical reservoir modelling approach (from simple to more complex)

Passive management

if Qin+S > V(TgtElev) then Qout= Qin+S-V(TgtElev)

Ribasim implementation options:

  1. DiscreteControl with static threshold + Outlet
  2. TabulatedRatingCurve

Simple Rule based curve

Same as above with V(TgtElev)(t):

Ribasim implementation options:

  1. DiscreteControl with timedependent threshold(DiscreteControl with time #744) + Outlet
  2. Outlet(time dependent)(Support time dependent parameters for pump and outlet types #208)
  3. TabulatedRatingCurve(timedependent)

Zone-based operations

Typical zones distinguished:

  • top (emergency spill way trying to save the structure)
  • surcharge (by season, controlled spillway)
  • flood control pool (by season, emergency storage)
  • conservation/water supply pool (by season, this is where hedging rules may apply)
  • dead/inactive (static, no gate access)

Sometimes the conservation/flood control level distinction is dynamic over multiple-years (different in dry years versus wet years)

Typical operations (could be different types for each zone):

  • Standard Operating Procedures (SOP), meet demand, if you cannot meet as much as you can, exceed ?->dump
  • SOP with hedging: reduce supply/release when the level/volume has arrived in certain (sub)zones
  • 5 parameter function (Qout <-> Qin+S)
  • x,y -> x,y,z operations
  • 5 parameter function per dayinyear (Qout <-> Qin+S) = LamellenPlan

  • f(Qin,storage, Qout) or more
  • possibly the compound variable approach (may need plugin infrastructure)
    combination of variables, looking ahead etc

Ribasim implementation options:

  1. Using the allocation-algorithm and LevelDemands, you may compose some hedging style concept.
    Question is whether we want to have an ability to implement hedging rules without the need to turn on the allocation-algorithm

@SnippenE SnippenE removed the allocation Allocation layer label Feb 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
control Rule based control of physical layer
Projects
Status: To do
Development

No branches or pull requests

2 participants