modelPipeAutosize
Pipe model parameterized with pressure drop per pipe length
Extends from Buildings.Fluid.FixedResistances.PressureDrop (Fixed flow resistance with dp and m_flow as parameter).
Information
This model is similar to Buildings.Fluid.FixedResistances.HydraulicDiameter except for the modifications below which allow to use this model for computing the hydraulic diameter at initialization, based on the pressure drop per pipe length at nominal flow rate.
-
The parameter
v_nominalis computed based on the nominal flow rate. -
The equation
dp_nominal = fac*dpStraightPipe_nominalis solved at initialization for the hydraulic diameterdh. -
The parameter
dp_nominalis assigned a value that does not need to be computed at initialization. This is required per Modelica specification because the structural parametercomputeFlowResistancedepends ondp_nominaland must be evaluated at compile time.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | homotopyInitialization (from PartialResistance) | true | = true, use homotopy method |
| Modelica.Units.SI.MassFlowRate | m_flow_turbulent (from PartialResistance) | Turbulent flow if |m_flow| >= m_flow_turbulent | |
| Real | k (from PressureDrop) | if computeFlowResistance and not (linearized or fullyLaminar) then m_flow_nominal_pos/dp_nominal_pos^(1/n) else 0 | Flow coefficient, k=m_flow/dp^(1/n) |
| Modelica.Units.SI.Length | dh | Hydraulic diameter (assuming a round cross section area) | |
| Real | dp_length_nominal | 250 | Pressure drop per pipe length at nominal flow rate |
| Modelica.Units.SI.Length | length | Length of the pipe | |
| Real | ReC | 4000 | Reynolds number where transition to turbulence starts |
| Modelica.Units.SI.Length | roughness | 2.5e-5 | Absolute roughness of pipe, with a default for a smooth steel pipe (PE100: 7E-6) |
| Real | fac | 2 | Factor to take into account resistance of bends etc., fac=dp_nominal/dpStraightPipe_nominal |
| Modelica.Units.SI.PressureDifference | dpStraightPipe_nominal | Modelica.Fluid.Pipes.BaseClasses.WallFriction.Detailed.pressureLoss_m_flow(m_flow = m_flow_nominal, rho_a = rho_default, rho_b = rho_default, mu_a = mu_default, mu_b = mu_default, length = length, diameter = dh, roughness = roughness, m_flow_small = m_flow_small) | Pressure loss of a straight pipe at m_flow_nominal |
| Assumptions | |||
| Boolean | allowFlowReversal (from PartialTwoPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | m_flow_nominal (from PartialTwoPortInterface) | Nominal mass flow rate | |
| Modelica.Units.SI.PressureDifference | dp_nominal (from PartialResistance) | Pressure drop at nominal mass flow rate | |
| Advanced | |||
| Modelica.Units.SI.MassFlowRate | m_flow_small (from PartialTwoPortInterface) | 1E-4*abs(m_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Boolean | from_dp (from PartialResistance) | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Real | n (from PartialResistance) | 2 | Flow exponent, n=1 for laminar, n=2 for turbulent |
| Boolean | linearized (from PartialResistance) | false | = true, use linear relation between m_flow and dp for any flow rate |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialTwoPortInterface) | false | = true, if actual temperature at port is computed |
| Transition to laminar | |||
| Real | deltaM (from PressureDrop) | 0.3 | Fraction of nominal mass flow rate where transition to turbulent occurs |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a (from PartialTwoPort) | Fluid connector a (positive design flow direction is from port_a to port_b) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b (from PartialTwoPort) | Fluid connector b (positive design flow direction is from port_a to port_b) |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.MassFlowRate | m_flow (from PartialTwoPortInterface) | port_a.m_flow | Mass flow rate from port_a to port_b (m_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp (from PartialTwoPortInterface) | port_a.p - port_b.p | Pressure difference between port_a and port_b |
| Medium.ThermodynamicState | sta_a (from PartialTwoPortInterface) | if allowFlowReversal then Medium.setState_phX(port_a.p, noEvent(actualStream(port_a.h_outflow)), noEvent(actualStream(port_a.Xi_outflow))) else Medium.setState_phX(port_a.p, noEvent(inStream(port_a.h_outflow)), noEvent(inStream(port_a.Xi_outflow))) | Medium properties in port_a |
| Medium.ThermodynamicState | sta_b (from PartialTwoPortInterface) | if allowFlowReversal then Medium.setState_phX(port_b.p, noEvent(actualStream(port_b.h_outflow)), noEvent(actualStream(port_b.Xi_outflow))) else Medium.setState_phX(port_b.p, noEvent(port_b.h_outflow), noEvent(port_b.Xi_outflow)) | Medium properties in port_b |
| Modelica.Units.SI.Velocity | v | m_flow/(rho_default*ARound) | Flow velocity (assuming a round cross section area) |
Revisions
-
November 18, 2022, by David Blum:
startattribute for parameterdhchanged to 0.01.
minattribute for parameterdhchanged to 0.001.
This is for issue 2510. -
February 23, 2021, by Antoine Gautier:
First implementation.