Model of a flow resistance with a fixed flow coefficient. The mass flow rate is
ṁ = k √ΔP,
where
k is a constant and
ΔP is the pressure drop.
The constant k is equal to
k=m_flow_nominal/sqrt(dp_nominal)
,
where m_flow_nominal
and dp_nominal
are parameters.
In the region
abs(m_flow) < m_flow_turbulent
,
the square root is replaced by a differentiable function
with finite slope.
The value of m_flow_turbulent
is
computed as
m_flow_turbulent = deltaM * abs(m_flow_nominal)
,
where deltaM=0.3
and
m_flow_nominal
are parameters that can be set by the user.
The figure below shows the pressure drop for the parameters
m_flow_nominal=5
kg/s,
dp_nominal=10
Pa and
deltaM=0.3
.
The parameter from_dp
is used to determine
whether the mass flow rate is computed as a function of the
pressure drop (if from_dp=true
), or vice versa.
This setting can affect the size of the nonlinear system of equations.
If the parameter linearized
is set to true
,
then the pressure drop is computed as a linear function of the
mass flow rate.
Setting allowFlowReversal=false
can lead to simpler
equations. However, this should only be set to false
if one can guarantee that the flow never reverses its direction.
This can be difficult to guarantee, as pressure imbalance after
the initialization, or due to medium expansion and contraction,
can lead to reverse flow.
If the parameter
show_T
is set to true
,
then the model will compute the
temperature at its ports. Note that this can lead to state events
when the mass flow rate approaches zero,
which can increase computing time.
For more detailed models that compute the actual flow friction,
models from the package
Modelica.Fluid
can be used and combined with models from the
Annex60
library.
For a model that uses the hydraulic parameter and flow velocity at nominal conditions as a parameter, use Annex60.Fluid.FixedResistances.HydraulicDiameter.
The pressure drop is computed by calling a function in the package Annex60.Fluid.BaseClasses.FlowModels, This package contains regularized implementations of the equation
m = sign(Δp) k √ Δp
and its inverse function.
To decouple the energy equation from the mass equations, the pressure drop is a function of the mass flow rate, and not the volume flow rate. This leads to simpler equations.
dp_nominal
and
m_flow_nominal
labels from icon.
use_dh
.
annotation(Evaluate=true)
so
that the system of nonlinear equations in
Annex60.Fluid.FixedResistances.Validation.PressureDropsExplicit
remains the same.
assert
with
AssertionLevel.warning
as this is the proper way to write warnings in Modelica.
k
.
Evaluate=true
.
show_V_flow
.
Annex60.Fluid.BaseClasses.PartialResistance
,
Annex60.Fluid.Actuators.BaseClasses.PartialTwoWayValve
,
Annex60.Fluid.Actuators.BaseClasses.PartialDamperExponential
,
Annex60.Fluid.Actuators.BaseClasses.PartialActuator
and model
Annex60.Fluid.FixedResistances.PressureDrop
.
use_dh
and deltaM
for easier parameterization.