Buildings.Templates.Plants.HeatPumps.Data

Records for design and operating parameters

Information

This package provides records for design and operating parameters.

Extends from Modelica.Icons.MaterialPropertiesPackage (Icon for package containing property classes).

Package Content

Name Description
Buildings.Templates.Plants.HeatPumps.Data.HeatPumpPlant HeatPumpPlant Record for heat pump plant

Buildings.Templates.Plants.HeatPumps.Data.HeatPumpPlant Buildings.Templates.Plants.HeatPumps.Data.HeatPumpPlant

Record for heat pump plant

Information

This record provides the set of sizing and operating parameters for the heat pump plant models within Buildings.Templates.Plants.HeatPumps.

Most of the parameters should be assigned through the sub-record dedicated to the controller. All parameters that are also needed to parameterize other plant components are propagated from the controller sub-record to the corresponding equipment sub-records. Note that those parameter bindings are not final so they may be overwritten in case a component is parameterized at nominal conditions that differ from the design conditions specified in the controller sub-record.

Only identical heat pumps are currently supported.

The heat pump performance data are provided via the subrecords hp.perHeaHp and hp.perCooHp for the heating mode and the cooling mode, respectively. For the required format of the performance data files, please refer to the documentation of the block Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.BaseClasses.TableData2DLoadDep.

Extends from Modelica.Icons.Record (Icon for records).

Contents

TypeNameDefaultDescription
HeatPumpPlantcfg Configuration parameters
Controls
Controllerctlctl(final cfg=cfg, VChiWatHp...Controller
Heat pumps and polyvalent units
HeatPumpGrouphphp(final have_hp=cfg.have_hp...Nominal conditions and performance data
PressureDifferencedpBalHeaWatHp_nominal0HP HW balancing valve pressure drop at design HW flow [Pa]
PressureDifferencedpBalChiWatHp_nominal0HP CHW balancing valve pressure drop at design CHW flow [Pa]
PressureDifferencedpBalHeaWatPhp_nominal0Polyvalent unit HW balancing valve pressure drop at design HW flow [Pa]
PressureDifferencedpBalChiWatPhp_nominal0Polyvalent unit CHW balancing valve pressure drop at design CHW flow [Pa]
Primary HW loop
PumpMultiplepumHeaWatPripumHeaWatPri(final nPum=cfg....Primary HW pumps
PressureDifferencedpValCheHeaWat_nominal[cfg.nPumHeaWatPri]fill(Buildings.Templates.Dat...Primary (HW or common HW and CHW) pump check valve pressure drop at design flow rate (selection conditions) – Each unit [Pa]
ValvevalHeaWatMinBypvalHeaWatMinByp(final typ=Bu...HW minimum flow bypass valve
VolumeVTanHeaWatif cfg.have_heaWat then 4*60...Volume of HW buffer tank [m3]
Secondary HW loop
PumpMultiplepumHeaWatSecpumHeaWatSec(final nPum=cfg....Secondary HW pumps
Primary CHW loop
PumpMultiplepumChiWatPripumChiWatPri(final nPum=cfg....Primary CHW pumps
PressureDifferencedpValCheChiWat_nominal[cfg.nPumChiWatPri]fill(Buildings.Templates.Dat...Primary CHW pump check valve pressure drop at design flow rate (selection conditions) – Each unit [Pa]
ValvevalChiWatMinBypvalChiWatMinByp(final typ=Bu...CHW minimum flow bypass valve
VolumeVTanChiWatif cfg.have_chiWat then 2*60...Volume of HW buffer tank [m3]
Secondary CHW loop
PumpMultiplepumChiWatSecpumChiWatSec(final nPum=cfg....Secondary CHW pumps
Sidetream heat recovery chiller
Chillerhrchrc(typ=if cfg.have_hrc then...Chiller
PumpSinglepumChiWatHrcpumChiWatHrc(final rho_defau...HRC CHW pump
PumpSinglepumHeaWatHrcpumHeaWatHrc(final rho_defau...HRC HW pump
Advanced
Stringid""System tag

Modelica definition

record HeatPumpPlant "Record for heat pump plant" extends Modelica.Icons.Record; // Generic parameter Buildings.Templates.Plants.HeatPumps.Configuration.HeatPumpPlant cfg "Configuration parameters"; parameter String id = "" "System tag"; parameter Buildings.Templates.Plants.HeatPumps.Components.Data.Controller ctl( final cfg=cfg, VChiWatHp_flow_nominal=hp.mChiWatHp_flow_nominal / cfg.rhoChiWat_default, VChiWatPhp_flow_nominal=hp.mChiWatPhp_flow_nominal / cfg.rhoChiWat_default, VHeaWatHp_flow_nominal=hp.mHeaWatHp_flow_nominal / cfg.rhoHeaWat_default, VHeaWatPhp_flow_nominal=hp.mHeaWatPhp_flow_nominal / cfg.rhoHeaWat_default) "Controller"; parameter Buildings.Templates.Plants.HeatPumps.Components.Data.HeatPumpGroup hp( final have_hp=cfg.have_hp, final have_php=cfg.have_php, final typHp=cfg.typHp, final is_rev=cfg.is_rev, final cpHeaWat_default=cfg.cpHeaWat_default, final cpChiWatPhp_default=cfg.cpChiWat_default, final cpSou_default=cfg.cpSou_default, capCooHp_nominal=ctl.capCooHp_nominal, capCooPhp_nominal=ctl.capCooPhp_nominal, capCooShcPhp_nominal=ctl.capCooShcPhp_nominal, capHeaHp_nominal=ctl.capHeaHp_nominal, capHeaPhp_nominal=ctl.capHeaPhp_nominal, capHeaShcPhp_nominal=ctl.capHeaShcPhp_nominal, TChiWatSupHp_nominal=ctl.TChiWatSup_nominal, TChiWatSupPhp_nominal=ctl.TChiWatSup_nominal, THeaWatSupHp_nominal=ctl.THeaWatSup_nominal, THeaWatSupPhp_nominal=ctl.THeaWatSup_nominal) "Nominal conditions and performance data"; parameter Modelica.Units.SI.PressureDifference dpBalHeaWatHp_nominal( final min=0, start=0) = 0 "HP HW balancing valve pressure drop at design HW flow"; parameter Modelica.Units.SI.PressureDifference dpBalChiWatHp_nominal( final min=0, start=0) = 0 "HP CHW balancing valve pressure drop at design CHW flow"; parameter Modelica.Units.SI.PressureDifference dpBalHeaWatPhp_nominal( final min=0, start=0) = 0 "Polyvalent unit HW balancing valve pressure drop at design HW flow"; parameter Modelica.Units.SI.PressureDifference dpBalChiWatPhp_nominal( final min=0, start=0) = 0 "Polyvalent unit CHW balancing valve pressure drop at design CHW flow"; // HW loop final parameter Modelica.Units.SI.MassFlowRate mPumHeaWatPriDed_flow_nominal[cfg.nPumHeaWatPri] = {if i <= cfg.nHp then (if cfg.have_pumChiWatPriDedHp then hp.mHeaWatHp_flow_nominal else max(hp.mHeaWatHp_flow_nominal, hp.mChiWatHp_flow_nominal)) else hp.mHeaWatPhp_flow_nominal for i in 1:cfg.nPumHeaWatPri} "Dedicated primary HW pump mass flow rate"; parameter Buildings.Templates.Components.Data.PumpMultiple pumHeaWatPri( final nPum=cfg.nPumHeaWatPri, final rho_default=cfg.rhoHeaWat_default, final typ=if cfg.typPumHeaWatPri <> Buildings.Templates.Plants.HeatPumps.Types.PumpsPrimary.None then Buildings.Templates.Components.Types.Pump.Multiple else Buildings.Templates.Components.Types.Pump.None, m_flow_nominal=if cfg.typArrPumPri == Buildings.Templates.Components.Types.PumpArrangement.Dedicated then mPumHeaWatPriDed_flow_nominal else fill( (cfg.nHp * hp.mHeaWatHp_flow_nominal + cfg.nPhp * hp.mHeaWatPhp_flow_nominal) / max(cfg.nPumHeaWatPri, 1), cfg.nPumHeaWatPri)) "Primary HW pumps"; parameter Modelica.Units.SI.PressureDifference dpValCheHeaWat_nominal[cfg.nPumHeaWatPri]( each start=0) = fill( Buildings.Templates.Data.Defaults.dpValChe, cfg.nPumHeaWatPri) "Primary (HW or common HW and CHW) pump check valve pressure drop at design flow rate (selection conditions) – Each unit"; parameter Buildings.Templates.Components.Data.Valve valHeaWatMinByp( final typ=Buildings.Templates.Components.Types.Valve.TwoWayModulating, m_flow_nominal=if cfg.have_valHeaWatMinByp then max(ctl.VHeaWatHp_flow_min, ctl.VHeaWatPhp_flow_min) * cfg.rhoHeaWat_default else max(hp.mHeaWatHp_flow_nominal, hp.mHeaWatPhp_flow_nominal), dpValve_nominal=Buildings.Templates.Data.Defaults.dpValBypMin) "HW minimum flow bypass valve"; parameter Modelica.Units.SI.Volume VTanHeaWat(start=0) = if cfg.have_heaWat then 4 * 60 * (cfg.nHp * hp.mHeaWatHp_flow_nominal + cfg.nPhp * hp.mHeaWatPhp_flow_nominal) / cfg.rhoHeaWat_default else 0 "Volume of HW buffer tank"; parameter Buildings.Templates.Components.Data.PumpMultiple pumHeaWatSec( final nPum=cfg.nPumHeaWatSec, final rho_default=cfg.rhoHeaWat_default, final typ=if cfg.typPumHeaWatSec == Buildings.Templates.Plants.HeatPumps.Types.PumpsSecondary.Centralized then Buildings.Templates.Components.Types.Pump.Multiple else Buildings.Templates.Components.Types.Pump.None, m_flow_nominal=fill( ctl.VHeaWatSec_flow_nominal * cfg.rhoHeaWat_default / max( 1, cfg.nPumHeaWatSec), cfg.nPumHeaWatSec)) "Secondary HW pumps"; // CHW loop final parameter Modelica.Units.SI.MassFlowRate mPumChiWatPriDed_flow_nominal[cfg.nPumChiWatPri] = {if i >= cfg.nPumChiWatPri - cfg.nPhp + 1 then hp.mChiWatPhp_flow_nominal else hp.mChiWatHp_flow_nominal for i in 1:cfg.nPumChiWatPri} "Dedicated primary CHW pump mass flow rate"; parameter Buildings.Templates.Components.Data.PumpMultiple pumChiWatPri( final nPum=cfg.nPumChiWatPri, final rho_default=cfg.rhoChiWat_default, final typ=if cfg.typPumChiWatPri <> Buildings.Templates.Plants.HeatPumps.Types.PumpsPrimary.None then Buildings.Templates.Components.Types.Pump.Multiple else Buildings.Templates.Components.Types.Pump.None, m_flow_nominal=if cfg.typArrPumPri == Buildings.Templates.Components.Types.PumpArrangement.Dedicated then mPumChiWatPriDed_flow_nominal else fill( (hp.mChiWatHp_flow_nominal * cfg.nHp + hp.mChiWatPhp_flow_nominal * cfg.nPhp) / max(cfg.nPumChiWatPri, 1), cfg.nPumChiWatPri)) "Primary CHW pumps"; parameter Modelica.Units.SI.PressureDifference dpValCheChiWat_nominal[cfg.nPumChiWatPri]( each start=0) = fill( Buildings.Templates.Data.Defaults.dpValChe, cfg.nPumChiWatPri) "Primary CHW pump check valve pressure drop at design flow rate (selection conditions) – Each unit"; parameter Buildings.Templates.Components.Data.Valve valChiWatMinByp( final typ=Buildings.Templates.Components.Types.Valve.TwoWayModulating, m_flow_nominal=if cfg.have_valChiWatMinByp then max(ctl.VChiWatHp_flow_min, ctl.VChiWatPhp_flow_min) * cfg.rhoChiWat_default else max(hp.mChiWatHp_flow_nominal, hp.mChiWatPhp_flow_nominal), dpValve_nominal=Buildings.Templates.Data.Defaults.dpValBypMin) "CHW minimum flow bypass valve"; parameter Modelica.Units.SI.Volume VTanChiWat(start=0) = if cfg.have_chiWat then 2 * 60 * (cfg.nHp * hp.mChiWatHp_flow_nominal + cfg.nPhp * hp.mChiWatPhp_flow_nominal) / cfg.rhoChiWat_default else 0 "Volume of HW buffer tank"; parameter Buildings.Templates.Components.Data.PumpMultiple pumChiWatSec( final nPum=cfg.nPumChiWatSec, final rho_default=cfg.rhoChiWat_default, final typ=if cfg.typPumChiWatSec == Buildings.Templates.Plants.HeatPumps.Types.PumpsSecondary.Centralized then Buildings.Templates.Components.Types.Pump.Multiple else Buildings.Templates.Components.Types.Pump.None, m_flow_nominal=fill( ctl.VChiWatSec_flow_nominal * cfg.rhoChiWat_default / max( 1, cfg.nPumChiWatSec), cfg.nPumChiWatSec)) "Secondary CHW pumps"; // Sidestream HRC parameter Buildings.Templates.Components.Data.Chiller hrc( typ=if cfg.have_hrc then Buildings.Templates.Components.Types.Chiller.WaterCooled else Buildings.Templates.Components.Types.Chiller.None, TChiWatSup_nominal=ctl.TChiWatSup_nominal) "Chiller"; parameter Buildings.Templates.Components.Data.PumpSingle pumChiWatHrc( final rho_default=cfg.rhoChiWat_default, final typ=if cfg.have_hrc then Buildings.Templates.Components.Types.Pump.Single else Buildings.Templates.Components.Types.Pump.None, m_flow_nominal=hrc.mChiWat_flow_nominal, dp_nominal=hrc.dpChiWat_nominal) "HRC CHW pump"; parameter Buildings.Templates.Components.Data.PumpSingle pumHeaWatHrc( final rho_default=cfg.rhoHeaWat_default, final typ=if cfg.have_hrc then Buildings.Templates.Components.Types.Pump.Single else Buildings.Templates.Components.Types.Pump.None, m_flow_nominal=hrc.mCon_flow_nominal, dp_nominal=hrc.dpCon_nominal) "HRC HW pump"; end HeatPumpPlant;