blockAirToWater

Controller for AWHP plant

Information

This block implements the sequence of operation for plants with air-to-water heat pumps. Most parts of the sequence of operation are similar to that described in ASHRAE, 2024 for chiller plants.

The supported plant configurations are enumerated in the table below.

Configuration parameter Options Notes
Function and equipment type Heating-only with non-reversible heat pumps
Heating and cooling with reversible heat pumps
Heating and cooling with reversible heat pumps and heat recovery chiller
Heating and cooling with reversible (2-pipe) heat pumps and polyvalent (4-pipe) heat pumps
Heating and cooling with polyvalent (4-pipe) heat pumps
For configurations without polyvalent heat pumps, the heat pumps may be unequally sized, with only a subset of the units participating in lead/lag alternation.
For configurations with polyvalent heat pumps, the reversible heat pumps must be equally sized among themselves, and the polyvalent heat pumps must be equally sized among themselves. All units are lead/lag alternated within their own pool.
For the configuration with a heat recovery chiller, the chiller is considered connected in a sidestream configuration to both the CHW return and the HW return.
Type of distribution Variable primary-only
Constant primary-variable secondary centralized
It is assumed that the HW and the CHW loops have the same type of distribution, as specified by this parameter.
Most AWHPs on the market use a reverse cycle for defrosting. This requires maximum primary flow during defrost cycles. Consequently, variable primary plants commonly adopt a high minimum flow setpoint, typically close to the design flow rate, effectively operating akin to constant primary plants but with variable speed pumps controlling the loop differential pressure. While the flow rate directed towards the loads varies, the bypass valve control loop ensures a constant primary flow for a given number of staged units.
"Centralized secondary pumps" refers to configurations with a single group of secondary pumps that is typically integrated into the plant.
Distributed secondary pumps with multiple secondary loops served by dedicated secondary pumps are currently not supported.
Type of primary pump arrangement Dedicated
Headered
It is assumed that the HW and the CHW loops have the same type of primary pump arrangement, as specified by this parameter.
Primary-secondary plants with both reversible and polyvalent heat pumps must have primary dedicated pumps: primary headered pumps are not supported for this configuration.
Separate dedicated primary pumps for the CHW and HW circuits False
True
This option is only available for reversible heat pumps with dedicated primary pumps. If this option is not selected, each AWHP uses a common dedicated primary pump for CHW and HW – this pump is then denoted as the primary HW pump. Otherwise, each AWHP relies on a separate dedicated HW pump and a separate dedicated CHW pump.
Type of primary HW pumps Variable speed
Constant speed
For constant primary-variable secondary distributions, the variable speed primary pumps are commanded at fixed speeds, determined during the Testing, Adjusting and Balancing phase to provide design AWHP flow in heating and cooling modes. The same intent is achieved with constant speed primary pumps through the use of balancing valves.
This parameter is only available for constant primary-variable secondary plants.
Type of primary CHW pumps Variable speed
Constant speed
See the note above on primary HW pumps.

Details

For plants without polyvalent heat pumps, a staging matrix staEqu is required as a parameter. See the documentation of Buildings.Templates.Plants.Controls.StagingRotation.EquipmentEnable for the associated definition and requirements.

For plants with polyvalent heat pumps, the staging matrix is programmatically generated, under the assumption that all units (polyvalent heat pumps on the one hand, and optionally reversible heat pumps on the other hand) are equally sized. See the documentation of Buildings.Templates.Plants.Controls.PolyvalentHeatPumps.StagingParameters for the associated logic.

Depending on the plant configuration, the term "primary HW pumps" (and the corresponding variables containing *pumHeaWatPri*) refers either to primary HW pumps for plants with separate primary HW and CHW pumps (either headered or dedicated) or to dedicated primary pumps for plants with common primary pumps serving both the HW and CHW loops.

At its current stage of development, this controller contains no logic for handling faulted equipment. It is therefore assumed that any equipment is available at all times.

References

  • ASHRAE, 2024. Guideline 36-2024, High-Performance Sequences of Operation for HVAC Systems. Atlanta, GA.

Parameters

TypeNameDefaultDescription
Booleanhave_hrctyp == Buildings.Templates.Plants.Controls.Types.PlantHeatPump.ReversibleHeatRecoverySet to true for plants with sidestream heat recovery chiller
Booleanhave_hptyp <> Buildings.Templates.Plants.Controls.Types.PlantHeatPump.PolyvalentSet to true for plants with 2-pipe heat pumps
Booleanhave_phptyp == Buildings.Templates.Plants.Controls.Types.PlantHeatPump.ReversiblePolyvalent or typ == Buildings.Templates.Plants.Controls.Types.PlantHeatPump.PolyvalentSet to true for plants with polyvalent heat pumps
Booleanhave_pumHeaWatPrihave_heaWatSet to true for plants with primary HW pumps
Booleanhave_pumChiWatPriDedHpif have_hp and have_chiWat and not have_pumPriHdr then have_pumChiWatPriDedHp_select else falseSet to true for HP with separate dedicated primary CHW pumps
Booleanhave_pumChiWatPrihave_chiWat and (have_pumPriHdr or have_pumChiWatPriDedHp or have_php)Set to true for HP with separate dedicated primary pumps for CHW and HW circuits
Booleanhave_pumHeaWatPriVarhave_pumHeaWatPri and (is_priOnl or have_pumHeaWatPriVar_select)Set to true for variable speed primary HW pumps, false for constant speed pumps
Booleanhave_pumChiWatPriVarhave_pumChiWatPri and (is_priOnl or have_pumChiWatPriVar_select)Set to true for variable speed primary CHW pumps, false for constant speed pumps
Booleanhave_pumHeaWatSechave_heaWat and not is_priOnlSet to true for plants with secondary HW pumps
Booleanhave_pumChiWatSechave_chiWat and not is_priOnlSet to true for plants with secondary CHW pumps
Booleanhave_senVPriis_priOnlSet to true for plants with primary CHW/HW flow sensor
Booleanhave_senTPriSuptrueSet to true for plants with primary CHW/HW supply temperature sensor
Booleanhave_senTPriRetif is_priOnl then true else have_senTPriRet_selectSet to true for plants with primary CHW/HW return temperature sensor
Booleanhave_senTLooRetis_priOnl and (if have_hrc then true else have_senTLooRet_select)Set to true for plants with CHW/HW loop return temperature sensor
Booleanhave_senVLoois_priOnl and have_hrcSet to true for plants with CHW/HW loop flow sensor
Booleanhave_senVSecnot is_priOnlSet to true for plants with secondary CHW/HW flow sensor
Booleanhave_senTSecnot is_priOnlSet to true for plants with secondary CHW/HW supply and return temperature sensors
Booleanhave_senVHeaWatPrihave_heaWat and have_senVPriSet to true for plants with primary HW flow sensor
Booleanhave_senVHeaWatLoohave_heaWat and have_senVLooSet to true for plants with HW loop flow sensor
Booleanhave_senVHeaWatSechave_heaWat and have_senVSecSet to true for plants with secondary HW flow sensor
Booleanhave_senVChiWatPrihave_chiWat and have_senVPriSet to true for plants with primary CHW flow sensor
Booleanhave_senVChiWatLoohave_chiWat and have_senVLooSet to true for plants with CHW loop flow sensor
Booleanhave_senVChiWatSechave_chiWat and have_senVSecSet to true for plants with secondary CHW flow sensor
Booleanhave_senTHeaWatPriSuphave_heaWat and have_senTPriSupSet to true for plants with primary HW supply temperature sensor
Booleanhave_senTHeaWatPriRethave_heaWat and have_senTPriRetSet to true for plants with primary HW return temperature sensor
Booleanhave_senTChiWatPriSuphave_chiWat and have_senTPriSupSet to true for plants with primary CHW supply temperature sensor
Booleanhave_senTChiWatPriRethave_chiWat and have_senTPriRetSet to true for plants with primary CHW return temperature sensor
Booleanhave_senTHeaWatSecSuphave_heaWat and have_senTSecSet to true for plants with secondary HW supply temperature sensor
Booleanhave_senTChiWatSecSuphave_chiWat and have_senTSecSet to true for plants with secondary CHW supply temperature sensor
Booleanhave_senTHeaWatLooRethave_heaWat and have_senTLooRetSet to true for plants with HW loop return temperature sensor (load side of minimum flow bypass)
Booleanhave_senTChiWatLooRethave_chiWat and have_senTLooRetSet to true for plants with CHW loop return temperature sensor (load side of minimum flow bypass)
Booleanhave_senTHeaWatSecRethave_heaWat and have_senTSecSet to true for plants with loop/secondary HW return temperature sensor
Booleanhave_senTChiWatSecRethave_chiWat and have_senTSecSet to true for plants with secondary CHW return temperature sensor
IntegernPumHeaWatPriDedHpif have_hp and not have_pumPriHdr then nHp else 0Number of dedicated primary HW pumps serving HP
IntegernPumHeaWatPriDedPhpif have_php and not have_pumPriHdr then nPhp else 0Number of dedicated primary HW pumps serving polyvalent HP
IntegernPumHeaWatPriif have_pumHeaWatPri and have_pumPriHdr then nPumHeaWatPri_select elseif have_pumHeaWatPri and not have_pumPriHdr then nHp + nPhp else 0Number of primary HW pumps
IntegernPumChiWatPriDedHpif have_pumChiWatPriDedHp then nHp else 0Number of dedicated primary CHW pumps serving HP
IntegernPumChiWatPriDedPhpif have_php and not have_pumPriHdr then nPhp else 0Number of dedicated primary CHW pumps serving polyvalent HP
IntegernPumChiWatPriif have_pumChiWatPri and have_pumPriHdr then nPumChiWatPri_select elseif have_pumChiWatPri and not have_pumPriHdr then nPumChiWatPriDedHp + nPumChiWatPriDedPhp else 0Number of primary CHW pumps
IntegernPumHeaWatSecif have_pumHeaWatSec then nPumHeaWatSec_select else 0Number of secondary HW pumps
IntegernPumChiWatSecif have_pumChiWatSec then nPumChiWatSec_select else 0Number of secondary CHW pumps
IntegernStaHpsize(staHp, 1)Number of stages in heat pump staging matrix
IntegernStaif have_php then nHp + nPhp else nStaHpNumber of stages
IntegernAltHpif have_hp and not have_php then (if nHp == 1 then 1 else max({sum({(if staHp[i, j] > 0 and staHp[i, j] < 1 then 1 else 0) for j in 1:nHp}) for i in 1:nStaHp})) else nHpNumber of lead/lag alternate heat pumps
Plant configuration
Buildings.Templates.Plants.Controls.Types.PlantHeatPumptypBuildings.Templates.Plants.Controls.Types.PlantHeatPump.ReversibleType of plant
Booleanhave_heaWattrueSet to true for plants that provide HW
Booleanhave_chiWattyp <> Buildings.Templates.Plants.Controls.Types.PlantHeatPump.HeatingOnlySet to true for plants that provide CHW
Booleanis_priOnlfalseSet to true for primary-only plant
Booleanhave_valHpInlIsoSet to true for plants with isolation valves at heat pump inlet
Booleanhave_valHpOutIsoSet to true for plants with isolation valves at heat pump outlet
Booleanhave_valPhpInlIsoSet to true for isolation valves at polyvalent HP inlet
Booleanhave_valPhpOutIsoSet to true for isolation valves at polyvalent HP outlet
Booleanhave_pumChiWatPriDedHp_selectfalseSet to true for HP with separate dedicated primary pumps for CHW and HW circuits
Booleanhave_pumPriHdrSet to true for headered primary pumps, false for dedicated pumps
Booleanhave_pumHeaWatPriVar_selecttrueSet to true for variable speed primary HW pumps, false for constant speed pumps
Booleanhave_pumChiWatPriVar_selecttrueSet to true for variable speed primary CHW pumps, false for constant speed pumps
Booleanhave_pumPriCtlDpis_priOnlSet to true for primary variable speed pumps using ∆p pump speed control
Booleanhave_pumSecHdrtrueSet to true for headered secondary pumps, false for dedicated pumps
Booleanhave_pumSecCtlDphave_pumHeaWatSec or have_pumChiWatSecSet to true for secondary variable speed pumps using ∆p pump speed control
IntegernHp_selectNumber of 2-pipe heat pumps
IntegernHpif have_hp then nHp_select else 0Number of 2-pipe heat pumps
IntegernPhp_selectNumber of polyvalent heat pumps
IntegernPhpif have_php then nPhp_select else 0Number of polyvalent heat pumps
IntegernPumHeaWatPri_selectnHp + nPhpNumber of primary HW pumps
IntegernPumChiWatPri_selectnHp + nPhpNumber of primary CHW pumps
IntegernPumHeaWatSec_selectnHp + nPhpNumber of secondary HW pumps
IntegernPumChiWatSec_selectnHp + nPhpNumber of secondary CHW pumps
Sensors
Booleanhave_senTPriRet_selectfalseSet to true for plants with primary CHW/HW return temperature sensor
Booleanhave_senTLooRet_selectfalseSet to true for plants with CHW/HW loop return temperature sensor (load side of minimum flow bypass)
Booleanhave_senDpHeaWatRemWirfalseSet to true for remote HW differential pressure sensor(s) hardwired to plant or pump controller
IntegernSenDpHeaWatRemNumber of remote HW differential pressure sensors used for HW pump speed control
Booleanhave_senDpChiWatRemWirfalseSet to true for remote CHW differential pressure sensor(s) hardwired to plant or pump controller
IntegernSenDpChiWatRemNumber of remote CHW differential pressure sensors used for CHW pump speed control
Information provided by designer
RealTHeaWatSup_nominalDesign HW supply temperature (maximum setpoint)
RealTHeaWatSupSet_minMinimum value to which the HW supply temperature can be reset
RealTOutHeaWatLck294.15Outdoor air lockout temperature above which the HW loop is prevented from operating
Real[nHp]capHeaHp_nominalDesign heating capacity - Each heat pump
Real[nHp]VHeaWatHp_flow_nominalDesign HW volume flow rate - Each heat pump
Real[nHp]VHeaWatHp_flow_minMinimum HW volume flow rate - Each heat pump
Real[nPhp]capHeaPhp_nominalDesign heating capacity - Each polyvalent heat pump
Real[nPhp]capHeaShcPhp_nominalDesign heating capacity in SHC mode - Each polyvalent heat pump
Real[nPhp]VHeaWatPhp_flow_nominalDesign HW volume flow rate - Each polyvalent heat pump
Real[nPhp]VHeaWatPhp_flow_minMinimum HW volume flow rate - Each polyvalent heat pump
RealVHeaWatPri_flow_nominalsum(cat(1, VHeaWatHp_flow_nominal, VHeaWatPhp_flow_nominal))Primary HW volume flow rate
RealVHeaWatSec_flow_nominalDesign secondary HW volume flow rate
RealdpHeaWatRemSet_min5*6894Minimum value to which the HW differential pressure can be reset - Remote sensor
RealTChiWatSup_nominalDesign CHW supply temperature (minimum setpoint)
RealTChiWatSupSet_maxMaximum value to which the CHW supply temperature can be reset
RealTOutChiWatLck289.15Outdoor air lockout temperature below which the CHW loop is prevented from operating
Real[nHp]capCooHp_nominalDesign cooling capacity - Each heat pump
Real[nHp]VChiWatHp_flow_nominalDesign CHW volume flow rate - Each heat pump
Real[nHp]VChiWatHp_flow_minMinimum CHW volume flow rate - Each heat pump
Real[nPhp]capCooPhp_nominalDesign cooling capacity - Each polyvalent heat pump
Real[nPhp]capCooShcPhp_nominalDesign cooling capacity in SHC mode - Each polyvalent heat pump
Real[nPhp]VChiWatPhp_flow_nominalDesign CHW volume flow rate - Each polyvalent heat pump
Real[nPhp]VChiWatPhp_flow_minMinimum CHW volume flow rate - Each polyvalent heat pump
RealVChiWatPri_flow_nominalsum(cat(1, VChiWatHp_flow_nominal, VChiWatPhp_flow_nominal))Primary CHW volume flow rate
RealVChiWatSec_flow_nominalDesign secondary CHW volume flow rate
RealdpChiWatRemSet_min5*6894Minimum value to which the CHW differential pressure can be reset - Remote sensor
Realcp_default4184Default specific heat capacity used to compute required capacity
Realrho_default996Default density used to compute required capacity
RealTChiWatSupHrc_minSidestream HRC – Minimum allowable CHW supply temperature
RealTHeaWatSupHrc_maxSidestream HRC – Maximum allowable HW supply temperature
RealCOPHeaHrc_nominalSidestream HRC – Heating COP at design heating conditions
RealcapCooHrc_minSidestream HRC – Minimum cooling capacity below which cycling occurs
RealcapHeaHrc_minSidestream HRC – Minimum heating capacity below which cycling occurs
Information provided by testing, adjusting, and balancing contractor
Real[nSenDpHeaWatRem]dpHeaWatRemSet_maxMaximum HW differential pressure setpoint - Remote sensor
RealyPumHeaWatPriHdrSetPrimary HW pump speed providing design flow – Headered pumps
RealyPumHeaWatPriDedHpSetPrimary pump speed providing design flow in heating mode – HP dedicated pumps
RealyPumHeaWatPriDedPhpSetPrimary HW pump speed providing design flow – Polyvalent HP dedicated pumps
Real[nSenDpChiWatRem]dpChiWatRemSet_maxMaximum CHW differential pressure setpoint - Remote sensor
RealyPumChiWatPriHdrSetPrimary CHW pump speed providing design flow – Headered pumps
RealyPumChiWatPriDedHpSetPrimary pump speed providing design flow in cooling mode – HP dedicated pumps
RealyPumChiWatPriDedPhpSetPrimary CHW pump speed providing design flow – Polyvalent HP dedicated pumps
Plant enable
Booleanhave_inpSchfalseSet to true to provide schedule via software input point
Real[:,2]schHea[0, 1; 24*3600, 1]Heating mode enable schedule
Real[:,2]schCoo[0, 1; 24*3600, 1]Cooling mode enable schedule
Advanced › Plant enable
IntegernReqIgnHeaWat0Number of ignored HW plant requests
IntegernReqIgnChiWat0Number of ignored CHW plant requests
RealdTOutLck0.5Hysteresis for outdoor air lockout temperature
RealdtRunEna15*60Minimum runtime of enable and disable states
RealdtReqDis3*60Runtime with low number of request before disabling
Equipment staging and rotation
Real[:,:]staHp{i/nHp for _ in 1:nHp, i in 1:nHp}Heat pump staging matrix – Equipment required for each stage
Integer[:]idxAltHp_select1:nHpIndices of lead/lag alternate heat pumps
Integer[:]idxAltHpif have_hp and not have_php then idxAltHp_select else 1:nHpIndices of lead/lag alternate heat pumps
RealplrSta0.9Staging part load ratio
Advanced › Equipment staging and rotation
RealdTHea2.5Delta-T triggering stage up command for heating applications (>0)
RealdTCoo1Delta-T triggering stage up command for cooling applications (>0)
RealdtVal90Nominal valve timing
RealdtRunSta900Minimum runtime of each stage
RealdtOff900Off time required before equipment is deemed available again
RealdtOffHp180Heat pump internal shutdown cycle timing (before closing isolation valves or disabling primary pumps)
RealdtPri900Runtime with high primary-setpoint Delta-T before staging up
RealdtSec600Runtime with high secondary-primary and secondary-setpoint Delta-T before staging up
Advanced › Pump staging
RealdtRunPumSta600Runtime before triggering stage change command based on efficiency condition
RealdtRunFaiSafPumSta300Runtime before triggering stage change command based on failsafe condition
RealdtRunFaiSafLowYPumStadtRunPumStaRuntime before triggering stage change command based on low pump speed failsafe condition
RealdVOffUpPumSta0.03Stage up flow point offset
RealdVOffDowPumStadVOffUpPumStaStage down flow point offset
RealdpOffPumSta1E4Stage change ∆p point offset (>0)
RealyUpPumSta0.99Stage up pump speed point
RealyDowPumSta0.4Stage down pump speed point
Advanced › Plant reset
RealdtHol900Minimum hold time during stage change
RealresDpHeaWat_max0.5Upper limit of plant reset interval for HW differential pressure reset
RealresTHeaWatSup_minresDpHeaWat_maxLower limit of plant reset interval for HW supply temperature reset
RealresDpChiWat_max0.5Upper limit of plant reset interval for CHW differential pressure reset
RealresTChiWatSup_minresDpChiWat_maxLower limit of plant reset interval for CHW supply temperature reset
Realres_init1Initial reset value
Realres_min0Minimum reset value
Realres_max1Maximum reset value
RealdtDel900Delay time before the reset begins
RealdtResHeaWat300Time step for HW plant reset
IntegernReqResIgnHeaWat2Number of ignored requests for HW plant reset
RealtriHeaWat-0.02Trim amount for HW plant reset
RealrspHeaWat0.03Respond amount for HW plant reset
RealrspHeaWat_max0.07Maximum response per time interval for HW plant reset
RealdtResChiWat300Time step for CHW plant reset
IntegernReqResIgnChiWat2Number of ignored requests for CHW plant reset
RealtriChiWat-0.02Trim amount for CHW plant reset
RealrspChiWat0.03Respond amount for CHW plant reset
RealrspChiWat_max0.07Maximum response per time interval for CHW plant reset
Advanced › Pump control
RealyPumHeaWatPri_min0.1Minimum primary HW pump speed
RealyPumChiWatPri_min0.1Minimum primary CHW pump speed
RealyPumHeaWatSec_min0.1Minimum secondary HW pump speed
RealyPumChiWatSec_min0.1Minimum secondary CHW pump speed
Advanced › Loop differential pressure
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
Advanced › Minimum flow control
RealkValMinByp1Gain of controller
Modelica.Units.SI.TimeTiValMinByp60Time constant of integrator block
Advanced › Sidestream HRC
Booleanhave_reqFloHrcfalseSet to true if HRC provides flow request point via network interface
RealdtLoaHrc600Runtime with sufficient load before enabling
RealdtTem1Hrc180Runtime with first temperature threshold exceeded before disabling
RealdtTem2Hrc60Runtime with second temperature threshold exceeded before disabling

Connectors

TypeNameDefaultDescription
Buildings.Controls.OBC.CDL.Interfaces.IntegerInputnReqPlaHeaWatNumber of HW plant requests
Buildings.Controls.OBC.CDL.Interfaces.RealInputTOutOutdoor air temperature
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1SchHeaHeating mode enable via schedule
Buildings.Controls.OBC.CDL.Interfaces.IntegerInputnReqPlaChiWatNumber of CHW plant requests
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1SchCooCooling mode enable via schedule
Buildings.Controls.OBC.CDL.Interfaces.IntegerInputnReqResHeaWatSum of HW reset requests of all heating loads served
Buildings.Controls.OBC.CDL.Interfaces.IntegerInputnReqResChiWatSum of CHW reset requests of all heating loads served
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPhp]u1Php_actualPolyvalent heat pump status
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPumHeaWatPriDedPhp]u1PumHeaWatPriDedPhp_actualPrimary HW pump status
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPumChiWatPri]u1PumChiWatPriHdr_actualPrimary CHW pump status – Headered pumps
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPumHeaWatSec]u1PumHeaWatSec_actualSecondary HW pump status
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPumChiWatSec]u1PumChiWatSec_actualSecondary CHW pump status
Buildings.Controls.OBC.CDL.Interfaces.RealInputTHeaWatPriRetPrimary HW return temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputVHeaWatPri_flowPrimary HW volume flow rate
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.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.BooleanOutput[nHp]y1ValHeaWatHpInlIsoHeat pump inlet HW isolation valve command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nHp]y1ValHeaWatHpOutIsoHeat pump outlet HW isolation valve command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nHp]y1ValChiWatHpInlIsoHeat pump inlet CHW isolation valve command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nHp]y1ValChiWatHpOutIsoHeat pump outlet CHW isolation valve command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nPumHeaWatPri]y1PumHeaWatPriHdrPrimary HW pump start command – Headered pumps
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nPumChiWatPri]y1PumChiWatPriHdrPrimary CHW pump start command – Headered pumps
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nPumHeaWatSec]y1PumHeaWatSecSecondary HW pump start command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nPumChiWatSec]y1PumChiWatSecSecondary CHW pump start command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nHp]y1HpHeat pump enable command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nHp]y1HeaHpHeat pump heating/cooling mode command: true=heating, false=cooling
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nPhp]y1HeaPhpPolyvalent HP heating on/off command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nPhp]y1CooPhpPolyvalent HP cooling on/off command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nPhp]y1ValHeaWatPhpInlIsoPolyvalent HP inlet HW isolation valve command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nPhp]y1ValChiWatPhpInlIsoPolyvalent HP inlet CHW isolation valve command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nPhp]y1ValHeaWatPhpOutIsoPolyvalent HP outlet HW isolation valve command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nPhp]y1ValChiWatPhpOutIsoPolyvalent HP outlet CHW isolation valve command
Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nSenDpHeaWatRem]dpHeaWatRemSetHW differential pressure setpoint
Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nSenDpChiWatRem]dpChiWatRemSetCHW differential pressure setpoint
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyPumHeaWatPriHdrPrimary HW pump speed command – Headered pumps
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyPumChiWatPriHdrPrimary CHW pump speed command – Headered pumps
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyPumHeaWatSecPrimary HW pump speed command
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyPumChiWatSecPrimary CHW pump speed command
Buildings.Controls.OBC.CDL.Interfaces.RealOutputTChiWatSupSetPlant CHW supply temperature setpoint
Buildings.Controls.OBC.CDL.Interfaces.RealOutputTHeaWatSupSetPlant HW supply temperature setpoint
Buildings.Controls.OBC.CDL.Interfaces.RealInputTChiWatPriRetPrimary CHW return temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputVChiWatPri_flowPrimary CHW volume flow rate
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nHp]u1Hp_actualHeat pump status
Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nPumHeaWatPriDedHp]yPumHeaWatPriDedHpPrimary HW pump speed command – HP dedicated pumps
Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nPumChiWatPriDedHp]yPumChiWatPriDedHpPrimary CHW pump speed command – HP dedicated pumps
Buildings.Controls.OBC.CDL.Interfaces.RealInputTHeaWatLooOrSecRetHW loop (primary-only) or secondary (primary-secondary) return temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputVHeaWatLooOrSec_flowHW loop (primary-only) or secondary (primary-secondary) volume flow rate
Buildings.Controls.OBC.CDL.Interfaces.RealInputTChiWatLooOrSecRetCHW loop (primary-only) or secondary (primary-secondary) return temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputVChiWatLooOrSec_flowCHW loop (primary-only) or secondary (primary-secondary) volume flow rate
Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nHp]THeaWatSupHpSetHP HW supply temperature setpoint
Buildings.Controls.OBC.CDL.Interfaces.RealInputTHeaWatPriSupPrimary HW supply temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputTChiWatPriSupPrimary CHW return temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputTHeaWatSecSupSecondary HW supply temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputTChiWatSecSupSecondary CHW supply temperature
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutputy1HrcSidestream HRC enable command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutputy1CooHrcSidestream HRC mode command: true for cooling, false for heating
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutputy1PumChiWatHrcSidestream HRC CHW pump enable command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutputy1PumHeaWatHrcSidestream HRC HW pump enable command
Buildings.Controls.OBC.CDL.Interfaces.RealOutputTHeaWatSupHrcSetSidestream HRC HW supply temperature setpoint
Buildings.Controls.OBC.CDL.Interfaces.RealInputTChiWatRetUpsHrcCHW return temperature upstream of HRC
Buildings.Controls.OBC.CDL.Interfaces.RealInputTHeaWatRetUpsHrcHW return temperature upstream of HRC
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1Hrc_actualHRC status
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1ReqFloChiWatCHW flow request from HRC
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1ReqFloConWatCW flow request from HRC
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyValHeaWatMinBypHW minimum flow bypass valve command
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyValChiWatMinBypCHW minimum flow bypass valve command
Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nHp]TChiWatSupHpSetHP CHW supply temperature setpoint
Buildings.Controls.OBC.CDL.Interfaces.RealOutputTChiWatSupHrcSetSidestream HRC CHW supply temperature setpoint
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPumChiWatPriDedHp]u1PumChiWatPriDedHp_actualPrimary CHW pump status – HP dedicated pumps
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPumChiWatPriDedPhp]u1PumChiWatPriDedPhp_actualPrimary CHW pump status – Polyvalent HP dedicated pumps
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nPumChiWatPriDedHp]y1PumChiWatPriDedHpPrimary CHW pump start command – HP dedicated pumps
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nPumChiWatPriDedPhp]y1PumChiWatPriDedPhpPrimary CHW pump start command – Polyvalent HP dedicated pumps
Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nPumChiWatPriDedPhp]yPumChiWatPriDedPhpPrimary CHW pump speed command – Polyvalent HP dedicated pumps
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPumHeaWatPriDedHp]u1PumHeaWatPriDedHp_actualPrimary HW pump status
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nPumHeaWatPriDedHp]y1PumHeaWatPriDedHpPrimary HW pump start command – HP dedicated pumps
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nPumHeaWatPriDedPhp]y1PumHeaWatPriDedPhpPrimary HW pump start command – Polyvalent HP dedicated pumps
Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nPumHeaWatPriDedPhp]yPumHeaWatPriDedPhpPrimary HW pump speed command – Polyvalent HP dedicated pumps
Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nPhp]THeaWatSupPhpSetPolyvalent HP HW supply temperature setpoint
Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nPhp]TChiWatSupPhpSetPolyvalent HP CHW supply temperature setpoint
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPumHeaWatPri]u1PumHeaWatPriHdr_actualPrimary HW pump status

Components

TypeNameDefaultDescription
Buildings.Controls.OBC.CDL.Logical.Sources.Constant[nHp]u1AvaHpHeat pump available signal – Block does not handle faulted equipment yet
Enabling.EnableenaHeaHeating mode enable
Utilities.StageIndexidxStaHeaCompute heating stage index
StagingRotation.StageAvailabilityavaStaHeaEvaluate heating stage availability
Subsequences.SelectModeStateselModCompute enable command for equipment in heating mode
Subsequences.EventSequencingMultipleseqEveEvent sequencing
StagingRotation.StageAvailabilityavaStaCooEvaluate cooling stage availability
StagingRotation.StageChangeCommandchaStaHeaGenerate heating stage transition command
Enabling.EnableenaCooCooling mode enable
StagingRotation.StageChangeCommandchaStaCooGenerate cooling stage transition command
Utilities.StageIndexidxStaCooCompute cooling stage index
Subsequences.EquipmentAvailability[nHp]avaHeaCooHpEvaluate HP availability in heating or cooling mode
StagingRotation.SortRuntimesorRunTimHpSort lead/lag alternate HP by increasing runtime
Pumps.Generic.StagingHeaderedstaPumHeaWatPriPrimary HW pump staging
Pumps.Generic.StagingHeaderedstaPumChiWatPriPrimary CHW pump staging
Pumps.Generic.StagingHeaderedstaPumChiWatSecSecondary CHW pump staging
Pumps.Generic.StagingHeaderedstaPumHeaWatSecSecondary HW pump staging
Utilities.PlaceholderRealTHeaWatRetFor staging logic select primary sensor if both temperature and flow sensors available
Utilities.PlaceholderRealVHeaWatSta_flowFor staging logic select primary sensor if both temperature and flow sensors available
Utilities.PlaceholderRealTChiWatRetFor staging logic select primary sensor if both temperature and flow sensors available
Utilities.PlaceholderRealVChiWatSta_flowFor staging logic select primary sensor if both temperature and flow sensors available
StagingRotation.StageCompletioncomStaCooCheck successful completion of cooling stage change
StagingRotation.StageCompletioncomStaHeaCheck successful completion of heating stage change
Setpoints.PlantResetresHeaWatHW plant reset
Setpoints.PlantResetresChiWatCHW plant reset
Pumps.Primary.VariableSpeedWithHeatPumpsctlPumPriPrimary pump speed control
Pumps.Generic.ControlDifferentialPressurectlPumHeaWatSecSecondary HW pump speed control
Pumps.Generic.ControlDifferentialPressurectlPumChiWatSecSecondary CHW pump speed control
Buildings.Controls.OBC.CDL.Routing.RealScalarReplicatorrepTChiWatSupHpSetReplicate CHWST setpoint
Buildings.Controls.OBC.CDL.Routing.RealScalarReplicatorrepTHeaWatSupHpSetReplicate HWST setpoint
HeatRecoveryChillers.ControllerhrcSidestream heat recovery chiller control
Buildings.Controls.OBC.CDL.Routing.RealExtractSignalpasDpHeaWatRemSetDirect pass through for HW ∆p setpoint
Buildings.Controls.OBC.CDL.Routing.RealExtractSignalpasDpChiWatRemSetDirect pass through for CHW ∆p setpoint
MinimumFlow.ControllerHeatPumpsctlFloMinCHW/HW minimum flow bypass valve controller
Buildings.Controls.OBC.CDL.Logical.Sources.Constant[nPhp]u1AvaPhpPolyvalent heat pump available signal – Block does not handle faulted equipment yet
PolyvalentHeatPumps.StagingParametersstaPhpStaging parameters for plants with polyvalent HP
Subsequences.EquipmentAvailability[nPhp]avaHeaCooPhpEvaluate polyvalent HP availability in heating or cooling mode
Subsequences.RoutingPrimaryPumpStatusrouPumChiWatPriReroute primary CHW pump status signal
Subsequences.RoutingPrimaryPumpStatusrouPumHeaWatPriReroute primary HW pump status signal
Buildings.Controls.OBC.CDL.Utilities.AssertassPlaCfgAssert unsupported plant configuration
Buildings.Controls.OBC.CDL.Logical.Sources.ConstantconIsPriOnlConstant flagging primary-only plant configuration
Buildings.Controls.OBC.CDL.Logical.Sources.ConstantconNotRevPhpConstant flagging plant type other than reversible and polyvalent HP
Buildings.Controls.OBC.CDL.Logical.Sources.ConstantconNotHavePumPriHdrConstant flagging plant without headered primary pumps
Buildings.Controls.OBC.CDL.Logical.MultiOrmulOrConfSupportedEvaluate whether plant configuration is supported
Buildings.Controls.OBC.CDL.Routing.RealScalarReplicatorrepTHeaWatSupPhpSetReplicate HWST setpoint
Buildings.Controls.OBC.CDL.Routing.RealScalarReplicatorrepTChiWatSupPhpSetReplicate CHWST setpoint
PolyvalentHeatPumps.AssertMinimumRuntimeassMinRunTimPhpAssert polyvalent HP minimum runtime
PolyvalentHeatPumps.AssertMinimumRuntimeassMinOffTimPhpAssert polyvalent HP minimum off-time
StagingRotation.SortRuntimesorRunTimPhpSort polyvalent HP by increasing runtime
Buildings.Controls.OBC.CDL.Logical.And[nPhp]y1ShcPhpPolyvalent HP commanded in SHC mode
Subsequences.AssertMinimumRuntimeassMinRunTimHpAssert HP minimum runtime
Subsequences.AssertMinimumRuntimeassMinOffTimHpAssert HP minimum off-time

Revisions

  • July 10, 2026, by Antoine Gautier:
    Enhanced controller to support plants with polyvalent (4-pipe) units.
    This is for #4512.
  • June 10, 2026, by Antoine Gautier:
    Refactored with a single instance of SortRuntime for both modes.
    This is for #4624.
  • March 23, 2026, by Antoine Gautier:
    Refactored HP and HRC points with two separate outputs for HW and CHW supply temperature setpoints.
    This is for #4507.
  • January 23, 2025, by Antoine Gautier:
    Refactored to use "required to run" conditions in the equipment availability logic.
    This is for #4432.
  • May 31, 2024, by Antoine Gautier:
    Added sidestream heat recovery chiller, primary-only pumping and failsafe staging conditions.
    This is for #3808.
  • March 29, 2024, by Antoine Gautier:
    First implementation.