modelHeatExchanger

District heat exchanger controller

Information

This block implements the control logic for the district heat exchanger, which realizes the interface between the building system and the district system.

The input signal u is yielded by the supervisory controller. The primary and secondary circuits are enabled to operate if this input signal is greater than zero and the return position of at least one isolation valve is greater than 90%. When enabled,

  • the secondary circuit is controlled based on the input signal u, which is mapped to modulate in sequence the mixing valve (from full bypass to closed bypass for a control signal varying between 0% and 30%) and the pump speed (from the minimum to the maximum value for a control signal varying between 30% and 100%), and
  • the primary pump speed (or valve opening) is directly modulated with the input signal u.

Note that the valve on the secondary side is needed to stabilize the control of the system when the secondary mass flow rate required to meet the heat or cold rejection demand is below the flow rate corresponding to the minimum pump speed.

Parameters

TypeNameDefaultDescription
Buildings.DHC.ETS.Types.ConnectionConfigurationconConDistrict connection configuration
RealspePum1Min0.1Heat exchanger primary pump minimum speed (fractional)
RealspePum2Min0.1Heat exchanger secondary pump minimum speed (fractional)

Connectors

TypeNameDefaultDescription
Buildings.Controls.OBC.CDL.Interfaces.RealInput[2]yValIsoIsolation valves return position (index 1 for condenser)
Buildings.Controls.OBC.CDL.Interfaces.RealOutputy1District heat exchanger primary control signal
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyPum2District heat exchanger secondary pump control signal
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyVal2District heat exchanger secondary valve control signal
Buildings.Controls.OBC.CDL.Interfaces.RealInputuControl signal for secondary side (from supervisory)

Components

TypeNameDefaultDescription
Buildings.Controls.OBC.CDL.Reals.Maxmax1Maximum between control signal and minimum speed or opening
Buildings.Controls.OBC.CDL.Reals.SwitchswiOff1Output zero if not enabled
Buildings.Controls.OBC.CDL.Reals.Sources.Constantmin1Minimum pump speed or actuator opening
Buildings.Controls.OBC.CDL.Reals.GreaterThresholdgreThrCheck for heat or cold rejection demand
Buildings.Controls.OBC.CDL.Logical.Andand2At least one valve is open and HX circuit is enabled
Buildings.Controls.OBC.CDL.Reals.GreaterThresholdheaRejHeat rejection if condenser isolation valve is open
Buildings.Controls.OBC.CDL.Reals.GreaterThresholdcooRejCold rejection if evaporator isolation valve is open
Buildings.Controls.OBC.CDL.Logical.Oror1At least one valve is open
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantspeMinMinimum pump speed
Buildings.Controls.OBC.CDL.Reals.SwitchswiOff2Output zero if not enabled
Buildings.Controls.OBC.CDL.Reals.LinemapSpeMapping function for pump speed
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantoneOne
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantzerZero
Buildings.Controls.OBC.CDL.Reals.Sources.ConstanthalControl signal value for full opening of the valve
Buildings.Controls.OBC.CDL.Reals.LinemapValMapping function for valve opening

Revisions

  • November 14, 2025, by Michael Wetter:
    Moved to Buildings.Obsolete.
    This is for #4354.
  • July 14, 2021, by Antoine Gautier:
    Updated the control logic.
    This is for issue #2561.
  • July 31, 2020, by Antoine Gautier:
    First implementation.