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
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
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;
