modelHeatPumpGroup
Extends from Buildings.Fluid.Interfaces.PartialTwoPortInterface (Partial model with two ports and declaration of quantities that are used by many models).
Information
This model represents a set of identical air-to-water heat pumps that are piped in parallel. Dedicated constant-speed condenser pumps are included.
Control points
The following input and output points are available.
-
On/Off command
y1: DO signal dedicated to each unit, with a dimensionality of one -
Supply temperature setpoint
TSet: AO signal common to all units, with a dimensionality of zero -
CW supply temperature
TConWatSup: AI signal common to all units, with a dimensionality of zero
Details
Modeling approach
In a parallel arrangement, all operating units have the same operating point. This allows modeling the heat transfer from outdoor air to condenser water with a single instance of Buildings.Fluid.HeatPumps.EquationFitReversible. Hydronics are resolved with mass flow rate multiplier components.
The model Buildings.Fluid.HeatPumps.EquationFitReversible does not capture the sensitivity of the heat pump performance to the HW supply temperature setpoint. This means that a varying HW supply temperature setpoint has no impact on the heat pump COP (all other variables such as the HW return temperature being kept invariant). This is a limitation of the model.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | nUni | Number of units operating at design conditions | |
| Buildings.Fluid.HeatPumps.Data.EquationFitReversible.Generic | dat | Heat pump parameters (each unit) | |
| Fluid.Movers.Data.Generic | datPum | ||
| Assumptions | |||
| Boolean | allowFlowReversal (from PartialTwoPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | m_flow_nominal (from PartialTwoPortInterface) | Nominal mass flow rate | |
| Modelica.Units.SI.HeatFlowRate | capUni_nominal | dat.hea.Q_flow | Heat pump design capacity (each unit) |
| Modelica.Units.SI.MassFlowRate | mHeaWatUni_flow_nominal | dat.hea.mLoa_flow | HW design mass flow rate (each unit) |
| Modelica.Units.SI.MassFlowRate | mAirUni_flow_nominal | dat.hea.mSou_flow | Air design mass flow rate (each unit) |
| Modelica.Units.SI.MassFlowRate | mHeaWat_flow_nominal | nUni*mHeaWatUni_flow_nominal | HW design mass flow rate (all units) |
| Modelica.Units.SI.PressureDifference | dpPumHeaWatUni_nominal | dat.dpHeaLoa_nominal | HW pump design head (each unit) |
| Advanced | |||
| Modelica.Units.SI.MassFlowRate | m_flow_small (from PartialTwoPortInterface) | 1E-4*abs(m_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialTwoPortInterface) | false | = true, if actual temperature at port is computed |
| Dynamics › Conservation equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamics.DynamicFreeInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
| Dynamics › Nominal condition | |||
| Modelica.Units.SI.Time | tau | 30 | Time constant of fluid volume for nominal HW flow, used if energy or mass balance is dynamic |
| Dynamics › Filtered pump speed | |||
| Boolean | use_riseTime | energyDynamics <> Modelica.Fluid.Types.Dynamics.SteadyState | Set to true to continuously change motor speed |
| Modelica.Units.SI.Time | riseTime | 30 | Time needed to change motor speed |
| Modelica.Blocks.Types.Init | init | Modelica.Blocks.Types.Init.InitialOutput | Type of initialization (no init/steady state/initial state/initial output) |
| Real | y_start | 1 | Initial position of actuator |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a (from PartialTwoPort) | Fluid connector a (positive design flow direction is from port_a to port_b) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b (from PartialTwoPort) | Fluid connector b (positive design flow direction is from port_a to port_b) | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nUni] | y1 | Heat pump On/Off command | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | TSet | Supply temperature setpoint | |
| BoundaryConditions.WeatherData.Bus | weaBus | Bus with weather data | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | PPum | Power drawn by HW pumps | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | P | Power drawn by heat pumps |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.MassFlowRate | m_flow (from PartialTwoPortInterface) | port_a.m_flow | Mass flow rate from port_a to port_b (m_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp (from PartialTwoPortInterface) | port_a.p - port_b.p | Pressure difference between port_a and port_b |
| Medium.ThermodynamicState | sta_a (from PartialTwoPortInterface) | if allowFlowReversal then Medium.setState_phX(port_a.p, noEvent(actualStream(port_a.h_outflow)), noEvent(actualStream(port_a.Xi_outflow))) else Medium.setState_phX(port_a.p, noEvent(inStream(port_a.h_outflow)), noEvent(inStream(port_a.Xi_outflow))) | Medium properties in port_a |
| Medium.ThermodynamicState | sta_b (from PartialTwoPortInterface) | if allowFlowReversal then Medium.setState_phX(port_b.p, noEvent(actualStream(port_b.h_outflow)), noEvent(actualStream(port_b.Xi_outflow))) else Medium.setState_phX(port_b.p, noEvent(port_b.h_outflow), noEvent(port_b.Xi_outflow)) | Medium properties in port_b |
| Fluid.BaseClasses.MassFlowRateMultiplier | mulConInl | Flow rate multiplier | |
| Fluid.BaseClasses.MassFlowRateMultiplier | mulConOut | Flow rate multiplier | |
| Buildings.Templates.Components.Controls.MultipleCommands | com | Convert command signals | |
| Buildings.Controls.OBC.CDL.Reals.Multiply | mulP | Scale power | |
| Fluid.HeatPumps.EquationFitReversible | heaPum | Heat pump | |
| Fluid.Movers.SpeedControlled_y | pum | HW pump | |
| Fluid.Sources.MassFlowSource_WeatherData | airSou | Air flow source | |
| Fluid.Sources.Boundary_pT | airSin | Air flow sink | |
| Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter | comFan | Convert On/Off command to air flow setpoint | |
| Buildings.Controls.OBC.CDL.Reals.Multiply | mulP1 | Scale power | |
| Buildings.Controls.OBC.CDL.Logical.Pre[nUni] | preY1 | Left limit of signal avoiding direct feedback of status to controller | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToReal | booToRea | Convert to real | |
| Buildings.Controls.OBC.CDL.Reals.Multiply | inp | Compute pump input signal | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | cst | Constant | |
| Buildings.Controls.OBC.CDL.Conversions.RealToInteger | reaToInt | Convert to integer |
Contents
| Name | Description |
|---|---|
| Air medium |
Revisions
-
February 24, 2023, by Antoine Gautier:
First implementation.