blockVariableSpeedWithHeatPumps
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
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | have_pumPriComDedHp | nHp > 0 and have_heaWat and have_chiWat and not have_pumPriHdr and not have_pumChiWatPriDedHp | Set to true for HP with single dedicated primary pump serving both CHW and HW circuits |
| Plant configuration | |||
| Boolean | have_heaWat | Set to true for plants that provide HW | |
| Boolean | have_chiWat | Set to true for plants that provide CHW | |
| Boolean | have_pumPriHdr | Set to true for headered primary pumps, false for dedicated pumps | |
| Boolean | have_pumChiWatPriDedHp | false | Set to true for HP with separate dedicated primary pumps for CHW and HW circuits |
| Integer | nHp | Number of 2-pipe heat pumps | |
| Integer | nPhp | Number of polyvalent heat pumps | |
| Integer | nEqu | nHp + nPhp | Heating or cooling equipment count |
| Boolean | have_pumPriCtlDp | Set to true for primary variable speed pumps using ∆p pump speed control | |
| Integer | nPumHeaWatPri | Number of primary HW pumps | |
| Integer | nPumChiWatPri | Number of primary CHW pumps | |
| Boolean | have_senDpHeaWatRemWir | Set to true for remote HW differential pressure sensor(s) hardwired to controller | |
| Integer | nSenDpHeaWatRem | Number of remote HW differential pressure sensors used for pump speed control | |
| Boolean | have_senDpChiWatRemWir | Set to true for remote CHW differential pressure sensor(s) hardwired to controller | |
| Integer | nSenDpChiWatRem | Number of remote CHW differential pressure sensors used for pump speed control | |
| Information provided by testing, adjusting, and balancing contractor | |||
| Real | yPumHeaWatPriHdrSet | Primary HW pump speed providing design flow – Headered pumps | |
| Real | yPumChiWatPriHdrSet | Primary CHW pump speed providing design flow – Headered pumps | |
| Real | yPumHeaWatPriDedHpSet | Primary pump speed providing design flow in heating mode – HP dedicated pumps | |
| Real | yPumChiWatPriDedHpSet | Primary pump speed providing design flow in cooling mode – HP dedicated pumps | |
| Real | yPumHeaWatPriDedPhpSet | Primary HW pump speed providing design flow – Polyvalent HP dedicated pumps | |
| Real | yPumChiWatPriDedPhpSet | Primary CHW pump speed providing design flow – Polyvalent HP dedicated pumps | |
| Real | yPumHeaWatPri_min | 0.1 | Minimum primary HW pump speed |
| Real | yPumChiWatPri_min | 0.1 | Minimum primary CHW pump speed |
| Control gains | |||
| Real | kCtlDpHeaWat | 1 | Gain of controller for HW loop ∆p control |
| Real | TiCtlDpHeaWat | 60 | Time constant of integrator block for HW loop ∆p control |
| Real | kCtlDpChiWat | 1 | Gain of controller for CHW loop ∆p control |
| Real | TiCtlDpChiWat | 60 | Time constant of integrator block for CHW loop ∆p control |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPumHeaWatPri] | u1PumHeaWatPriHdr | Primary HW pump start command – Headered pumps | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | yPumHeaWatPriHdr | Headered primary HW pump speed command | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPumChiWatPri] | u1PumChiWatPriHdr | Primary CHW pump start command – Headered pumps | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | yPumChiWatPriHdr | Headered primary CHW pump speed command | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nHp] | yPumHeaWatPriDedHp | HP dedicated primary HW pump speed command | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nHp] | yPumChiWatPriDedHp | HP dedicated primary CHW pump speed command | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nHp] | u1HeaHp | HP heating/cooling mode command | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPumHeaWatPri] | u1PumHeaWatPriHdr_actual | Primary HW pump status – Headered pumps | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPumChiWatPri] | u1PumChiWatPriHdr_actual | Primary CHW pump status – Headered pumps | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | dpChiWatLoc | Local CHW differential pressure | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput[nSenDpChiWatRem] | dpChiWatLocSet | Local CHW differential pressure setpoint output from each of the remote loops | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput[nSenDpChiWatRem] | dpChiWatRem | Remote CHW differential pressure | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | dpHeaWatLoc | Local HW differential pressure | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput[nSenDpHeaWatRem] | dpHeaWatLocSet | Local HW differential pressure setpoint output from each of the remote loops | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput[nSenDpHeaWatRem] | dpHeaWatRem | Remote HW differential pressure | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput[nSenDpHeaWatRem] | dpHeaWatRemSet | Remote HW differential pressure setpoint | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput[nSenDpChiWatRem] | dpChiWatRemSet | Remote CHW differential pressure setpoint | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | dpHeaWatLocSetMax | Maximum HW local differential pressure setpoint | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | dpChiWatLocSetMax | Maximum CHW local differential pressure setpoint | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nHp] | u1PumHeaWatPriDedHp_actual | Primary HW pump status – HP dedicated pumps | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPhp] | u1PumHeaWatPriDedPhp_actual | Primary HW pump status – PHP dedicated pumps | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nHp] | u1PumChiWatPriDedHp_actual | Primary CHW pump status – HP dedicated pumps | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPhp] | u1PumChiWatPriDedPhp_actual | Primary CHW pump status – PHP dedicated pumps | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nHp] | u1PumHeaWatPriDedHp | Primary HW pump start command – HP dedicated pumps | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPhp] | u1PumHeaWatPriDedPhp | Primary HW pump start command – PHP dedicated pumps | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nHp] | u1PumChiWatPriDedHp | Primary CHW pump start command – HP dedicated pumps | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPhp] | u1PumChiWatPriDedPhp | Primary CHW pump start command – PHP dedicated pumps | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nPhp] | yPumHeaWatPriDedPhp | PHP dedicated primary HW pump speed command | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nPhp] | yPumChiWatPriDedPhp | PHP dedicated primary CHW pump speed command |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Controls.OBC.CDL.Reals.Switch[nHp] | setPumChiWatPriDedHp | Set prescribed speed when pump is enabled | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | zer | Constant | |
| Buildings.Controls.OBC.CDL.Reals.Switch[nHp] | setPumHeaWatPriDedHp | Set prescribed speed when pump is enabled | |
| Buildings.Controls.OBC.CDL.Routing.RealScalarReplicator | rep | Replicate signal | |
| Buildings.Controls.OBC.CDL.Reals.Switch | setPumChiWatPriHdr | Set prescribed speed when pump is enabled | |
| Buildings.Controls.OBC.CDL.Reals.Switch | setPumHeaWatPriHdr | Set prescribed speed when pump is enabled | |
| Buildings.Controls.OBC.CDL.Logical.MultiOr | anyPumChiWatPri | Return true if any pump is enabled | |
| Buildings.Controls.OBC.CDL.Logical.MultiOr | anyPumHeaWatPri | Return true if any pump is enabled | |
| Buildings.Controls.OBC.CDL.Reals.Switch[nHp] | selSpeHeaCooHp | Select prescribed pump speed depending on heating/cooling mode – HP with common CHW and HW dedicated pumps | |
| Utilities.PlaceholderReal[nHp] | ph | Always use HW pump speed in case of separate dedicated CHW pumps | |
| Generic.ControlDifferentialPressure | ctlDpHeaWat | HW loop ∆p control | |
| Utilities.PlaceholderReal | phSpePumHeaWatPriHp | Replace with fixed speed – HP | |
| Generic.ControlDifferentialPressure | ctlDpChiWat | CHW loop ∆p control | |
| Utilities.PlaceholderReal | phSpePumChiWatPriHp | Replace with fixed speed – HP | |
| Buildings.Controls.OBC.CDL.Logical.Not[nHp] | u1CooHp | Return true if HP cooling mode command | |
| Buildings.Controls.OBC.CDL.Logical.And[nHp] | u1CooAndOnDedHp | Return true if cooling mode command and pump proven on – HP with dedicated pumps | |
| Buildings.Controls.OBC.CDL.Logical.Latch[nHp] | latCoo | Latch signal until pump is re-enabled with equipment commanded to alternative mode | |
| Buildings.Controls.OBC.CDL.Logical.Edge[nHp] | edgU1PumHeaWatPri | Return true exactly when the pump is enabled | |
| Buildings.Controls.OBC.CDL.Logical.And[nHp] | edgU1Coo | Return true if equipment commanded in cooling mode when the pump is enabled | |
| Buildings.Controls.OBC.CDL.Logical.And[nHp] | edgU1AndHea | Return true if equipment commanded in heating mode when the pump is enabled | |
| Buildings.Controls.OBC.CDL.Logical.Latch[nHp] | latHea | Latch signal until pump is re-enabled with equipment commanded to alternative mode | |
| Buildings.Controls.OBC.CDL.Logical.And[nHp] | u1HeaAndOnDedHp | Return true if heating mode command and pump proven on – HP with dedicated pumps | |
| Utilities.PlaceholderLogical[nHp] | pumDedOnAndHeaHp | Dedicated pump on and heating mode – HP | |
| Utilities.ConcatenateSelectLogical | pumDedOnHea | Dedicated pump on and heating mode | |
| Utilities.PlaceholderLogical[nHp] | pumDedOnAndHeaHp2 | Dedicated pump on and heating mode – HP | |
| Utilities.ConcatenateSelectLogical | pumDedOnCoo | Dedicated pump on and cooling mode | |
| Buildings.Controls.OBC.CDL.Routing.RealScalarReplicator | rep3 | Replicate signal | |
| Buildings.Controls.OBC.CDL.Routing.RealScalarReplicator | rep4 | Replicate signal | |
| Utilities.PlaceholderReal | phSpePumHeaWatPriPhp | Replace with fixed speed – PHP | |
| Buildings.Controls.OBC.CDL.Routing.RealScalarReplicator | rep5 | Replicate signal | |
| Utilities.PlaceholderReal | phSpePumChiWatPriPhp | Replace with fixed speed – PHP | |
| Buildings.Controls.OBC.CDL.Routing.RealScalarReplicator | rep6 | Replicate signal | |
| Utilities.PlaceholderReal | phSpePumHeaWatPri | Replace with fixed speed | |
| Utilities.PlaceholderReal | phSpePumChiWatPri | Replace with fixed speed | |
| Buildings.Controls.OBC.CDL.Reals.Switch[nPhp] | setPumChiWatPriDedPhp | Set prescribed speed when pump is enabled | |
| Buildings.Controls.OBC.CDL.Reals.Switch[nPhp] | setPumHeaWatPriDedPhp | Set prescribed speed when pump is enabled | |
| Buildings.Controls.OBC.CDL.Routing.RealScalarReplicator | rep1 | Replicate signal |
Revisions
-
July 10, 2026, by Antoine Gautier:
Renamed fromVariableSpeedand 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.