modelPartialThreeWayValve
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
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | homotopyInitialization | true | = true, use homotopy method |
| Real | fraK | 0.7 | Fraction Kv(port_3→port_2)/Kv(port_1→port_2) |
| Real | l | {0.0001, 0.0001} | Valve leakage, l=Kv(y=0)/Kv(y=1) |
| Dynamics › Conservation equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from LumpedVolumeDeclarations) | Modelica.Fluid.Types.Dynamics.DynamicFreeInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
| Modelica.Fluid.Types.Dynamics | substanceDynamics (from LumpedVolumeDeclarations) | energyDynamics | Type of independent mass fraction balance: dynamic (3 initialization options) or steady state |
| Modelica.Fluid.Types.Dynamics | traceDynamics (from LumpedVolumeDeclarations) | energyDynamics | Type of trace substance balance: dynamic (3 initialization options) or steady state |
| Modelica.Units.SI.MassFlowRate | mDyn_flow_nominal (from PartialThreeWayResistance) | Nominal mass flow rate for dynamic momentum and energy balance | |
| Advanced › Dynamics | |||
| Modelica.Fluid.Types.Dynamics | massDynamics (from LumpedVolumeDeclarations) | energyDynamics | Type of mass balance: dynamic (3 initialization options) or steady state, must be steady state if energyDynamics is steady state |
| Initialization | |||
| Medium.AbsolutePressure | p_start (from LumpedVolumeDeclarations) | Medium.p_default | Start value of pressure |
| Medium.Temperature | T_start (from LumpedVolumeDeclarations) | Medium.T_default | Start value of temperature |
| Medium.MassFraction[Medium.nX] | X_start (from LumpedVolumeDeclarations) | Medium.X_default | Start 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 | |||
| Real | mSenFac (from LumpedVolumeDeclarations) | 1 | Factor for scaling the sensible thermal mass of the volume |
| Dynamics › Nominal condition | |||
| Modelica.Units.SI.Time | tau (from PartialThreeWayResistance) | 10 | Time constant at nominal flow for dynamic energy and momentum balance |
| Advanced | |||
| Boolean | from_dp (from PartialThreeWayResistance) | true | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Modelica.Fluid.Types.PortFlowDirection | portFlowDirection_1 (from PartialThreeWayResistance) | Modelica.Fluid.Types.PortFlowDirection.Bidirectional | Flow direction for port_1 |
| Modelica.Fluid.Types.PortFlowDirection | portFlowDirection_2 (from PartialThreeWayResistance) | Modelica.Fluid.Types.PortFlowDirection.Bidirectional | Flow direction for port_2 |
| Modelica.Fluid.Types.PortFlowDirection | portFlowDirection_3 (from PartialThreeWayResistance) | Modelica.Fluid.Types.PortFlowDirection.Bidirectional | Flow direction for port_3 |
| Boolean | verifyFlowReversal (from PartialThreeWayResistance) | false | =true, to assert that the flow does not reverse when portFlowDirection_* does not equal Bidirectional |
| Modelica.Units.SI.MassFlowRate | m_flow_small (from PartialThreeWayResistance) | Small mass flow rate for checking flow reversal | |
| Boolean | linearized | {false, false} | = true, use linear relation between m_flow and dp for any flow rate |
| Dynamics › Actuator position | |||
| Boolean | use_strokeTime (from ActuatorSignal) | true | Set to true to continuously open and close valve using strokeTime |
| Modelica.Units.SI.Time | strokeTime (from ActuatorSignal) | 120 | Time needed to fully open or close actuator |
| Modelica.Blocks.Types.Init | init (from ActuatorSignal) | Modelica.Blocks.Types.Init.InitialOutput | Type of initialization (no init/steady state/initial state/initial output) |
| Real | y_start (from ActuatorSignal) | 1 | Initial position of actuator |
| Flow Coefficient | |||
| Buildings.Fluid.Types.CvTypes | CvData (from ValveParameters) | Buildings.Fluid.Types.CvTypes.OpPoint | Selection of flow coefficient |
| Real | Kv (from ValveParameters) | Kv (metric) flow coefficient [m3/h/(bar)^(1/2)] | |
| Real | Cv (from ValveParameters) | Cv (US) flow coefficient [USG/min/(psi)^(1/2)] | |
| Modelica.Units.SI.Area | Av (from ValveParameters) | Av (metric) flow coefficient | |
| Pressure-flow linearization | |||
| Real | deltaM (from ValveParameters) | 0.02 | Fraction of nominal flow rate where linearization starts, if y=1 |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | m_flow_nominal (from ValveParameters) | Nominal mass flow rate | |
| Modelica.Units.SI.PressureDifference | dpValve_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.Density | rhoStd (from ValveParameters) | Inlet density for which valve coefficients are defined | |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_1 (from PartialThreeWayResistance) | First port, typically inlet | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_2 (from PartialThreeWayResistance) | Second port, typically outlet | |
| Modelica.Fluid.Interfaces.FluidPort_a | port_3 (from PartialThreeWayResistance) | Third port, can be either inlet or outlet | |
| Modelica.Blocks.Interfaces.RealInput | y (from ActuatorSignal) | Actuator position (0: closed, 1: open) | |
| Modelica.Blocks.Interfaces.RealOutput | y_actual (from ActuatorSignal) | Actual actuator position |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Fluid.Interfaces.PartialTwoPortInterface | res1 (from PartialThreeWayResistance) | ||
| Buildings.Fluid.Interfaces.PartialTwoPortInterface | res2 (from PartialThreeWayResistance) | ||
| Buildings.Fluid.Interfaces.PartialTwoPortInterface | res3 (from PartialThreeWayResistance) | ||
| Buildings.Fluid.Delays.DelayFirstOrder | vol (from PartialThreeWayResistance) | Fluid volume to break algebraic loop |
Revisions
-
February 3, 2023, by Michael Wetter:
Removed start value fordp.
This is for Buildings, #3231. -
November 16, 2022, by Michael Wetter:
Propagated parameterriseTimeto 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:
ChangedhomotopyInitializationto 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:
RenamedfilteredInputtouse_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 assignmentredeclare final package Medium=Mediumas 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 fordpValve_nominal, as this parameter has the attributefixed=falsefor some values ofCvData. In this case, assigning a value is not allowed. Corrected wrong documentation of parameterfraK(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 attributesmin=0andmax=1, instances of this model used the correct value. -
April 12, 2012 by Michael Wetter:
Removed duplicate declaration ofm_flow_nominal. -
February 20, 2012 by Michael Wetter:
Renamed parameterdp_nominaltodpValve_nominal, and added new parameterdpFixed_nominal=0. See Buildings.Fluid.Actuators.UsersGuide. -
March 25, 2011, by Michael Wetter:
Added homotopy method. -
June 3, 2008 by Michael Wetter:
First implementation.