modelWatersideEconomizer
Base subsystem with waterside economizer
Extends from Buildings.Fluid.Interfaces.PartialFourPortInterface (Partial model with four ports and declaration of quantities that are used by many models).
Information
This is a model for a waterside economizer for sidestream integration (in series with the chillers). The primary side is typically connected to the service line. The primary flow rate is modulated either with a variable speed pump or with a two-way valve. The secondary side is typically connected to the chilled water return, using a three-port two-position directional control valve.
The system is controlled based on the logic described in Buildings.DHC.ETS.Combined.Controls.WatersideEconomizer.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| DHC.ETS.Types.ConnectionConfiguration | conCon | District connection configuration | |
| Assumptions | |||
| Boolean | allowFlowReversal1 (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1 |
| Boolean | allowFlowReversal2 (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2 |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | m1_flow_nominal (from PartialFourPortInterface) | Nominal mass flow rate | |
| Modelica.Units.SI.MassFlowRate | m2_flow_nominal (from PartialFourPortInterface) | Nominal mass flow rate | |
| Modelica.Units.SI.PressureDifference | dp1Hex_nominal | Nominal pressure drop across heat exchanger on district side | |
| Modelica.Units.SI.PressureDifference | dp2Hex_nominal | Nominal pressure drop across heat exchanger on building side | |
| Modelica.Units.SI.PressureDifference | dpVal1_nominal | if have_val1 then dp1Hex_nominal/2 else 0 | Nominal pressure drop of primary control valve |
| Modelica.Units.SI.PressureDifference | dpVal2_nominal | dp2Hex_nominal/10 | Nominal pressure drop of heat exchanger bypass valve |
| Modelica.Units.SI.HeatFlowRate | Q_flow_nominal | Nominal heat flow rate (from district to building) | |
| Modelica.Units.SI.Temperature | T_a1_nominal | Nominal water inlet temperature on district side | |
| Modelica.Units.SI.Temperature | T_b1_nominal | Nominal water outlet temperature on district side | |
| Modelica.Units.SI.Temperature | T_a2_nominal | Nominal water inlet temperature on building side | |
| Modelica.Units.SI.Temperature | T_b2_nominal | Nominal water outlet temperature on building side | |
| Advanced | |||
| Medium1.MassFlowRate | m1_flow_small (from PartialFourPortInterface) | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Medium2.MassFlowRate | m2_flow_small (from PartialFourPortInterface) | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialFourPortInterface) | false | = true, if actual temperature at port is computed |
| Controls | |||
| Real | y1Min | 0.05 | Minimum pump flow rate or valve opening for temperature measurement (fractional) |
| Modelica.Units.SI.TemperatureDifference | dTEna | 1 | Minimum delta-T above predicted heat exchanger leaving water temperature to enable WSE |
| Modelica.Units.SI.TemperatureDifference | dTDis | 0.5 | Minimum delta-T across heat exchanger before disabling WSE |
| Real | k | 1 | Gain of controller |
| Modelica.Units.SI.Time | Ti | 60 | Time constant of integrator block |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a1 (from PartialFourPort) | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b1 (from PartialFourPort) | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) | |
| Modelica.Fluid.Interfaces.FluidPort_a | port_a2 (from PartialFourPort) | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b2 (from PartialFourPort) | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | PPum | Power drawn by pump motors | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput | uCoo | Cooling enable signal | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | yValIsoEva_actual | Return position of evaporator to ambient loop isolation valve |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Medium1.MassFlowRate | m1_flow (from PartialFourPortInterface) | port_a1.m_flow | Mass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp1 (from PartialFourPortInterface) | port_a1.p - port_b1.p | Pressure difference between port_a1 and port_b1 |
| Medium2.MassFlowRate | m2_flow (from PartialFourPortInterface) | port_a2.m_flow | Mass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp2 (from PartialFourPortInterface) | port_a2.p - port_b2.p | Pressure difference between port_a2 and port_b2 |
| Medium1.ThermodynamicState | sta_a1 (from PartialFourPortInterface) | if allowFlowReversal1 then Medium1.setState_phX(port_a1.p, noEvent(actualStream(port_a1.h_outflow)), noEvent(actualStream(port_a1.Xi_outflow))) else Medium1.setState_phX(port_a1.p, inStream(port_a1.h_outflow), inStream(port_a1.Xi_outflow)) | Medium properties in port_a1 |
| Medium1.ThermodynamicState | sta_b1 (from PartialFourPortInterface) | if allowFlowReversal1 then Medium1.setState_phX(port_b1.p, noEvent(actualStream(port_b1.h_outflow)), noEvent(actualStream(port_b1.Xi_outflow))) else Medium1.setState_phX(port_b1.p, port_b1.h_outflow, port_b1.Xi_outflow) | Medium properties in port_b1 |
| Medium2.ThermodynamicState | sta_a2 (from PartialFourPortInterface) | if allowFlowReversal2 then Medium2.setState_phX(port_a2.p, noEvent(actualStream(port_a2.h_outflow)), noEvent(actualStream(port_a2.Xi_outflow))) else Medium2.setState_phX(port_a2.p, inStream(port_a2.h_outflow), inStream(port_a2.Xi_outflow)) | Medium properties in port_a2 |
| Medium2.ThermodynamicState | sta_b2 (from PartialFourPortInterface) | if allowFlowReversal2 then Medium2.setState_phX(port_b2.p, noEvent(actualStream(port_b2.h_outflow)), noEvent(actualStream(port_b2.Xi_outflow))) else Medium2.setState_phX(port_b2.p, port_b2.h_outflow, port_b2.Xi_outflow) | Medium properties in port_b2 |
| Buildings.DHC.ETS.Combined.Controls.WatersideEconomizer | conWSE | District heat exchanger loop controller | |
| Buildings.Fluid.HeatExchangers.PlateHeatExchangerEffectivenessNTU | hex | Heat exchanger | |
| DHC.ETS.BaseClasses.Pump_m_flow | pum1 | District heat exchanger primary pump | |
| Buildings.Fluid.Sensors.TemperatureTwoPort | senT2WatEnt | Heat exchanger secondary water entering temperature | |
| Buildings.Fluid.Sensors.TemperatureTwoPort | senT2WatLvg | Heat exchanger secondary water leaving temperature | |
| Buildings.Fluid.Actuators.Valves.TwoWayPressureIndependent | val1 | Heat exchanger primary control valve | |
| Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter | gai1 | Scale to nominal mass flow rate | |
| Buildings.Fluid.Actuators.Valves.ThreeWayLinear | val2 | Heat exchanger secondary actuation valve (open or close) | |
| Buildings.Fluid.Sensors.TemperatureTwoPort | senT1WatEnt | Heat exchanger primary water entering temperature | |
| Buildings.Fluid.Sensors.MassFlowRate | senMasFlo2 | Heat exchanger secondary mass flow rate |
Revisions
-
March 27, 2024, by David Blum:
Update icon.
This is for issue #3606. -
July 14, 2021, by Antoine Gautier:
First implementation.