modelPartialThreeWayValve

Partial three way valve

Extends from Buildings.Fluid.BaseClasses.PartialThreeWayResistance (Flow splitter with partial resistance model at each port), Buildings.Fluid.Actuators.BaseClasses.ActuatorSignal (Partial model that implements the filtered opening for valves and dampers), Buildings.Fluid.Actuators.BaseClasses.ValveParameters (Model with parameters for valves).

Information

Partial model of a three way valve. This is the base model for valves with different opening characteristics, such as linear, equal percentage or quick opening. The three way valve model consists of a mixer where valves are placed in two of the flow legs. The third flow leg has no friction. The flow coefficient Kv for flow from port_1 → port_2 is a parameter. The flow coefficient for the bypass flow from port_3 → port_2 is computed as

         Kv(port_3 → port_2)
  fraK = ----------------------
         Kv(port_1 → port_2)

where 0 < fraK ≤ 1 is a parameter with a default value of fraK=0.7.

Since this model uses two way valves to construct a three way valve, see Buildings.Fluid.Actuators.BaseClasses.PartialTwoWayValve for details regarding the valve implementation.

Parameters

TypeNameDefaultDescription
BooleanhomotopyInitializationtrue= true, use homotopy method
RealfraK0.7Fraction Kv(port_3&rarr;port_2)/Kv(port_1&rarr;port_2)
Reall{0.0001, 0.0001}Valve leakage, l=Kv(y=0)/Kv(y=1)
Dynamics › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamics (from LumpedVolumeDeclarations)Modelica.Fluid.Types.Dynamics.DynamicFreeInitialType of energy balance: dynamic (3 initialization options) or steady state
Modelica.Fluid.Types.DynamicssubstanceDynamics (from LumpedVolumeDeclarations)energyDynamicsType of independent mass fraction balance: dynamic (3 initialization options) or steady state
Modelica.Fluid.Types.DynamicstraceDynamics (from LumpedVolumeDeclarations)energyDynamicsType of trace substance balance: dynamic (3 initialization options) or steady state
Modelica.Units.SI.MassFlowRatemDyn_flow_nominal (from PartialThreeWayResistance)Nominal mass flow rate for dynamic momentum and energy balance
Advanced › Dynamics
Modelica.Fluid.Types.DynamicsmassDynamics (from LumpedVolumeDeclarations)energyDynamicsType of mass balance: dynamic (3 initialization options) or steady state, must be steady state if energyDynamics is steady state
Initialization
Medium.AbsolutePressurep_start (from LumpedVolumeDeclarations)Medium.p_defaultStart value of pressure
Medium.TemperatureT_start (from LumpedVolumeDeclarations)Medium.T_defaultStart value of temperature
Medium.MassFraction[Medium.nX]X_start (from LumpedVolumeDeclarations)Medium.X_defaultStart value of mass fractions m_i/m
Medium.ExtraProperty[Medium.nC]C_start (from LumpedVolumeDeclarations)fill(0, Medium.nC)Start value of trace substances
Medium.ExtraProperty[Medium.nC]C_nominal (from LumpedVolumeDeclarations)fill(1E-2, Medium.nC)Nominal value of trace substances. (Set to typical order of magnitude.)
Dynamics
RealmSenFac (from LumpedVolumeDeclarations)1Factor for scaling the sensible thermal mass of the volume
Dynamics › Nominal condition
Modelica.Units.SI.Timetau (from PartialThreeWayResistance)10Time constant at nominal flow for dynamic energy and momentum balance
Advanced
Booleanfrom_dp (from PartialThreeWayResistance)true= true, use m_flow = f(dp) else dp = f(m_flow)
Modelica.Fluid.Types.PortFlowDirectionportFlowDirection_1 (from PartialThreeWayResistance)Modelica.Fluid.Types.PortFlowDirection.BidirectionalFlow direction for port_1
Modelica.Fluid.Types.PortFlowDirectionportFlowDirection_2 (from PartialThreeWayResistance)Modelica.Fluid.Types.PortFlowDirection.BidirectionalFlow direction for port_2
Modelica.Fluid.Types.PortFlowDirectionportFlowDirection_3 (from PartialThreeWayResistance)Modelica.Fluid.Types.PortFlowDirection.BidirectionalFlow direction for port_3
BooleanverifyFlowReversal (from PartialThreeWayResistance)false=true, to assert that the flow does not reverse when portFlowDirection_* does not equal Bidirectional
Modelica.Units.SI.MassFlowRatem_flow_small (from PartialThreeWayResistance)Small mass flow rate for checking flow reversal
Booleanlinearized{false, false}= true, use linear relation between m_flow and dp for any flow rate
Dynamics › Actuator position
Booleanuse_strokeTime (from ActuatorSignal)trueSet to true to continuously open and close valve using strokeTime
Modelica.Units.SI.TimestrokeTime (from ActuatorSignal)120Time needed to fully open or close actuator
Modelica.Blocks.Types.Initinit (from ActuatorSignal)Modelica.Blocks.Types.Init.InitialOutputType of initialization (no init/steady state/initial state/initial output)
Realy_start (from ActuatorSignal)1Initial position of actuator
Flow Coefficient
Buildings.Fluid.Types.CvTypesCvData (from ValveParameters)Buildings.Fluid.Types.CvTypes.OpPointSelection of flow coefficient
RealKv (from ValveParameters)Kv (metric) flow coefficient [m3/h/(bar)^(1/2)]
RealCv (from ValveParameters)Cv (US) flow coefficient [USG/min/(psi)^(1/2)]
Modelica.Units.SI.AreaAv (from ValveParameters)Av (metric) flow coefficient
Pressure-flow linearization
RealdeltaM (from ValveParameters)0.02Fraction of nominal flow rate where linearization starts, if y=1
Nominal condition
Modelica.Units.SI.MassFlowRatem_flow_nominal (from ValveParameters)Nominal mass flow rate
Modelica.Units.SI.PressureDifferencedpValve_nominal (from ValveParameters)Nominal pressure drop of fully open valve, used if CvData=Buildings.Fluid.Types.CvTypes.OpPoint
Modelica.Units.SI.PressureDifference[2]dpFixed_nominal{0, 0}Nominal pressure drop of pipes and other equipment in flow legs at port_1 and port_3
Advanced › Nominal condition
Modelica.Units.SI.DensityrhoStd (from ValveParameters)Inlet density for which valve coefficients are defined

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_1 (from PartialThreeWayResistance)First port, typically inlet
Modelica.Fluid.Interfaces.FluidPort_bport_2 (from PartialThreeWayResistance)Second port, typically outlet
Modelica.Fluid.Interfaces.FluidPort_aport_3 (from PartialThreeWayResistance)Third port, can be either inlet or outlet
Modelica.Blocks.Interfaces.RealInputy (from ActuatorSignal)Actuator position (0: closed, 1: open)
Modelica.Blocks.Interfaces.RealOutputy_actual (from ActuatorSignal)Actual actuator position

Components

TypeNameDefaultDescription
Buildings.Fluid.Interfaces.PartialTwoPortInterfaceres1 (from PartialThreeWayResistance)
Buildings.Fluid.Interfaces.PartialTwoPortInterfaceres2 (from PartialThreeWayResistance)
Buildings.Fluid.Interfaces.PartialTwoPortInterfaceres3 (from PartialThreeWayResistance)
Buildings.Fluid.Delays.DelayFirstOrdervol (from PartialThreeWayResistance)Fluid volume to break algebraic loop

Revisions

  • February 3, 2023, by Michael Wetter:
    Removed start value for dp.
    This is for Buildings, #3231.
  • November 16, 2022, by Michael Wetter:
    Propagated parameter riseTime to valves. The value is not used as the filter is disabled, but it will show in the result file. Having a consistent value for all these parameters in the result filter helps during debugging.
  • April 14, 2020, by Michael Wetter:
    Changed homotopyInitialization to a constant.
    This is for IBPSA, #1341.
  • November 5, 2019, by Michael Wetter:
    Moved assignment of leakage from Buildings.Fluid.Actuators.BaseClasses.PartialThreeWayValve to the parent classes.
    This is for #1227.
  • October 25, 2019, by Jianjun Hu:
    Improved icon graphics annotation. This is for #1225.
  • March 24, 2017, by Michael Wetter:
    Renamed filteredInput to use_inputFilter.
    This is for #665.
  • January 22, 2016, by Michael Wetter:
    Corrected type declaration of pressure difference. This is for #404.
  • December 17, 2015, by Michael Wetter:
    Removed assignment redeclare final package Medium=Medium as this is now done in the base class. This is for https://github.com/lbl-srg/modelica-buildings/issues/475.
  • November 23, 2015 by Filip Jorissen:
    Corrected valve leakage value to avoid warnings.
  • February 28, 2013, by Michael Wetter:
    Reformulated assignment of parameters. Removed default value for dpValve_nominal, as this parameter has the attribute fixed=false for some values of CvData. In this case, assigning a value is not allowed. Corrected wrong documentation of parameter fraK(min=0, max=1) = 0.7. The documenation was Fraction Kv(port_1→port_2)/Kv(port_3→port_2) instead of Fraction Kv(port_3→port_2)/Kv(port_1→port_2). Because the parameter set correctly its attributes min=0 and max=1, instances of this model used the correct value.
  • April 12, 2012 by Michael Wetter:
    Removed duplicate declaration of m_flow_nominal.
  • February 20, 2012 by Michael Wetter:
    Renamed parameter dp_nominal to dpValve_nominal, and added new parameter dpFixed_nominal=0. See Buildings.Fluid.Actuators.UsersGuide.
  • March 25, 2011, by Michael Wetter:
    Added homotopy method.
  • June 3, 2008 by Michael Wetter:
    First implementation.