Outlet

The Outlet lets water flow downstream with a prescribed flow rate. It is similar to the Pump, except that water only flows down, by gravity.

When PID controlled, the Outlet must point towards the controlled Basin in terms of links.

1 Tables

1.1 Static

column type unit restriction
node_id Int32 -
flow_rate Float64 \(\text{m}^3/\text{s}\) non-negative
min_flow_rate Float64 \(\text{m}^3/\text{s}\) (optional, default 0.0)
max_flow_rate Float64 \(\text{m}^3/\text{s}\) (optional)
min_upstream_level Float64 \(\text{m}\) (optional)
max_downstream_level Float64 \(\text{m}\) (optional)
control_state String - (optional)

1.2 Time

This table is the transient form of the Outlet table. With this all parameters can be updated over time. In between the given times the values are block interpolated (forward fill), and outside the values are constant given by the nearest time value. Note that a node_id can be either in this table or in the static one, but not both.

column type unit restriction
node_id Int32 -
time DateTime -
flow_rate Float64 \(\text{m}^3/\text{s}\) non-negative
min_flow_rate Float64 \(\text{m}^3/\text{s}\) (optional, default 0.0)
max_flow_rate Float64 \(\text{m}^3/\text{s}\) (optional)
min_upstream_level Float64 \(\text{m}\) (optional)
max_downstream_level Float64 \(\text{m}\) (optional)

2 Equations

The Outlet is very similar to the Pump, but it has an extra reduction factor for physical constraints:

\[ Q = \phi_\text{level} \, \mathrm{clamp}(\phi_\text{storage} Q_\text{set}, Q_{\min}, Q_{\max}) \]

  • \(Q\) is the actual Outlet flow rate.
  • \(Q_\text{set}\) is the Outlet’s target flow_rate.
  • \(Q_{\min}\) and \(Q_{\max}\) are the Outlet min_flow_rate and max_flow_rate.
  • \(\phi_\text{storage}\) is the reduction factor that smoothly reduces flow when the upstream volume is below the equivalent of a water depth of \(10 \;\text{cm}\) (change with solver setting depth_threshold).
  • \(\phi_\text{level}\) is the product of the reduction factors that smoothly reduce flow based on these criteria (change the \(0.02 \;\text{m}\) with solver setting level_difference_threshold):
    • The upstream level is less than \(0.02 \;\text{m}\) above the downstream level.
    • The upstream level is below min_upstream_level + \(0.02 \;\text{m}\)
    • The downstream level is above max_downstream_level - \(0.02 \;\text{m}\)

Since \(\phi_\text{level}\) is applied after the clamp, min_flow_rate is not a strict minimum: the level criteria can still reduce the flow to zero.