blockStagingHeadered
Information
Plants with headered primary pumps that are not controlled to maintain differential pressure or flow setpoint
Primary pumps are lead/lag alternated as described in Buildings.Templates.Plants.Controls.StagingRotation.SortRuntime.
The lead primary pump is enabled as described in Buildings.Templates.Plants.Controls.Pumps.Primary.EnableLeadHeadered.
The number of operating primary pumps matches the number of operating equipment.
Plants with headered primary pumps that are controlled to maintain differential pressure or flow setpoint
Primary pumps are lead/lag alternated as described in Buildings.Templates.Plants.Controls.StagingRotation.SortRuntime.
The lead primary pump is enabled as described in Buildings.Templates.Plants.Controls.Pumps.Primary.EnableLeadHeadered.
Primary pumps are staged as described in Buildings.Templates.Plants.Controls.Pumps.Generic.StagingHeaderedDeltaP.
Plants with headered secondary pumps
Secondary pumps are lead/lag alternated as described in Buildings.Templates.Plants.Controls.StagingRotation.SortRuntime.
The lead secondary pump is enabled when the plant is enabled. Otherwise, the lead secondary pump is disabled.
Secondary pumps are staged as described in Buildings.Templates.Plants.Controls.Pumps.Generic.StagingHeaderedDeltaP.
Details
To simplify integration into the plant controller this block also
serves as a pass-through for the dedicated primary pump command signal
that is generated in
Buildings.Templates.Plants.Controls.StagingRotation.EventSequencing.
For this purpose, the block includes the parameter is_hdr to
specify whether the pumps are headered or dedicated.
At its current stage of development, this block contains no logic for handling faulted equipment. It is therefore assumed that all pumps are available at all times.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | is_pri | Set to true for primary pumps, false for secondary pumps | |
| Boolean | is_hdr | Set to true for headered pumps, false for dedicated pumps | |
| Boolean | is_ctlDp | Set to true for variable speed pumps using ∆p pump speed control | |
| Boolean | have_valInlIso | Set to true if the system as inlet isolation valves | |
| Boolean | have_valOutIso | Set to true if the system as outlet isolation valves | |
| Integer | nEqu | Number of equipment | |
| Integer | nPum | Number of pumps | |
| Integer | nSenDp | Number of hardwired ∆p sensors | |
| Real | V_flow_nominal | Design flow rate | |
| Real | dtRun | 600 | Runtime before triggering stage change command based on efficiency condition |
| Real | dtRunFaiSaf | 300 | 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 |
| Real | dVOffDow | dVOffUp | Stage down flow point offset |
| 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 |
| Real[nPum,nPum] | staPum | {fill(i/nPum, nPum) for i in 1:nPum} | Pump staging matrix |
Connectors
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Utilities.StageIndex | nPumHdrDp | Compute number of pumps to be staged on – Headered pumps using ∆p control | |
| Generic.StagingHeaderedDeltaP | staHdrDp | Stage headered variable speed pumps using ∆p control | |
| StagingRotation.SortRuntime | sorRunTimHdr | Sort by increasing staging runtime | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger[nEqu] | booToInt | Convert to integer | |
| Buildings.Controls.OBC.CDL.Integers.MultiSum | nPumHdrPriNotDp0 | Compute number of pumps to be staged on – Headered primary pumps not using ∆p control | |
| Buildings.Controls.OBC.CDL.Logical.Sources.Constant[nPum] | u1Ava | Pump available signal – Block does not handle faulted equipment yet | |
| Buildings.Controls.OBC.CDL.Routing.BooleanExtractSignal | sigPumPriDed | Extract dedicated primary pump command signal assuming nEqu=nPum | |
| Buildings.Controls.OBC.CDL.Routing.BooleanExtractSignal | y1Ded_actual | Extract dedicated pump status assuming nEqu=nPum | |
| Buildings.Controls.OBC.CDL.Routing.BooleanExtractor | y1LeaHdr_actual | Lead headered pump status | |
| Buildings.Controls.OBC.CDL.Routing.BooleanScalarReplicator | booScaRep | Replicate signal | |
| Primary.EnableLeadHeadered | enaLeaHdrPri | Enable/disable lead primary headered pump | |
| Utilities.PlaceholderLogical[nEqu] | phValInlIso | Placeholder value if signal is not available | |
| Utilities.PlaceholderLogical[nEqu] | phValOutIso | Placeholder value if signal is not available | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger | booToInt1 | Convert lead pump enable signal to integer | |
| Buildings.Controls.OBC.CDL.Integers.Multiply | nPumHdrPriNotDp | Reset number of enabled pumps to zero if lead pump disabled | |
| StagingRotation.EquipmentEnable | enaHdr | Enable headered pumps |
Revisions
-
May 31, 2024, by Antoine Gautier:
Added failsafe conditions for headered variable speed pumps using ∆p pump speed control. -
March 29, 2024, by Antoine Gautier:
First implementation.