modelHeatPumpModular

Modular heat pump controller

Information

This is a controller for the heat pump system, which includes controls for the valves that ensure a minimum condenser outlet and a maximum evaporator outlet temperature.

The system is enabled if any of the input control signals uHeaSpa, uHeaDhw, or uCoo is true. When enabled, the following control is used:

  • Two proportional controllers compute the required compressor speed to track the heating or cooling set point.
  • Moving averages of these compressor speed signals determine whether the heating or the cooling compressor speed should be taken. The larger of the moving averages determines whether the heat pump is controlled to meet the heating or cooling demand.
  • The compressor speed is modulated between a minimum and maximum speed based on the heating or cooling control signal. A rate limiter is used to avoid step changes in demanded compressor speed.
  • The condenser and evaporator mixing valves are modulated with a proportional controller to maintain a minimum (resp. maximum) outlet temperature from the heat pump.

Parameters

TypeNameDefaultDescription
RealPLRMinMinimum part load ratio
RealkHea2Gain of controller for compressor during heating operation
RealkCoo2Gain of controller for compressor during cooling
RealTHeaWatSupSetMinMinimum value of heating water supply temperature set point
RealTChiWatSupSetMaxMaximum value of chilled water supply temperature set point
Modelica.Units.SI.TemperatureDifferencedTOffSetHeaTemperature to be added to the set point in order to be slightly above what the heating load requires
Modelica.Units.SI.TemperatureDifferencedTOffSetCooTemperature to be added to the set point in order to be slightly below what the cooling load requires

Connectors

TypeNameDefaultDescription
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputuHeaSpaTrue if space heating is required from tank
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputuHeaDhwTrue if domestic hot water heating is required from tank
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputuCooTrue if cooling is required from tank
Buildings.Controls.OBC.CDL.Interfaces.RealInputTHeaWatSupSetSet point temperature for heating water
Buildings.Controls.OBC.CDL.Interfaces.RealInputTConWatLvgCondenser water leaving temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputTEvaWatLvgEvaporator water leaving temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputTChiWatSupSetSet point temperature for chilled water
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyValConCondenser mixing valve control signal
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyValEvaEvaporator mixing valve control signal
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutputyPumPrimary pump enable signal
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutputyComOnOutputs true if the compressor is on
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyComCompressor speed control signal

Components

TypeNameDefaultDescription
Buildings.Controls.OBC.CDL.Logical.OrheaOrCooHeating or cooling requested
Buildings.Controls.OBC.CDL.Reals.PIDconValHeaCondenser three-way valve control
Buildings.Controls.OBC.CDL.Reals.PIDconValCooEvaporator three-way valve control
Buildings.Controls.OBC.Utilities.PIDWithEnableconCooChiller compressor speed control during cooling mode
Buildings.Controls.OBC.Utilities.PIDWithEnableconHeaChiller compressor speed control during heating mode
Buildings.Controls.OBC.CDL.Reals.SwitchswiSwitch to select heating or cooling control signal
Buildings.Controls.OBC.CDL.Reals.LimitSlewRateramLimComRamp limiter to avoid sudden load increase from chiller
Buildings.Controls.OBC.CDL.Logical.OrheaHeating requested
Buildings.Controls.OBC.CDL.Reals.MovingAveragemovAveHeaMoving average of heating compressor signal
Buildings.Controls.OBC.CDL.Reals.MovingAveragemovAveCooMoving average of cooling compressor signal
Buildings.Controls.OBC.CDL.Reals.GreaterheaDomOutput true if heating dominates the operation
Buildings.Controls.OBC.CDL.Reals.Switchswi1Switch to select heating or cooling control signal
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantzerOutputs zero
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantTSupSetDhwSupply water temperature set point during domestic hot water charging
Buildings.Controls.OBC.CDL.Reals.SwitchswiTSupSetHeaSwitch for heating water temperature set point
Buildings.Controls.OBC.CDL.Reals.AddParameteroffSetHeaOffset temperature for 3-way valve control during heating
Buildings.Controls.OBC.CDL.Reals.AddParameteroffSetCooOffset temperature for 3-way valve control during cooling
Buildings.DHC.ETS.Combined.Controls.ResetresTHeaSupHeating water supply temperature reset
Buildings.DHC.ETS.Combined.Controls.ResetresTCooSupChilled water supply temperature reset
Buildings.Controls.OBC.CDL.Reals.MaxmaxTSupMaximum to pick the larger value of space heating or hot water supply temperature setpoint
Buildings.Controls.OBC.CDL.Logical.TrueDelaydelStaDelay start of compressor to ensure pumps have sufficient speed
Buildings.Controls.OBC.CDL.Logical.TrueDelaydelPumOffDelay pump off signal to allow compressor to ramp down
Buildings.Controls.OBC.CDL.Logical.Notnot1
Buildings.Controls.OBC.CDL.Logical.Notnot2
Buildings.Controls.OBC.CDL.Reals.AddParameterdTOffHeaOffset to slightly increase the set point
Buildings.Controls.OBC.CDL.Reals.AddParameterdTOffCooOffset to slightly decrease the set point

Revisions

  • November 15, 2025, by Michael Wetter:
    Refactored implementation.
    This is for #4354.
  • July 31, 2020, by Antoine Gautier:
    First implementation.