modelPartialHeatPumpHeatExchanger
Extends from Buildings.DHC.ETS.BaseClasses.PartialETS (Partial class for modeling an energy transfer station).
Information
This model represents an energy transfer station based on that described in Sommer (2020), with some additioinal details:
The cooling function is provided in a compressor-less mode by a heat exchanger connected to the district supply line.
- The cooling heat exchanger primary pump is modulated based on a PI control loop tracking the chilled water supply temperature at the outlet of the heat exchanger secondary side.
- The chilled water is typically produced at high temperature and distributed to radiant cooling systems, for instance at 19°C.
The space heating heating function is provided by a water-to-water heat pump Buildings.DHC.ETS.Combined.Subsystems.HeatPump.
-
By default, the condenser loop is operated
with a variable mass flow rate to maintain a difference between supply and
return water of
dT_nominal, with a lower limit of mass flow specified by the ratioratFloMin. The control logic is implemented and described in Buildings.DHC.ETS.Combined.Controls.PrimaryVariableFlow. The model can also represent a constant flow condenser loop by settinghave_varFloContofalse. - The evaporator loop is controlled according to the documentation in Buildings.DHC.ETS.Combined.Subsystems.HeatPump. Evaporator water is supplied by mixing flow directly from the district line with flow leaving the district side of the cooling heat exchanger. The hydronic arrangement modeled in Buildings.DHC.ETS.Combined.Subsystems.SwitchBox ensures that the resulting fluid stream in the district line always flows in the same direction.
- The space heating hot water is typically produced at low temperature, for instance 40°C.
Space Heating and Cooling Enable/Disable
Heating (resp. cooling) is enabled based on the input signal uHea
(resp. uCoo) which is held for 15 minutes, meaning that,
when enabled, the mode remains active for at least 15 minutes and,
when disabled, the mode cannot be enabled again for at least 15 minutes.
The heating and cooling enable signals should be computed externally based
on a schedule (to lock out the system during off-hours), ideally in conjunction
with the number of requests yielded by the terminal unit controllers, or any
other signal representative of the load.
Modeling considerations
There is a control volume at each of the two fluid ports that serve as inlet and outlet of the heating and cooling systems. These approximate the dynamics of the substation, and they also generally avoid nonlinear systems of equations if multiple substations are connected to each other.
References
Sommer T., Sulzer M., Wetter M., Sotnikov A., Mennel S., Stettler C. The reservoir network: A new network topology for district heating and cooling. Energy, Volume 199, 15 May 2020, 117418.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Fluid.Data.Fuels.Generic[nFue] | fue (from PartialETS) | Fuel type | |
| Boolean | have_varFloCon | true | Set to true for heat pumps with variable condenser flow |
| Boolean | have_varFloEva | true | Set to true for heat pumps with variable evaporator flow |
| Real | ratFloMin | 0.3 | Minimum condenser mass flow rate (ratio to nominal) |
| Modelica.Units.SI.SpecificHeatCapacity | cpBui_default | MediumBui.specificHeatCapacityCp(MediumBui.setState_pTX(p = MediumBui.p_default, T = MediumBui.T_default)) | Specific heat capacity of the fluid |
| Modelica.Units.SI.SpecificHeatCapacity | cpSer_default | MediumBui.specificHeatCapacityCp(MediumSer.setState_pTX(p = MediumSer.p_default, T = MediumSer.T_default)) | Specific heat capacity of the fluid |
| Configuration | |||
| TypDisSys | typ (from PartialETS) | Buildings.DHC.Types.DistrictSystemType.CombinedGeneration2to4 | Type of district system |
| Integer | nPorts_aHeaWat (from PartialETS) | 0 | Number of heating water return ports |
| Integer | nPorts_bHeaWat (from PartialETS) | 0 | Number of heating water supply ports |
| Integer | nPorts_aChiWat (from PartialETS) | 0 | Number of chilled water return ports |
| Integer | nPorts_bChiWat (from PartialETS) | 0 | Number of chilled water supply ports |
| Boolean | have_heaWat (from PartialETS) | false | Set to true if the ETS supplies heating water |
| Boolean | have_hotWat (from PartialETS) | false | Set to true if the ETS supplies hot water |
| Boolean | have_chiWat (from PartialETS) | false | Set to true if the ETS supplies chilled water |
| Boolean | have_fan (from PartialETS) | false | Set to true if fan power is computed |
| Boolean | have_pum (from PartialETS) | false | Set to true if pump power is computed |
| Boolean | have_eleHea (from PartialETS) | false | Set to true if the ETS has electric heating system |
| Integer | nFue (from PartialETS) | 0 | Number of fuel types (0 means no combustion system) |
| Boolean | have_eleCoo (from PartialETS) | false | Set to true if the ETS has electric cooling system |
| Boolean | have_weaBus (from PartialETS) | false | Set to true to use a weather bus |
| Assumptions | |||
| Boolean | allowFlowReversalSer (from PartialETS) | false | Set to true to allow flow reversal on service side |
| Boolean | allowFlowReversalBui (from PartialETS) | false | Set to true to allow flow reversal on building side |
| Nominal condition | |||
| Modelica.Units.SI.HeatFlowRate | QHeaWat_flow_nominal (from PartialETS) | 0 | Nominal capacity of heating system (>=0) |
| Modelica.Units.SI.HeatFlowRate | QHotWat_flow_nominal (from PartialETS) | 0 | Nominal capacity of hot water production system (>=0) |
| Modelica.Units.SI.HeatFlowRate | QChiWat_flow_nominal (from PartialETS) | 0 | Nominal capacity of cooling system (<=0) |
| Modelica.Units.SI.TemperatureDifference | dT_nominal | 5 | Water temperature drop/increase accross load and source-side HX (always positive) |
| Modelica.Units.SI.Temperature | TChiWatRet_nominal | TChiWatSup_nominal + dT_nominal | Chilled water return temperature |
| Modelica.Units.SI.Temperature | THeaWatSup_nominal | 313.15 | Heating water supply temperature |
| Modelica.Units.SI.Temperature | THeaWatRet_nominal | THeaWatSup_nominal - dT_nominal | Heating water return temperature |
| Modelica.Units.SI.Temperature | THotWatSup_nominal | 336.15 | Domestic hot water supply temperature to fixtures |
| Modelica.Units.SI.Temperature | TColWat_nominal | 288.15 | Cold water temperature (for hot water production) |
| Modelica.Units.SI.Pressure | dp_nominal | 50000 | Pressure difference at nominal flow rate (for each flow leg) |
| Modelica.Units.SI.MassFlowRate | mHeaWat_flow_nominal | abs(QHeaWat_flow_nominal/cpBui_default/(THeaWatSup_nominal - THeaWatRet_nominal)) | Heating water mass flow rate |
| Modelica.Units.SI.MassFlowRate | mEvaHotWat_flow_nominal | QHotWat_flow_nominal*(COPHotWat_nominal - 1)/COPHotWat_nominal/cpSer_default/dT_nominal | Evaporator water mass flow rate of heat pump for hot water production |
| Modelica.Units.SI.MassFlowRate | mSerWat_flow_nominal | max(proHeaWat.mCon_flow_nominal + mEvaHotWat_flow_nominal, hexChi.m1_flow_nominal) | Service water mass flow rate |
| Real | COPHeaWat_nominal | COP of heat pump for heating water production | |
| Real | COPHotWat_nominal | COP of heat pump for hot water production | |
| Modelica.Units.SI.MassFlowRate | m1HexChi_flow_nominal | abs(QChiWat_flow_nominal/cpSer_default/dT_nominal) | CHW HX primary mass flow rate |
| Modelica.Units.SI.MassFlowRate | m2HexChi_flow_nominal | abs(QChiWat_flow_nominal/cpSer_default/(THeaWatSup_nominal - THeaWatRet_nominal)) | CHW HX secondary mass flow rate |
| DHC system | |||
| Modelica.Units.SI.Temperature | TDisWatMin | District water minimum temperature | |
| Modelica.Units.SI.Temperature | TDisWatMax | District water maximum temperature | |
| Nominal conditions | |||
| Modelica.Units.SI.Temperature | TChiWatSup_nominal | 291.15 | Chilled water supply temperature |
| Modelica.Units.SI.MassFlowRate | mChiWat_flow_nominal | abs(QChiWat_flow_nominal/cpBui_default/(TChiWatSup_nominal - TChiWatRet_nominal)) | Chilled water mass flow rate |
| Dynamics | |||
| Modelica.Fluid.Types.Dynamics | mixingVolumeEnergyDynamics | Modelica.Fluid.Types.Dynamics.FixedInitial | Formulation of energy balance for mixing volume at inlet and outlet |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPorts_a[nPorts_aHeaWat] | ports_aHeaWat (from PartialETS) | Fluid connectors for heating water return (from building) | |
| Modelica.Fluid.Interfaces.FluidPorts_b[nPorts_bHeaWat] | ports_bHeaWat (from PartialETS) | Fluid connectors for heating water supply (to building) | |
| Modelica.Fluid.Interfaces.FluidPorts_a[nPorts_aChiWat] | ports_aChiWat (from PartialETS) | Fluid connectors for chilled water return (from building) | |
| Modelica.Fluid.Interfaces.FluidPorts_b[nPorts_bChiWat] | ports_bChiWat (from PartialETS) | Fluid connectors for chilled water supply (to building) | |
| Modelica.Fluid.Interfaces.FluidPort_a | port_aSerAmb (from PartialETS) | Fluid connector for ambient water service supply line | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_bSerAmb (from PartialETS) | Fluid connector for ambient water service return line | |
| Modelica.Fluid.Interfaces.FluidPort_a | port_aSerHea (from PartialETS) | Fluid connector for heating service supply line | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_bSerHea (from PartialETS) | Fluid connector for heating service return line | |
| Modelica.Fluid.Interfaces.FluidPort_a | port_aSerCoo (from PartialETS) | Fluid connector for cooling service supply line | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_bSerCoo (from PartialETS) | Fluid connector for cooling service return line | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | PHea (from PartialETS) | Power drawn by heating system | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | PCoo (from PartialETS) | Power drawn by cooling system | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | PFan (from PartialETS) | Power drawn by fan motors | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | PPum (from PartialETS) | Power drawn by pump motors | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput[nFue] | QFue_flow (from PartialETS) | Fuel energy input rate | |
| BoundaryConditions.WeatherData.Bus | weaBus (from PartialETS) | Weather data bus | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput | uCoo | Cooling enable signal | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput | uHea | Heating enable signal | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput | uSHW | SHW production enable signal | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | THeaWatSupSet | Heating water supply temperature set point | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | THotWatSupSet | Domestic hot water temperature set point for supply to fixtures | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | TColWat | Cold water temperature | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | QReqHotWat_flow | Service hot water load | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | TChiWatSupSet | Chilled water supply temperature set point | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | mHea_flow | District water mass flow rate used for heating service | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | mCoo_flow | District water mass flow rate used for cooling service |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Fluid.Delays.DelayFirstOrder | volMix_a | Mixing volume to break algebraic loops and to emulate the delay of the substation | |
| Buildings.Fluid.Delays.DelayFirstOrder | volMix_b | Mixing volume to break algebraic loops and to emulate the delay of the substation | |
| Buildings.DHC.ETS.BaseClasses.Pump_m_flow | pum1HexChi | Chilled water HX primary pump | |
| Buildings.Fluid.HeatExchangers.DryCoilEffectivenessNTU | hexChi | Chilled water HX | |
| Buildings.Fluid.Delays.DelayFirstOrder | volHeaWatRet | Mixing volume representing building HHW primary | |
| Buildings.Fluid.Sensors.MassFlowRate | senMasFloHeaWat | Heating water mass flow rate | |
| Buildings.Fluid.Delays.DelayFirstOrder | volChiWat | Mixing volume representing building CHW primary | |
| Buildings.Fluid.Sensors.MassFlowRate | senMasFloChiWat | Chilled water mass flow rate | |
| Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter | gai2 | ||
| Buildings.Controls.OBC.Utilities.PIDWithEnable | conTChiWat | PI controller for district HX primary side | |
| Buildings.Controls.OBC.CDL.Reals.MultiSum | PPumHeaTot | Total pump power for heating applications | |
| Buildings.Fluid.Sources.Boundary_pT | bouHeaWat | Pressure boundary condition representing the expansion vessel | |
| Buildings.Fluid.Sources.Boundary_pT | bouChiWat | Pressure boundary condition representing the expansion vessel | |
| Buildings.Controls.OBC.CDL.Reals.MultiSum | PPumCooTot | Total pump power for space cooling | |
| Buildings.Controls.OBC.CDL.Reals.MultiSum | PPumTot | Total pump power | |
| Buildings.Fluid.Sensors.TemperatureTwoPort | senTHeaWatSup | Heating water supply temperature | |
| Buildings.Fluid.Sensors.TemperatureTwoPort | senTChiWatSup | Chilled water supply temperature | |
| Buildings.DHC.ETS.Combined.Subsystems.SwitchBox | swiFlo | Flow switch box | |
| Buildings.DHC.ETS.BaseClasses.Junction | bypHeaWatSup | Bypass heating water (supply) | |
| Buildings.DHC.ETS.BaseClasses.Junction | bypHeaWatRet | Bypass heating water (return) | |
| Buildings.Controls.OBC.CDL.Logical.TrueFalseHold | enaHea | Enable heating | |
| Buildings.DHC.ETS.Combined.Subsystems.HeatPump | proHeaWat | Subsystem for heating water production | |
| Buildings.Controls.OBC.CDL.Reals.MultiSum | masFloHeaTot | Compute district water mass flow rate used for heating service | |
| Modelica.Blocks.Sources.Constant | zer | Replacement variable | |
| Buildings.Fluid.Sensors.TemperatureTwoPort | senTHeaWatRet | Heating water return temperature | |
| Buildings.Fluid.Sensors.TemperatureTwoPort | senTChiWatRet | Chilled water return temperature | |
| Buildings.Fluid.Sensors.MassFlowRate | senMasFloHeaWatPri | Primary heating water mass flow rate | |
| Buildings.Controls.OBC.CDL.Logical.TrueFalseHold | enaSHW | Enable SHW production | |
| Modelica.Blocks.Sources.Constant | zer1 | Replacement variable | |
| Buildings.Controls.OBC.CDL.Reals.Add | masFloHea | Service water mass flow rate for heating applications | |
| Buildings.Controls.OBC.CDL.Reals.MultiSum | PHeaTot | Total power used for heating and hot water production | |
| Buildings.Controls.OBC.CDL.Reals.Subtract | dTHHW | Heating hot water DeltaT | |
| Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter | capFloHHW | Capacity flow rate | |
| Buildings.DHC.ETS.Combined.Controls.PrimaryVariableFlow | conFloConHHW | Mass flow rate control | |
| Buildings.Controls.OBC.CDL.Reals.Max | priOve | Ensure primary overflow | |
| Buildings.Controls.OBC.CDL.Reals.Multiply | loaHHW | Heating load | |
| Fluid.Sensors.MassFlowRate | senMasFlo1HexChi | Chilled water HX primary mass flow rate |
Revisions
-
June 21, 2024, by Antoine Gautier:
Added HX primary flow sensor.
This is for #3906. -
February 15, 2024, by Ettore Zanetti:
Switch boxSwiFlovalve pressure drop reduced to zero. -
October 2, 2023, by Michael Wetter:
Renamed inputloaSHWtoQReqHotWat_flow. -
May 17, 2023, by David Blum:
Assigned dp_nominal topum1HexChi.
Corrected calculation of heat pump evaporator mass flow control.
This is for issue 3379. -
February 23, 2021, by Antoine Gautier:
Refactored with subsystem models and partial ETS base class.
This is for issue 1769. -
December 12, 2017, by Michael Wetter:
Removed call toModelica.Utilities.Files.loadResource.
This is for issue 1097.