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

DiscreteControl doesn't seem to pass correct control_state to Outlets #1637

Closed
DanielTollenaar opened this issue Jul 18, 2024 · 3 comments
Closed
Assignees

Comments

@DanielTollenaar
Copy link
Contributor

What dit we do
We build a model with DiscreteControl node (node_id 1000002):

  • Listening to a FlowBoundary at Monsin (node_id 7011)
  • Controlling multiple Outlets, regulating flows trough the Meuse and Belgium/Dutch canal systems

For the remainder we focus on the diversion at Borgharen (node_id = 7764), Julianakanaal (node_id = 7925) and verbindingskanaal (node_id = 7759). We use a steady-state model with bc 450 m3/s at Monsin available via transfer: https://we.tl/t-Ybsly5S9hX

Expected result
At 450 m3/s we would be at control_state Monsin_186 (see DiscreteControl / condition):
image

That would give us an min_crest_level at node_id's 7759, 7764 and 7925 of 44.21 m NAP (see Outlet / static). Thereby we would expect a water-level at the upstream Basin (node_id 7706) of +/- 44.2 m NAP:
image
image
image

Actual result
We see a water-level of > 48.09m NAP at Basin 7706, which is much higher than expected. This level corresponds at the highest control_states in our table, which should apply at discharges > 7100 m3/s at Monsin:
image

Additional information
Our analysis stops here, we suspect the controller some-how got lost. If we could see the actual crest_level of Outlet during simulation, and control_state at DiscreteControl we could verify further. Would it be an idea to user-define storage of results for different node-types in a results-section of the toml-file (following SOBEK functionality)?

@github-project-automation github-project-automation bot moved this to To do in Ribasim Jul 18, 2024
@DanielTollenaar DanielTollenaar changed the title DiscreteControl doesn't seem to pass correct control_state to Outlet DiscreteControl doesn't seem to pass correct control_state to Outlets Jul 18, 2024
@visr
Copy link
Member

visr commented Jul 18, 2024

Thanks for the report. Good to look into this

If we could see the actual crest_level of Outlet during simulation, and control_state at DiscreteControl we could verify further.

Have you looked at control.arrow? https://deltares.github.io/Ribasim/reference/usage.html#discretecontrol---control.arrow

@SnippenE SnippenE added the bug label Jul 22, 2024
@gijsber
Copy link
Contributor

gijsber commented Jul 22, 2024

Hi @visr , is this one to check before pushing out the release ?

@visr visr self-assigned this Jul 23, 2024
@visr visr moved this from To do to 🏗 In progress in Ribasim Jul 23, 2024
@visr
Copy link
Member

visr commented Jul 23, 2024

I don't really see an error, but perhaps I am misunderstanding. In any case this should be done with ContinueousControl once #1602 is released.

What I don't follow is you seem to expect that the upstream Basin level is equal to the set min_crest_level. Instead what you can expect is that as long as the level is above the min_crest_level (which it is), that the flow rate over the Outlet is equal to the set flow rate. Comparing the control.arrow, data tables and flow.arrow, I can see this is the case, modulo small differences due to reduction factors.

@DanielTollenaar feel free to reopen if I miss something.

@visr visr closed this as not planned Won't fix, can't repro, duplicate, stale Jul 23, 2024
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in Ribasim Jul 23, 2024
@visr visr removed the bug label Jul 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

No branches or pull requests

4 participants