modelAirToWater

Air-to-water heat pump group

Extends from Buildings.Templates.Plants.HeatPumps.Components.Interfaces.PartialHeatPumpGroup (Interface for heat pump group).

Information

This model represents a group of heat pumps.

Parameters

TypeNameDefaultDescription
Buildings.Templates.Plants.HeatPumps.Components.Data.HeatPumpGroupdat (from PartialHeatPumpGroup)Design and operating parameters
Buildings.Templates.Components.Data.HeatPump[nHp]datHp (from PartialHeatPumpGroup)Design and operating parameters - Each HP
Buildings.Templates.Components.Data.HeatPump[nPhp]datPhp (from PartialHeatPumpGroup)Design and operating parameters - Each polyvalent HP
Modelica.Units.SI.MassFlowRatemHeaWatHp_flow_nominal (from PartialHeatPumpGroup)dat.mHeaWatHp_flow_nominalDesign HW mass flow rate - Each heat pump
Modelica.Units.SI.HeatFlowRatecapHeaHp_nominal (from PartialHeatPumpGroup)dat.capHeaHp_nominalDesign heating capacity - Each heat pump
Modelica.Units.SI.HeatFlowRateQHeaHp_flow_nominal (from PartialHeatPumpGroup)abs(capHeaHp_nominal)Design heating heat flow rate - Each heat pump
Modelica.Units.SI.PressureDifferencedpHeaWatHp_nominal (from PartialHeatPumpGroup)dat.dpHeaWatHp_nominalDesign HW pressure drop - Each heat pump
Modelica.Units.SI.TemperatureTHeaWatSupHp_nominal (from PartialHeatPumpGroup)dat.THeaWatSupHp_nominalDesign HW supply temperature - Each heat pump
Modelica.Units.SI.TemperatureTHeaWatRetHp_nominal (from PartialHeatPumpGroup)dat.THeaWatRetHp_nominalDesign HW return temperature - Each heat pump
Modelica.Units.SI.PressureDifferencedpChiWatHp_nominal (from PartialHeatPumpGroup)dat.dpChiWatHp_nominalDesign CHW pressure drop - Each heat pump
Modelica.Units.SI.HeatFlowRatecapCooHp_nominal (from PartialHeatPumpGroup)dat.capCooHp_nominalDesign cooling capacity - Each heat pump
Modelica.Units.SI.HeatFlowRateQCooHp_flow_nominal (from PartialHeatPumpGroup)-abs(capCooHp_nominal)Design cooling heat flow rate - Each heat pump
Modelica.Units.SI.TemperatureTChiWatSupHp_nominal (from PartialHeatPumpGroup)dat.TChiWatSupHp_nominalDesign CHW supply temperature - Each heat pump
Modelica.Units.SI.TemperatureTChiWatRetHp_nominal (from PartialHeatPumpGroup)dat.TChiWatRetHp_nominalDesign CHW return temperature - Each heat pump
Modelica.Units.SI.MassFlowRatemSouHeaHp_flow_nominal (from PartialHeatPumpGroup)dat.mSouHeaHp_flow_nominalDesign source fluid mass flow rate in heating mode - Each heat pump
Modelica.Units.SI.PressureDifferencedpSouHeaHp_nominal (from PartialHeatPumpGroup)dat.dpSouHeaHp_nominalDesign source fluid pressure drop in heating mode - Each heat pump
Modelica.Units.SI.MassFlowRatemSouCooHp_flow_nominal (from PartialHeatPumpGroup)dat.mSouCooHp_flow_nominalDesign source fluid mass flow rate in cooling mode - Each heat pump
Modelica.Units.SI.PressureDifferencedpSouCooHp_nominal (from PartialHeatPumpGroup)dat.dpSouCooHp_nominalDesigns source fluid pressure drop in cooling mode - Each heat pump
Modelica.Units.SI.TemperatureTSouCooHp_nominal (from PartialHeatPumpGroup)dat.TSouCooHp_nominalDesign OAT or source fluid supply temperature (condenser entering) in cooling mode - Each heat pump
Modelica.Units.SI.TemperatureTSouHeaHp_nominal (from PartialHeatPumpGroup)dat.TSouHeaHp_nominalDesign OAT or source fluid supply temperature (evaporator entering) in heating mode - Each heat pump
MediumHeaWat.SpecificHeatCapacitycpHeaWat_default (from PartialHeatPumpGroup)MediumHeaWat.specificHeatCapacityCp(staHeaWat_default)HW default specific heat capacity
MediumHeaWat.ThermodynamicStatestaHeaWat_default (from PartialHeatPumpGroup)MediumHeaWat.setState_pTX(T = THeaWatSupHp_nominal, p = MediumHeaWat.p_default, X = MediumHeaWat.X_default)HW default state
MediumChiWat.SpecificHeatCapacitycpChiWat_default (from PartialHeatPumpGroup)MediumChiWat.specificHeatCapacityCp(staChiWat_default)CHW default specific heat capacity
MediumChiWat.ThermodynamicStatestaChiWat_default (from PartialHeatPumpGroup)MediumChiWat.setState_pTX(T = TChiWatSupHp_nominal, p = MediumChiWat.p_default, X = MediumChiWat.X_default)CHW default state
MediumSou.SpecificHeatCapacitycpSou_default (from PartialHeatPumpGroup)MediumSou.specificHeatCapacityCp(staSou_default)Source fluid default specific heat capacity
MediumSou.ThermodynamicStatestaSou_default (from PartialHeatPumpGroup)MediumSou.setState_pTX(T = TSouHeaHp_nominal, p = MediumSou.p_default, X = MediumSou.X_default)Source fluid default state
Configuration
Booleanhave_hp (from PartialHeatPumpGroup)trueSet to true for plants with non-reversible or reversible heat pumps
Booleanhave_php (from PartialHeatPumpGroup)falseSet to true for plants with polyvalent heat pumps
IntegernHp (from PartialHeatPumpGroup)Number of heat pumps (excluding polyvalent units)
IntegernPhp (from PartialHeatPumpGroup)0Number of polyvalent heat pumps
Buildings.Templates.Components.Types.HeatPumptypHp (from PartialHeatPumpGroup)Equipment type
Booleanis_rev (from PartialHeatPumpGroup)Set to true for reversible heat pumps, false for heating only
Nominal condition
Modelica.Units.SI.MassFlowRatemChiWatHp_flow_nominal (from PartialHeatPumpGroup)dat.mChiWatHp_flow_nominalDesign CHW mass flow rate - Each heat pump
Dynamics › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamics (from PartialHeatPumpGroup)Modelica.Fluid.Types.Dynamics.DynamicFreeInitialType of energy balance: dynamic (3 initialization options) or steady state
Assumptions
BooleanallowFlowReversal (from PartialHeatPumpGroup)trueLoad side flow reversal: false to simplify equations, assuming, but not enforcing, no flow reversal
BooleanallowFlowReversalSou (from PartialHeatPumpGroup)trueSource side flow reversal: false to simplify equations, assuming, but not enforcing, no flow reversal
Booleanhave_dpChiHeaWat (from PartialHeatPumpGroup)trueSet to true for CHW/HW pressure drop computed by this model, false for external computation
Booleanhave_dpSou (from PartialHeatPumpGroup)trueSet to true for source fluid pressure drop computed by this model, false for external computation
Advanced
String[nHp + nPhp]idEqu (from PartialHeatPumpGroup)(if typHp == Buildings.Templates.Components.Types.HeatPump.AirToWater then "AW" elseif typHp == Buildings.Templates.Components.Types.HeatPump.WaterToWater then "WW" else "") .+ {if i > nHp then "HR-" + String(i - nHp) else "HP-" + String(i) for i in 1:nHp + nPhp}Equipment identifier
Advanced › Diagnostics
Booleanshow_T (from PartialHeatPumpGroup)false= true, if actual temperature at port is computed

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPorts_b[nHp]ports_bChiHeaWatHp (from PartialHeatPumpGroup)CHW/HW supply – Heat pumps
Modelica.Fluid.Interfaces.FluidPorts_a[nHp]ports_aChiHeaWatHp (from PartialHeatPumpGroup)CHW/HW return – Heat pumps
Modelica.Fluid.Interfaces.FluidPorts_b[nHp + nPhp]ports_bSou (from PartialHeatPumpGroup)Source fluid return (from heat pumps)
Modelica.Fluid.Interfaces.FluidPorts_a[nHp + nPhp]ports_aSou (from PartialHeatPumpGroup)Source fluid supply (to heat pumps)
Modelica.Fluid.Interfaces.FluidPorts_b[nPhp]ports_bHeaWatPhp (from PartialHeatPumpGroup)HW supply – Polyvalent heat pumps
Modelica.Fluid.Interfaces.FluidPorts_b[nPhp]ports_bChiWatPhp (from PartialHeatPumpGroup)CHW supply – Polyvalent heat pumps
Modelica.Fluid.Interfaces.FluidPorts_a[nPhp]ports_aHeaWatPhp (from PartialHeatPumpGroup)HW return – Polyvalent heat pumps
Modelica.Fluid.Interfaces.FluidPorts_a[nPhp]ports_aChiWatPhp (from PartialHeatPumpGroup)CHW return – Polyvalent heat pumps
Buildings.Templates.Plants.HeatPumps.Interfaces.Busbus (from PartialHeatPumpGroup)Plant control bus
Buildings.BoundaryConditions.WeatherData.BusbusWea (from PartialHeatPumpGroup)Weather bus

Components

TypeNameDefaultDescription
MediumSou.ThermodynamicState[nHp + nPhp]sta_aSou (from PartialHeatPumpGroup)MediumSou.setState_phX(ports_aSou.p, noEvent(actualStream(ports_aSou.h_outflow)), noEvent(actualStream(ports_aSou.Xi_outflow)))Source medium properties in port_aSou
MediumSou.ThermodynamicState[nHp + nPhp]sta_bSou (from PartialHeatPumpGroup)MediumSou.setState_phX(ports_bSou.p, noEvent(actualStream(ports_bSou.h_outflow)), noEvent(actualStream(ports_bSou.Xi_outflow)))Source medium properties in port_bSou
MediumHeaWat.ThermodynamicState[nHp]sta_aChiHeaWatHp (from PartialHeatPumpGroup)MediumHeaWat.setState_phX(ports_aChiHeaWatHp.p, noEvent(actualStream(ports_aChiHeaWatHp.h_outflow)), noEvent(actualStream(ports_aChiHeaWatHp.Xi_outflow)))Source medium properties in port_aChiHeaWatHp
MediumHeaWat.ThermodynamicState[nHp]sta_bChiHeaWatHp (from PartialHeatPumpGroup)MediumHeaWat.setState_phX(ports_bChiHeaWatHp.p, noEvent(actualStream(ports_bChiHeaWatHp.h_outflow)), noEvent(actualStream(ports_bChiHeaWatHp.Xi_outflow)))Source medium properties in port_bChiHeaWatHp
MediumHeaWat.ThermodynamicState[nPhp]sta_aHeaWatPhp (from PartialHeatPumpGroup)MediumHeaWat.setState_phX(ports_aHeaWatPhp.p, noEvent(actualStream(ports_aHeaWatPhp.h_outflow)), noEvent(actualStream(ports_aHeaWatPhp.Xi_outflow)))Source medium properties in port_aHeaWatPhp
MediumHeaWat.ThermodynamicState[nPhp]sta_bHeaWatPhp (from PartialHeatPumpGroup)MediumHeaWat.setState_phX(ports_bHeaWatPhp.p, noEvent(actualStream(ports_bHeaWatPhp.h_outflow)), noEvent(actualStream(ports_bHeaWatPhp.Xi_outflow)))Source medium properties in port_bHeaWatPhp
MediumChiWat.ThermodynamicState[nPhp]sta_aChiWatPhp (from PartialHeatPumpGroup)MediumChiWat.setState_phX(ports_aChiWatPhp.p, noEvent(actualStream(ports_aChiWatPhp.h_outflow)), noEvent(actualStream(ports_aChiWatPhp.Xi_outflow)))Source medium properties in port_aChiWatPhp
MediumChiWat.ThermodynamicState[nPhp]sta_bChiWatPhp (from PartialHeatPumpGroup)MediumChiWat.setState_phX(ports_bChiWatPhp.p, noEvent(actualStream(ports_bChiWatPhp.h_outflow)), noEvent(actualStream(ports_bChiWatPhp.Xi_outflow)))Source medium properties in port_bChiWatPhp
Buildings.Templates.Components.HeatPumps.AirToWater[nHp]hpHeat pumps
Buildings.Templates.Components.HeatPumps.AirToWater[nPhp]phpPolyvalent heat pumps

Revisions

  • July 10, 2026, by Antoine Gautier:
    Refactored to support polyvalent heat pumps.
    This is for #4512.
  • 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.