blockController

Plant controller

Extends from BaseClasses.PartialController (Interface class for plant controller).

Information

This block implements the following control functions.

Heat pumps

Heat pumps are enabled whenever Charge Assist mode is active and any CWC pump is enabled. Heat pumps are disabled otherwise.

The supply temperature setpoint is K plus the highest setpoint of the active tank cycle. Note that no limitation of the setpoint value per HP manufacturer specification is taken into account.

CHW, HW, CWE and CWC pumps

The lead pump is enabled based on the logic described in Buildings.DHC.Plants.Combined.Controls.BaseClasses.ValveCondenserEvaporator.

Pumps are staged based on the logic described in Buildings.DHC.Plants.Combined.Controls.BaseClasses.StagingPump.

When any pump is enabled, the pump speed is modulated by a PI controller tracking a differential pressure setpoint at the boundaries of the circuit served by the pump. The control loop is biased to launch from 100 % (maximum speed). All pumps within the same group receive the same speed command signal.

The differential pressure setpoint for the CHW and HW loops is provided as a control input. Ideally, a reset logic based on consumer valve requests should be implemented to adapt those setpoints to the demand. For the sake of simplicity, the differential pressure setpoint for the CWC and CWE loops is a fixed parameter (design pressure drop).

Parameters

TypeNameDefaultDescription
RealPLRStaTra (from PartialController)0.85Part load ratio triggering stage transition
RealQChiWat_flow_nominal (from PartialController)QChiWatChi_flow_nominal + QChiWatCasCoo_flow_nominalPlant cooling design heat flow rate (all units)
Realcp_default (from PartialController)Buildings.Utilities.Psychrometrics.Constants.cpWatLiqSpecific heat capacity of the fluid
CHW loop and cooling-only chillers
IntegernChi (from PartialController)Number of units operating at design conditions
IntegernPumChiWat (from PartialController)Number of CHW pumps operating at design conditions
RealTChiWatSup_nominal (from PartialController)Design (minimum) CHW supply temperature
RealQChiWatChi_flow_nominal (from PartialController)Cooling design heat flow rate of cooling-only chillers (all units)
RealmChiWat_flow_nominal (from PartialController)CHW design mass flow rate (all units)
RealdpChiWatSet_max (from PartialController)Design (maximum) CHW differential pressure setpoint
RealmChiWatChi_flow_nominal (from PartialController)Chiller CHW design mass flow rate (each unit)
RealmChiWatChi_flow_min (from PartialController)Chiller CHW minimum mass flow rate (each unit)
RealmConWatChi_flow_nominal (from PartialController)Chiller CW design mass flow rate (each unit)
RealdpEvaChi_nominal (from PartialController)Chiller evaporator design pressure drop (each unit)
RealdpValEvaChi_nominal (from PartialController)Chiller evaporator isolation valve design pressure drop (each unit)
RealdTLifChi_min (from PartialController)Minimum chiller lift at minimum load
RealdTLifChi_nominal (from PartialController)Design chiller lift
HW loop and heat recovery chillers
IntegernChiHea (from PartialController)Number of units operating at design conditions
IntegernPumHeaWat (from PartialController)Number of HW pumps operating at design conditions
RealTHeaWatSup_nominal (from PartialController)Design (maximum) HW supply temperature
RealQChiWatCasCoo_flow_nominal (from PartialController)Cooling design heat flow rate of HRC in cascading cooling mode (all units)
RealQChiWatCasCoo_flow_nominal_approx (from PartialController)Cooling design heat flow rate of HRC in cascading cooling mode (all units), approximate for scaling
RealQHeaWat_flow_nominal (from PartialController)Heating design heat flow rate (all units)
RealmHeaWat_flow_nominal (from PartialController)HW design mass flow rate (all units)
RealdpHeaWatSet_max (from PartialController)Design (maximum) HW differential pressure setpoint
RealmChiWatChiHea_flow_nominal (from PartialController)HRC CHW design mass flow rate (each unit)
RealmChiWatChiHea_flow_min (from PartialController)HRC CHW minimum mass flow rate (each unit)
RealmConWatChiHea_flow_nominal (from PartialController)HRC CW design mass flow rate (each unit)
RealmHeaWatChiHea_flow_min (from PartialController)Chiller HW minimum mass flow rate (each unit)
RealdpEvaChiHea_nominal (from PartialController)Design chiller evaporator pressure drop (each unit)
RealdpValEvaChiHea_nominal (from PartialController)HRC evaporator isolation valve design pressure drop (each unit)
CW loop, TES tank and heat pumps
IntegernHeaPum (from PartialController)Number of heat pumps operating at design conditions
IntegernPumConWatCon (from PartialController)Number of CW pumps serving condenser barrels at design conditions
IntegernPumConWatEva (from PartialController)Number of CW pumps serving evaporator barrels at design conditions
RealQHeaPum_flow_nominal (from PartialController)Heating design heat flow rate of heat pumps (all units)
RealmConWatCon_flow_nominal (from PartialController)Design total CW mass flow rate through condenser barrels (all units)
RealmConWatEva_flow_nominal (from PartialController)Design total CW mass flow rate through evaporator barrels (all units)
RealdpConWatConSet_max (from PartialController)Design (maximum) CW condenser loop differential pressure setpoint
RealdpConWatEvaSet_max (from PartialController)Design (maximum) CW evaporator loop differential pressure setpoint
Real[2,2]TTanSet (from PartialController)Tank temperature setpoints: 2 cycles with 2 setpoints
RealfraUslTan (from PartialController)Useless fraction of TES
IntegernTTan (from PartialController)0Number of tank temperature points
Real[5]ratFraChaTanLim (from PartialController){-0.3, -0.2, -0.15, -0.10, -0.08}Rate of change of tank charge fraction (over 10, 30, 120, 240, and 360') that triggers Charge Assist (<0)
Cooling tower loop
IntegernCoo (from PartialController)Number of cooling tower cells operating at design conditions
IntegernPumConWatCoo (from PartialController)Number of CW pumps serving cooling towers at design conditions
RealdTHexCoo_nominal (from PartialController)Design heat exchanger approach
Dynamics › Motor speed
RealriseTime (from PartialController)30Time needed to change motor speed between zero and full speed
Dynamics › Time needed to open or close valve
RealstrokeTime (from PartialController)120Valve stroke time

Connectors

TypeNameDefaultDescription
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1Coo (from PartialController)Cooling enable signal
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1Hea (from PartialController)Heating enable signal
Buildings.Controls.OBC.CDL.Interfaces.RealInputTChiWatSupSet (from PartialController)CHW supply temperature setpoint
Buildings.Controls.OBC.CDL.Interfaces.RealInputTHeaWatSupSet (from PartialController)HW supply temperature setpoint
Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nChi]yValEvaChi (from PartialController)Cooling-only chiller evaporator isolation valve commanded position
Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nChi]yValConChi (from PartialController)Cooling-only chiller condenser isolation valve commanded position
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nChi]y1Chi (from PartialController)Cooling-only chiller On/Off command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nPumChiWat]y1PumChiWat (from PartialController)CHW pump Start command
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyPumChiWat (from PartialController)CHW pump speed signal
Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nChiHea]yValEvaChiHea (from PartialController)HRC evaporator isolation valve commanded position
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nChiHea]y1ChiHea (from PartialController)HRC On/Off command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nChiHea]y1CooChiHea (from PartialController)HRC cooling mode switchover command: true for cooling, false for heating
Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nChiHea]yValConChiHea (from PartialController)HRC condenser isolation valve commanded position
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nPumHeaWat]y1PumHeaWat (from PartialController)HW pump Start command
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyPumHeaWat (from PartialController)HW pump speed signal
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyValChiWatMinByp (from PartialController)CHW minimum flow bypass valve control signal
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyValHeaWatMinByp (from PartialController)HW minimum flow bypass valve control signal
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nPumConWatCon]y1PumConWatCon (from PartialController)CW pump serving condenser barrels Start command
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyPumConWatCon (from PartialController)CW pump serving condenser barrels Speed command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nPumConWatEva]y1PumConWatEva (from PartialController)CW pump serving evaporator barrels Start command
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyPumConWatEva (from PartialController)CW pump serving evaporator barrels Speed command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nHeaPum]y1HeaPum (from PartialController)Heat pump On/Off command
Buildings.Controls.OBC.CDL.Interfaces.RealOutputTHeaPumSet (from PartialController)Heat pump supply temperature setpoint
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyValBypTan (from PartialController)TES tank bypass valve commanded position
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nCoo]y1Coo (from PartialController)Cooling tower Start command
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyCoo (from PartialController)Cooling tower fan speed command
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nPumConWatCoo]y1PumConWatCoo (from PartialController)Cooling tower pump Start command
Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nChiHea]TChiHeaSet (from PartialController)HRC supply temperature setpoint
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput[nChiHea]y1HeaCooChiHea (from PartialController)HRC direct heat recovery switchover command: true for direct HR, false for cascading
Buildings.Controls.OBC.CDL.Interfaces.RealInputdpChiWatSet (from PartialController)CHW differential pressure setpoint (for local dp sensor)
Buildings.Controls.OBC.CDL.Interfaces.RealInputdpHeaWatSet (from PartialController)HW differential pressure setpoint (for local dp sensor)
Buildings.Controls.OBC.CDL.Interfaces.RealInputdpChiWat (from PartialController)CHW differential pressure (from local dp sensor)
Buildings.Controls.OBC.CDL.Interfaces.RealInputdpHeaWat (from PartialController)HW differential pressure (from local dp sensor)
Buildings.Controls.OBC.CDL.Interfaces.RealInputmChiWatPri_flow (from PartialController)Primary CHW mass flow rate
Buildings.Controls.OBC.CDL.Interfaces.RealInputmHeaWatPri_flow (from PartialController)Primary HW mass flow rate
Buildings.Controls.OBC.CDL.Interfaces.RealInputdpConWatCon (from PartialController)CW condenser loop differential pressure
Buildings.Controls.OBC.CDL.Interfaces.RealInputdpConWatEva (from PartialController)CW evaporator loop differential pressure
Buildings.Controls.OBC.CDL.Interfaces.RealInputmConWatCon_flow (from PartialController)CW condenser loop mass flow rate
Buildings.Controls.OBC.CDL.Interfaces.RealInputmConWatEva_flow (from PartialController)CW evaporator loop mass flow rate
Buildings.Controls.OBC.CDL.Interfaces.RealInputTChiWatSup (from PartialController)CHW supply temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputTChiWatPriRet (from PartialController)Primary CHW return temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputTHeaWatPriRet (from PartialController)Primary HW return temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInput[nTTan]TTan (from PartialController)TES tank temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputmConWatHexCoo_flow (from PartialController)CW mass flow rate through secondary (plant) side of HX
Buildings.Controls.OBC.CDL.Interfaces.RealInputmConWatOutTan_flow (from PartialController)Mass flow rate out of lower port of TES tank (>0 when charging)
Buildings.Controls.OBC.CDL.Interfaces.RealInput[nChi]mEvaChi_flow (from PartialController)Chiller evaporator barrel mass flow rate
Buildings.Controls.OBC.CDL.Interfaces.RealInput[nChi]mConChi_flow (from PartialController)Chiller condenser barrel mass flow rate
Buildings.Controls.OBC.CDL.Interfaces.RealInput[nChiHea]mEvaChiHea_flow (from PartialController)HRC evaporator barrel mass flow rate
Buildings.Controls.OBC.CDL.Interfaces.RealInput[nChiHea]mConChiHea_flow (from PartialController)HRC condenser barrel mass flow rate
Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nChiHea]yValEvaSwiHea (from PartialController)HRC evaporator switchover valve commanded position
Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nChiHea]yValConSwiChiHea (from PartialController)HRC condenser switchover valve commanded position
Buildings.Controls.OBC.CDL.Interfaces.RealInput[nChiHea]TEvaLvgChiHea (from PartialController)HRC evaporator barrel leaving temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputTHeaWatSup (from PartialController)HW supply temperature
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyPumConWatCoo (from PartialController)Cooling tower pump speed command
Buildings.Controls.OBC.CDL.Interfaces.RealInputTConWatConChiEnt (from PartialController)Chiller and HRC entering CW temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputTConWatConChiLvg (from PartialController)Chiller and HRC leaving CW temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputTConWatCooSup (from PartialController)Cooling tower loop CW supply temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputTConWatCooRet (from PartialController)Cooling tower loop CW return temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputTConWatHexCooEnt (from PartialController)HX entering CW temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputTConWatHexCooLvg (from PartialController)HX leaving CW temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInput[nChiHea]TConEntChiHea (from PartialController)HRC condenser barrel entering temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInput[nChiHea]TConLvgChiHea (from PartialController)HRC condenser barrel leaving temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputTConWatEvaEnt (from PartialController)HRC evaporator entering CW temperature
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyValConWatEvaMix (from PartialController)HRC evaporator CW mixing valve commanded position
Buildings.Controls.OBC.CDL.Interfaces.RealInputTConWatConRet (from PartialController)Condenser loop CW return temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInput[nChi]TConLvgChi (from PartialController)Chiller condenser barrel leaving temperature
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyValConWatByp (from PartialController)CW chiller bypass valve control signal

Components

TypeNameDefaultDescription
Buildings.Controls.OBC.CDL.Routing.BooleanScalarReplicatorrepHeaPumReplicate signal
Buildings.Controls.OBC.CDL.Conversions.BooleanToRealcvtValBypTanConvert DO to AO
Buildings.Controls.OBC.CDL.Reals.Switch[nChiHea]TChiHeaSupSetSwitch supply temperature setpoint
Buildings.DHC.Plants.Combined.Controls.BaseClasses.StagingPumpstaPumChiWatCHW pump staging
Buildings.Controls.OBC.Utilities.PIDWithEnablepumChiWatPump speed controller
Buildings.Controls.OBC.Utilities.PIDWithEnablepumHeaWatPump speed controller
Buildings.DHC.Plants.Combined.Controls.BaseClasses.StagingPumpstaPumHeaWatHW pump staging
Buildings.DHC.Plants.Combined.Controls.BaseClasses.StagingPumpstaPumConWatConCW pump staging
Buildings.Controls.OBC.Utilities.PIDWithEnablepumConWatConPump speed controller
Buildings.Controls.OBC.Utilities.PIDWithEnablepumConWatEvaPump speed controller
Buildings.DHC.Plants.Combined.Controls.BaseClasses.StagingPumpstaPumConWatEvaCW pump staging
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantdpConNomConstant
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantdpEvaNomConstant
BaseClasses.StagingPlantstaPlaPlant staging
Buildings.Controls.OBC.CDL.Routing.RealScalarReplicatorrepTSetReplicate signal
Buildings.Controls.OBC.CDL.Routing.RealScalarReplicatorrepTSet1Replicate signal
Buildings.DHC.Plants.Combined.Controls.BaseClasses.ModeCondenserLoopmodConLooCondenser loop operating mode
Buildings.DHC.Plants.Combined.Controls.BaseClasses.TankCyclecycTanDetermine tank cycle
Buildings.Controls.OBC.CDL.Integers.EqualisModChaAssReturn true if charge assist mode is active
Buildings.Controls.OBC.CDL.Integers.Sources.ConstantchaAssCharge assist mode index
Buildings.Controls.OBC.CDL.Logical.AndassAndPumCharge assist mode and any CW pump On
Buildings.Controls.OBC.CDL.Reals.Sources.Constant[2]THeaPumSetValHP supply temperature setpoint for each tank cycle
Buildings.Controls.OBC.CDL.Routing.RealExtractorextIndReaExtract active setpoint
Buildings.Controls.OBC.CDL.Integers.Sources.ConstantheaRejHeat rejection mode index
Buildings.Controls.OBC.CDL.Integers.EqualisModHeaRejReturn true if heat rejection mode is active
Buildings.Controls.OBC.CDL.Logical.NotisModNotHeaRejReturn true if heat rejection mode is NOT active
BaseClasses.ValveCondenserEvaporatorvalConEvaController for chiller and HRC condenser and evaporator valves
Buildings.DHC.Plants.Combined.Controls.BaseClasses.DirectHeatRecoverydirHeaCooControl logic for HRC in direct HR mode
Buildings.DHC.Plants.Combined.Controls.BaseClasses.CoolingTowerLoopcooCooling tower loop
Buildings.Controls.OBC.CDL.Logical.Oru1CooOrHeaPlant Enable signal: either cooling or heating is enabled

Revisions

  • February 24, 2023, by Antoine Gautier:
    First implementation.