Package with valve models
Extends from Modelica.Icons.VariantsPackage (Icon for package containing variants).
Name | Description |
---|---|
ThreeWayEqualPercentageLinear | Three way valve with equal percentage and linear characteristics |
ThreeWayLinear | Three way valve with linear characteristics |
TwoWayEqualPercentage | Two way valve with linear flow characteristics |
TwoWayLinear | Two way valve with linear flow characteristics |
TwoWayQuickOpening | Two way valve with linear flow characteristics |
TwoWayTable | Two way valve with linear flow characteristics |
Data | Data files for valves |
Examples | Collection of models that illustrate model use and test models |
Three way valve with equal percentage and linear characteristics
Three way valve with equal percentage characteristics
between port_1
and port_2
and linear opening characteristic between port_1
and port_2
.
Such opening characteristics were typical for valves from Landis & Gyr (now
Siemens).
This model is based on the partial valve models Buildings.Fluid.Actuators.BaseClasses.PartialThreeWayValve and Buildings.Fluid.Actuators.BaseClasses.PartialTwoWayValve. See Buildings.Fluid.Actuators.BaseClasses.PartialThreeWayValve for the implementation of the three way valve and see Buildings.Fluid.Actuators.BaseClasses.PartialTwoWayValve for the implementation of the regularization near the origin.
Extends from BaseClasses.PartialThreeWayValve (Partial three way valve).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | PartialMedium | Medium in the component | |
Real | fraK | 0.7 | Fraction Kv(port_3->port_2)/Kv(port_1->port_2) |
Real | l[2] | {0,0} | Valve leakage, l=Kv(y=0)/Kv(y=1) |
Real | R | 50 | Rangeability, R=50...100 typically |
Real | delta0 | 0.01 | Range of significant deviation from equal percentage law |
Flow Coefficient | |||
CvTypes | CvData | Buildings.Fluid.Types.CvType... | Selection of flow coefficient |
Real | Kv | Kv (metric) flow coefficient [m3/h/(bar)^(1/2)] | |
Real | Cv | Cv (US) flow coefficient [USG/min/(psi)^(1/2)] | |
Area | Av | Av (metric) flow coefficient [m2] | |
Pressure-flow linearization | |||
Real | deltaM | 0.02 | Fraction of nominal flow rate where linearization starts, if y=1 |
Nominal condition | |||
MassFlowRate | m_flow_nominal | Nominal mass flow rate [kg/s] | |
Pressure | dpValve_nominal | Nominal pressure drop of fully open valve, used if CvData=Buildings.Fluid.Types.CvTypes.OpPoint [Pa] | |
Pressure | dpFixed_nominal[2] | {0,0} | Nominal pressure drop of pipes and other equipment in flow legs at port_1 and port_3 [Pa] |
Dynamics | |||
Equations | |||
Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamic... | Formulation of energy balance |
Dynamics | massDynamics | energyDynamics | Formulation of mass balance |
Boolean | dynamicBalance | true | Set to true to use a dynamic balance, which often leads to smaller systems of equations |
Nominal condition | |||
Time | tau | 10 | Time constant at nominal flow for dynamic energy and momentum balance [s] |
Filtered opening | |||
Boolean | filteredOpening | true | = true, if opening is filtered with a 2nd order CriticalDamping filter |
Time | riseTime | 120 | Rise time of the filter (time to reach 99.6 % of an opening step) [s] |
Init | init | Modelica.Blocks.Types.Init.I... | Type of initialization (no init/steady state/initial state/initial output) |
Real | y_start | 1 | Initial value of output |
Initialization | |||
AbsolutePressure | p_start | Medium.p_default | Start value of pressure [Pa] |
Temperature | T_start | Medium.T_default | Start value of temperature [K] |
MassFraction | X_start[Medium.nX] | Medium.X_default | Start value of mass fractions m_i/m [kg/kg] |
ExtraProperty | C_start[Medium.nC] | fill(0, Medium.nC) | Start value of trace substances |
ExtraProperty | C_nominal[Medium.nC] | fill(1E-2, Medium.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
Advanced | |||
Boolean | from_dp | true | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearized[2] | {false,false} | = true, use linear relation between m_flow and dp for any flow rate |
Boolean | homotopyInitialization | true | = true, use homotopy method |
Nominal condition | |||
Density | rhoStd | Medium.density_pTX(101325, 2... | Inlet density for which valve coefficients are defined [kg/m3] |
Type | Name | Description |
---|---|---|
FluidPort_a | port_1 | |
FluidPort_b | port_2 | |
FluidPort_a | port_3 | |
input RealInput | y | Actuator position (0: closed, 1: open) |
output RealOutput | y_actual | Actual valve position |
Three way valve with linear characteristics
Three way valve with linear opening characteristic.
This model is based on the partial valve models Buildings.Fluid.Actuators.BaseClasses.PartialThreeWayValve and Buildings.Fluid.Actuators.BaseClasses.PartialTwoWayValve. See Buildings.Fluid.Actuators.BaseClasses.PartialThreeWayValve for the implementation of the three way valve and see Buildings.Fluid.Actuators.BaseClasses.PartialTwoWayValve for the implementation of the regularization near the origin.
Extends from BaseClasses.PartialThreeWayValve (Partial three way valve).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | PartialMedium | Medium in the component | |
Real | fraK | 0.7 | Fraction Kv(port_3->port_2)/Kv(port_1->port_2) |
Real | l[2] | {0,0} | Valve leakage, l=Kv(y=0)/Kv(y=1) |
Flow Coefficient | |||
CvTypes | CvData | Buildings.Fluid.Types.CvType... | Selection of flow coefficient |
Real | Kv | Kv (metric) flow coefficient [m3/h/(bar)^(1/2)] | |
Real | Cv | Cv (US) flow coefficient [USG/min/(psi)^(1/2)] | |
Area | Av | Av (metric) flow coefficient [m2] | |
Pressure-flow linearization | |||
Real | deltaM | 0.02 | Fraction of nominal flow rate where linearization starts, if y=1 |
Nominal condition | |||
MassFlowRate | m_flow_nominal | Nominal mass flow rate [kg/s] | |
Pressure | dpValve_nominal | Nominal pressure drop of fully open valve, used if CvData=Buildings.Fluid.Types.CvTypes.OpPoint [Pa] | |
Pressure | dpFixed_nominal[2] | {0,0} | Nominal pressure drop of pipes and other equipment in flow legs at port_1 and port_3 [Pa] |
Dynamics | |||
Equations | |||
Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamic... | Formulation of energy balance |
Dynamics | massDynamics | energyDynamics | Formulation of mass balance |
Boolean | dynamicBalance | true | Set to true to use a dynamic balance, which often leads to smaller systems of equations |
Nominal condition | |||
Time | tau | 10 | Time constant at nominal flow for dynamic energy and momentum balance [s] |
Filtered opening | |||
Boolean | filteredOpening | true | = true, if opening is filtered with a 2nd order CriticalDamping filter |
Time | riseTime | 120 | Rise time of the filter (time to reach 99.6 % of an opening step) [s] |
Init | init | Modelica.Blocks.Types.Init.I... | Type of initialization (no init/steady state/initial state/initial output) |
Real | y_start | 1 | Initial value of output |
Initialization | |||
AbsolutePressure | p_start | Medium.p_default | Start value of pressure [Pa] |
Temperature | T_start | Medium.T_default | Start value of temperature [K] |
MassFraction | X_start[Medium.nX] | Medium.X_default | Start value of mass fractions m_i/m [kg/kg] |
ExtraProperty | C_start[Medium.nC] | fill(0, Medium.nC) | Start value of trace substances |
ExtraProperty | C_nominal[Medium.nC] | fill(1E-2, Medium.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
Advanced | |||
Boolean | from_dp | true | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearized[2] | {false,false} | = true, use linear relation between m_flow and dp for any flow rate |
Boolean | homotopyInitialization | true | = true, use homotopy method |
Nominal condition | |||
Density | rhoStd | Medium.density_pTX(101325, 2... | Inlet density for which valve coefficients are defined [kg/m3] |
Type | Name | Description |
---|---|---|
FluidPort_a | port_1 | |
FluidPort_b | port_2 | |
FluidPort_a | port_3 | |
input RealInput | y | Actuator position (0: closed, 1: open) |
output RealOutput | y_actual | Actual valve position |
Two way valve with linear flow characteristics
Two way valve with an equal percentage valve opening characteristic.
This model is based on the partial valve model Buildings.Fluid.Actuators.BaseClasses.PartialTwoWayValve. Check this model for more information, such as the regularization near the origin.
Extends from BaseClasses.PartialTwoWayValve (Partial model for a two way valve).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | PartialMedium | Medium in the component | |
Real | l | 0.0001 | Valve leakage, l=Kv(y=0)/Kv(y=1) |
Real | phi | if homotopyInitialization th... | Ratio actual to nominal mass flow rate of valve, phi=Kv(y)/Kv(y=1) |
Real | R | 50 | Rangeability, R=50...100 typically |
Real | delta0 | 0.01 | Range of significant deviation from equal percentage law |
Nominal condition | |||
MassFlowRate | m_flow_nominal | Nominal mass flow rate [kg/s] | |
Pressure | dpValve_nominal | Nominal pressure drop of fully open valve, used if CvData=Buildings.Fluid.Types.CvTypes.OpPoint [Pa] | |
Pressure | dpFixed_nominal | 0 | Pressure drop of pipe and other resistances that are in series [Pa] |
Initialization | |||
MassFlowRate | m_flow.start | 0 | Mass flow rate from port_a to port_b (m_flow > 0 is design flow direction) [kg/s] |
Pressure | dp.start | 0 | Pressure difference between port_a and port_b [Pa] |
Flow Coefficient | |||
CvTypes | CvData | Buildings.Fluid.Types.CvType... | Selection of flow coefficient |
Real | Kv | Kv (metric) flow coefficient [m3/h/(bar)^(1/2)] | |
Real | Cv | Cv (US) flow coefficient [USG/min/(psi)^(1/2)] | |
Area | Av | Av (metric) flow coefficient [m2] | |
Pressure-flow linearization | |||
Real | deltaM | 0.02 | Fraction of nominal flow rate where linearization starts, if y=1 |
Assumptions | |||
Boolean | allowFlowReversal | system.allowFlowReversal | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
Advanced | |||
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
Boolean | from_dp | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | homotopyInitialization | true | = true, use homotopy method |
Boolean | linearized | false | = true, use linear relation between m_flow and dp for any flow rate |
Nominal condition | |||
Density | rhoStd | Medium.density_pTX(101325, 2... | Inlet density for which valve coefficients are defined [kg/m3] |
Dynamics | |||
Filtered opening | |||
Boolean | filteredOpening | true | = true, if opening is filtered with a 2nd order CriticalDamping filter |
Time | riseTime | 120 | Rise time of the filter (time to reach 99.6 % of an opening step) [s] |
Init | init | Modelica.Blocks.Types.Init.I... | Type of initialization (no init/steady state/initial state/initial output) |
Real | y_start | 1 | Initial value of output |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b | Fluid connector b (positive design flow direction is from port_a to port_b) |
input RealInput | y | Actuator position (0: closed, 1: open) |
output RealOutput | y_actual | Actual valve position |
Two way valve with linear flow characteristics
Two way valve with linear opening characteristic.
This model is based on the partial valve model Buildings.Fluid.Actuators.BaseClasses.PartialTwoWayValve. Check this model for more information, such as the regularization near the origin.
Extends from BaseClasses.PartialTwoWayValve (Partial model for a two way valve).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | PartialMedium | Medium in the component | |
Real | l | 0.0001 | Valve leakage, l=Kv(y=0)/Kv(y=1) |
Real | phi | l + y_actual*(1 - l) | Ratio actual to nominal mass flow rate of valve, phi=Kv(y)/Kv(y=1) |
Nominal condition | |||
MassFlowRate | m_flow_nominal | Nominal mass flow rate [kg/s] | |
Pressure | dpValve_nominal | Nominal pressure drop of fully open valve, used if CvData=Buildings.Fluid.Types.CvTypes.OpPoint [Pa] | |
Pressure | dpFixed_nominal | 0 | Pressure drop of pipe and other resistances that are in series [Pa] |
Initialization | |||
MassFlowRate | m_flow.start | 0 | Mass flow rate from port_a to port_b (m_flow > 0 is design flow direction) [kg/s] |
Pressure | dp.start | 0 | Pressure difference between port_a and port_b [Pa] |
Flow Coefficient | |||
CvTypes | CvData | Buildings.Fluid.Types.CvType... | Selection of flow coefficient |
Real | Kv | Kv (metric) flow coefficient [m3/h/(bar)^(1/2)] | |
Real | Cv | Cv (US) flow coefficient [USG/min/(psi)^(1/2)] | |
Area | Av | Av (metric) flow coefficient [m2] | |
Pressure-flow linearization | |||
Real | deltaM | 0.02 | Fraction of nominal flow rate where linearization starts, if y=1 |
Assumptions | |||
Boolean | allowFlowReversal | system.allowFlowReversal | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
Advanced | |||
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
Boolean | from_dp | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | homotopyInitialization | true | = true, use homotopy method |
Boolean | linearized | false | = true, use linear relation between m_flow and dp for any flow rate |
Nominal condition | |||
Density | rhoStd | Medium.density_pTX(101325, 2... | Inlet density for which valve coefficients are defined [kg/m3] |
Dynamics | |||
Filtered opening | |||
Boolean | filteredOpening | true | = true, if opening is filtered with a 2nd order CriticalDamping filter |
Time | riseTime | 120 | Rise time of the filter (time to reach 99.6 % of an opening step) [s] |
Init | init | Modelica.Blocks.Types.Init.I... | Type of initialization (no init/steady state/initial state/initial output) |
Real | y_start | 1 | Initial value of output |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b | Fluid connector b (positive design flow direction is from port_a to port_b) |
input RealInput | y | Actuator position (0: closed, 1: open) |
output RealOutput | y_actual | Actual valve position |
Two way valve with linear flow characteristics
Two way valve with a power function for the valve opening characteristic. Valves that need to open quickly typically have such a valve characteristics.
This model is based on the partial valve model Buildings.Fluid.Actuators.BaseClasses.PartialTwoWayValve. Check this model for more information, such as the regularization near the origin.
Extends from BaseClasses.PartialTwoWayValve (Partial model for a two way valve).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | PartialMedium | Medium in the component | |
Real | l | 0.0001 | Valve leakage, l=Kv(y=0)/Kv(y=1) |
Real | phi | if homotopyInitialization th... | Ratio actual to nominal mass flow rate of valve, phi=Kv(y)/Kv(y=1) |
Real | alp | 2 | Parameter for valve characteristics, alp>0 |
Real | delta0 | 0.01 | Range of significant deviation from power law |
Nominal condition | |||
MassFlowRate | m_flow_nominal | Nominal mass flow rate [kg/s] | |
Pressure | dpValve_nominal | Nominal pressure drop of fully open valve, used if CvData=Buildings.Fluid.Types.CvTypes.OpPoint [Pa] | |
Pressure | dpFixed_nominal | 0 | Pressure drop of pipe and other resistances that are in series [Pa] |
Initialization | |||
MassFlowRate | m_flow.start | 0 | Mass flow rate from port_a to port_b (m_flow > 0 is design flow direction) [kg/s] |
Pressure | dp.start | 0 | Pressure difference between port_a and port_b [Pa] |
Flow Coefficient | |||
CvTypes | CvData | Buildings.Fluid.Types.CvType... | Selection of flow coefficient |
Real | Kv | Kv (metric) flow coefficient [m3/h/(bar)^(1/2)] | |
Real | Cv | Cv (US) flow coefficient [USG/min/(psi)^(1/2)] | |
Area | Av | Av (metric) flow coefficient [m2] | |
Pressure-flow linearization | |||
Real | deltaM | 0.02 | Fraction of nominal flow rate where linearization starts, if y=1 |
Assumptions | |||
Boolean | allowFlowReversal | system.allowFlowReversal | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
Advanced | |||
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
Boolean | from_dp | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | homotopyInitialization | true | = true, use homotopy method |
Boolean | linearized | false | = true, use linear relation between m_flow and dp for any flow rate |
Nominal condition | |||
Density | rhoStd | Medium.density_pTX(101325, 2... | Inlet density for which valve coefficients are defined [kg/m3] |
Dynamics | |||
Filtered opening | |||
Boolean | filteredOpening | true | = true, if opening is filtered with a 2nd order CriticalDamping filter |
Time | riseTime | 120 | Rise time of the filter (time to reach 99.6 % of an opening step) [s] |
Init | init | Modelica.Blocks.Types.Init.I... | Type of initialization (no init/steady state/initial state/initial output) |
Real | y_start | 1 | Initial value of output |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b | Fluid connector b (positive design flow direction is from port_a to port_b) |
input RealInput | y | Actuator position (0: closed, 1: open) |
output RealOutput | y_actual | Actual valve position |
Two way valve with linear flow characteristics
Two way valve with opening characteristic that is configured through a table.
The mass flow rate for the fully open valve is determined based
on the value of the parameter CvData
.
For the different valve positions y ∈ [0, 1], this nominal flow rate is
scaled by the values of the parameter
flowCharacteristics
.
The parameter flowCharacteristics
declares a table of the form
y | 0 | ... | 1 |
φ | l | ... | 1 |
where l = Kv(y=0)/Kv(y=1) > 0 is the valve leakage. The first row is the valve opening, and the second row is the mass flow rate, relative to the mass flow rate of the fully open valve, under the assumption of a constant pressure difference across the valve. A suggested value for the valve leakage is l=0.0001. If l = 0, then this model will replace it with l = 10-8 for numerical reasons. For example, if a valve has Kv=0.5 [m3/h/bar1/2] and a linear opening characteristics and a valve leakage of l=0.0001, then one would set
CvData=Buildings.Fluid.Types.CvTypes.Kv Kv = 0.5 flowCharacteristics(y={0,1}, phi={0.0001,1})
Note, however, that Buildings.Fluid.Actuators.Valves.TwoWayLinear provides a more efficient implementation for this simple case.
The parameter flowCharacteristics
must meet the following
requirements, otherwise the model stops with an error:
flowCharacteristics.y
and flowCharacteristics.phi
must be strictly monotonic increasing.
flowCharacteristics.y[1]=0
, and
flowCharacteristics.phi[1]
must be equal to the
leakage flow rate, which must be bigger than zero.
Otherwise, a default value of 1E-8
is used.
flowCharacteristics.y[end]=1
and
flowCharacteristics.phi[end]=1
.
This model is based on the partial valve model Buildings.Fluid.Actuators.BaseClasses.PartialTwoWayValve. Check this model for more information, such as the regularization near the origin.
For an example that specifies an opening characteristics, see Buildings.Fluid.Actuators.Valves.Examples.TwoWayValveTable.
Extends from BaseClasses.PartialTwoWayValve (Partial model for a two way valve).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | PartialMedium | Medium in the component | |
Real | l | phiLooUp.table[1, 2] | Valve leakage, l=Kv(y=0)/Kv(y=1) |
Real | phi | phiLooUp.y[1] | Ratio actual to nominal mass flow rate of valve, phi=Kv(y)/Kv(y=1) |
Generic | flowCharacteristics | Table with flow characteristics | |
Nominal condition | |||
MassFlowRate | m_flow_nominal | Nominal mass flow rate [kg/s] | |
Pressure | dpValve_nominal | Nominal pressure drop of fully open valve, used if CvData=Buildings.Fluid.Types.CvTypes.OpPoint [Pa] | |
Pressure | dpFixed_nominal | 0 | Pressure drop of pipe and other resistances that are in series [Pa] |
Initialization | |||
MassFlowRate | m_flow.start | 0 | Mass flow rate from port_a to port_b (m_flow > 0 is design flow direction) [kg/s] |
Pressure | dp.start | 0 | Pressure difference between port_a and port_b [Pa] |
Flow Coefficient | |||
CvTypes | CvData | Buildings.Fluid.Types.CvType... | Selection of flow coefficient |
Real | Kv | Kv (metric) flow coefficient [m3/h/(bar)^(1/2)] | |
Real | Cv | Cv (US) flow coefficient [USG/min/(psi)^(1/2)] | |
Area | Av | Av (metric) flow coefficient [m2] | |
Pressure-flow linearization | |||
Real | deltaM | 0.02 | Fraction of nominal flow rate where linearization starts, if y=1 |
Assumptions | |||
Boolean | allowFlowReversal | system.allowFlowReversal | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
Advanced | |||
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
Boolean | from_dp | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | homotopyInitialization | true | = true, use homotopy method |
Boolean | linearized | false | = true, use linear relation between m_flow and dp for any flow rate |
Nominal condition | |||
Density | rhoStd | Medium.density_pTX(101325, 2... | Inlet density for which valve coefficients are defined [kg/m3] |
Dynamics | |||
Filtered opening | |||
Boolean | filteredOpening | true | = true, if opening is filtered with a 2nd order CriticalDamping filter |
Time | riseTime | 120 | Rise time of the filter (time to reach 99.6 % of an opening step) [s] |
Init | init | Modelica.Blocks.Types.Init.I... | Type of initialization (no init/steady state/initial state/initial output) |
Real | y_start | 1 | Initial value of output |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b | Fluid connector b (positive design flow direction is from port_a to port_b) |
input RealInput | y | Actuator position (0: closed, 1: open) |
output RealOutput | y_actual | Actual valve position |