blockStagingHeaderedDeltaP
Information
Pumps are staged as a function of the ratio ratV_flow of current volume flow rate V_flow to design volume flow rate V_flow_nominal, the number of operating pumps nPum_actual and the number of pumps that operate at design conditions nPum. Pumps are assumed to be equally sized.
FR = V_flow / V_flow_nominal
The next lag pump is enabled whenever either:
- Efficiency condition:
FR > nPum_actual / nPum − dVOffUp is true for
dtRun; or - Failsafe condition:
Pump speed command >
yUpfordtRunFaiSafand loop ∆p < setpoint –dpOfffordtRunFaiSaffor all hardwired differential pressure sensors.
The last lag pump is disabled whenever either:
- The lag pump was staged on based on the efficiency condition and
FR < (nPum_actual - 1) / nPum − dVOffDow is true for
dtRun; or - The lag pump was staged on based on the failsafe condition,
pump speed command <
yDowfordtRunFaiSafLowYand loop ∆p > setpoint –dpOfffordtRunFaiSaffor all hardwired differential pressure sensors.
If desired, the stage down flow point dVOffDow can be
offset slightly below the stage up point dVOffUp to
prevent cycling between pump stages in applications with highly variable loads.
The timers are reset to zero when the status of a pump changes. This is necessary to ensure the minimum pump runtime with rapidly changing loads.
Details
The staging logic based on the efficiency condition (excluding the failsafe condition) is prescribed in ASHRAE, 2021 for:
- headered variable speed primary pumps in primary-only chiller and boiler plants using differential pressure pump speed control,
- variable speed secondary pumps in primary-secondary chiller plants with one or more sets of secondary loop pumps serving downstream control valves,
- variable speed secondary pumps in primary-secondary boiler plants with serving a secondary loop with a flow meter.
For other plant configurations, the pumps are staged with the equipment, i.e., the number of pumps matches the number of chillers or boilers. The actual logic for generating the pump enable commands is part of the staging event sequencing.
References
- ASHRAE, 2021. Guideline 36-2021, High-Performance Sequences of Operation for HVAC Systems. Atlanta, GA.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | nPum | Number of pumps that operate at design conditions | |
| Integer | nSenDp | Number of hardwired ∆p sensors | |
| Real | V_flow_nominal | Design flow rate | |
| Real | dtRun | 10*60 | Runtime before triggering stage change command based on efficiency condition |
| Real | dtRunFaiSaf | 5*60 | Runtime before triggering stage change command based on failsafe condition |
| Real | dtRunFaiSafLowY | dtRun | Runtime before triggering stage change command based on low pump speed failsafe condition |
| Real | dVOffUp | 0.03 | Stage up flow point offset (>0) |
| Real | dVOffDow | dVOffUp | Stage down flow point offset (>0) |
| Real | dpOff | 1E4 | Stage change ∆p point offset (>0) |
| Real | yUp | 0.99 | Stage up pump speed point |
| Real | yDow | 0.4 | Stage down pump speed point |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | V_flow | Flow rate | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput | y1Up | Stage up command | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput | y1Dow | Stage down command | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPum] | u1_actual | Pump status | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | y | Pump speed command | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput[nSenDp] | dp | Loop differential pressure | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput[nSenDp] | dpSet | Loop differential pressure setpoint |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter | norV | Normalize to design value | |
| Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter | norN | Normalize to design value | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToReal[nPum] | booToRea | Convert to real value | |
| Buildings.Controls.OBC.CDL.Reals.Greater | higV | Compare to stage up flow point | |
| Buildings.Controls.OBC.CDL.Reals.Less | lowV | Compare to stage down flow point | |
| Buildings.Controls.OBC.CDL.Reals.AddParameter | poiDow | Calculate stage down flow point | |
| Buildings.Controls.OBC.CDL.Reals.AddParameter | poiUp | Calculate stage up flow point | |
| Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.TimerWithReset | timHigV | Return true if stage up condition is true for specified duration | |
| Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.TimerWithReset | timLowV | Return true if stage down condition is true for specified duration | |
| Buildings.Controls.OBC.CDL.Logical.Change[nPum] | cha | Return true when pump status changes | |
| Buildings.Controls.OBC.CDL.Reals.MultiSum | nOpe | Return number of operating pumps | |
| Buildings.Controls.OBC.CDL.Logical.MultiOr | anyCha | Return true when any pump status changes | |
| Buildings.Controls.OBC.CDL.Reals.GreaterThreshold | higY | True if pump speed command exceeds high limit | |
| Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.TimerWithReset | timHigY | Timer | |
| Buildings.Controls.OBC.CDL.Reals.Subtract[nSenDp] | delDpSet | Difference between dp measurement and setpoint | |
| Buildings.Controls.OBC.CDL.Reals.LessThreshold[nSenDp] | lowDp | True if dp < setpoint - dpOff | |
| Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.TimerWithReset[nSenDp] | timLowDp | Timer | |
| Buildings.Controls.OBC.CDL.Logical.And | higYAndLowDp | Return true when pump status changes | |
| Buildings.Controls.OBC.CDL.Logical.Or | effOrFailSafUp | True if efficiency OR failsafe condition met | |
| Buildings.Controls.OBC.CDL.Reals.LessThreshold | lowY | True if pump speed command is less than low limit | |
| Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.TimerWithReset | timLowY | Timer | |
| Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.TimerWithReset[nSenDp] | timHigDp | Timer | |
| Buildings.Controls.OBC.CDL.Reals.GreaterThreshold[nSenDp] | higDp | True if dp > setpoint - dpOff | |
| Buildings.Controls.OBC.CDL.Logical.Latch | lckEff | Lock efficiency condition true signal until failsafe condition true | |
| Buildings.Controls.OBC.CDL.Logical.Latch | lckFaiSaf | Lock failsafe condition true signal until efficiency condition true | |
| Buildings.Controls.OBC.CDL.Logical.Pre | preEff | True if lag pump staged on based on efficiency condition | |
| Buildings.Controls.OBC.CDL.Logical.Pre | preFaiSaf | True if lag pump staged on based on failsafe condition | |
| Buildings.Controls.OBC.CDL.Logical.And | staDowAndPreEff | Stage down efficiency condition met and lag pump staged on based on efficiency condition | |
| Buildings.Controls.OBC.CDL.Logical.MultiAnd | staDowAndPreFaiSaf | Stage down failsafe condition met and lag pump staged on based on failsafe condition | |
| Buildings.Controls.OBC.CDL.Logical.Or | effOrFailSafDow | True if efficiency OR failsafe condition met | |
| Buildings.Controls.OBC.CDL.Logical.Edge | edgUp | Trigger stage up command when the conditions are met | |
| Buildings.Controls.OBC.CDL.Logical.Edge | edgDow | Trigger stage down command when the conditions are met | |
| Buildings.Controls.OBC.CDL.Logical.MultiAnd | allLowDp | True if condition met for all sensors | |
| Buildings.Controls.OBC.CDL.Logical.MultiAnd | allHigDp | True if condition met for all sensors | |
| Buildings.Controls.OBC.CDL.Routing.BooleanScalarReplicator | booScaRep | Replicate signal |
Revisions
-
May 31, 2024, by Antoine Gautier:
Added failsafe conditions and refactored to generate a stage change command at the exact time when the conditions are met. -
March 29, 2024, by Antoine Gautier:
First implementation.