modelAirToWater
Extends from Buildings.Templates.Components.BaseClasses.PartialHeatPumpTableData2DLoadDep (Interface for heat pump using load-dependent 2D table data).
Information
This is a model for an air-to-water heat pump where the capacity
and input power are computed by interpolating manufacturer data
along the condenser entering or leaving temperature, the
evaporator entering or leaving temperature and the part load ratio.
The model can be configured to represent either a non-reversible
(heating-only) heat pump (is_rev=false) or a
reversible heat pump (is_rev=true).
This model is a wrapper for Buildings.Fluid.HeatPumps.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
Refer to the documentation of the base class Buildings.Templates.Components.BaseClasses.PartialHeatPumpTableData2DLoadDep for a description of the available control input and output variables.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Templates.Components.Data.HeatPump | dat (from PartialHeatPump) | Design and operating parameters | |
| Modelica.Units.SI.MassFlowRate | mHeaWat_flow_nominal (from PartialHeatPump) | dat.mHeaWat_flow_nominal | Design HW mass flow rate |
| Modelica.Units.SI.HeatFlowRate | capHea_nominal (from PartialHeatPump) | dat.capHea_nominal | Design heating capacity |
| Modelica.Units.SI.HeatFlowRate | QHea_flow_nominal (from PartialHeatPump) | abs(capHea_nominal) | Design heating heat flow rate |
| Modelica.Units.SI.PressureDifference | dpHeaWat_nominal (from PartialHeatPump) | dat.dpHeaWat_nominal | Design HW pressure drop |
| Modelica.Units.SI.Temperature | THeaWatSup_nominal (from PartialHeatPump) | dat.THeaWatSup_nominal | Design HW supply temperature |
| Modelica.Units.SI.Temperature | THeaWatRet_nominal (from PartialHeatPump) | dat.THeaWatRet_nominal | Design HW return temperature |
| Modelica.Units.SI.PressureDifference | dpChiWat_nominal (from PartialHeatPump) | dat.dpChiWat_nominal | Design CHW pressure drop |
| Modelica.Units.SI.HeatFlowRate | capCoo_nominal (from PartialHeatPump) | dat.capCoo_nominal | Design cooling capacity |
| Modelica.Units.SI.HeatFlowRate | QCoo_flow_nominal (from PartialHeatPump) | -abs(capCoo_nominal) | Design cooling heat flow rate |
| Modelica.Units.SI.Temperature | TChiWatSup_nominal (from PartialHeatPump) | dat.TChiWatSup_nominal | Design CHW supply temperature |
| Modelica.Units.SI.Temperature | TChiWatRet_nominal (from PartialHeatPump) | dat.TChiWatRet_nominal | Design CHW return temperature |
| Modelica.Units.SI.MassFlowRate | mSouHea_flow_nominal (from PartialHeatPump) | dat.mSouHea_flow_nominal | Design source fluid mass flow rate in heating mode |
| Modelica.Units.SI.PressureDifference | dpSouHea_nominal (from PartialHeatPump) | dat.dpSouHea_nominal | Design source fluid pressure drop in heating mode |
| Modelica.Units.SI.MassFlowRate | mSouCoo_flow_nominal (from PartialHeatPump) | dat.mSouCoo_flow_nominal | Design source fluid mass flow rate in cooling mode |
| Modelica.Units.SI.PressureDifference | dpSouCoo_nominal (from PartialHeatPump) | dat.dpSouCoo_nominal | Designs source fluid pressure drop in cooling mode |
| Modelica.Units.SI.Temperature | TSouCoo_nominal (from PartialHeatPump) | dat.TSouCoo_nominal | Design OAT or source fluid supply temperature (condenser entering) in cooling mode |
| Modelica.Units.SI.Temperature | TSouHea_nominal (from PartialHeatPump) | dat.TSouHea_nominal | Design OAT or source fluid supply temperature (evaporator entering) in heating mode |
| MediumHeaWat.SpecificHeatCapacity | cpHeaWat_default (from PartialHeatPump) | MediumHeaWat.specificHeatCapacityCp(staHeaWat_default) | HW default specific heat capacity |
| MediumHeaWat.ThermodynamicState | staHeaWat_default (from PartialHeatPump) | MediumHeaWat.setState_pTX(T = THeaWatSup_nominal, p = MediumHeaWat.p_default, X = MediumHeaWat.X_default) | HW default state |
| MediumChiWat.SpecificHeatCapacity | cpChiWat_default (from PartialHeatPump) | MediumChiWat.specificHeatCapacityCp(staChiWat_default) | CHW default specific heat capacity |
| MediumChiWat.ThermodynamicState | staChiWat_default (from PartialHeatPump) | MediumChiWat.setState_pTX(T = TChiWatSup_nominal, p = MediumChiWat.p_default, X = MediumChiWat.X_default) | CHW default state |
| MediumSou.SpecificHeatCapacity | cpSou_default (from PartialHeatPump) | MediumSou.specificHeatCapacityCp(staSou_default) | Source fluid default specific heat capacity |
| MediumSou.ThermodynamicState | staSou_default (from PartialHeatPump) | MediumSou.setState_pTX(T = TSouHea_nominal, p = MediumSou.p_default, X = MediumSou.X_default) | Source fluid default state |
| Assumptions | |||
| Boolean | allowFlowReversal (from PartialTwoPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal |
| Boolean | allowFlowReversalSou (from PartialHeatPump) | true | Source side flow reversal: false to simplify equations, assuming, but not enforcing, no flow reversal |
| Boolean | have_dpChiHeaWat (from PartialHeatPump) | true | Set to true for CHW/HW pressure drop computed by this model, false for external computation |
| Boolean | have_dpSou (from PartialHeatPump) | true | Set to true for source fluid pressure drop computed by this model, false for external computation |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | m_flow_nominal (from PartialTwoPortInterface) | Nominal mass flow rate | |
| Modelica.Units.SI.MassFlowRate | mChiWat_flow_nominal (from PartialHeatPump) | dat.mChiWat_flow_nominal | Design CHW mass flow rate |
| Advanced | |||
| Modelica.Units.SI.MassFlowRate | m_flow_small (from PartialTwoPortInterface) | 1E-4*abs(m_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialTwoPortInterface) | false | = true, if actual temperature at port is computed |
| Configuration | |||
| Buildings.Templates.Components.Types.HeatPump | typ (from PartialHeatPump) | Equipment type | |
| Boolean | is_rev (from PartialHeatPump) | Set to true for reversible heat pumps, false for heating only | |
| Dynamics › Conservation equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from PartialHeatPump) | 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_a (from PartialTwoPort) | Fluid connector a (positive design flow direction is from port_a to port_b) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b (from PartialTwoPort) | Fluid connector b (positive design flow direction is from port_a to port_b) | |
| Modelica.Fluid.Interfaces.FluidPort_a | port_aSou (from PartialHeatPump) | Fluid connector a (positive design flow direction is from port_a to port_b) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_bSou (from PartialHeatPump) | Fluid connector b (positive design flow direction is from port_a to port_b) | |
| Buildings.Templates.Components.Interfaces.Bus | bus (from PartialHeatPump) | Control bus | |
| Buildings.BoundaryConditions.WeatherData.Bus | busWea (from PartialHeatPump) | Weather bus |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.MassFlowRate | m_flow (from PartialTwoPortInterface) | port_a.m_flow | Mass flow rate from port_a to port_b (m_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp (from PartialTwoPortInterface) | port_a.p - port_b.p | Pressure difference between port_a and port_b |
| Medium.ThermodynamicState | sta_a (from PartialTwoPortInterface) | if allowFlowReversal then Medium.setState_phX(port_a.p, noEvent(actualStream(port_a.h_outflow)), noEvent(actualStream(port_a.Xi_outflow))) else Medium.setState_phX(port_a.p, noEvent(inStream(port_a.h_outflow)), noEvent(inStream(port_a.Xi_outflow))) | Medium properties in port_a |
| Medium.ThermodynamicState | sta_b (from PartialTwoPortInterface) | if allowFlowReversal then Medium.setState_phX(port_b.p, noEvent(actualStream(port_b.h_outflow)), noEvent(actualStream(port_b.Xi_outflow))) else Medium.setState_phX(port_b.p, noEvent(port_b.h_outflow), noEvent(port_b.Xi_outflow)) | Medium properties in port_b |
| Fluid.Sources.Outside | air (from PartialHeatPump) | Outdoor air | |
| MediumSou.ThermodynamicState | sta_aSou (from PartialHeatPump) | MediumSou.setState_phX(port_aSou.p, noEvent(actualStream(port_aSou.h_outflow)), noEvent(actualStream(port_aSou.Xi_outflow))) | Source medium properties in port_aSou |
| MediumSou.ThermodynamicState | sta_bSou (from PartialHeatPump) | MediumSou.setState_phX(port_bSou.p, noEvent(actualStream(port_bSou.h_outflow)), noEvent(actualStream(port_bSou.Xi_outflow))) | Source medium properties in port_bSou |
| Controls.StatusEmulator | y1_actual (from PartialHeatPumpTableData2DLoadDep) | Compute heat pump status | |
| Fluid.Sensors.MassFlowRate | mChiHeaWat_flow (from PartialHeatPumpTableData2DLoadDep) | CHW/HW mass flow rate | |
| Fluid.Sensors.TemperatureTwoPort | TChiHeaWatEnt (from PartialHeatPumpTableData2DLoadDep) | CHW/HW entering temperature | |
| Fluid.Sensors.TemperatureTwoPort | TChiHeaWatLvg (from PartialHeatPumpTableData2DLoadDep) | CHW/HW leaving temperature | |
| Fluid.Sensors.TemperatureTwoPort | TSouEnt (from PartialHeatPumpTableData2DLoadDep) | Source fluid entering temperature | |
| Fluid.Sensors.TemperatureTwoPort | TSouLvg (from PartialHeatPumpTableData2DLoadDep) | Source fluid leaving temperature | |
| Buildings.Fluid.HeatPumps.ModularReversible.TableData2DLoadDep | hp (from PartialHeatPumpTableData2DLoadDep) | Heat pump | |
| Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter | mAir_flow | Air mass flow rate | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToReal | y1Rea | Convert on/off command into real | |
| Fluid.Movers.BaseClasses.IdealSource | floSou | Air flow source |
Revisions
-
August 21, 2025, by Antoine Gautier:
Refactored with load-dependent 2D table data heat pump model.
This is for #4152. -
March 29, 2024, by Antoine Gautier:
First implementation.