modelPartialHeatPumpPlant

Interface class for heat pump plant

Information

This partial class provides a standard interface for heat pump plant models.

Parameters

TypeNameDefaultDescription
Booleanhave_hrcif have_heaWat and have_chiWat then have_hrc_select else falseSet to true for plants with sidestream heat recovery chiller
Buildings.Templates.Plants.HeatPumps.Configuration.HeatPumpPlantcfgConfiguration parameters
Buildings.Templates.Plants.HeatPumps.Data.HeatPumpPlantdatDesign and operating parameters
Buildings.Templates.Plants.HeatPumps.Types.DistributiontypDisif typ == Buildings.Templates.Components.Types.HeatPump.AirToWater then typDis_select1 else typDis_select2Type of distribution system
Booleanhave_valHpInlIsoif not have_chiWat and typArrPumPri == Buildings.Templates.Components.Types.PumpArrangement.Dedicated then false else trueSet to true for isolation valves at HP inlet
Booleanhave_valHpOutIsoif not have_chiWat and typArrPumPri == Buildings.Templates.Components.Types.PumpArrangement.Dedicated then false elseif nHp == 1 then false elseif have_pumChiWatPriDed then false else trueSet to true for isolation valves at HP outlet
Buildings.Templates.Plants.HeatPumps.Types.PumpsPrimarytypPumHeaWatPriif have_heaWat then (if typDis == Buildings.Templates.Plants.HeatPumps.Types.Distribution.Constant1Variable2 then typPumHeaWatPri_select1 else Buildings.Templates.Plants.HeatPumps.Types.PumpsPrimary.Variable) else Buildings.Templates.Plants.HeatPumps.Types.PumpsPrimary.NoneType of primary HW pumps
Booleanhave_pumHeaWatPriVartypPumHeaWatPri == Buildings.Templates.Plants.HeatPumps.Types.PumpsPrimary.VariableSet to true for variable speed primary HW pumps
Buildings.Templates.Components.Types.IntegrationPointtypTanHeaWatif have_heaWat then typTanHeaWat_select else Buildings.Templates.Components.Types.IntegrationPoint.NoneSpecify if there is a HW buffer tank and where it is integrated into the system
Buildings.Templates.Plants.HeatPumps.Types.PumpsPrimarytypPumChiWatPriif have_pumChiWatPriDed or have_chiWat and typArrPumPri == Buildings.Templates.Components.Types.PumpArrangement.Headered then (if typDis == Buildings.Templates.Plants.HeatPumps.Types.Distribution.Constant1Variable2 then typPumChiWatPri_select1 else Buildings.Templates.Plants.HeatPumps.Types.PumpsPrimary.Variable) else Buildings.Templates.Plants.HeatPumps.Types.PumpsPrimary.NoneType of primary CHW pumps
Booleanhave_pumChiWatPriVartypPumChiWatPri == Buildings.Templates.Plants.HeatPumps.Types.PumpsPrimary.VariableSet to true for variable speed primary CHW pumps
Buildings.Templates.Components.Types.IntegrationPointtypTanChiWatif have_chiWat then typTanChiWat_select else Buildings.Templates.Components.Types.IntegrationPoint.NoneSpecify if there is a CHW buffer tank and where it is integrated into the system
Modelica.Units.SI.MassFlowRatemHeaWatPri_flow_nominalif have_heaWat then dat.hp.mHeaWatHp_flow_nominal*nHp else 0Primary HW mass flow rate
Modelica.Units.SI.MassFlowRatemHeaWat_flow_nominalif have_heaWat then (if typPumHeaWatSec == Buildings.Templates.Plants.HeatPumps.Types.PumpsSecondary.None then mHeaWatPri_flow_nominal else sum(dat.pumHeaWatSec.m_flow_nominal)) else 0HW mass flow rate (total, distributed to consumers)
Modelica.Units.SI.HeatFlowRatecapHea_nominalif have_heaWat then abs(dat.hp.capHeaHp_nominal)*nHp else 0Heating capacity - All units
Modelica.Units.SI.HeatFlowRateQHea_flow_nominalcapHea_nominalHeating heat flow rate - All units
Modelica.Units.SI.TemperatureTHeaWatSup_nominaldat.ctl.THeaWatSup_nominalMaximum HW supply temperature
Modelica.Units.SI.TemperatureTHeaWatRet_nominalTHeaWatSup_nominal - QHea_flow_nominal/cpHeaWat_default/mHeaWat_flow_nominalHW return temperature
Modelica.Units.SI.MassFlowRatemChiWatPri_flow_nominalif have_chiWat then dat.hp.mChiWatHp_flow_nominal*nHp else 0Primary CHW mass flow rate
Modelica.Units.SI.MassFlowRatemChiWat_flow_nominalif have_chiWat then (if typPumChiWatSec == Buildings.Templates.Plants.HeatPumps.Types.PumpsSecondary.None then mChiWatPri_flow_nominal else sum(dat.pumChiWatSec.m_flow_nominal)) else 0CHW mass flow rate - Total, distributed to consumers
Modelica.Units.SI.HeatFlowRatecapCoo_nominalif have_chiWat then abs(dat.hp.capCooHp_nominal)*nHp else 0Cooling capacity - All units
Modelica.Units.SI.HeatFlowRateQCoo_flow_nominal-capCoo_nominalCooling heat flow rate - All units
Modelica.Units.SI.TemperatureTChiWatSup_nominaldat.ctl.TChiWatSup_nominalMinimum CHW supply temperature
Modelica.Units.SI.TemperatureTSouHea_nominaldat.hp.TSouHeaHp_nominalOAT or source fluid supply temperature (evaporator entering) in heating mode - Each heat pump
Modelica.Units.SI.TemperatureTSouCoo_nominaldat.hp.TSouCooHp_nominalOAT or source fluid supply temperature (evaporator entering) in cooling mode - Each heat pump
MediumHeaWat.DensityrhoHeaWat_defaultMediumHeaWat.density(staHeaWat_default)HW default density
MediumHeaWat.SpecificHeatCapacitycpHeaWat_defaultMediumHeaWat.specificHeatCapacityCp(staHeaWat_default)HW default specific heat capacity
MediumHeaWat.ThermodynamicStatestaHeaWat_defaultMediumHeaWat.setState_pTX(T = THeaWatSup_nominal, p = MediumHeaWat.p_default, X = MediumHeaWat.X_default)HW default state
MediumChiWat.DensityrhoChiWat_defaultMediumChiWat.density(staChiWat_default)CHW default density
MediumChiWat.SpecificHeatCapacitycpChiWat_defaultMediumChiWat.specificHeatCapacityCp(staChiWat_default)CHW default specific heat capacity
MediumChiWat.ThermodynamicStatestaChiWat_defaultMediumChiWat.setState_pTX(T = TChiWatSup_nominal, p = MediumChiWat.p_default, X = MediumChiWat.X_default)CHW default state
MediumSou.DensityrhoSou_defaultMediumSou.density(staSou_default)Source fluid default density
MediumSou.SpecificHeatCapacitycpSou_defaultMediumSou.specificHeatCapacityCp(staSou_default)Source fluid default specific heat capacity
MediumSou.ThermodynamicStatestaSou_defaultMediumSou.setState_pTX(T = TSouHea_nominal, p = MediumSou.p_default, X = MediumSou.X_default)Source fluid default state
Configuration
Booleanhave_heaWattrueSet to true if the plant provides HW
Booleanhave_chiWattrueSet to true if the plant provides CHW
Booleanhave_hotWatfalseSet to true if the plant provides DHW
Booleanhave_hrc_selectfalseSet to true for plants with a sidestream heat recovery chiller
Buildings.Templates.Plants.HeatPumps.Types.DistributiontypDis_select1Buildings.Templates.Plants.HeatPumps.Types.Distribution.Constant1Variable2Type of distribution system
Buildings.Templates.Plants.HeatPumps.Types.DistributiontypDis_select2Type of distribution system
Heat pumps
Buildings.Templates.Components.Types.HeatPumptypType of heat pump
IntegernHpTotal number of heat pumps
Booleanis_revSet to true for reversible heat pumps, false for heating only
Primary loop
Buildings.Templates.Components.Types.PumpArrangementtypArrPumPriBuildings.Templates.Components.Types.PumpArrangement.DedicatedType of primary pump arrangement
Booleanhave_bypHeaWatFixhave_heaWat and (typDis == Buildings.Templates.Plants.HeatPumps.Types.Distribution.Constant1Variable2 or typDis == Buildings.Templates.Plants.HeatPumps.Types.Distribution.Variable1And2)Set to true if the HW loop has a fixed bypass
Booleanhave_valHeaWatMinByphave_heaWat and typDis == Buildings.Templates.Plants.HeatPumps.Types.Distribution.Variable1OnlySet to true if the HW loop has a minimum flow bypass valve
Buildings.Templates.Plants.HeatPumps.Types.PumpsPrimarytypPumHeaWatPri_select1Buildings.Templates.Plants.HeatPumps.Types.PumpsPrimary.VariableType of primary HW pumps
IntegernPumHeaWatPri_selectnHpNumber of primary HW pumps
IntegernPumHeaWatPriif have_heaWat then (if typArrPumPri == Buildings.Templates.Components.Types.PumpArrangement.Headered then nPumHeaWatPri_select else nHp) else 0Number of primary HW pumps
Buildings.Templates.Components.Types.IntegrationPointtypTanHeaWat_selectBuildings.Templates.Components.Types.IntegrationPoint.SupplySpecify if there is a HW buffer tank and where it is integrated into the system
Booleanhave_pumChiWatPriDed_selectfalseSet to true for plants with separate dedicated primary CHW pumps
Booleanhave_pumChiWatPriDedif have_chiWat and typArrPumPri == Buildings.Templates.Components.Types.PumpArrangement.Dedicated then have_pumChiWatPriDed_select else falseSet to true for plants with separate dedicated primary CHW pumps
Booleanhave_bypChiWatFixhave_chiWat and (typDis == Buildings.Templates.Plants.HeatPumps.Types.Distribution.Constant1Variable2 or typDis == Buildings.Templates.Plants.HeatPumps.Types.Distribution.Variable1And2)Set to true if the CHW loop has a fixed bypass
Booleanhave_valChiWatMinByphave_chiWat and typDis == Buildings.Templates.Plants.HeatPumps.Types.Distribution.Variable1OnlySet to true if the CHW loop has a minimum flow bypass valve
Buildings.Templates.Plants.HeatPumps.Types.PumpsPrimarytypPumChiWatPri_select1typPumHeaWatPriType of primary CHW pumps
IntegernPumChiWatPri_selectnHpNumber of primary CHW pumps
IntegernPumChiWatPriif have_chiWat and typArrPumPri == Buildings.Templates.Components.Types.PumpArrangement.Headered then nPumChiWatPri_select elseif have_pumChiWatPriDed then nHp else 0Number of primary CHW pumps
Buildings.Templates.Components.Types.IntegrationPointtypTanChiWat_selectBuildings.Templates.Components.Types.IntegrationPoint.ReturnSpecify if there is a CHW buffer tank and where it is integrated into the system
Secondary HW loop
Buildings.Templates.Plants.HeatPumps.Types.PumpsSecondarytypPumHeaWatSecif have_heaWat and (typDis == Buildings.Templates.Plants.HeatPumps.Types.Distribution.Constant1Variable2 or typDis == Buildings.Templates.Plants.HeatPumps.Types.Distribution.Variable1And2) then Buildings.Templates.Plants.HeatPumps.Types.PumpsSecondary.Centralized else Buildings.Templates.Plants.HeatPumps.Types.PumpsSecondary.NoneType of secondary HW pumps
IntegernPumHeaWatSec_selectnHpNumber of secondary HW pumps
IntegernPumHeaWatSecif not have_heaWat or typDis == Buildings.Templates.Plants.HeatPumps.Types.Distribution.Variable1Only then 0 else nPumHeaWatSec_selectNumber of secondary HW pumps
Secondary CHW loop
Buildings.Templates.Plants.HeatPumps.Types.PumpsSecondarytypPumChiWatSecif have_chiWat and (typDis == Buildings.Templates.Plants.HeatPumps.Types.Distribution.Constant1Variable2 or typDis == Buildings.Templates.Plants.HeatPumps.Types.Distribution.Variable1And2) then Buildings.Templates.Plants.HeatPumps.Types.PumpsSecondary.Centralized else Buildings.Templates.Plants.HeatPumps.Types.PumpsSecondary.NoneType of secondary CHW pumps
IntegernPumChiWatSec_selectnHpNumber of secondary CHW pumps
IntegernPumChiWatSecif not have_chiWat or typDis == Buildings.Templates.Plants.HeatPumps.Types.Distribution.Variable1Only then 0 else nPumChiWatSec_selectNumber of secondary CHW pumps
Nominal condition
Modelica.Units.SI.TemperatureTChiWatRet_nominalif is_rev then TChiWatSup_nominal - QCoo_flow_nominal/cpChiWat_default/mChiWat_flow_nominal else Buildings.Templates.Data.Defaults.TChiWatRetCHW return temperature - Each heat pump
Dynamics › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamicsModelica.Fluid.Types.Dynamics.FixedInitialType of energy balance: dynamic (3 initialization options) or steady state
Assumptions
BooleanallowFlowReversaltrue= true to allow flow reversal, false restricts to design direction (port_a -> port_b)
Advanced
Booleanlinearizedfalse= true, use linear relation between m_flow and dp for all valves
Advanced › Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_aHeaWatHW return
Modelica.Fluid.Interfaces.FluidPort_bport_bHeaWatHW supply
Modelica.Fluid.Interfaces.FluidPort_aport_aChiWatCHW return
Modelica.Fluid.Interfaces.FluidPort_bport_bChiWatCHW supply
Buildings.Templates.Plants.HeatPumps.Interfaces.BusbusPlant control bus
Buildings.Templates.AirHandlersFans.Interfaces.Bus[cfg.nAirHan]busAirHanAir handling unit control bus
Buildings.Templates.ZoneEquipment.Interfaces.Bus[cfg.nEquZon]busEquZonTerminal unit control bus
BoundaryConditions.WeatherData.BusbusWeaWeather bus

Components

TypeNameDefaultDescription
Buildings.Templates.Plants.HeatPumps.Components.Interfaces.PartialControllerctl
Buildings.Fluid.Sources.OutsideoutOutdoor air conditions
Buildings.Fluid.Sensors.TemperatureTOutOA temperature

Contents

NameDescription
MediumHeaWat
MediumHotWat
MediumChiWat
MediumSou
MediumAir

Revisions

  • March 29, 2024, by Antoine Gautier:
    First implementation.