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.
order to a constant as most users need not change this
value.phi using max(0.1*l,
. ) to avoid phi=0. See issue
1376.phi using max(0, .
) to avoid negative phi. See issue
1223.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.