blockStagingPlant

Block that computes plant stage and command signals for chillers and HRC

Information

This block implements the staging logic for the chillers and HRCs. The units are staged in part based on an efficiency condition using the operative part load ratio. The units are also staged based on failsafe conditions using the CHW and HW supply temperature and differential pressure.

For the sake of simplicity, equipment rotation (i.e. the possibility at a given stage that either one unit or another unit can be operating) is not taken into account.

Plant stages

At cooling (resp. heating) stage #i, a number i of units are operating in cooling (resp. heating) mode. The cooling (resp. heating) stage #0 (no unit operating in that given mode) is active whenever the plant is disabled based on the cooling and heating Enable condition (see below) or when the plant is enabled and has been staged down due to the efficiency or failsafe conditions. The plant stage is given by the couple (cooling stage, heating stage). The minimum runtime of each plant stage is set to 15 min.

Direct heat recovery mode

All HRCs are allowed to operate in direct heat recovery mode, that is when their condenser is indexed to the HW loop and their evaporator is indexed to the CHW loop. Switching a HRC to operate in direct heat recovery mode is done on a load requirement basis. This means that HRCs are first switched over to cascading heating or cascading cooling mode. Only when all HRCs are operating and when a new stage up event is initiated, an additional HRC is then switched to operate in direct heat recovery mode. As described in Buildings.DHC.Plants.Combined.Controls.BaseClasses.ModeHeatRecoveryChiller the HRC with the highest index that is not operating operating in cascading cooling mode is the next to be switched into direct heat recovery mode.

For example, considering a plant with two chillers and three HRCs, the table below shows the plant stages derived from this logic. In this table, the chiller with index #i is denoted CHI#i, the HRC with index #i is denoted HRC#i, the units enumerated before (resp. after) the semicolon sign (:) operate in cooling (resp. heating) mode, the units marked with a star (*) operate in direct heat recovery mode.

Heating stage ↓ Buildings.DHC.Plants.Cooling stage → 0 1 2 3 4 5
0 N/A:
N/A
CHI1:
N/A
CHI1 & CHI2:
N/A
CHI1 & CHI2 & HRC3:
N/A
CHI1 & CHI2 & HRC3 & HRC2:
N/A
CHI1 & CHI2 & HRC3 & HRC2 & HRC1:
N/A
1 N/A:
HRC1
CHI1:
HRC1
CHI1 & CHI2:
HRC1
CHI1 & CHI2 & HRC3:
HRC1
CHI1 & CHI2 & HRC3 & HRC2:
HRC1
CHI1 & CHI2 & HRC3 & HRC2:
HRC1*
2 N/A:
HRC1 & HRC2
CHI1:
HRC1 & HRC2
CHI1 & CHI2:
HRC1 & HRC2
CHI1 & CHI2 & HRC3:
HRC1 & HRC2
CHI1 & CHI2 & HRC3:
HRC1 & HRC2*
CHI1 & CHI2 & HRC3:
HRC1* & HRC2*
3 N/A:
HRC1 & HRC2 & HRC3
CHI1:
HRC1 & HRC2 & HRC3
CHI1 & CHI2:
HRC1 & HRC2 & HRC3
CHI1 & CHI2:
HRC1 & HRC2 & HRC3*
CHI1 & CHI2:
HRC1 & HRC2* & HRC3*
CHI1 & CHI2:
HRC1* & HRC2* & HRC3*

Cooling and heating Enable condition

The cooling and heating Enable signals u1Coo and u1Hea shall be computed outside of the plant model, at least based on a time schedule and ideally in conjunction with a signal representative of the demand such as the requests yielded by the consumer control valves. Based on those signals, the cooling (resp. heating) stage #1 is activated whenever the cooling (resp. heating) Enable signal switches to true and when cooling (resp. heating) has been disabled for at least 15 min.

Operative part load ratio

The efficiency condition is based on the operative part load ratio which is computed as the ratio of the required capacity relative to design capacity of a given stage, which is the sum of the design capacity of each unit active in a given stage. The required capacity is calculated based on the primary mass flow rate and the temperature difference between supply and primary return, and averaged over a 5-minute moving window.

Cooling and heating staging

A stage up event is initiated if any of the following conditions is true.

  • Efficiency condition: the operative part load ratio of the current stage exceeds the value of the parameter PLRStaTra for 15 min.
  • Failsafe conditions: the CHW (resp. HW) supply temperature is K higher (resp. lower) than setpoint for 15 min, or the CHW (resp. HW) differential pressure is 1.5E4 Pa lower than setpoint for 15 min.

A stage down event is initiated if both of the following conditions are true.

  • Efficiency condition: the operative part load ratio of the next lower stage falls below the value of the parameter PLRStaTra for 15 min.
  • Failsafe conditions: the failsafe stage up conditions are not true.

Parameters

TypeNameDefaultDescription
RealPLRStaTra0.85Part load ratio triggering stage transition
Realcp_defaultBuildings.Utilities.Psychrometrics.Constants.cpWatLiqSpecific heat capacity of the fluid
CHW loop and cooling-only chillers
IntegernChiNumber of units operating at design conditions
RealQChiWatChi_flow_nominalCooling design heat flow rate of cooling-only chillers (all units)
HW loop and heat recovery chillers
IntegernChiHeaNumber of units operating at design conditions
RealQChiWatCasCoo_flow_nominalCooling design heat flow rate of HRC in cascading cooling mode (all units)
RealQChiWatCasCoo_flow_nominal_approxCooling design heat flow rate of HRC in cascading cooling mode (all units), approximate for scaling
RealQHeaWat_flow_nominalHeating design heat flow rate (all units)

Connectors

TypeNameDefaultDescription
Buildings.Controls.OBC.CDL.Interfaces.RealInputmChiWatPri_flowPrimary CHW mass flow rate
Buildings.Controls.OBC.CDL.Interfaces.RealInputTChiWatSupSetCHW supply temperature setpoint
Buildings.Controls.OBC.CDL.Interfaces.RealInputTChiWatPriRetPrimary CHW return temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputmHeaWatPri_flowPrimary HW mass flow rate
Buildings.Controls.OBC.CDL.Interfaces.RealInputTHeaWatSupSetHW supply temperature setpoint
Buildings.Controls.OBC.CDL.Interfaces.RealInputTHeaWatPriRetPrimary HW return temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputTChiWatSupCHW supply temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputdpChiWatCHW loop differential pressure
Buildings.Controls.OBC.CDL.Interfaces.RealInputdpChiWatSetCHW loop differential pressure setpoint
Buildings.Controls.OBC.CDL.Interfaces.RealInputTHeaWatSupHW supply temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputdpHeaWatHW loop differential pressure
Buildings.Controls.OBC.CDL.Interfaces.RealInputdpHeaWatSetHW loop differential pressure setpoint
Buildings.Controls.OBC.CDL.Interfaces.RealOutputQCooReq_flowPlant required cooling capacity (>0)
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1CooCooling enable signal
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1HeaHeating enable signal
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nChi]y1ChiChiller On/Off command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nChiHea]y1CooChiHeaHRC cooling mode switchover command: true for cooling, false for heating
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nChiHea]y1ChiHeaHRC On/Off command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nChiHea]y1HeaCooChiHeaHRC cooling mode switchover command: true for cooling, false for heating

Components

TypeNameDefaultDescription
Buildings.Controls.OBC.CDL.Reals.MovingAveragemovAveMoving average
Buildings.Controls.OBC.CDL.Reals.MultiplyloaChiWatCompute total chiller load (>0)
Buildings.Controls.OBC.CDL.Reals.SubtractdTChiWatPosCompute deltaT (>0)
Buildings.Controls.OBC.CDL.Reals.MultiplyloaHeaWatCompute total chiller load
Buildings.Controls.OBC.CDL.Reals.SubtractdTHeaWatCompute deltaT
Buildings.Controls.OBC.CDL.Routing.IntegerScalarReplicatorrepReplicate
Buildings.Controls.OBC.CDL.Integers.GreaterEqualThreshold[nChi]cmdChiCompute chiller On/Off command from number of units to be commanded On
Buildings.Controls.OBC.CDL.Reals.MultiplyByParametertimCpScale
Buildings.Controls.OBC.CDL.Reals.MultiplyByParametertimCp1Scale
Buildings.Controls.OBC.CDL.Reals.MovingAveragemovAve1Moving average
Buildings.Controls.OBC.CDL.Routing.IntegerScalarReplicatorrep5Replicate
Buildings.Controls.OBC.CDL.Integers.GreaterEqualThreshold[nChiHea]cmdChiHeaCompute chiller On/Off command from number of units to be commanded On
Buildings.Controls.OBC.CDL.Integers.SubtractnumChiHeaCooNumber of HRC required in direct HR mode
Buildings.Controls.OBC.CDL.Integers.Sources.ConstantnumChiHeaNumber of HRC
Buildings.Controls.OBC.CDL.Integers.AddnChiHeaAndCooUnbNumber of HRC required to meet heating and cooling load - Unbounded
Buildings.Controls.OBC.CDL.Integers.SubtractnumChiCasCooNumber of HRC required in cascading cooling
Buildings.DHC.Plants.Combined.Controls.BaseClasses.ModeHeatRecoveryChillermodHeaCooCompute the cascading cooling and direct HR switchover signals
Buildings.Controls.OBC.CDL.Integers.MinnChiHeaHeaAndCooNumber of HRC required to meet heating and cooling load - Bounded by number of HRC
Buildings.Controls.OBC.CDL.Reals.SubtracterrTChiWatSupCompute tracking error
Buildings.Controls.OBC.CDL.Reals.SubtracterrDpChiWatCompute tracking error
Buildings.Controls.OBC.CDL.Reals.LessThresholdcmpErrLimCheck tracking error limit
Buildings.Controls.OBC.CDL.Reals.GreaterThresholdcmpErrLim1Check tracking error limit
Buildings.Controls.OBC.CDL.Logical.TimertimErrExcLimTimer for error exceeding error limit
Buildings.Controls.OBC.CDL.Logical.TimertimErrExcLim1Timer for error exceeding error limit
Buildings.Controls.OBC.CDL.Logical.Oror2Failsafe condition to stage up
Buildings.Controls.OBC.CDL.Logical.Andand2Apply failsafe condition only in stage >= 1
Buildings.Controls.OBC.CDL.Logical.Andand3Apply failsafe condition only in stage >= 1
Buildings.DHC.Plants.Combined.Controls.BaseClasses.StageIndexstaCooCompute cooling stage
Buildings.Controls.OBC.CDL.Reals.GreatercmpOPLRLimUpCheck OPLR limit
Buildings.Controls.OBC.CDL.Logical.TimertimOPLRExcLimTimer for OPLR exceeding limit
Buildings.Controls.OBC.CDL.Logical.Oror1Failsafe condition or efficiency condition to stage up
Buildings.Controls.OBC.CDL.Integers.MinnumOpeChiNumber of operating chillers
Buildings.Controls.OBC.CDL.Integers.Sources.ConstantnumChiNumber of chillers
Buildings.Controls.OBC.CDL.Integers.SubtractnumOpeCooChiHeaNumber of HRC required for cooling
Buildings.Controls.OBC.CDL.Reals.GreatercmpOPLRLimUp1Check OPLR limit
Buildings.Controls.OBC.CDL.Logical.TimertimOPLRExcLim1Timer for OPLR exceeding limit
Buildings.DHC.Plants.Combined.Controls.BaseClasses.StageIndexstaHeaCompute heating stage
Buildings.Controls.OBC.CDL.Reals.LesscmpOPLRLimDowCheck OPLR limit
Buildings.Controls.OBC.CDL.Logical.TimertimOPLRExcLim2Timer for OPLR exceeding limit
Buildings.Controls.OBC.CDL.Reals.LesscmpOPLRLimDow1Check OPLR limit
Buildings.Controls.OBC.CDL.Logical.TimertimOPLRExcLim3Timer for OPLR exceeding limit
Buildings.Controls.OBC.CDL.Logical.NotnotFailFailsafe conditions are not true
Buildings.Controls.OBC.CDL.Logical.AnddowAndNotFailNo stage up failsafe condition and efficiency condition to stage down
Buildings.Controls.OBC.CDL.Reals.SubtracterrTChiWatSup1Compute tracking error
Buildings.Controls.OBC.CDL.Reals.SubtracterrDpHeaWatCompute tracking error
Buildings.Controls.OBC.CDL.Reals.GreaterThresholdcmpErrLim2Check tracking error limit
Buildings.Controls.OBC.CDL.Reals.GreaterThresholdcmpErrLim3Check tracking error limit
Buildings.Controls.OBC.CDL.Logical.TimertimErrExcLim2Timer for error exceeding error limit
Buildings.Controls.OBC.CDL.Logical.TimertimErrExcLim3Timer for error exceeding error limit
Buildings.Controls.OBC.CDL.Logical.Oror3Failsafe condition to stage up
Buildings.Controls.OBC.CDL.Logical.Andand1Apply failsafe condition only in stage >= 1
Buildings.Controls.OBC.CDL.Logical.Andand4Apply failsafe condition only in stage >= 1
Buildings.Controls.OBC.CDL.Logical.NotnotFail1Failsafe conditions are not true
Buildings.Controls.OBC.CDL.Logical.Oror4Failsafe condition or efficiency condition to stage up
Buildings.Controls.OBC.CDL.Logical.AnddowAndNotFail1No stage up failsafe condition and efficiency condition to stage down
Buildings.DHC.Plants.Combined.Controls.BaseClasses.IntegerArrayHoldholMinimum plant stage runtime (needed because cooling and heating stage runtimes are handled separately)
Buildings.DHC.Plants.Combined.Controls.BaseClasses.StagingCapacitystaCapTotal capacity at current stages times stage-up PLR limit

Revisions

  • February 25, 2025, by Jianjun Hu:
    Reimplemented it to comply with CDL specification. This is for #4110.
  • February 24, 2023, by Antoine Gautier:
    First implementation.