modelCompression
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 setpointTHeaWatSet, 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
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Templates.Components.Data.Chiller | dat (from PartialChiller) | Design and operating parameters | |
| Modelica.Units.SI.MassFlowRate | mChiWat_flow_nominal (from PartialChiller) | dat.mChiWat_flow_nominal | Design CHW mass flow rate |
| Modelica.Units.SI.MassFlowRate | mCon_flow_nominal (from PartialChiller) | dat.mCon_flow_nominal | Design condenser cooling fluid mass flow rate |
| Modelica.Units.SI.HeatFlowRate | cap_nominal (from PartialChiller) | dat.cap_nominal | Design cooling capacity |
| Modelica.Units.SI.HeatFlowRate | QChiWat_flow_nominal (from PartialChiller) | -abs(cap_nominal) | Design cooling heat flow rate |
| Modelica.Units.SI.PressureDifference | dpChiWat_nominal (from PartialChiller) | dat.dpChiWat_nominal | Design CHW pressure drop |
| Modelica.Units.SI.PressureDifference | dpCon_nominal (from PartialChiller) | dat.dpCon_nominal | Design condenser cooling fluid pressure drop |
| Modelica.Units.SI.Temperature | TChiWatSup_nominal (from PartialChiller) | dat.TChiWatSup_nominal | Design CHW supply temperature |
| Modelica.Units.SI.Temperature | TChiWatRet_nominal (from PartialChiller) | TChiWatSup_nominal - QChiWat_flow_nominal/cpChiWat_default/mChiWat_flow_nominal | Design CHW return temperature |
| Modelica.Units.SI.HeatFlowRate | QCon_flow_nominal (from PartialChiller) | Design condenser heat flow rate | |
| Modelica.Units.SI.Temperature | TConEnt_nominal (from PartialChiller) | Design condenser entering fluid temperature | |
| Modelica.Units.SI.Temperature | TConLvg_nominal (from PartialChiller) | Design condenser leaving fluid temperature | |
| Modelica.Units.SI.Efficiency | COP_nominal (from PartialChiller) | Coefficient of performance at design cooling conditions | |
| MediumChiWat.SpecificHeatCapacity | cpChiWat_default (from PartialChiller) | MediumChiWat.specificHeatCapacityCp(staChiWat_default) | CHW default specific heat capacity |
| MediumChiWat.ThermodynamicState | staChiWat_default (from PartialChiller) | MediumChiWat.setState_pTX(T = TChiWatSup_nominal, p = MediumChiWat.p_default, X = MediumChiWat.X_default) | CHW default state |
| MediumCon.SpecificHeatCapacity | cpCon_default (from PartialChiller) | MediumCon.specificHeatCapacityCp(staCon_default) | Condenser cooling fluid default specific heat capacity |
| MediumCon.ThermodynamicState | staCon_default (from PartialChiller) | MediumCon.setState_pTX(T = dat.TCon_nominal, p = MediumCon.p_default, X = MediumCon.X_default) | Condenser cooling fluid default state |
| Assumptions | |||
| Boolean | allowFlowReversal1 (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1 |
| Boolean | allowFlowReversal2 (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2 |
| Boolean | have_dpChiWat (from PartialChiller) | true | Set to true for CHW pressure drop computed by this model, false for external computation |
| Boolean | have_dpCon (from PartialChiller) | true | Set to true for condenser cooling fluid pressure drop computed by this model, false for external computation |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | m1_flow_nominal (from PartialFourPortInterface) | Nominal mass flow rate | |
| Modelica.Units.SI.MassFlowRate | m2_flow_nominal (from PartialFourPortInterface) | Nominal mass flow rate | |
| Advanced | |||
| Medium1.MassFlowRate | m1_flow_small (from PartialFourPortInterface) | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Medium2.MassFlowRate | m2_flow_small (from PartialFourPortInterface) | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialFourPortInterface) | false | = true, if actual temperature at port is computed |
| Configuration | |||
| Buildings.Templates.Components.Types.Chiller | typ (from PartialChiller) | Type of chiller | |
| Boolean | have_switchover (from PartialChiller) | false | Set to true for heat recovery chiller with built-in switchover |
| Boolean | use_TChiWatSupForCtl (from PartialChiller) | true | Set to true for CHW supply temperature control, false for CHW return temperature control |
| Dynamics › Nominal condition | |||
| Modelica.Units.SI.Time | tau (from PartialChiller) | 30 | Time constant at nominal flow, used if energy or mass balance is dynamic |
| Dynamics › Conservation equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from PartialChiller) | Modelica.Fluid.Types.Dynamics.DynamicFreeInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a1 (from PartialFourPort) | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b1 (from PartialFourPort) | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) | |
| Modelica.Fluid.Interfaces.FluidPort_a | port_a2 (from PartialFourPort) | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b2 (from PartialFourPort) | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) | |
| Buildings.Templates.Components.Interfaces.Bus | bus (from PartialChiller) | Control bus |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Medium1.MassFlowRate | m1_flow (from PartialFourPortInterface) | port_a1.m_flow | Mass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp1 (from PartialFourPortInterface) | port_a1.p - port_b1.p | Pressure difference between port_a1 and port_b1 |
| Medium2.MassFlowRate | m2_flow (from PartialFourPortInterface) | port_a2.m_flow | Mass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp2 (from PartialFourPortInterface) | port_a2.p - port_b2.p | Pressure difference between port_a2 and port_b2 |
| Medium1.ThermodynamicState | sta_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.ThermodynamicState | sta_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.ThermodynamicState | sta_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.ThermodynamicState | sta_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.StatusEmulator | y1_actual | Compute chiller status | |
| Buildings.Controls.OBC.CDL.Routing.BooleanExtractSignal | reqFloConWat | Compute CW flow request | |
| Buildings.Controls.OBC.CDL.Logical.Not | off | Return true if status is off | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | delOff | Delay off status | |
| Buildings.Controls.OBC.CDL.Logical.Not | reqFlo | Compute flow request | |
| Buildings.Fluid.Chillers.ModularReversible.TableData2DLoadDep | chi | Chiller |
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.