modelPipeStandard

Pipe model parameterized with hydraulic diameter

Extends from Buildings.Fluid.FixedResistances.HydraulicDiameter (Fixed flow resistance with hydraulic diameter and m_flow as parameter).

Information

This model is similar to Buildings.Fluid.FixedResistances.HydraulicDiameter except that a binding equation is provided to compute the nominal fluid velocity from the hydraulic diameter (as opposed to the hydraulic diameter being computed from the nominal fluid velocity in the original model).

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.Lengthdh (from HydraulicDiameter)sqrt(4*m_flow_nominal/rho_default/v_nominal/Modelica.Constants.pi)Hydraulic diameter (assuming a round cross section area)
Modelica.Units.SI.Lengthlength (from HydraulicDiameter)Length of the pipe
RealReC (from HydraulicDiameter)4000Reynolds number where transition to turbulence starts
Modelica.Units.SI.Lengthroughness (from HydraulicDiameter)2.5e-5Absolute roughness of pipe, with a default for a smooth steel pipe (dummy if use_roughness = false)
Realfac (from HydraulicDiameter)2Factor to take into account resistance of bends etc., fac=dp_nominal/dpStraightPipe_nominal
Modelica.Units.SI.PressureDifferencedpStraightPipe_nominal (from HydraulicDiameter)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
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
Modelica.Units.SI.Velocityv_nominal (from HydraulicDiameter)if rho_default < 500 then 1.5 else 0.15Velocity at m_flow_nominal (used to compute default value for hydraulic diameter dh)
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
BooleandisableComputeFlowResistance (from HydraulicDiameter)false=false to disable computation of flow resistance
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.Velocityv (from HydraulicDiameter)m_flow/(rho_default*ARound)Flow velocity (assuming a round cross section area)

Revisions

  • February 23, 2021, by Antoine Gautier:
    First implementation.