blockController

Plant controller

Extends from BaseClasses.PartialController.

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 3 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).

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.