modelInjectionTwoWayCheckValve
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.
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
| Type | Name | Default | Description |
|---|---|---|---|
| Real | n (from PartialHydronicConfiguration) | 2 | Flow exponent, n1=1 for laminar, n1=2 for turbulent |
| Movers.Data.Generic | perPum (from PartialHydronicConfiguration) | ||
| Configuration | |||
| Boolean | use_siz (from PartialHydronicConfiguration) | true | Set to true for built-in sizing of control valve and optional pump |
| Boolean | use_dp1 (from PartialHydronicConfiguration) | Set to true to enable dp1_nominal | |
| Boolean | use_dp2 (from PartialHydronicConfiguration) | Set to true to enable dp2_nominal | |
| Buildings.Fluid.HydronicConfigurations.Types.Valve | typVal (from PartialHydronicConfiguration) | Type of control valve | |
| Boolean | have_typVar (from PartialHydronicConfiguration) | true | Set to true to enable the choice of the controlled variable |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | m1_flow_nominal (from PartialHydronicConfiguration) | Mass flow rate in primary circuit at design conditions | |
| Modelica.Units.SI.MassFlowRate | m2_flow_nominal (from PartialHydronicConfiguration) | Mass flow rate in consumer circuit at design conditions | |
| Modelica.Units.SI.PressureDifference | dp1_nominal (from PartialHydronicConfiguration) | Primary circuit pressure differential at design conditions | |
| Modelica.Units.SI.PressureDifference | dp2_nominal (from PartialHydronicConfiguration) | Consumer circuit pressure differential at design conditions | |
| Control valve | |||
| Buildings.Fluid.HydronicConfigurations.Types.ValveCharacteristic | typCha (from PartialHydronicConfiguration) | Buildings.Fluid.HydronicConfigurations.Types.ValveCharacteristic.EqualPercentage | Control valve characteristic |
| Modelica.Units.SI.PressureDifference | dpValve_nominal (from PartialHydronicConfiguration) | Control valve pressure drop at design conditions | |
| Actuators.Valves.Data.Generic | flowCharacteristics (from PartialHydronicConfiguration) | Table with flow characteristics | |
| Actuators.Valves.Data.Generic | flowCharacteristics1 (from PartialHydronicConfiguration) | Table with flow characteristics for direct flow path at port_1 | |
| Actuators.Valves.Data.Generic | flowCharacteristics3 (from PartialHydronicConfiguration) | Table with flow characteristics for bypass flow path at port_3 | |
| Pump | |||
| Buildings.Fluid.HydronicConfigurations.Types.Pump | typPum (from PartialHydronicConfiguration) | Buildings.Fluid.HydronicConfigurations.Types.Pump.VariableInput | Type of secondary pump |
| Buildings.Fluid.HydronicConfigurations.Types.PumpModel | typPumMod (from PartialHydronicConfiguration) | Buildings.Fluid.HydronicConfigurations.Types.PumpModel.Speed | Type of pump model |
| Modelica.Units.SI.MassFlowRate | mPum_flow_nominal (from PartialHydronicConfiguration) | m2_flow_nominal | Pump head at design conditions |
| Modelica.Units.SI.PressureDifference | dpPum_nominal (from PartialHydronicConfiguration) | dp2_nominal + dpBal2_nominal | Pump head at design conditions |
| Controls | |||
| Buildings.Fluid.HydronicConfigurations.Types.Control | typCtl (from PartialHydronicConfiguration) | Buildings.Fluid.HydronicConfigurations.Types.Control.None | Type of built-in controls |
| Buildings.Fluid.HydronicConfigurations.Types.ControlVariable | typVar (from PartialHydronicConfiguration) | Buildings.Fluid.HydronicConfigurations.Types.ControlVariable.SupplyTemperature | Controlled variable |
| Buildings.Controls.OBC.CDL.Types.SimpleController | controllerType (from PartialHydronicConfiguration) | Buildings.Controls.OBC.CDL.Types.SimpleController.PI | Type of controller |
| Real | k (from PartialHydronicConfiguration) | 0.1 | Gain of controller |
| Real | Ti (from PartialHydronicConfiguration) | 120 | Time constant of integrator block |
| Assumptions | |||
| Boolean | use_lumFloRes (from PartialHydronicConfiguration) | true | Set to true to use a lumped flow resistance when possible |
| Boolean | allowFlowReversal (from PartialHydronicConfiguration) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1 |
| Balancing valves | |||
| Modelica.Units.SI.PressureDifference | dpBal1_nominal (from PartialHydronicConfiguration) | 0 | Primary balancing valve pressure drop at design conditions |
| Modelica.Units.SI.PressureDifference | dpBal2_nominal (from PartialHydronicConfiguration) | 0 | Secondary balancing valve pressure drop at design conditions |
| Modelica.Units.SI.PressureDifference | dpBal3_nominal (from PartialHydronicConfiguration) | 0 | Bypass balancing valve pressure drop at design conditions |
| Dynamics › Conservation equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from PartialHydronicConfiguration) | Modelica.Fluid.Types.Dynamics.FixedInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialHydronicConfiguration) | false | = true, if actual temperature at port is computed |
Connectors
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Medium.MassFlowRate | m1_flow (from PartialHydronicConfiguration) | 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 PartialHydronicConfiguration) | port_a1.p - port_b1.p | Pressure difference between port_a1 and port_b1 |
| Medium.MassFlowRate | m2_flow (from PartialHydronicConfiguration) | 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 PartialHydronicConfiguration) | port_a2.p - port_b2.p | Pressure difference between port_a2 and port_b2 |
| Medium.ThermodynamicState | sta_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.ThermodynamicState | sta_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.ThermodynamicState | sta_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.ThermodynamicState | sta_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.Junction | junSup (from InjectionTwoWay) | Junction | |
| Components.Pump | pum (from InjectionTwoWay) | Pump | |
| Components.TwoWayValve | val (from InjectionTwoWay) | Control valve | |
| Sensors.TemperatureTwoPort | T2Sup (from InjectionTwoWay) | Consumer circuit supply temperature sensor | |
| FixedResistances.Junction | junRet (from InjectionTwoWay) | Junction | |
| FixedResistances.PressureDrop | res2 (from InjectionTwoWay) | Secondary balancing valve | |
| FixedResistances.PressureDrop | res1 (from InjectionTwoWay) | Primary balancing valve | |
| Sensors.TemperatureTwoPort | T2Ret (from InjectionTwoWay) | Consumer circuit return temperature sensor | |
| Controls.PIDWithOperatingMode | ctl (from InjectionTwoWay) | Controller | |
| Buildings.Controls.OBC.CDL.Integers.GreaterThreshold | isEna (from InjectionTwoWay) | Returns true if enabled | |
| Buildings.Controls.OBC.CDL.Routing.RealExtractor | extIndSig (from InjectionTwoWay) | Select measured signal | |
| FixedResistances.LosslessPipe | res3 (from InjectionTwoWay) | Fluid pass-through that can be replaced by check valve | |
| Buildings.Controls.OBC.CDL.Integers.Sources.Constant | ctlVar (from InjectionTwoWay) | Controlled variable selector |
Revisions
-
June 30, 2022, by Antoine Gautier:
First implementation.