Buildings.Templates.Plants.HeatPumps.Components.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 |
---|---|
Controller | Record for plant controller |
HeatPumpGroup |
Buildings.Templates.Plants.HeatPumps.Components.Data.Controller
Record for plant controller
Information
This record provides the set of parameters for heat pump plant controllers that can be found within Buildings.Templates.Plants.HeatPumps.Components.Controls.
Extends from Modelica.Icons.Record (Icon for records).
Parameters
Type | Name | Default | Description |
---|---|---|---|
HeatPumpPlant | cfg | Plant configuration parameters | |
Temperature setpoints | |||
Temperature | THeaWatSup_nominal | Maximum HW supply temperature setpoint (design HW supply temperature) [K] | |
Real | THeaWatSupSet_min | Minimum value to which the HW supply temperature can be reset [K] | |
Temperature | TOutHeaWatLck | Buildings.Templates.Data.Def... | Outdoor air lockout temperature above which the HW loop is prevented from operating [K] |
Temperature | TChiWatSup_nominal | Minimum CHW supply temperature setpoint (design CHW supply temperature) [K] | |
Temperature | TChiWatSupSet_max | Maximum value to which the CHW supply temperature can be reset [K] | |
Temperature | TOutChiWatLck | Buildings.Templates.Data.Def... | Outdoor air lockout temperature below which the CHW loop is prevented from operating [K] |
Heat pump flow setpoints | |||
VolumeFlowRate | VHeaWatHp_flow_nominal | Design HW volume flow rate - Each heat pump [m3/s] | |
VolumeFlowRate | VChiWatHp_flow_nominal | Design CHW volume flow rate - Each heat pump [m3/s] | |
Capacity | |||
HeatFlowRate | capHeaHp_nominal | Design heating capacity - Each heat pump [W] | |
VolumeFlowRate | VHeaWatSec_flow_nominal | Design secondary HW volume flow rate [m3/s] | |
HeatFlowRate | capCooHp_nominal | Design cooling capacity - Each heat pump [W] | |
VolumeFlowRate | VChiWatSec_flow_nominal | Design secondary CHW volume flow rate [m3/s] | |
Information provided by designer | |||
PressureDifference | dpHeaWatRemSet_min | 5*6894 | Minimum value to which the HW differential pressure can be reset - Remote sensor [Pa] |
PressureDifference | dpChiWatRemSet_min | 5*6894 | Minimum value to which the CHW differential pressure can be reset - Remote sensor [Pa] |
Information provided by testing, adjusting, and balancing contractor | |||
PressureDifference | dpHeaWatRemSet_max[:] | Maximum HW differential pressure setpoint - Remote sensor [Pa] | |
Real | yPumHeaWatPriSet | Primary pump speed providing design heat pump flow in heating mode [1] | |
Real | yPumHeaWatSec_min | 0.1 | Secondary HW pump minimum speed [1] |
PressureDifference | dpChiWatRemSet_max[:] | Maximum CHW differential pressure setpoint - Remote sensor [Pa] | |
Real | yPumChiWatPriSet | Primary pump speed providing design heat pump flow in cooling mode [1] | |
Real | yPumChiWatSec_min | 0.1 | Secondary CHW pump minimum speed [1] |
Plant enable | |||
Real | schHea[:, 2] | [0, 1; 24*3600, 1] | Heating mode enable schedule |
Real | schCoo[:, 2] | [0, 1; 24*3600, 1] | Cooling mode enable schedule |
Equipment staging and rotation | |||
Real | staEqu[:, :] | Staging matrix – Equipment required for each stage [1] | |
Real | plrSta | 0.9 | Staging part load ratio [1] |
Modelica definition
record Controller
"Record for plant controller"
extends Modelica.Icons.Record;
parameter Buildings.Templates.Plants.HeatPumps.Configuration.HeatPumpPlant cfg
"Plant configuration parameters";
// HW loop
// RFE: Declare array parameters for unequally sized units.
// The current implementation only supports equally sized units.
parameter Modelica.Units.SI.Temperature THeaWatSup_nominal(
displayUnit="degC",
start=Buildings.Templates.Data.Defaults.THeaWatSupMed,
final min=273.15)
"Maximum HW supply temperature setpoint (design HW supply temperature)";
parameter Real THeaWatSupSet_min(
final min=273.15,
start=25 + 273.15,
final unit="K",
displayUnit="degC")
"Minimum value to which the HW supply temperature can be reset";
parameter Modelica.Units.SI.Temperature TOutHeaWatLck(
displayUnit="degC",
final min=273.15)=Buildings.Templates.Data.Defaults.TOutHeaWatLck
"Outdoor air lockout temperature above which the HW loop is prevented from operating";
parameter Modelica.Units.SI.VolumeFlowRate VHeaWatHp_flow_nominal(
start=0.1,
displayUnit="L/s",
final min=0)
"Design HW volume flow rate - Each heat pump";
parameter Modelica.Units.SI.HeatFlowRate capHeaHp_nominal(
start=1,
final min=0)
"Design heating capacity - Each heat pump";
parameter Modelica.Units.SI.VolumeFlowRate VHeaWatSec_flow_nominal(
start=0.01,
displayUnit="L/s",
final min=0)
"Design secondary HW volume flow rate";
parameter Modelica.Units.SI.PressureDifference dpHeaWatRemSet_min(
final min=0,
start=5 * 6894)=5 * 6894
"Minimum value to which the HW differential pressure can be reset - Remote sensor";
// HACK(AntoineGautier):
// Using cfg.nSenDpHeaWatRem for size(dpHeaWatRemSet_max, 1) is not supported by Dymola which fails to "evaluate and check the size declaration".
// So the size is kept unassigned.
// This requires explicitely providing a value with OCT, even if enable=false.
parameter Modelica.Units.SI.PressureDifference dpHeaWatRemSet_max[:](
start=fill(Buildings.Templates.Data.Defaults.dpHeaWatRemSet_max, cfg.nSenDpHeaWatRem),
final min=fill(0, cfg.nSenDpHeaWatRem))
"Maximum HW differential pressure setpoint - Remote sensor";
parameter Real yPumHeaWatPriSet(
final max=1,
final min=0,
start=1,
final unit="1")
"Primary pump speed providing design heat pump flow in heating mode";
parameter Real yPumHeaWatSec_min(
final unit="1",
final min=0,
final max=1)=0.1
"Secondary HW pump minimum speed";
// CHW loop
parameter Modelica.Units.SI.Temperature TChiWatSup_nominal(
displayUnit="degC",
start=Buildings.Templates.Data.Defaults.TChiWatSup,
final min=273.15)
"Minimum CHW supply temperature setpoint (design CHW supply temperature)";
parameter Modelica.Units.SI.Temperature TChiWatSupSet_max(
final min=273.15,
start=15 + 273.15,
displayUnit="degC")
"Maximum value to which the CHW supply temperature can be reset";
parameter Modelica.Units.SI.Temperature TOutChiWatLck(
displayUnit="degC",
final min=273.15)=Buildings.Templates.Data.Defaults.TOutChiWatLck
"Outdoor air lockout temperature below which the CHW loop is prevented from operating";
parameter Modelica.Units.SI.VolumeFlowRate VChiWatHp_flow_nominal(
start=0.1,
displayUnit="L/s",
final min=0)
"Design CHW volume flow rate - Each heat pump";
parameter Modelica.Units.SI.HeatFlowRate capCooHp_nominal(
start=1,
final min=0)
"Design cooling capacity - Each heat pump";
parameter Modelica.Units.SI.VolumeFlowRate VChiWatSec_flow_nominal(
start=0.01,
displayUnit="L/s",
final min=0)
"Design secondary CHW volume flow rate";
parameter Modelica.Units.SI.PressureDifference dpChiWatRemSet_min(
final min=0,
start=5 * 6894)=5 * 6894
"Minimum value to which the CHW differential pressure can be reset - Remote sensor";
// HACK(AntoineGautier):
// Using cfg.nSenDpChiWatRem for size(dpChiWatRemSet_max, 1) is not supported by Dymola which fails to "evaluate and check the size declaration".
// So the size is kept unassigned.
// This requires explicitely providing a value with OCT, even if enable=false.
parameter Modelica.Units.SI.PressureDifference dpChiWatRemSet_max[:](
start=fill(Buildings.Templates.Data.Defaults.dpChiWatRemSet_max, cfg.nSenDpChiWatRem),
final min=fill(0, cfg.nSenDpChiWatRem))
"Maximum CHW differential pressure setpoint - Remote sensor";
parameter Real yPumChiWatPriSet(
final max=1,
final min=0,
start=1,
final unit="1")
"Primary pump speed providing design heat pump flow in cooling mode";
parameter Real yPumChiWatSec_min(
final unit="1",
final min=0,
final max=1)=0.1
"Secondary CHW pump minimum speed";
parameter Real schHea[:, 2](start=[
0, 1;
24 * 3600, 1])=[
0, 1;
24 * 3600, 1]
"Heating mode enable schedule";
parameter Real schCoo[:, 2](start=[
0, 1;
24 * 3600, 1])=[
0, 1;
24 * 3600, 1]
"Cooling mode enable schedule";
// HACK(AntoineGautier):
// Using cfg.nHp for size(staEqu, 2) is not supported by Dymola which fails to "evaluate and check the size declaration".
// So the size is kept unassigned and a check is performed at initialization.
// Furthermore, a start value cannot be provided as the number of plant stages is not known beforehand.
// If provided, there will likely be a mismatch between assigned value and start value.
// Therefore, no enable annotation can be used.
parameter Real staEqu[:, :](
each final max=1,
each final min=0,
each final unit="1")
"Staging matrix – Equipment required for each stage";
parameter Real plrSta(
final max=1,
final min=0,
start=0.9,
final unit="1")=0.9
"Staging part load ratio";
end Controller;
Buildings.Templates.Plants.HeatPumps.Components.Data.HeatPumpGroup
Information
This record provides the set of parameters for heat pump group models that can be found within Buildings.Templates.Plants.HeatPumps.Components.HeatPumpGroups.
Only identical heat pumps are currently supported.
Extends from Modelica.Icons.Record (Icon for records).
Parameters
Type | Name | Default | Description |
---|---|---|---|
Generic | perFitHp | perFitHp(dpHeaLoa_nominal=dp... | Performance data - Equation fit model - Each heat pump |
Configuration | |||
Integer | nHp | Number of heat pumps | |
HeatPump | typ | Equipment type | |
Boolean | is_rev | Set to true for reversible heat pumps, false for heating only | |
HeatPumpModel | typMod | Type of heat pump model | |
SpecificHeatCapacity | cpHeaWat_default | Buildings.Utilities.Psychrom... | HW default specific heat capacity [J/(kg.K)] |
SpecificHeatCapacity | cpSou_default | if typ == Buildings.Template... | Source fluid default specific heat capacity [J/(kg.K)] |
Nominal condition | |||
MassFlowRate | mHeaWatHp_flow_nominal | HW mass flow rate - Each heat pump [kg/s] | |
PressureDifference | dpHeaWatHp_nominal | Pressure drop at design HW mass flow rate - Each heat pump [Pa] | |
HeatFlowRate | capHeaHp_nominal | Heating capacity - Each heat pump [W] | |
Temperature | THeaWatSupHp_nominal | (Highest) HW supply temperature - Each heat pump [K] | |
MassFlowRate | mChiWatHp_flow_nominal | CHW mass flow rate - Each heat pump [kg/s] | |
HeatFlowRate | capCooHp_nominal | Cooling capacity - Each heat pump [W] | |
Temperature | TChiWatSupHp_nominal | (Lowest) CHW supply temperature - Each heat pump [K] | |
Temperature | TSouHeaHp_nominal | OAT or source fluid supply temperature (evaporator entering) in heating mode - Each heat pump [K] | |
MassFlowRate | mSouWwHeaHp_flow_nominal | Source fluid mass flow rate in heating mode - Each heat pump [kg/s] | |
PressureDifference | dpSouWwHeaHp_nominal | Source fluid pressure drop in heating mode - Each heat pump [Pa] | |
Temperature | TSouCooHp_nominal | OAT or source fluid supply temperature (condenser entering) in cooling mode - Each heat pump [K] | |
MassFlowRate | mSouWwCooHp_flow_nominal | Source fluid mass flow rate in cooling mode - Each heat pump [kg/s] |
Modelica definition
record HeatPumpGroup
extends Modelica.Icons.Record;
parameter Integer nHp(
final min=1)
"Number of heat pumps";
parameter Buildings.Templates.Components.Types.HeatPump typ
"Equipment type";
parameter Boolean is_rev
"Set to true for reversible heat pumps, false for heating only";
parameter Buildings.Templates.Components.Types.HeatPumpModel typMod
"Type of heat pump model";
// Default fluid properties
parameter Modelica.Units.SI.SpecificHeatCapacity cpHeaWat_default=Buildings.Utilities.Psychrometrics.Constants.cpWatLiq
"HW default specific heat capacity";
/*
cpChiWat_default is for internal use only.
It is the same as cpChiWat_default for reversible HP.
Non-reversible HP that can be controlled to produce either HW or CHW
shall be modeled with chiller components (as a chiller/heater).
*/
final parameter Modelica.Units.SI.SpecificHeatCapacity cpChiWat_default=
cpHeaWat_default
"CHW default specific heat capacity";
parameter Modelica.Units.SI.SpecificHeatCapacity cpSou_default=if typ ==
Buildings.Templates.Components.Types.HeatPump.AirToWater then Buildings.Utilities.Psychrometrics.Constants.cpAir
else Buildings.Utilities.Psychrometrics.Constants.cpWatLiq
"Source fluid default specific heat capacity";
// RFE: Declare array parameters for unequally sized units.
// The current implementation only supports equally sized units.
parameter Modelica.Units.SI.MassFlowRate mHeaWatHp_flow_nominal(
final min=0)
"HW mass flow rate - Each heat pump";
parameter Modelica.Units.SI.PressureDifference dpHeaWatHp_nominal(
min=0,
start=Buildings.Templates.Data.Defaults.dpChiWatChi)
"Pressure drop at design HW mass flow rate - Each heat pump";
parameter Modelica.Units.SI.HeatFlowRate capHeaHp_nominal
"Heating capacity - Each heat pump";
parameter Modelica.Units.SI.Temperature THeaWatSupHp_nominal(
final min=273.15)
"(Highest) HW supply temperature - Each heat pump";
final parameter Modelica.Units.SI.Temperature THeaWatRetHp_nominal=
THeaWatSupHp_nominal - abs(capHeaHp_nominal) / cpHeaWat_default /
mHeaWatHp_flow_nominal
"HW return temperature - Each heat pump";
parameter Modelica.Units.SI.MassFlowRate mChiWatHp_flow_nominal(
start=0,
final min=0)
"CHW mass flow rate - Each heat pump";
final parameter Modelica.Units.SI.PressureDifference dpChiWatHp_nominal=
dpHeaWatHp_nominal *(mChiWatHp_flow_nominal / mHeaWatHp_flow_nominal) ^ 2
"Pressure drop at design CHW mass flow rate - Each heat pump";
parameter Modelica.Units.SI.HeatFlowRate capCooHp_nominal(
start=0)
"Cooling capacity - Each heat pump";
parameter Modelica.Units.SI.Temperature TChiWatSupHp_nominal(
start=Buildings.Templates.Data.Defaults.TChiWatSup,
final min=253.15)
"(Lowest) CHW supply temperature - Each heat pump";
final parameter Modelica.Units.SI.Temperature TChiWatRetHp_nominal=if is_rev
then TChiWatSupHp_nominal + abs(capCooHp_nominal) / cpChiWat_default /
mChiWatHp_flow_nominal else Buildings.Templates.Data.Defaults.TChiWatRet
"CHW return temperature - Each heat pump";
parameter Modelica.Units.SI.Temperature TSouHeaHp_nominal(
start=Buildings.Templates.Data.Defaults.TOutHpHeaLow,
final min=220)
"OAT or source fluid supply temperature (evaporator entering) in heating mode - Each heat pump";
parameter Modelica.Units.SI.MassFlowRate mSouWwHeaHp_flow_nominal(
start=mHeaWatHp_flow_nominal,
final min=0)
"Source fluid mass flow rate in heating mode - Each heat pump";
parameter Modelica.Units.SI.PressureDifference dpSouWwHeaHp_nominal(
min=0,
start=Buildings.Templates.Data.Defaults.dpChiWatChi)
"Source fluid pressure drop in heating mode - Each heat pump";
final parameter Modelica.Units.SI.MassFlowRate mSouHeaHp_flow_nominal=if typ ==
Buildings.Templates.Components.Types.HeatPump.WaterToWater then mSouWwHeaHp_flow_nominal
else Buildings.Templates.Data.Defaults.mAirFloByCapChi * abs(capHeaHp_nominal)
"Source fluid mass flow rate in heating mode - Each heat pump";
final parameter Modelica.Units.SI.PressureDifference dpSouHeaHp_nominal=if typ ==
Buildings.Templates.Components.Types.HeatPump.WaterToWater then dpSouWwHeaHp_nominal
else Buildings.Templates.Data.Defaults.dpAirChi
"Source fluid pressure drop in heating mode - Each heat pump";
parameter Modelica.Units.SI.Temperature TSouCooHp_nominal(
start=Buildings.Templates.Data.Defaults.TOutHpCoo,
final min=273.15)
"OAT or source fluid supply temperature (condenser entering) in cooling mode - Each heat pump";
parameter Modelica.Units.SI.MassFlowRate mSouWwCooHp_flow_nominal(
start=mChiWatHp_flow_nominal,
final min=0)
"Source fluid mass flow rate in cooling mode - Each heat pump";
final parameter Modelica.Units.SI.MassFlowRate mSouCooHp_flow_nominal=if typ ==
Buildings.Templates.Components.Types.HeatPump.WaterToWater then mSouWwCooHp_flow_nominal
else Buildings.Templates.Data.Defaults.mAirFloByCapChi * abs(capCooHp_nominal)
"Source fluid mass flow rate in cooling mode - Each heat pump";
final parameter Modelica.Units.SI.PressureDifference dpSouCooHp_nominal=
dpSouHeaHp_nominal *(mSouCooHp_flow_nominal / mSouHeaHp_flow_nominal) ^ 2
"Source fluid pressure drop in cooling mode - Each heat pump";
replaceable parameter Buildings.Fluid.HeatPumps.Data.EquationFitReversible.Generic
perFitHp(
dpHeaLoa_nominal=dpHeaWatHp_nominal,
dpHeaSou_nominal=dpSouHeaHp_nominal,
hea(
Q_flow=abs(capHeaHp_nominal),
P=0,
mLoa_flow=mHeaWatHp_flow_nominal,
mSou_flow=mSouHeaHp_flow_nominal,
coeQ={1, 0, 0, 0, 0},
coeP={1, 0, 0, 0, 0},
TRefLoa=THeaWatRetHp_nominal,
TRefSou=TSouHeaHp_nominal),
coo(
Q_flow=if is_rev then - abs(capCooHp_nominal) else - 1,
P=0,
mLoa_flow=mChiWatHp_flow_nominal,
mSou_flow=mSouCooHp_flow_nominal,
coeQ={1, 0, 0, 0, 0},
coeP={1, 0, 0, 0, 0},
TRefLoa=TChiWatRetHp_nominal,
TRefSou=TSouCooHp_nominal))
constrainedby Buildings.Fluid.HeatPumps.Data.EquationFitReversible.Generic
"Performance data - Equation fit model - Each heat pump";
end HeatPumpGroup;