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_nominal is computed based on the nominal flow rate.
  • The equation dp_nominal = fac*dpStraightPipe_nominal is solved at initialization for the hydraulic diameter dh.
  • The parameter dp_nominal is assigned a value that does not need to be computed at initialization. This is required per Modelica specification because the structural parameter computeFlowResistance depends on dp_nominal and must be evaluated at compile time.

Parameters

TypeNameDefaultDescription
BooleanhomotopyInitialization (from PartialResistance)true= true, use homotopy method
Modelica.Units.SI.MassFlowRatem_flow_turbulent (from PartialResistance)Turbulent flow if |m_flow| >= m_flow_turbulent
Realk (from PressureDrop)if computeFlowResistance and not (linearized or fullyLaminar) then m_flow_nominal_pos/dp_nominal_pos^(1/n) else 0Flow coefficient, k=m_flow/dp^(1/n)
Modelica.Units.SI.LengthdhHydraulic diameter (assuming a round cross section area)
Realdp_length_nominal250Pressure drop per pipe length at nominal flow rate
Modelica.Units.SI.LengthlengthLength of the pipe
RealReC4000Reynolds number where transition to turbulence starts
Modelica.Units.SI.Lengthroughness2.5e-5Absolute roughness of pipe, with a default for a smooth steel pipe (PE100: 7E-6)
Realfac2Factor to take into account resistance of bends etc., fac=dp_nominal/dpStraightPipe_nominal
Modelica.Units.SI.PressureDifferencedpStraightPipe_nominalModelica.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
BooleanallowFlowReversal (from PartialTwoPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal
Nominal condition
Modelica.Units.SI.MassFlowRatem_flow_nominal (from PartialTwoPortInterface)Nominal mass flow rate
Modelica.Units.SI.PressureDifferencedp_nominal (from PartialResistance)Pressure drop at nominal mass flow rate
Advanced
Modelica.Units.SI.MassFlowRatem_flow_small (from PartialTwoPortInterface)1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow
Booleanfrom_dp (from PartialResistance)false= true, use m_flow = f(dp) else dp = f(m_flow)
Realn (from PartialResistance)2Flow exponent, n=1 for laminar, n=2 for turbulent
Booleanlinearized (from PartialResistance)false= true, use linear relation between m_flow and dp for any flow rate
Advanced › Diagnostics
Booleanshow_T (from PartialTwoPortInterface)false= true, if actual temperature at port is computed
Transition to laminar
RealdeltaM (from PressureDrop)0.3Fraction of nominal mass flow rate where transition to turbulent occurs

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_a (from PartialTwoPort)Fluid connector a (positive design flow direction is from port_a to port_b)
Modelica.Fluid.Interfaces.FluidPort_bport_b (from PartialTwoPort)Fluid connector b (positive design flow direction is from port_a to port_b)

Components

TypeNameDefaultDescription
Modelica.Units.SI.MassFlowRatem_flow (from PartialTwoPortInterface)port_a.m_flowMass flow rate from port_a to port_b (m_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp (from PartialTwoPortInterface)port_a.p - port_b.pPressure difference between port_a and port_b
Medium.ThermodynamicStatesta_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.ThermodynamicStatesta_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.Velocityvm_flow/(rho_default*ARound)Flow velocity (assuming a round cross section area)

Revisions

  • November 18, 2022, by David Blum:
    start attribute for parameter dh changed to 0.01.
    min attribute for parameter dh changed to 0.001.
    This is for issue 2510.
  • February 23, 2021, by Antoine Gautier:
    First implementation.