Two way valve with a pressure-independent valve opening characteristic.
The mass flow rate is controlled such that it is nearly equal to its
set point y*m_flow_nominal
, unless the pressure
dp
is too low, in which case a regular Kv
characteristic is used.
First the minimum pressure head dp_min
required for delivering the requested mass flow rate
y*m_flow_nominal
is computed. If
dp > dp_min
then the requested mass flow
rate is supplied. If dp < dp_min
then
m_flow = Kv/sqrt(dp)
. Transition between
these two flow regimes happens in a smooth way.
This model is configured by setting m_flow_nominal
to the mass flow rate that the valve should supply when it is
completely open, i.e., y = 1
. The pressure drop corresponding
to this working point can be set using dpValve_nominal
,
or using a Kv
, Cv
or Av
value. The parameter dpValve_fixed
can be used to add
additional pressure drops, although in this valve it is equivalent to
add these to dpValve_nominal
.
The parameter l2
represents the non-ideal
leakage behaviour of this valve for high pressures.
It is assumed that the mass flow rate will rise beyond
the requested mass flow rate y*m_flow_nominal
if dp > dpValve_nominal+dpFixed_nominal
.
The parameter l2
represents the slope
of this rise:
d(m_flow)/d(dp) = l2* m_flow_nominal/dp_nominal
.
In the ideal case l2=0
, but
this may introduce singularities, for instance when
connecting this component with a fixed mass flow source.
Parameter deltax
sets the duration of
the transition region between the two flow regimes
as a fraction of dp_nominal
or m_flow_nominal
,
depending on the value of from_dp
.
Note that the result in the transition region when
using from_dp = true
is not identical to
the result when using from_dp = false
.
Variables *_y1
and *_y2
serve a dual use.
They are used to
1) compute the support points at *_x1
and *_x2
,
which should not depend on m_flow
or dp
and
2) to compute the flow functions when outside of this regime,
which does depend on m_flow
or dp
.
Min and max functions are therefore used such that one equation
can serve both puroposes.
cubicHermite
such that it does not have a local maximum
and such that it is C2-continuous.
See #156.
filteredInput
to use_inputFilter
.spliceFunction
with regStep
.
This is for
issue 300.