modelCompression

Compression chiller

Extends from Buildings.Templates.Components.Interfaces.PartialChiller (Interface class for chiller models).

Information

This is a model for air-cooled or water-cooled compression chillers where the capacity and input power are computed by interpolating manufacturer data along the evaporator entering or leaving temperature, the condenser entering or leaving temperature and the part load ratio. The model can be configured to represent either a cooling-only chiller (have_switchover=false) or a heat-recovery chiller (have_switchover=true) that can be controlled to track either a CHW temperature setpoint or a HW temperature setpoint.

This model is a wrapper for Buildings.Fluid.Chillers.ModularReversible.TableData2DLoadDep, which the user may refer to for the modeling assumptions. Note that, by default, internal safeties in this model are disabled.

Control points

The following input and output points are available.

  • On/off command: y1, DO signal
  • For heat recovery chillers only (have_switchover=true), operating mode command: y1Coo, DO signal, true for cooling, false for heating
  • Supply or return CHW temperature setpoint TChiWatSet, AO signal (the choice between supply and return temperature tracking depends on the parameter: use_TChiWatSupForCtl)
  • For heat recovery chillers only (have_switchover=true), supply or return HW temperature setpoint THeaWatSet, AO signal (the choice between supply and return temperature tracking depends on the parameter: use_TChiWatSupForCtl)
  • Chiller status: y1_actual, DI signal
  • CHW flow request: y1ReqFloChiWat, DI signal
  • (Only if typ=Buildings.Templates.Components.Types.Chiller.WaterCooled) CW flow request: y1ReqFloConWat, DI signal

Model parameters

The design parameters and the chiller performance data are specified with an instance of Buildings.Templates.Components.Data.Chiller.

Parameters

TypeNameDefaultDescription
Buildings.Templates.Components.Data.Chillerdat (from PartialChiller)Design and operating parameters
Modelica.Units.SI.MassFlowRatemChiWat_flow_nominal (from PartialChiller)dat.mChiWat_flow_nominalDesign CHW mass flow rate
Modelica.Units.SI.MassFlowRatemCon_flow_nominal (from PartialChiller)dat.mCon_flow_nominalDesign condenser cooling fluid mass flow rate
Modelica.Units.SI.HeatFlowRatecap_nominal (from PartialChiller)dat.cap_nominalDesign cooling capacity
Modelica.Units.SI.HeatFlowRateQChiWat_flow_nominal (from PartialChiller)-abs(cap_nominal)Design cooling heat flow rate
Modelica.Units.SI.PressureDifferencedpChiWat_nominal (from PartialChiller)dat.dpChiWat_nominalDesign CHW pressure drop
Modelica.Units.SI.PressureDifferencedpCon_nominal (from PartialChiller)dat.dpCon_nominalDesign condenser cooling fluid pressure drop
Modelica.Units.SI.TemperatureTChiWatSup_nominal (from PartialChiller)dat.TChiWatSup_nominalDesign CHW supply temperature
Modelica.Units.SI.TemperatureTChiWatRet_nominal (from PartialChiller)TChiWatSup_nominal - QChiWat_flow_nominal/cpChiWat_default/mChiWat_flow_nominalDesign CHW return temperature
Modelica.Units.SI.HeatFlowRateQCon_flow_nominal (from PartialChiller)Design condenser heat flow rate
Modelica.Units.SI.TemperatureTConEnt_nominal (from PartialChiller)Design condenser entering fluid temperature
Modelica.Units.SI.TemperatureTConLvg_nominal (from PartialChiller)Design condenser leaving fluid temperature
Modelica.Units.SI.EfficiencyCOP_nominal (from PartialChiller)Coefficient of performance at design cooling conditions
MediumChiWat.SpecificHeatCapacitycpChiWat_default (from PartialChiller)MediumChiWat.specificHeatCapacityCp(staChiWat_default)CHW default specific heat capacity
MediumChiWat.ThermodynamicStatestaChiWat_default (from PartialChiller)MediumChiWat.setState_pTX(T = TChiWatSup_nominal, p = MediumChiWat.p_default, X = MediumChiWat.X_default)CHW default state
MediumCon.SpecificHeatCapacitycpCon_default (from PartialChiller)MediumCon.specificHeatCapacityCp(staCon_default)Condenser cooling fluid default specific heat capacity
MediumCon.ThermodynamicStatestaCon_default (from PartialChiller)MediumCon.setState_pTX(T = dat.TCon_nominal, p = MediumCon.p_default, X = MediumCon.X_default)Condenser cooling fluid default state
Assumptions
BooleanallowFlowReversal1 (from PartialFourPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1
BooleanallowFlowReversal2 (from PartialFourPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2
Booleanhave_dpChiWat (from PartialChiller)trueSet to true for CHW pressure drop computed by this model, false for external computation
Booleanhave_dpCon (from PartialChiller)trueSet to true for condenser cooling fluid pressure drop computed by this model, false for external computation
Nominal condition
Modelica.Units.SI.MassFlowRatem1_flow_nominal (from PartialFourPortInterface)Nominal mass flow rate
Modelica.Units.SI.MassFlowRatem2_flow_nominal (from PartialFourPortInterface)Nominal mass flow rate
Advanced
Medium1.MassFlowRatem1_flow_small (from PartialFourPortInterface)1E-4*abs(m1_flow_nominal)Small mass flow rate for regularization of zero flow
Medium2.MassFlowRatem2_flow_small (from PartialFourPortInterface)1E-4*abs(m2_flow_nominal)Small mass flow rate for regularization of zero flow
Advanced › Diagnostics
Booleanshow_T (from PartialFourPortInterface)false= true, if actual temperature at port is computed
Configuration
Buildings.Templates.Components.Types.Chillertyp (from PartialChiller)Type of chiller
Booleanhave_switchover (from PartialChiller)falseSet to true for heat recovery chiller with built-in switchover
Booleanuse_TChiWatSupForCtl (from PartialChiller)trueSet to true for CHW supply temperature control, false for CHW return temperature control
Dynamics › Nominal condition
Modelica.Units.SI.Timetau (from PartialChiller)30Time constant at nominal flow, used if energy or mass balance is dynamic
Dynamics › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamics (from PartialChiller)Modelica.Fluid.Types.Dynamics.DynamicFreeInitialType of energy balance: dynamic (3 initialization options) or steady state

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_a1 (from PartialFourPort)Fluid connector a1 (positive design flow direction is from port_a1 to port_b1)
Modelica.Fluid.Interfaces.FluidPort_bport_b1 (from PartialFourPort)Fluid connector b1 (positive design flow direction is from port_a1 to port_b1)
Modelica.Fluid.Interfaces.FluidPort_aport_a2 (from PartialFourPort)Fluid connector a2 (positive design flow direction is from port_a2 to port_b2)
Modelica.Fluid.Interfaces.FluidPort_bport_b2 (from PartialFourPort)Fluid connector b2 (positive design flow direction is from port_a2 to port_b2)
Buildings.Templates.Components.Interfaces.Busbus (from PartialChiller)Control bus

Components

TypeNameDefaultDescription
Medium1.MassFlowRatem1_flow (from PartialFourPortInterface)port_a1.m_flowMass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp1 (from PartialFourPortInterface)port_a1.p - port_b1.pPressure difference between port_a1 and port_b1
Medium2.MassFlowRatem2_flow (from PartialFourPortInterface)port_a2.m_flowMass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp2 (from PartialFourPortInterface)port_a2.p - port_b2.pPressure difference between port_a2 and port_b2
Medium1.ThermodynamicStatesta_a1 (from PartialFourPortInterface)if allowFlowReversal1 then Medium1.setState_phX(port_a1.p, noEvent(actualStream(port_a1.h_outflow)), noEvent(actualStream(port_a1.Xi_outflow))) else Medium1.setState_phX(port_a1.p, inStream(port_a1.h_outflow), inStream(port_a1.Xi_outflow))Medium properties in port_a1
Medium1.ThermodynamicStatesta_b1 (from PartialFourPortInterface)if allowFlowReversal1 then Medium1.setState_phX(port_b1.p, noEvent(actualStream(port_b1.h_outflow)), noEvent(actualStream(port_b1.Xi_outflow))) else Medium1.setState_phX(port_b1.p, port_b1.h_outflow, port_b1.Xi_outflow)Medium properties in port_b1
Medium2.ThermodynamicStatesta_a2 (from PartialFourPortInterface)if allowFlowReversal2 then Medium2.setState_phX(port_a2.p, noEvent(actualStream(port_a2.h_outflow)), noEvent(actualStream(port_a2.Xi_outflow))) else Medium2.setState_phX(port_a2.p, inStream(port_a2.h_outflow), inStream(port_a2.Xi_outflow))Medium properties in port_a2
Medium2.ThermodynamicStatesta_b2 (from PartialFourPortInterface)if allowFlowReversal2 then Medium2.setState_phX(port_b2.p, noEvent(actualStream(port_b2.h_outflow)), noEvent(actualStream(port_b2.Xi_outflow))) else Medium2.setState_phX(port_b2.p, port_b2.h_outflow, port_b2.Xi_outflow)Medium properties in port_b2
Controls.StatusEmulatory1_actualCompute chiller status
Buildings.Controls.OBC.CDL.Routing.BooleanExtractSignalreqFloConWatCompute CW flow request
Buildings.Controls.OBC.CDL.Logical.NotoffReturn true if status is off
Buildings.Controls.OBC.CDL.Logical.TrueDelaydelOffDelay off status
Buildings.Controls.OBC.CDL.Logical.NotreqFloCompute flow request
Buildings.Fluid.Chillers.ModularReversible.TableData2DLoadDepchiChiller

Revisions

  • March 23, 2026, by Antoine Gautier:
    Refactored with two separate connectors for CHW and HW temperature setpoints.
    This is for #4507.
  • April 17, 2025, by Antoine Gautier:
    Refactored with load-dependent 2D table data chiller model.
  • November 18, 2022, by Antoine Gautier:
    First implementation.