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 |
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 PartialThreeWayValve and PartialTwoWayValve. See PartialThreeWayValve for the implementation of the three way valve and see PartialTwoWayValve for the implementation of the leakage flow or 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_SI(port_1->port_2)/Kv_SI(port_3->port_2) |
Real | l[2] | {0,0} | Valve leakage, l=Cv(y=0)/Cvs |
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 | 0 | Kv (metric) flow coefficient [m3/h/(bar)^(1/2)] |
Real | Cv | 0 | Cv (US) flow coefficient [USG/min/(psi)^(1/2)] |
Area | Av | 0 | Av (metric) flow coefficient [m2] |
Real | Kv_SI | m_flow_nominal/sqrt(dpVal_no... | Flow coefficient for fully open valve in SI units, Kv=m_flow/sqrt(dp) [kg/s/(Pa)^(1/2)] |
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 | dp_nominal | 6000 | Nominal pressure drop [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] |
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 | homotopyInitialization | true | = true, use homotopy method |
Boolean | linearized[2] | {false,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] |
Type | Name | Description |
---|---|---|
FluidPort_a | port_1 | |
FluidPort_b | port_2 | |
FluidPort_a | port_3 | |
input RealInput | y | Valve position (0: closed, 1: open) |
model ThreeWayEqualPercentageLinear "Three way valve with equal percentage and linear characteristics" extends BaseClasses.PartialThreeWayValve( redeclare TwoWayEqualPercentage res1( redeclare package Medium = Medium, l=l[1], deltaM=deltaM, dp_nominal=dp_nominal, dp(start=dp_nominal/2), from_dp=from_dp, linearized=linearized[1], homotopyInitialization=homotopyInitialization, R=R, delta0=delta0, m_flow_nominal=m_flow_nominal, CvData=CvData, Kv_SI=Kv_SI, Kv=Kv, Cv=Cv, Av=Av), redeclare TwoWayLinear res3( redeclare package Medium = Medium, l=l[2], deltaM=deltaM, dp_nominal=dp_nominal, dp(start=dp_nominal/2), from_dp=from_dp, linearized=linearized[2], homotopyInitialization=homotopyInitialization, m_flow_nominal=m_flow_nominal, CvData=CvData, Kv_SI=fraK*Kv_SI, Kv=fraK*Kv, Cv=fraK*Cv, Av=fraK*Av)); parameter Real R = 50 "Rangeability, R=50...100 typically"; parameter Real delta0 = 0.01 "Range of significant deviation from equal percentage law"; equationconnect(inv.y, res3.y); connect(y, inv.u2); connect(y, res1.y); end ThreeWayEqualPercentageLinear;
Three way valve with linear opening characteristic.
This model is based on the partial valve models PartialThreeWayValve and PartialTwoWayValve. See PartialThreeWayValve for the implementation of the three way valve and see PartialTwoWayValve for the implementation of the leakage flow or 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_SI(port_1->port_2)/Kv_SI(port_3->port_2) |
Real | l[2] | {0,0} | Valve leakage, l=Cv(y=0)/Cvs |
Flow Coefficient | |||
CvTypes | CvData | Buildings.Fluid.Types.CvType... | Selection of flow coefficient |
Real | Kv | 0 | Kv (metric) flow coefficient [m3/h/(bar)^(1/2)] |
Real | Cv | 0 | Cv (US) flow coefficient [USG/min/(psi)^(1/2)] |
Area | Av | 0 | Av (metric) flow coefficient [m2] |
Real | Kv_SI | m_flow_nominal/sqrt(dpVal_no... | Flow coefficient for fully open valve in SI units, Kv=m_flow/sqrt(dp) [kg/s/(Pa)^(1/2)] |
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 | dp_nominal | 6000 | Nominal pressure drop [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] |
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 | homotopyInitialization | true | = true, use homotopy method |
Boolean | linearized[2] | {false,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] |
Type | Name | Description |
---|---|---|
FluidPort_a | port_1 | |
FluidPort_b | port_2 | |
FluidPort_a | port_3 | |
input RealInput | y | Valve position (0: closed, 1: open) |
model ThreeWayLinear "Three way valve with linear characteristics" extends BaseClasses.PartialThreeWayValve( redeclare TwoWayLinear res1( redeclare package Medium = Medium, l=l[1], deltaM=deltaM, dp_nominal=dp_nominal, dp(start=dp_nominal/2), from_dp=from_dp, linearized=linearized[1], homotopyInitialization=homotopyInitialization, m_flow_nominal=m_flow_nominal, CvData=CvData, Kv_SI=Kv_SI, Kv=Kv, Cv=Cv, Av=Av), redeclare TwoWayLinear res3( redeclare package Medium = Medium, l=l[2], deltaM=deltaM, dp_nominal=dp_nominal, dp(start=dp_nominal/2), from_dp=from_dp, linearized=linearized[2], homotopyInitialization=homotopyInitialization, m_flow_nominal=m_flow_nominal, CvData=CvData, Kv_SI=fraK*Kv_SI, Kv=fraK*Kv, Cv=fraK*Cv, Av=fraK*Av)); equationconnect(inv.y, res3.y); connect(y, inv.u2); connect(y, res1.y); end ThreeWayLinear;
Two way valve with an equal percentage valve opening characteristic.
This model is based on the partial valve model PartialTwoWayValve. Check this model for more information, such as the leakage flow or 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=Cv(y=0)/Cvs |
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 | dp_nominal | 6000 | Pressure drop at nominal mass flow rate [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 | 0 | Kv (metric) flow coefficient [m3/h/(bar)^(1/2)] |
Real | Cv | 0 | Cv (US) flow coefficient [USG/min/(psi)^(1/2)] |
Area | Av | 0 | Av (metric) flow coefficient [m2] |
Real | Kv_SI | m_flow_nominal/sqrt(dpVal_no... | Flow coefficient for fully open valve in SI units, Kv=m_flow/sqrt(dp) [kg/s/(Pa)^(1/2)] |
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 | |||
MassFlowRate | m_flow_small | 1E-4*abs(m_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Boolean | homotopyInitialization | true | = true, use homotopy method |
Boolean | from_dp | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearized | false | = true, use linear relation between m_flow and dp for any flow rate |
Diagnostics | |||
Boolean | show_V_flow | false | = true, if volume flow rate at inflowing port is computed |
Boolean | show_T | false | = true, if actual temperature at port is computed (may lead to events) |
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_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) |
model TwoWayEqualPercentage "Two way valve with linear flow characteristics" extends BaseClasses.PartialTwoWayValve; parameter Real R = 50 "Rangeability, R=50...100 typically"; parameter Real delta0 = 0.01 "Range of significant deviation from equal percentage law"; initial equation assert(l < 1/R, "Wrong parameters in valve model.\n" + " Rangeability R = " + String(R) + "\n" + " Leakage flow l = " + String(l) + "\n" + " Must have l < 1/R = " + String(1/R)); equation if homotopyInitialization then phi = homotopy(actual=Buildings.Fluid.Actuators.BaseClasses.equalPercentage(y, R, l, delta0), simplified=l + y * (1 - l)); else phi = Buildings.Fluid.Actuators.BaseClasses.equalPercentage(y, R, l, delta0); end if;end TwoWayEqualPercentage;
Two way valve with linear opening characteristic.
This model is based on the partial valve model PartialTwoWayValve. Check this model for more information, such as the leakage flow or 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=Cv(y=0)/Cvs |
Nominal condition | |||
MassFlowRate | m_flow_nominal | Nominal mass flow rate [kg/s] | |
Pressure | dp_nominal | 6000 | Pressure drop at nominal mass flow rate [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 | 0 | Kv (metric) flow coefficient [m3/h/(bar)^(1/2)] |
Real | Cv | 0 | Cv (US) flow coefficient [USG/min/(psi)^(1/2)] |
Area | Av | 0 | Av (metric) flow coefficient [m2] |
Real | Kv_SI | m_flow_nominal/sqrt(dpVal_no... | Flow coefficient for fully open valve in SI units, Kv=m_flow/sqrt(dp) [kg/s/(Pa)^(1/2)] |
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 | |||
MassFlowRate | m_flow_small | 1E-4*abs(m_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Boolean | homotopyInitialization | true | = true, use homotopy method |
Boolean | from_dp | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearized | false | = true, use linear relation between m_flow and dp for any flow rate |
Diagnostics | |||
Boolean | show_V_flow | false | = true, if volume flow rate at inflowing port is computed |
Boolean | show_T | false | = true, if actual temperature at port is computed (may lead to events) |
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_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) |
model TwoWayLinear "Two way valve with linear flow characteristics" extends BaseClasses.PartialTwoWayValve; equation phi = l + y * (1 - l);end TwoWayLinear;
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 PartialTwoWayValve. Check this model for more information, such as the leakage flow or 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=Cv(y=0)/Cvs |
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 | dp_nominal | 6000 | Pressure drop at nominal mass flow rate [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 | 0 | Kv (metric) flow coefficient [m3/h/(bar)^(1/2)] |
Real | Cv | 0 | Cv (US) flow coefficient [USG/min/(psi)^(1/2)] |
Area | Av | 0 | Av (metric) flow coefficient [m2] |
Real | Kv_SI | m_flow_nominal/sqrt(dpVal_no... | Flow coefficient for fully open valve in SI units, Kv=m_flow/sqrt(dp) [kg/s/(Pa)^(1/2)] |
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 | |||
MassFlowRate | m_flow_small | 1E-4*abs(m_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Boolean | homotopyInitialization | true | = true, use homotopy method |
Boolean | from_dp | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearized | false | = true, use linear relation between m_flow and dp for any flow rate |
Diagnostics | |||
Boolean | show_V_flow | false | = true, if volume flow rate at inflowing port is computed |
Boolean | show_T | false | = true, if actual temperature at port is computed (may lead to events) |
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_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) |
model TwoWayQuickOpening "Two way valve with linear flow characteristics" extends BaseClasses.PartialTwoWayValve; parameter Real alp = 2 "Parameter for valve characteristics, alp>0"; parameter Real delta0 = 0.01 "Range of significant deviation from power law"; protected parameter Real alpInv = 1/alp; equation if homotopyInitialization then phi = homotopy(actual=l + Modelica.Fluid.Utilities.regPow(y, alpInv, delta0) * (1 - l), simplified=l + y * (1 - l)); else phi = l + Modelica.Fluid.Utilities.regPow(y, alpInv, delta0) * (1 - l); end if;end TwoWayQuickOpening;