Buildings.Fluid.FixedResistances

Package with models for fixed flow resistances (pipes, diffusers etc.)

Package Content

NameDescription
Buildings.Fluid.FixedResistances.FixedResistanceDpM FixedResistanceDpM Fixed flow resistance with dp and m_flow as parameter
Buildings.Fluid.FixedResistances.LosslessPipe LosslessPipe Pipe with no flow friction and no heat transfer
Buildings.Fluid.FixedResistances.SplitterFixedResistanceDpM SplitterFixedResistanceDpM Flow splitter with fixed resistance at each port
Buildings.Fluid.FixedResistances.Examples Examples Collection of models that illustrate model use and test models


Buildings.Fluid.FixedResistances.FixedResistanceDpM Buildings.Fluid.FixedResistances.FixedResistanceDpM

Fixed flow resistance with dp and m_flow as parameter

Buildings.Fluid.FixedResistances.FixedResistanceDpM

Information


This is a model of a resistance with a fixed flow coefficient k = m_flow/sqrt(dP).

Near the origin, the square root relation is regularized to ensure that the derivative is bounded.

Extends from Buildings.Fluid.BaseClasses.PartialResistance (Partial model for a hydraulic resistance).

Parameters

TypeNameDefaultDescription
replaceable package MediumPartialMediumMedium in the component
Booleanuse_dhfalseSet to true to specify hydraulic diameter
Lengthdh1Hydraulic diameter [m]
RealReC4000Reynolds number where transition to turbulent starts
RealdeltaM0.3Fraction of nominal mass flow rate where transition to turbulent occurs
Nominal condition
MassFlowRatem_flow_nominal Nominal mass flow rate [kg/s]
Pressuredp_nominal Pressure [Pa]
Assumptions
BooleanallowFlowReversalsystem.allowFlowReversal= true to allow flow reversal, false restricts to design direction (port_a -> port_b)
Advanced
AbsolutePressuredp_start0.01*system.p_startGuess value of dp = port_a.p - port_b.p [Pa]
MassFlowRatem_flow_startsystem.m_flow_startGuess value of m_flow = port_a.m_flow [kg/s]
MassFlowRatem_flow_small1E-4*m_flow_nominalSmall mass flow rate for regularization of zero flow [kg/s]
Booleanfrom_dptrue= true, use m_flow = f(dp) else dp = f(m_flow)
Booleanlinearizedfalse= true, use linear relation between m_flow and dp for any flow rate
Diagnostics
Booleanshow_Ttrue= true, if temperatures at port_a and port_b are computed
Booleanshow_V_flowtrue= true, if volume flow rate at inflowing port is computed

Connectors

TypeNameDescription
FluidPort_aport_aFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_bFluid connector b (positive design flow direction is from port_a to port_b)

Modelica definition

model FixedResistanceDpM 
  "Fixed flow resistance with dp and m_flow as parameter"
  extends Buildings.Fluid.BaseClasses.PartialResistance;
  parameter Boolean use_dh = false "Set to true to specify hydraulic diameter";
  parameter Modelica.SIunits.Length dh=1 "Hydraulic diameter";
  parameter Real ReC=4000 
    "Reynolds number where transition to turbulent starts";
  parameter Real deltaM(min=0.01) = 0.3 
    "Fraction of nominal mass flow rate where transition to turbulent occurs";
initial equation 
 if ( m_flow_turbulent > m_flow_nominal) then
   Modelica.Utilities.Streams.print("Warning: In FixedResistanceDpM, m_flow_nominal is smaller than m_flow_turbulent."
           + "\n"
           + "  m_flow_nominal = " + realString(m_flow_nominal) + "\n"
           + "  dh      = " + realString(dh) + "\n"
           + "  To fix, set dh < " +
                realString(     4*m_flow_nominal/eta_nominal/Modelica.Constants.pi/ReC) + "\n"
           + "  Suggested value: dh = " +
                realString(1/10*4*m_flow_nominal/eta_nominal/Modelica.Constants.pi/ReC));
 end if;

equation 
 m_flow_turbulent = if use_dh then 
                      eta_nominal*dh/4*Modelica.Constants.pi*ReC else 
                      deltaM * m_flow_nominal;
  if linearized then
   k = m_flow_nominal / dp_nominal / conv2;
  else
   k = m_flow_nominal / sqrt(dp_nominal);
 end if;
end FixedResistanceDpM;

Buildings.Fluid.FixedResistances.LosslessPipe Buildings.Fluid.FixedResistances.LosslessPipe

Pipe with no flow friction and no heat transfer

Buildings.Fluid.FixedResistances.LosslessPipe

Information


Model of a pipe with no flow resistance and no heat loss. This model can be used to replace a replaceable pipe model in flow legs in which no friction should be modeled, such as in the outlet port of a three way valve.

Extends from Modelica.Fluid.Interfaces.PartialTwoPortTransport (Partial element transporting fluid between two ports without storage of mass or energy), Buildings.BaseClasses.BaseIcon (Base icon).

Parameters

TypeNameDefaultDescription
replaceable package MediumPartialMediumMedium in the component
Assumptions
BooleanallowFlowReversalsystem.allowFlowReversal= true to allow flow reversal, false restricts to design direction (port_a -> port_b)
Advanced
AbsolutePressuredp_start0.01*system.p_startGuess value of dp = port_a.p - port_b.p [Pa]
MassFlowRatem_flow_startsystem.m_flow_startGuess value of m_flow = port_a.m_flow [kg/s]
MassFlowRatem_flow_smallsystem.m_flow_smallSmall mass flow rate for regularization of zero flow [kg/s]
Diagnostics
Booleanshow_Ttrue= true, if temperatures at port_a and port_b are computed
Booleanshow_V_flowtrue= true, if volume flow rate at inflowing port is computed

Connectors

TypeNameDescription
FluidPort_aport_aFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_bFluid connector b (positive design flow direction is from port_a to port_b)

Modelica definition

model LosslessPipe "Pipe with no flow friction and no heat transfer"
  extends Modelica.Fluid.Interfaces.PartialTwoPortTransport;
  extends Buildings.BaseClasses.BaseIcon;
equation 
 dp=0;
  // Isenthalpic state transformation (no storage and no loss of energy)
  port_a.h_outflow = inStream(port_b.h_outflow);
  port_b.h_outflow = inStream(port_a.h_outflow);
end LosslessPipe;

Buildings.Fluid.FixedResistances.SplitterFixedResistanceDpM Buildings.Fluid.FixedResistances.SplitterFixedResistanceDpM

Flow splitter with fixed resistance at each port

Buildings.Fluid.FixedResistances.SplitterFixedResistanceDpM

Information


Model of a flow splitter (or mixer) with a fixed resistance in each flow leg.

Extends from Buildings.Fluid.BaseClasses.PartialThreeWayResistance (Flow splitter with partial resistance model at each port).

Parameters

TypeNameDefaultDescription
replaceable package MediumPartialMediumFluid medium model
Booleanuse_dhfalseSet to true to specify hydraulic diameter
RealdeltaM0.3Fraction of nominal mass flow rate where transition to turbulent occurs
Lengthdh[3]{1,1,1}Hydraulic diameter [m]
RealReC[3]{4000,4000,4000}Reynolds number where transition to turbulent starts
Nominal condition
MassFlowRatem_flow_nominal[3] Mass flow rate [kg/s]
Pressuredp_nominal[3] Pressure [Pa]
Advanced
Booleanfrom_dptrue= true, use m_flow = f(dp) else dp = f(m_flow)
Booleanlinearizedfalse= true, use linear relation between m_flow and dp for any flow rate
Assumptions
Dynamics
BooleandynamicBalancetrueSet to true to use a dynamic balance, which often leads to smaller systems of equations
Timetau10Time constant at nominal flow for dynamic energy and momentum balance [s]
MassFlowRatemDyn_flow_nominalsum(m_flow_nominal[:]/3)Nominal mass flow rate for dynamic momentum and energy balance [kg/s]
DynamicsenergyDynamicssystem.energyDynamicsFormulation of energy balance
DynamicsmassDynamicssystem.massDynamicsFormulation of mass balance
Initialization
AbsolutePressurep_startsystem.p_startStart value of pressure [Pa]
Booleanuse_T_starttrue= true, use T_start, otherwise h_start
TemperatureT_startif use_T_start then system.T...Start value of temperature [K]
SpecificEnthalpyh_startif use_T_start then Medium.s...Start value of specific enthalpy [J/kg]
MassFractionX_start[Medium.nX]Medium.X_defaultStart value of mass fractions m_i/m [kg/kg]
ExtraPropertyC_start[Medium.nC]fill(0, Medium.nC)Start value of trace substances

Connectors

TypeNameDescription
FluidPort_aport_1 
FluidPort_bport_2 
FluidPort_aport_3 

Modelica definition

model SplitterFixedResistanceDpM 
  "Flow splitter with fixed resistance at each port"
    extends Buildings.Fluid.BaseClasses.PartialThreeWayResistance(
    mDyn_flow_nominal = sum(m_flow_nominal[:]/3),
      redeclare Buildings.Fluid.FixedResistances.FixedResistanceDpM res1(
         redeclare package Medium=Medium,
         from_dp=from_dp, m_flow_nominal=m_flow_nominal[1], dp_nominal=dp_nominal[1],
         ReC=ReC[1], dh=dh[1],
         linearized=linearized, deltaM=deltaM),
      redeclare Buildings.Fluid.FixedResistances.FixedResistanceDpM res2(
         redeclare package Medium=Medium,
         from_dp=from_dp, m_flow_nominal=m_flow_nominal[2], dp_nominal=dp_nominal[2],
         ReC=ReC[2], dh=dh[2],
         linearized=linearized, deltaM=deltaM),
      redeclare Buildings.Fluid.FixedResistances.FixedResistanceDpM res3(
         redeclare package Medium=Medium,
         from_dp=from_dp, m_flow_nominal=m_flow_nominal[3], dp_nominal=dp_nominal[3],
         ReC=ReC[3], dh=dh[3],
         linearized=linearized, deltaM=deltaM));


  parameter Boolean use_dh = false "Set to true to specify hydraulic diameter";
  parameter Modelica.SIunits.MassFlowRate[3] m_flow_nominal(each min=0) 
    "Mass flow rate";
  parameter Modelica.SIunits.Pressure[3] dp_nominal(each min=0) "Pressure";
  parameter Real deltaM(min=0) = 0.3 
    "Fraction of nominal mass flow rate where transition to turbulent occurs";

  parameter Modelica.SIunits.Length[3] dh={1, 1, 1} "Hydraulic diameter";
  parameter Real[3] ReC={4000, 4000, 4000} 
    "Reynolds number where transition to turbulent starts";
  parameter Boolean linearized = false 
    "= true, use linear relation between m_flow and dp for any flow rate";
end SplitterFixedResistanceDpM;

HTML-documentation generated by Dymola Sat Feb 6 17:26:33 2010.