modelInjectionTwoWayCheckValve

Injection circuit with two-way valve and check valve in bypass branch

Extends from Fluid.HydronicConfigurations.ActiveNetworks.InjectionTwoWay (Injection circuit with two-way valve).

Information

Summary

This configuration (see schematic hereunder) is nearly similar to Buildings.Fluid.HydronicConfigurations.ActiveNetworks.InjectionTwoWay except for the check valve that is added into the bypass. If used in DHC systems and if the control valve is not properly sized to maintain the set point at all loads, the check valve prevents recirculation in the service line which degrades the ΔT in the distribution system. If used to connect a heating coil, the check valve reduces the risk of freezing in case of secondary pump failure.

Schematic

See the documentation of Buildings.Fluid.HydronicConfigurations.ActiveNetworks.InjectionTwoWay for a summary table of the main characteristics of this configuration. In addition, the following non-recommended applications should be mentioned, and the control valve authority is reduced by the check valve pressure drop.

Non-recommended applications Radiant systems due to the risk of overheating or condensation in case of secondary pump failure
Constant flow consumer circuits due to the risk of elevated secondary pressure when the check valve is closed and the primary and secondary pumps are in series
Control valve authority
(See the nomenclature in the schematic.)
β = ΔpA-B / (Δp1 + ΔpA-J)

Additional comments

With this configuration, if the check valve is closed, the primary pressure differential is transmitted to the consumer circuit, lowering the authority of the terminal control valves. Therefore this configuration is rather recommended in conjunction with a variable flow consumer circuit where the circulation pump speed is modulated to track a differential pressure set point. Hence, when the primary and secondary pumps are in series, the secondary pump is operated at a lower speed.

The check valve is configured with a default pressure drop res3.dpValve_nominal=5e3 Pa for a mass flow rate equal to the maximum value of m2_flow_nominal and the check valve fully open. Note that with a variable flow consumer circuit the bypass line may be sized with a lower design flow rate. Hence the parameter res3.m_flow_nominal is not assigned a final value and may be overwritten. The pressure drop through the check valve is compensated by the secondary pump, while the pressure drop through the control valve is compensated by the primary pump.

Parameters

TypeNameDefaultDescription
Realn (from PartialHydronicConfiguration)2Flow exponent, n1=1 for laminar, n1=2 for turbulent
Movers.Data.GenericperPum (from PartialHydronicConfiguration)
Configuration
Booleanuse_siz (from PartialHydronicConfiguration)trueSet to true for built-in sizing of control valve and optional pump
Booleanuse_dp1 (from PartialHydronicConfiguration)Set to true to enable dp1_nominal
Booleanuse_dp2 (from PartialHydronicConfiguration)Set to true to enable dp2_nominal
Buildings.Fluid.HydronicConfigurations.Types.ValvetypVal (from PartialHydronicConfiguration)Type of control valve
Booleanhave_typVar (from PartialHydronicConfiguration)trueSet to true to enable the choice of the controlled variable
Nominal condition
Modelica.Units.SI.MassFlowRatem1_flow_nominal (from PartialHydronicConfiguration)Mass flow rate in primary circuit at design conditions
Modelica.Units.SI.MassFlowRatem2_flow_nominal (from PartialHydronicConfiguration)Mass flow rate in consumer circuit at design conditions
Modelica.Units.SI.PressureDifferencedp1_nominal (from PartialHydronicConfiguration)Primary circuit pressure differential at design conditions
Modelica.Units.SI.PressureDifferencedp2_nominal (from PartialHydronicConfiguration)Consumer circuit pressure differential at design conditions
Control valve
Buildings.Fluid.HydronicConfigurations.Types.ValveCharacteristictypCha (from PartialHydronicConfiguration)Buildings.Fluid.HydronicConfigurations.Types.ValveCharacteristic.EqualPercentageControl valve characteristic
Modelica.Units.SI.PressureDifferencedpValve_nominal (from PartialHydronicConfiguration)Control valve pressure drop at design conditions
Actuators.Valves.Data.GenericflowCharacteristics (from PartialHydronicConfiguration)Table with flow characteristics
Actuators.Valves.Data.GenericflowCharacteristics1 (from PartialHydronicConfiguration)Table with flow characteristics for direct flow path at port_1
Actuators.Valves.Data.GenericflowCharacteristics3 (from PartialHydronicConfiguration)Table with flow characteristics for bypass flow path at port_3
Pump
Buildings.Fluid.HydronicConfigurations.Types.PumptypPum (from PartialHydronicConfiguration)Buildings.Fluid.HydronicConfigurations.Types.Pump.VariableInputType of secondary pump
Buildings.Fluid.HydronicConfigurations.Types.PumpModeltypPumMod (from PartialHydronicConfiguration)Buildings.Fluid.HydronicConfigurations.Types.PumpModel.SpeedType of pump model
Modelica.Units.SI.MassFlowRatemPum_flow_nominal (from PartialHydronicConfiguration)m2_flow_nominalPump head at design conditions
Modelica.Units.SI.PressureDifferencedpPum_nominal (from PartialHydronicConfiguration)dp2_nominal + dpBal2_nominalPump head at design conditions
Controls
Buildings.Fluid.HydronicConfigurations.Types.ControltypCtl (from PartialHydronicConfiguration)Buildings.Fluid.HydronicConfigurations.Types.Control.NoneType of built-in controls
Buildings.Fluid.HydronicConfigurations.Types.ControlVariabletypVar (from PartialHydronicConfiguration)Buildings.Fluid.HydronicConfigurations.Types.ControlVariable.SupplyTemperatureControlled variable
Buildings.Controls.OBC.CDL.Types.SimpleControllercontrollerType (from PartialHydronicConfiguration)Buildings.Controls.OBC.CDL.Types.SimpleController.PIType of controller
Realk (from PartialHydronicConfiguration)0.1Gain of controller
RealTi (from PartialHydronicConfiguration)120Time constant of integrator block
Assumptions
Booleanuse_lumFloRes (from PartialHydronicConfiguration)trueSet to true to use a lumped flow resistance when possible
BooleanallowFlowReversal (from PartialHydronicConfiguration)true= false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1
Balancing valves
Modelica.Units.SI.PressureDifferencedpBal1_nominal (from PartialHydronicConfiguration)0Primary balancing valve pressure drop at design conditions
Modelica.Units.SI.PressureDifferencedpBal2_nominal (from PartialHydronicConfiguration)0Secondary balancing valve pressure drop at design conditions
Modelica.Units.SI.PressureDifferencedpBal3_nominal (from PartialHydronicConfiguration)0Bypass balancing valve pressure drop at design conditions
Dynamics › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamics (from PartialHydronicConfiguration)Modelica.Fluid.Types.Dynamics.FixedInitialType of energy balance: dynamic (3 initialization options) or steady state
Advanced › Diagnostics
Booleanshow_T (from PartialHydronicConfiguration)false= true, if actual temperature at port is computed

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_a1 (from PartialHydronicConfiguration)Primary supply port
Modelica.Fluid.Interfaces.FluidPort_bport_b1 (from PartialHydronicConfiguration)Primary return port
Modelica.Fluid.Interfaces.FluidPort_aport_a2 (from PartialHydronicConfiguration)Secondary return port
Modelica.Fluid.Interfaces.FluidPort_bport_b2 (from PartialHydronicConfiguration)Secondary supply port
Buildings.Controls.OBC.CDL.Interfaces.RealInputyVal (from PartialHydronicConfiguration)Valve control signal
Buildings.Controls.OBC.CDL.Interfaces.RealInputset (from PartialHydronicConfiguration)Set point
Buildings.Controls.OBC.CDL.Interfaces.RealInputyPum (from PartialHydronicConfiguration)Pump control signal (variable speed)
Buildings.Controls.OBC.CDL.Interfaces.IntegerInputmode (from PartialHydronicConfiguration)Operating mode
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyVal_actual (from PartialHydronicConfiguration)Valve position feedback
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyPum_actual (from PartialHydronicConfiguration)Actual pump input value that is used for computations
Buildings.Controls.OBC.CDL.Interfaces.RealOutputPPum (from PartialHydronicConfiguration)Pump electrical power

Components

TypeNameDefaultDescription
Medium.MassFlowRatem1_flow (from PartialHydronicConfiguration)port_a1.m_flowMass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp1 (from PartialHydronicConfiguration)port_a1.p - port_b1.pPressure difference between port_a1 and port_b1
Medium.MassFlowRatem2_flow (from PartialHydronicConfiguration)port_a2.m_flowMass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp2 (from PartialHydronicConfiguration)port_a2.p - port_b2.pPressure difference between port_a2 and port_b2
Medium.ThermodynamicStatesta_a1 (from PartialHydronicConfiguration)if allowFlowReversal then Medium.setState_phX(port_a1.p, noEvent(actualStream(port_a1.h_outflow)), noEvent(actualStream(port_a1.Xi_outflow))) else Medium.setState_phX(port_a1.p, inStream(port_a1.h_outflow), inStream(port_a1.Xi_outflow))Medium properties in port_a1
Medium.ThermodynamicStatesta_b1 (from PartialHydronicConfiguration)if allowFlowReversal then Medium.setState_phX(port_b1.p, noEvent(actualStream(port_b1.h_outflow)), noEvent(actualStream(port_b1.Xi_outflow))) else Medium.setState_phX(port_b1.p, port_b1.h_outflow, port_b1.Xi_outflow)Medium properties in port_b1
Medium.ThermodynamicStatesta_a2 (from PartialHydronicConfiguration)if allowFlowReversal then Medium.setState_phX(port_a2.p, noEvent(actualStream(port_a2.h_outflow)), noEvent(actualStream(port_a2.Xi_outflow))) else Medium.setState_phX(port_a2.p, inStream(port_a2.h_outflow), inStream(port_a2.Xi_outflow))Medium properties in port_a2
Medium.ThermodynamicStatesta_b2 (from PartialHydronicConfiguration)if allowFlowReversal then Medium.setState_phX(port_b2.p, noEvent(actualStream(port_b2.h_outflow)), noEvent(actualStream(port_b2.Xi_outflow))) else Medium.setState_phX(port_b2.p, port_b2.h_outflow, port_b2.Xi_outflow)Medium properties in port_b2
FixedResistances.JunctionjunSup (from InjectionTwoWay)Junction
Components.Pumppum (from InjectionTwoWay)Pump
Components.TwoWayValveval (from InjectionTwoWay)Control valve
Sensors.TemperatureTwoPortT2Sup (from InjectionTwoWay)Consumer circuit supply temperature sensor
FixedResistances.JunctionjunRet (from InjectionTwoWay)Junction
FixedResistances.PressureDropres2 (from InjectionTwoWay)Secondary balancing valve
FixedResistances.PressureDropres1 (from InjectionTwoWay)Primary balancing valve
Sensors.TemperatureTwoPortT2Ret (from InjectionTwoWay)Consumer circuit return temperature sensor
Controls.PIDWithOperatingModectl (from InjectionTwoWay)Controller
Buildings.Controls.OBC.CDL.Integers.GreaterThresholdisEna (from InjectionTwoWay)Returns true if enabled
Buildings.Controls.OBC.CDL.Routing.RealExtractorextIndSig (from InjectionTwoWay)Select measured signal
FixedResistances.LosslessPiperes3 (from InjectionTwoWay)Fluid pass-through that can be replaced by check valve
Buildings.Controls.OBC.CDL.Integers.Sources.ConstantctlVar (from InjectionTwoWay)Controlled variable selector

Revisions

  • June 30, 2022, by Antoine Gautier:
    First implementation.