ContinuousControl
The ContinuousControl node allows for fine control of a controllable property of a connector node, which is updated at each time step. This control can be set up as follows:
- Define a compound variable. This is a linear combination of variables in the model the
ContinuousControlnode can listen to, i.e. flows and levels.; - Define a piecewise linear function by providing datapoints which get interpolated. The controlled parameter is then set to the outcome of this function given the value of the compound variable.
Having ContinuousControl nodes depend on eachother or PidControl nodes does not work. For instance, if one ContinuousControl node sets the flow rate of a pump, this flow rate cannot be used as the input of another ContinuousControl node. This will not throw an error but will produce incorrect results.
1 Tables
1.1 Variable
The compound variable schema defines linear combinations of variables which can be used in conditions. This means that this schema defines new variables with the given compound_variable_id that look like \[
\text{weight}_1 * \text{variable}_1 + \text{weight}_2 * \text{variable}_2 + \ldots,
\]
which can be for instance an average or a difference of variables. If a variable comes from a timeseries, a look ahead \(\Delta t\) can be supplied. There is only one compound variable per ContinuousControl node.
| column | type | unit | restriction |
|---|---|---|---|
| node_id | Int32 | - | |
| listen_node_id | Int32 | - | |
| variable | String | - | must be “level” or “flow_rate” |
| weight | Float64 | - | (optional, default 1.0) |
| look_ahead | Float64 | \(\text{s}\) | Only on transient boundary conditions, non-negative (optional, default 0.0). |
1.2 Function
The function table defines a piecewise linear function \(f\) interpolating between (input, output) datapoints for each ContinuousControl node. The total computation thus looks like
\[ f(\text{weight}_1 * \text{variable}_1 + \text{weight}_2 * \text{variable}_2 + \ldots). \]
| column | type | unit | restriction |
|---|---|---|---|
| node_id | Int32 | - | |
| input | Float64 | - | |
| output | Float64 | - | - |
| controlled_variable | String | - | must be “level” or “flow_rate” |