blockStagingHeadered

Generic staging logic for headered pumps

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

TypeNameDefaultDescription
Booleanis_priSet to true for primary pumps, false for secondary pumps
Booleanis_hdrSet to true for headered pumps, false for dedicated pumps
Booleanis_ctlDpSet to true for variable speed pumps using ∆p pump speed control
Booleanhave_valInlIsoSet to true if the system as inlet isolation valves
Booleanhave_valOutIsoSet to true if the system as outlet isolation valves
IntegernEquNumber of equipment
IntegernPumNumber of pumps
IntegernSenDpNumber of hardwired ∆p sensors
RealV_flow_nominalDesign flow rate
RealdtRun600Runtime before triggering stage change command based on efficiency condition
RealdtRunFaiSaf300Runtime before triggering stage change command based on failsafe condition
RealdtRunFaiSafLowYdtRunRuntime before triggering stage change command based on low pump speed failsafe condition
RealdVOffUp0.03Stage up flow point offset
RealdVOffDowdVOffUpStage down flow point offset
RealdpOff1E4Stage change ∆p point offset (>0)
RealyUp0.99Stage up pump speed point
RealyDow0.4Stage down pump speed point
Real[nPum,nPum]staPum{fill(i/nPum, nPum) for i in 1:nPum}Pump staging matrix

Connectors

TypeNameDefaultDescription
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nEqu]u1PumPump command from equipment enable logic
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPum]u1Pum_actualPump status – Hardware point
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nPum]y1Pump command – Hardware point
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nEqu]y1_actualPump status to equipment enable logic
Buildings.Controls.OBC.CDL.Interfaces.RealInputV_flowFlow rate
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nEqu]u1ValInlIsoEquipment inlet isolation valve command
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nEqu]u1ValOutIsoEquipment outlet isolation valve command
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1PlaPlant enable signal
Buildings.Controls.OBC.CDL.Interfaces.RealInputyPump speed command
Buildings.Controls.OBC.CDL.Interfaces.RealInput[nSenDp]dpLoop differential pressure
Buildings.Controls.OBC.CDL.Interfaces.RealInput[nSenDp]dpSetLoop differential pressure setpoint

Components

TypeNameDefaultDescription
Utilities.StageIndexnPumHdrDpCompute number of pumps to be staged on – Headered pumps using ∆p control
Generic.StagingHeaderedDeltaPstaHdrDpStage headered variable speed pumps using ∆p control
StagingRotation.SortRuntimesorRunTimHdrSort by increasing staging runtime
Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger[nEqu]booToIntConvert to integer
Buildings.Controls.OBC.CDL.Integers.MultiSumnPumHdrPriNotDp0Compute number of pumps to be staged on – Headered primary pumps not using ∆p control
Buildings.Controls.OBC.CDL.Logical.Sources.Constant[nPum]u1AvaPump available signal – Block does not handle faulted equipment yet
Buildings.Controls.OBC.CDL.Routing.BooleanExtractSignalsigPumPriDedExtract dedicated primary pump command signal assuming nEqu=nPum
Buildings.Controls.OBC.CDL.Routing.BooleanExtractSignaly1Ded_actualExtract dedicated pump status assuming nEqu=nPum
Buildings.Controls.OBC.CDL.Routing.BooleanExtractory1LeaHdr_actualLead headered pump status
Buildings.Controls.OBC.CDL.Routing.BooleanScalarReplicatorbooScaRepReplicate signal
Primary.EnableLeadHeaderedenaLeaHdrPriEnable/disable lead primary headered pump
Utilities.PlaceholderLogical[nEqu]phValInlIsoPlaceholder value if signal is not available
Utilities.PlaceholderLogical[nEqu]phValOutIsoPlaceholder value if signal is not available
Buildings.Controls.OBC.CDL.Conversions.BooleanToIntegerbooToInt1Convert lead pump enable signal to integer
Buildings.Controls.OBC.CDL.Integers.MultiplynPumHdrPriNotDpReset number of enabled pumps to zero if lead pump disabled
StagingRotation.EquipmentEnableenaHdrEnable 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.