modelTableData2DLoadDep

Grey-box model for chillers

Extends from Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses.PartialReversibleRefrigerantMachine (Model for reversible heat pumps and chillers with a refrigerant cycle).

Information

This is a model for cooling-only or heat recovery chillers where the capacity and power are interpolated from manufacturer data along three variables.

  • Evaporator entering or leaving temperature: the choice between the entering or leaving temperature depends on the value of the parameter use_TEvaOutForTab specified in the parameter record ( Buildings.Fluid.Chillers.ModularReversible.Data.TableData2DLoadDep.Generic).
  • Condenser entering or leaving temperature: the choice between the entering or leaving temperature depends on the value of the parameter use_TConOutForTab specified in the parameter record.
  • Compressor part load ratio (PLR): the part load ratio is used as a proxy variable for the actual capacity modulation observable. A discrete observable such as the number of operating compressors for systems with multiple on/off compressors is converted into a continuous PLR value and the model only approximates the system performance on a time average.

The model includes ideal controls that solve for the CHW or HW supply or return temperature setpoint within the capacity limit. The Boolean parameter use_TLoaLvgForCtl is used for toggling between supply or return temperature control. The default setting use_TLoaLvgForCtl=true corresponds to supply temperature control.

For a comprehensive description of the algorithm and the calculations for capacity and power, please refer to the documentation of Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.BaseClasses.TableData2DLoadDep. This documentation also details the required format for the performance data file.

Control points

The following input points are available.

  • Chiller on/off command signal: on (Boolean, scalar)
  • For heat recovery chillers only (have_switchover=true), chiller switchover signal: coo (Boolean, scalar)
    Set coo=true for cooling mode, coo=false for heating mode.
  • CHW temperature setpoint: TChwSet (real, scalar)
    This is either the supply or return temperature setpoint depending on the value of use_TLoaLvgForCtl.
  • For heat recovery chillers only (have_switchover=true), HW temperature setpoint: THwSet (real, scalar)
    This is either the supply or return temperature setpoint depending on the value of use_TLoaLvgForCtl.

Implementation details

This model introduces structural changes compared to other models within Buildings.Fluid.Chillers.ModularReversible.

First, there is no replaceable heating cycle component. Instead, the Boolean parameter have_switchover is used for toggling between cooling-only and heat recovery chillers. A major implication is that a single performance data file is used to represent heating and cooling modes in the case of heat recovery chillers. This data file only provides the maximum cooling heat flow rate and input power.

Second, the model includes new input variables that match the control points found in chiller onboard controllers (see the previous section for their description).

Parameters

TypeNameDefaultDescription
Booleanuse_rev (from PartialReversibleRefrigerantMachine)true=true if the chiller or heat pump is reversible
Buildings.Fluid.HeatPumps.ModularReversible.Controls.Safety.Data.Wuellhorst2021safCtrPar (from PartialReversibleRefrigerantMachine)
Modelica.Units.SI.DensityrhoCon (from PartialReversibleRefrigerantMachine)MediumCon.density(staCon_nominal)Condenser medium density
Modelica.Units.SI.SpecificHeatCapacitycpCon (from PartialReversibleRefrigerantMachine)MediumCon.specificHeatCapacityCp(staCon_nominal)Condenser medium specific heat capacity
Modelica.Units.SI.DensityrhoEva (from PartialReversibleRefrigerantMachine)MediumEva.density(staEva_nominal)Evaporator medium density
Modelica.Units.SI.SpecificHeatCapacitycpEva (from PartialReversibleRefrigerantMachine)MediumEva.specificHeatCapacityCp(staEva_nominal)Evaporator medium specific heat capacity
Booleanhave_switchoverfalseSet to true for heat recovery chiller with built-in switchover
Booleanuse_TLoaLvgForCtltrueSet to true for leaving temperature control, false for entering temperature control
RealscaFacCoorefCyc.refCycChiCoo.scaFacScaling factor of power and heat flow rate
Buildings.Fluid.Chillers.ModularReversible.Data.TableData2DLoadDep.GenericdatCoo
Modelica.Units.SI.PowerP_min0Minimum power when system is enabled with compressor cycled off
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
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
Modelica.Units.SI.HeatFlowRatePEle_nominal (from PartialReversibleRefrigerantMachine)Nominal electrical power consumption
Modelica.Units.SI.HeatFlowRateQCoo_flow_nominalNominal cooling capacity
Modelica.Units.SI.TemperatureTEvaCoo_nominalCHW temperature: leaving if datCoo.use_TEvaOutForTab=true, entering otherwise
Modelica.Units.SI.TemperatureTConCoo_nominalCondenser cooling fluid temperature: leaving if datCoo.use_TConOutForTab=true, entering otherwise
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
BooleanallowDifferentDeviceIdentifiers (from PartialReversibleRefrigerantMachine)falseif use_rev=true, device data for cooling and heating need to entered. Set allowDifferentDeviceIdentifiers=true to allow different device identifiers devIde
BooleancalEff (from PartialReversibleRefrigerantMachine)true=false to disable efficiency calculation, may speed up the simulation
ReallimWarSca (from PartialReversibleRefrigerantMachine)0.05Allowed difference in scaling '|scaFacHea - scaFacCoo| / scaFacHea', if exceeded, a warning will be issued
Advanced › Diagnostics
Booleanshow_T (from PartialFourPortInterface)false= true, if actual temperature at port is computed
RealySet_small (from PartialReversibleRefrigerantMachine)0.01Threshold for relative speed for the device to be considered on
Safety control
Booleanuse_intSafCtr (from PartialReversibleRefrigerantMachine)true=true to enable internal safety control
Condenser › Dynamics
Modelica.Units.SI.TimetauCon (from PartialReversibleRefrigerantMachine)30Condenser heat transfer time constant at nominal flow
Nominal condition - Pressure losses
Modelica.Units.SI.TemperatureDifferencedTCon_nominal (from PartialReversibleRefrigerantMachine)Nominal temperature difference in condenser medium, used to calculate mass flow rate
Modelica.Units.SI.MassFlowRatemCon_flow_nominal (from PartialReversibleRefrigerantMachine)Nominal mass flow rate of the condenser medium
Modelica.Units.SI.PressureDifferencedpCon_nominal (from PartialReversibleRefrigerantMachine)Pressure drop at nominal mass flow rate
Modelica.Units.SI.TemperatureDifferencedTEva_nominal (from PartialReversibleRefrigerantMachine)Nominal temperature difference in evaporator medium, used to calculate mass flow rate
Modelica.Units.SI.MassFlowRatemEva_flow_nominal (from PartialReversibleRefrigerantMachine)Nominal mass flow rate of the evaporator medium
Modelica.Units.SI.PressureDifferencedpEva_nominal (from PartialReversibleRefrigerantMachine)Pressure drop at nominal mass flow rate
Condenser › Flow resistance
RealdeltaMCon (from PartialReversibleRefrigerantMachine)0.1Fraction of nominal mass flow rate where transition to turbulent occurs
RealnCon (from PartialReversibleRefrigerantMachine)2Flow exponent, n=1 for laminar, n=2 for turbulent
Condenser › Heat Losses
Booleanuse_conCap (from PartialReversibleRefrigerantMachine)true=true if using capacitor model for condenser heat loss estimation
Modelica.Units.SI.HeatCapacityCCon (from PartialReversibleRefrigerantMachine)0Heat capacity of the condenser
Modelica.Units.SI.ThermalConductanceGConOut (from PartialReversibleRefrigerantMachine)0Outer thermal conductance for condenser heat loss calculations
Modelica.Units.SI.ThermalConductanceGConIns (from PartialReversibleRefrigerantMachine)0Inner thermal conductance for condenser heat loss calculations
Evaporator › Dynamics
Modelica.Units.SI.TimetauEva (from PartialReversibleRefrigerantMachine)30Evaporator heat transfer time constant at nominal flow
Evaporator › Flow resistance
RealdeltaMEva (from PartialReversibleRefrigerantMachine)0.1Fraction of nominal mass flow rate where transition to turbulent occurs
RealnEva (from PartialReversibleRefrigerantMachine)2Flow exponent, n=1 for laminar, n=2 for turbulent
Evaporator › Heat Losses
Booleanuse_evaCap (from PartialReversibleRefrigerantMachine)true=true if using capacitor model for evaporator heat loss estimation
Modelica.Units.SI.HeatCapacityCEva (from PartialReversibleRefrigerantMachine)0Heat capacity of the evaporator
Modelica.Units.SI.ThermalConductanceGEvaOut (from PartialReversibleRefrigerantMachine)0Outer thermal conductance for evaporator heat loss calculations
Modelica.Units.SI.ThermalConductanceGEvaIns (from PartialReversibleRefrigerantMachine)0Inner thermal conductance for evaporator heat loss calculations
Assumptions › Evaporator
BooleanallowFlowReversalEva (from PartialReversibleRefrigerantMachine)true= false to simplify equations, assuming, but not enforcing, no flow reversal
Assumptions › Condenser
BooleanallowFlowReversalCon (from PartialReversibleRefrigerantMachine)true= false to simplify equations, assuming, but not enforcing, no flow reversal
Initialization › Parameters
Modelica.Blocks.Types.InitinitType (from PartialReversibleRefrigerantMachine)Modelica.Blocks.Types.Init.InitialStateType of initialization for refrigerant cycle dynamics (InitialState and InitialOutput are identical)
Initialization › Condenser
Modelica.Media.Interfaces.Types.AbsolutePressurepCon_start (from PartialReversibleRefrigerantMachine)MediumCon.p_defaultStart value of pressure
Modelica.Media.Interfaces.Types.TemperatureTCon_start (from PartialReversibleRefrigerantMachine)MediumCon.T_defaultStart value of temperature
Modelica.Units.SI.TemperatureTConCap_start (from PartialReversibleRefrigerantMachine)MediumCon.T_defaultInitial temperature of heat capacity of condenser
Modelica.Media.Interfaces.Types.MassFraction[MediumCon.nX]XCon_start (from PartialReversibleRefrigerantMachine)MediumCon.X_defaultStart value of mass fractions m_i/m
Initialization › Evaporator
Modelica.Media.Interfaces.Types.AbsolutePressurepEva_start (from PartialReversibleRefrigerantMachine)MediumEva.p_defaultStart value of pressure
Modelica.Media.Interfaces.Types.TemperatureTEva_start (from PartialReversibleRefrigerantMachine)MediumEva.T_defaultStart value of temperature
Modelica.Units.SI.TemperatureTEvaCap_start (from PartialReversibleRefrigerantMachine)MediumEva.T_defaultInitial temperature of heat capacity at evaporator
Modelica.Media.Interfaces.Types.MassFraction[MediumEva.nX]XEva_start (from PartialReversibleRefrigerantMachine)MediumEva.X_defaultStart value of mass fractions m_i/m
Dynamics › Equation
Modelica.Fluid.Types.DynamicsenergyDynamics (from PartialReversibleRefrigerantMachine)Modelica.Fluid.Types.Dynamics.DynamicFreeInitialType of energy balance: dynamic (3 initialization options) or steady state (only affects fluid-models)
Advanced › Flow resistance
Booleanfrom_dp (from PartialReversibleRefrigerantMachine)false= true, use m_flow = f(dp) else dp = f(m_flow)
Booleanlinearized (from PartialReversibleRefrigerantMachine)false= true, use linear relation between m_flow and dp for any flow rate

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)
Modelica.Blocks.Interfaces.RealInputySet (from PartialReversibleRefrigerantMachine)Relative compressor speed between 0 and 1
Modelica.Blocks.Interfaces.RealInputTEvaAmb (from PartialReversibleRefrigerantMachine)Ambient temperature on the evaporator side
Modelica.Blocks.Interfaces.RealInputTConAmb (from PartialReversibleRefrigerantMachine)Ambient temperature on the condenser side
Modelica.Blocks.Interfaces.RealOutputQCon_flow (from PartialReversibleRefrigerantMachine)Actual heating heat flow rate added to fluid 1
Modelica.Blocks.Interfaces.RealOutputP (from PartialReversibleRefrigerantMachine)Electric power consumed by compressor
Modelica.Blocks.Interfaces.RealOutputQEva_flow (from PartialReversibleRefrigerantMachine)Actual cooling heat flow rate removed from fluid 2
Modelica.Blocks.Interfaces.RealOutputEER (from PartialReversibleRefrigerantMachine)Energy efficieny ratio
Modelica.Blocks.Interfaces.RealOutputCOP (from PartialReversibleRefrigerantMachine)Coefficient of performance
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputonOn/off command: true to enable chiller, false to disable chiller
Buildings.Controls.OBC.CDL.Interfaces.RealInputTChwSetCHW temperature setpoint - Supply or return depending on use_TLoaLvgForCtl
Buildings.Controls.OBC.CDL.Interfaces.RealInputTHwSetHW temperature setpoint - Supply or return depending on use_TLoaLvgForCtl
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputcooSwitchover signal: true for cooling, false for heating
Modelica.Blocks.Interfaces.RealOutputPLRCompressor part load ratio

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
PartialModularRefrigerantCyclerefCyc (from PartialReversibleRefrigerantMachine)
Modelica.Units.SI.HeatFlowRateQ1_flow (from PartialReversibleRefrigerantMachine)QCon_flowHeat transferred into the medium 1
Modelica.Units.SI.HeatFlowRateQ2_flow (from PartialReversibleRefrigerantMachine)QEva_flowHeat transferred into the medium 2
Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses.EvaporatorCondenserWithCapacitycon (from PartialReversibleRefrigerantMachine)Heat exchanger model for the condenser
Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses.EvaporatorCondenserWithCapacityeva (from PartialReversibleRefrigerantMachine)Heat exchanger model for the evaporator
Buildings.HeatTransfer.Sources.PrescribedTemperaturevarTOutEva (from PartialReversibleRefrigerantMachine)Forces heat losses according to ambient temperature
Buildings.HeatTransfer.Sources.PrescribedTemperaturevarTOutCon (from PartialReversibleRefrigerantMachine)Forces heat losses according to ambient temperature
Buildings.Fluid.HeatPumps.ModularReversible.Controls.Safety.SafetysafCtr (from PartialReversibleRefrigerantMachine)Safety control models
Buildings.Fluid.Sensors.MassFlowRatemEva_flow (from PartialReversibleRefrigerantMachine)Mass flow sensor at the evaporator
Buildings.Fluid.Sensors.MassFlowRatemCon_flow (from PartialReversibleRefrigerantMachine)Mass flow sensor at the condenser
RefrigerantCycleInertiarefCycIneCon (from PartialReversibleRefrigerantMachine)Inertia model for condenser side
RefrigerantCycleInertiarefCycIneEva (from PartialReversibleRefrigerantMachine)Inertia model for evaporator side
Modelica.Blocks.Sources.RealExpressionsenTConIn (from PartialReversibleRefrigerantMachine)Real expression for condenser inlet temperature
Modelica.Blocks.Sources.RealExpressionsenTEvaIn (from PartialReversibleRefrigerantMachine)Real expression for evaporator inlet temperature
Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses.CalculateEfficiencyeff (from PartialReversibleRefrigerantMachine)Calculate efficiencies of device
Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses.CalculateCommandSignalcalYSetCalculate command signal from required PLR
Buildings.Controls.OBC.CDL.Logical.Sources.ConstantconCooLocks the device in cooling mode if have_switchover=false
Modelica.Blocks.Logical.NotnotCooNot cooling is heat recovery
Buildings.Controls.OBC.CDL.Reals.SwitchQUse_flowSelect useful heat flow rate depending on operating mode
Buildings.Templates.Plants.Controls.Utilities.PlaceholderRealphTHwSetPlaceholder value

Contents

NameDescription
RefrigerantCycleChillerCoolingRefrigerant cycle module for the cooling mode

Revisions

  • March 23, 2026, by Antoine Gautier:
    Refactored with two separate connectors for CHW and HW temperature setpoints.
    This is for #4507.
  • March 21, 2025, by Antoine Gautier:
    First implementation.