blockController
Information
The minimum flow bypass valve is modulated based on a reverse acting control loop to maintain the primary flow rate at setpoint. The setpoint is calculated as described in Buildings.Templates.Plants.Controls.MinimumFlow.Setpoint.
When using isolation valve command signals
(have_valInlIso=true or have_valOutIso=true):
When any valve is commanded open, the bypass valve control loop is enabled.
The valve is opened 100 % otherwise.
When enabled, the bypass valve loop shall be biased to start with the valve 100 % open.
Otherwise
(have_valInlIso=false and have_valOutIso=false):
When any primary pump is proven on, the bypass valve control loop is enabled.
The valve is opened 100 % otherwise.
When enabled, the bypass valve loop shall be biased to start with the valve 100 % open.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | use_val | Set to true to use isolation valve command to enable control loop – Any unit | |
| Boolean[nEqu] | use_valEqu | Set to true to use isolation valve command to enable control loop – Each unit | |
| Boolean | use_pumPriDed | Set to true to use dedicated primary pump status to enable control loop – Any unit | |
| Boolean[nEqu] | use_pumPriDedEqu | Set to true to use dedicated primary pump status to enable control loop – Each unit | |
| Integer | nEqu | 0 | Number of plant equipment |
| Real[:] | V_flow_nominal | Design flow rate – Each unit | |
| Real[:] | V_flow_min | Minimum flow rate – Each unit | |
| Real | k | 1 | Gain of controller |
| Modelica.Units.SI.Time | Ti | 0.5 | Time constant of integrator block |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | VPri_flow | Primary volume flow rate | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nEqu] | u1PumPri_actual | Dedicated primary pump status | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nEqu] | u1ValIso | Isolation valve command | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | y | Valve command | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nEqu] | u1Equ | Equipment enable command | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | VPriSet_flow | Primary flow setpoint |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Controls.OBC.Utilities.PIDWithEnable | ctl | PI controller | |
| Setpoint | setFloMin | Calculate minimum flow setpoint | |
| Buildings.Controls.OBC.CDL.Logical.And[nEqu] | valIsoOpeAndPumPriDed | Valve commanded open and dedicated primary pump proven on | |
| Buildings.Controls.OBC.CDL.Logical.Sources.Constant[nEqu] | notUseVal | True if valve command not required | |
| Buildings.Controls.OBC.CDL.Logical.Or[nEqu] | valIsoOpeOrNotUse | Valve commanded open or valve signal not required | |
| Buildings.Controls.OBC.CDL.Logical.Sources.Constant[nEqu] | notUsePumPriDed | True if dedicated primary pump status not required | |
| Buildings.Controls.OBC.CDL.Logical.Or[nEqu] | pumPriDedOrNotUse | Dedicated primary pump proven on or pump signal not required | |
| Utilities.PlaceholderLogical[nEqu] | phPumPriDedOrNotUse | Placeholder signal | |
| Utilities.PlaceholderLogical[nEqu] | phValIsoOpeOrNotUse | Placeholder signal | |
| Buildings.Controls.OBC.CDL.Logical.MultiOr | anyValIsoOpeAndPumPriDed | True if any isolation valve open and dedicated pump proven on |
Revisions
-
July 10, 2026, by Antoine Gautier:
Added per-unit isolation valve and dedicated pump status options to enable the control loop.
This is for #4512. -
May 31, 2024, by Antoine Gautier:
First implementation.