-
Notifications
You must be signed in to change notification settings - Fork 5
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
Compute water demand for LevelControl #564
Comments
Looking at the example model with discrete control: https://deltares.github.io/Ribasim/python/examples.html#model-with-discrete-control That example controls flows over pumps to a LevelBoundary, which is an infinite source of water. Also, when the water level is not within bounds, it only sets a fixed flow rate for a pump. For allocation, we will probably use fixed time windows, for instance one day. At the start of the day we need to calculate the volume of water we'd need to reach the target, and be able to ask that as a demand to the allocation procudure. |
As discussed with @visr, we won't make the minimum abstraction level a property of basins, this remains a property of users. Therefore the reference level(s) which allocation uses to see whether a basin either is a source or has a demand must come from control. The simplest case for this is PID control, where the target level is clear (and no minimum level is present). Then in terms of implementation:
For discrete control this is more complex, because of the generic nature of discrete control. Maybe this calls for a new specialized interval control node, as this seems to be an important use case. |
from @SouthEndMusic |
From Teams:Hi beiden. Ik ben aan het kijken naar compute water demand for LevelControl · Issue #564 · Deltares/Ribasim (github.com). Zoals in de discussie bij het issue blijkt, zijn we eerder tot de conclusie gekomen dat het minimumpeil voor een basin dat door allocatie moet worden gehandhaafd een eigenschap van users is en blijft. Vanuit hydrologisch oogpunt logisch, maar qua implementatie lastig. Als deze minimumpeilen moeten worden gehandhaafd door een demand van basins af te leiden (met hogere proriteit dan alle user demands), moet een basin een uniek minimumpeil hebben, wat nu niet per sé het geval is als meerdere users uit hetzelfde basin onttrekken. En als een basin geen ontrekkende user(s) heeft, heeft het basin helemaal geen minimum peil. Wat te doen? |
RE: from peter: |
Hoi Bart, ipv dat we alles in 1 user node type proppen moeten we misschien twee of drie nodes types introduceren die specifiek voor allocation een rol hebben: UserAbstraction (=huidige user)), LevelDemand (=above) en InstreamDemand. Instream demand is een minimum flow die je in je allocatie berekening op een connector node wil realiseren. LevelConroldemand en Instreamdemand hebben geen rol in de rule-base simulatie maar zijn alleen bedoeld dat er als onderdeel van de allocatie berekening voldoende water in het systeem is/komt/blijft. |
Water level control can be an important demand in the water allocation context
We should be able to compute the water demand for level control in the coming timestep (given the basin storage and known boundary fluxes) to:
advanced feature: allow the modeller to deactivate preserving minimum water level from the allocation process (if you have too little water to preserve all min.levels in the network, you can then still make a choice as a modeller, which minim.levels to include in the allocation process )
The text was updated successfully, but these errors were encountered: