blockVariableSpeedWithHeatPumps

Variable speed primary pumps in heat pump plants

Information

Plants with variable speed primary pumps that are not controlled to maintain differential pressure or flow setpoint

Heating-only plants

When commanded on, the primary HW pumps are commanded at a fixed speed yPumHeaWatPriSet, as determined during the Testing, Adjusting, and Balancing phase to provide the design heat pump flow.

Cooling-only plants

When commanded on, the primary CHW pumps are commanded at a fixed speed yPumChiWatPriSet, as determined during the Testing, Adjusting, and Balancing phase to provide the design heat pump flow.

Heating and cooling plants with common primary CHW and HW pumps

When commanded on, the primary pumps are commanded at a fixed speed yPumHeaWatPriSet in heating mode or yPumChiWatPriSet in cooling mode, as determined during the Testing, Adjusting, and Balancing phase to provide the design heat pump flow in heating mode or cooling mode. The operating mode of the associated heat pump is determined and latched at the time the pump is enabled.

Heating and cooling plants with separate primary CHW and HW pumps

When commanded on, the primary HW pumps are commanded at a fixed speed yPumHeaWatPriSet. When commanded on, the primary CHW pumps are commanded at a fixed speed yPumChiWatPriSet. The pump speed yPumHeaWatPriSet or yPumChiWatPriSet is determined during the Testing, Adjusting, and Balancing phase to provide the design heat pump flow in heating mode or cooling mode.

Plants with variable speed primary pumps that are controlled to maintain differential pressure or flow setpoint

Heating-only plants

The pumps are controlled as described in Buildings.Templates.Plants.Controls.Pumps.Generic.ControlDifferentialPressure. The "pump proven on" condition is evaluated based on the primary HW pump status.

Cooling-only plants

The pumps are controlled as described in Buildings.Templates.Plants.Controls.Pumps.Generic.ControlDifferentialPressure. The "pump proven on" condition is evaluated based on the primary CHW pump status.

Heating and cooling plants with common primary CHW and HW pumps

The pumps are controlled as described in Buildings.Templates.Plants.Controls.Pumps.Generic.ControlDifferentialPressure. For the HW loop, the "pump proven on" condition is evaluated based on the status of the primary pumps associated with heat pumps that are commanded in heating mode. For the CHW loop, the "pump proven on" condition is evaluated based on the status of the primary pumps associated with heat pumps that are commanded in cooling mode. The operating mode of the associated heat pump is determined and latched at the time the pump is enabled.

Heating and cooling plants with separate primary CHW and HW pumps

The pumps are controlled as described in Buildings.Templates.Plants.Controls.Pumps.Generic.ControlDifferentialPressure. For the HW loop, the "pump proven on" condition is evaluated based on the status of the primary HW pumps. For the CHW loop, the "pump proven on" condition is evaluated based on the status of the primary CHW pumps.

Parameters

TypeNameDefaultDescription
Booleanhave_pumPriComDedHpnHp > 0 and have_heaWat and have_chiWat and not have_pumPriHdr and not have_pumChiWatPriDedHpSet to true for HP with single dedicated primary pump serving both CHW and HW circuits
Plant configuration
Booleanhave_heaWatSet to true for plants that provide HW
Booleanhave_chiWatSet to true for plants that provide CHW
Booleanhave_pumPriHdrSet to true for headered primary pumps, false for dedicated pumps
Booleanhave_pumChiWatPriDedHpfalseSet to true for HP with separate dedicated primary pumps for CHW and HW circuits
IntegernHpNumber of 2-pipe heat pumps
IntegernPhpNumber of polyvalent heat pumps
IntegernEqunHp + nPhpHeating or cooling equipment count
Booleanhave_pumPriCtlDpSet to true for primary variable speed pumps using ∆p pump speed control
IntegernPumHeaWatPriNumber of primary HW pumps
IntegernPumChiWatPriNumber of primary CHW pumps
Booleanhave_senDpHeaWatRemWirSet to true for remote HW differential pressure sensor(s) hardwired to controller
IntegernSenDpHeaWatRemNumber of remote HW differential pressure sensors used for pump speed control
Booleanhave_senDpChiWatRemWirSet to true for remote CHW differential pressure sensor(s) hardwired to controller
IntegernSenDpChiWatRemNumber of remote CHW differential pressure sensors used for pump speed control
Information provided by testing, adjusting, and balancing contractor
RealyPumHeaWatPriHdrSetPrimary HW pump speed providing design flow – Headered pumps
RealyPumChiWatPriHdrSetPrimary CHW pump speed providing design flow – Headered pumps
RealyPumHeaWatPriDedHpSetPrimary pump speed providing design flow in heating mode – HP dedicated pumps
RealyPumChiWatPriDedHpSetPrimary pump speed providing design flow in cooling mode – HP dedicated pumps
RealyPumHeaWatPriDedPhpSetPrimary HW pump speed providing design flow – Polyvalent HP dedicated pumps
RealyPumChiWatPriDedPhpSetPrimary CHW pump speed providing design flow – Polyvalent HP dedicated pumps
RealyPumHeaWatPri_min0.1Minimum primary HW pump speed
RealyPumChiWatPri_min0.1Minimum primary CHW pump speed
Control gains
RealkCtlDpHeaWat1Gain of controller for HW loop ∆p control
RealTiCtlDpHeaWat60Time constant of integrator block for HW loop ∆p control
RealkCtlDpChiWat1Gain of controller for CHW loop ∆p control
RealTiCtlDpChiWat60Time constant of integrator block for CHW loop ∆p control

Connectors

TypeNameDefaultDescription
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPumHeaWatPri]u1PumHeaWatPriHdrPrimary HW pump start command – Headered pumps
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyPumHeaWatPriHdrHeadered primary HW pump speed command
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPumChiWatPri]u1PumChiWatPriHdrPrimary CHW pump start command – Headered pumps
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyPumChiWatPriHdrHeadered primary CHW pump speed command
Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nHp]yPumHeaWatPriDedHpHP dedicated primary HW pump speed command
Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nHp]yPumChiWatPriDedHpHP dedicated primary CHW pump speed command
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nHp]u1HeaHpHP heating/cooling mode command
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPumHeaWatPri]u1PumHeaWatPriHdr_actualPrimary HW pump status – Headered pumps
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPumChiWatPri]u1PumChiWatPriHdr_actualPrimary CHW pump status – Headered pumps
Buildings.Controls.OBC.CDL.Interfaces.RealInputdpChiWatLocLocal CHW differential pressure
Buildings.Controls.OBC.CDL.Interfaces.RealInput[nSenDpChiWatRem]dpChiWatLocSetLocal CHW differential pressure setpoint output from each of the remote loops
Buildings.Controls.OBC.CDL.Interfaces.RealInput[nSenDpChiWatRem]dpChiWatRemRemote CHW differential pressure
Buildings.Controls.OBC.CDL.Interfaces.RealInputdpHeaWatLocLocal HW differential pressure
Buildings.Controls.OBC.CDL.Interfaces.RealInput[nSenDpHeaWatRem]dpHeaWatLocSetLocal HW differential pressure setpoint output from each of the remote loops
Buildings.Controls.OBC.CDL.Interfaces.RealInput[nSenDpHeaWatRem]dpHeaWatRemRemote HW differential pressure
Buildings.Controls.OBC.CDL.Interfaces.RealInput[nSenDpHeaWatRem]dpHeaWatRemSetRemote HW differential pressure setpoint
Buildings.Controls.OBC.CDL.Interfaces.RealInput[nSenDpChiWatRem]dpChiWatRemSetRemote CHW differential pressure setpoint
Buildings.Controls.OBC.CDL.Interfaces.RealOutputdpHeaWatLocSetMaxMaximum HW local differential pressure setpoint
Buildings.Controls.OBC.CDL.Interfaces.RealOutputdpChiWatLocSetMaxMaximum CHW local differential pressure setpoint
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nHp]u1PumHeaWatPriDedHp_actualPrimary HW pump status – HP dedicated pumps
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPhp]u1PumHeaWatPriDedPhp_actualPrimary HW pump status – PHP dedicated pumps
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nHp]u1PumChiWatPriDedHp_actualPrimary CHW pump status – HP dedicated pumps
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPhp]u1PumChiWatPriDedPhp_actualPrimary CHW pump status – PHP dedicated pumps
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nHp]u1PumHeaWatPriDedHpPrimary HW pump start command – HP dedicated pumps
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPhp]u1PumHeaWatPriDedPhpPrimary HW pump start command – PHP dedicated pumps
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nHp]u1PumChiWatPriDedHpPrimary CHW pump start command – HP dedicated pumps
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPhp]u1PumChiWatPriDedPhpPrimary CHW pump start command – PHP dedicated pumps
Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nPhp]yPumHeaWatPriDedPhpPHP dedicated primary HW pump speed command
Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nPhp]yPumChiWatPriDedPhpPHP dedicated primary CHW pump speed command

Components

TypeNameDefaultDescription
Buildings.Controls.OBC.CDL.Reals.Switch[nHp]setPumChiWatPriDedHpSet prescribed speed when pump is enabled
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantzerConstant
Buildings.Controls.OBC.CDL.Reals.Switch[nHp]setPumHeaWatPriDedHpSet prescribed speed when pump is enabled
Buildings.Controls.OBC.CDL.Routing.RealScalarReplicatorrepReplicate signal
Buildings.Controls.OBC.CDL.Reals.SwitchsetPumChiWatPriHdrSet prescribed speed when pump is enabled
Buildings.Controls.OBC.CDL.Reals.SwitchsetPumHeaWatPriHdrSet prescribed speed when pump is enabled
Buildings.Controls.OBC.CDL.Logical.MultiOranyPumChiWatPriReturn true if any pump is enabled
Buildings.Controls.OBC.CDL.Logical.MultiOranyPumHeaWatPriReturn true if any pump is enabled
Buildings.Controls.OBC.CDL.Reals.Switch[nHp]selSpeHeaCooHpSelect prescribed pump speed depending on heating/cooling mode – HP with common CHW and HW dedicated pumps
Utilities.PlaceholderReal[nHp]phAlways use HW pump speed in case of separate dedicated CHW pumps
Generic.ControlDifferentialPressurectlDpHeaWatHW loop ∆p control
Utilities.PlaceholderRealphSpePumHeaWatPriHpReplace with fixed speed – HP
Generic.ControlDifferentialPressurectlDpChiWatCHW loop ∆p control
Utilities.PlaceholderRealphSpePumChiWatPriHpReplace with fixed speed – HP
Buildings.Controls.OBC.CDL.Logical.Not[nHp]u1CooHpReturn true if HP cooling mode command
Buildings.Controls.OBC.CDL.Logical.And[nHp]u1CooAndOnDedHpReturn true if cooling mode command and pump proven on – HP with dedicated pumps
Buildings.Controls.OBC.CDL.Logical.Latch[nHp]latCooLatch signal until pump is re-enabled with equipment commanded to alternative mode
Buildings.Controls.OBC.CDL.Logical.Edge[nHp]edgU1PumHeaWatPriReturn true exactly when the pump is enabled
Buildings.Controls.OBC.CDL.Logical.And[nHp]edgU1CooReturn true if equipment commanded in cooling mode when the pump is enabled
Buildings.Controls.OBC.CDL.Logical.And[nHp]edgU1AndHeaReturn true if equipment commanded in heating mode when the pump is enabled
Buildings.Controls.OBC.CDL.Logical.Latch[nHp]latHeaLatch signal until pump is re-enabled with equipment commanded to alternative mode
Buildings.Controls.OBC.CDL.Logical.And[nHp]u1HeaAndOnDedHpReturn true if heating mode command and pump proven on – HP with dedicated pumps
Utilities.PlaceholderLogical[nHp]pumDedOnAndHeaHpDedicated pump on and heating mode – HP
Utilities.ConcatenateSelectLogicalpumDedOnHeaDedicated pump on and heating mode
Utilities.PlaceholderLogical[nHp]pumDedOnAndHeaHp2Dedicated pump on and heating mode – HP
Utilities.ConcatenateSelectLogicalpumDedOnCooDedicated pump on and cooling mode
Buildings.Controls.OBC.CDL.Routing.RealScalarReplicatorrep3Replicate signal
Buildings.Controls.OBC.CDL.Routing.RealScalarReplicatorrep4Replicate signal
Utilities.PlaceholderRealphSpePumHeaWatPriPhpReplace with fixed speed – PHP
Buildings.Controls.OBC.CDL.Routing.RealScalarReplicatorrep5Replicate signal
Utilities.PlaceholderRealphSpePumChiWatPriPhpReplace with fixed speed – PHP
Buildings.Controls.OBC.CDL.Routing.RealScalarReplicatorrep6Replicate signal
Utilities.PlaceholderRealphSpePumHeaWatPriReplace with fixed speed
Utilities.PlaceholderRealphSpePumChiWatPriReplace with fixed speed
Buildings.Controls.OBC.CDL.Reals.Switch[nPhp]setPumChiWatPriDedPhpSet prescribed speed when pump is enabled
Buildings.Controls.OBC.CDL.Reals.Switch[nPhp]setPumHeaWatPriDedPhpSet prescribed speed when pump is enabled
Buildings.Controls.OBC.CDL.Routing.RealScalarReplicatorrep1Replicate signal

Revisions

  • July 10, 2026, by Antoine Gautier:
    Renamed from VariableSpeed and refactored to support plants with polyvalent heat pumps.
    This is for #4512.
  • May 31, 2024, by Antoine Gautier:
    Added logic for ∆p-controlled primary pumps and latching of HP operating mode.
  • March 29, 2024, by Antoine Gautier:
    First implementation.