This is a model of isentropic expansion or compression of an ideal gas with a fixed isentropic efficiency.
The isentropic exponent (kappa) by default is retrieved from the media model at the inlet. It can be set to a fixed value to allow compressor operation in two-phase region.
The computation is as follows:
omega_ref, m_flow_ref and
the scewness factor skew, the pressure ratio
pr=p_outlet/p_inlet is computed as quadratic function of
omega/omega_ref, m_flow/m_flow_ref:
pr := abs(omega)*omega/(omega_ref^2)
- skew*omega*m_flow/(omega_ref*m_flow_ref)
- abs(m_flow)*m_flow/(m_flow_ref^2)
+ 1;
pr := k^(pr-1);
omega_ref and m_flow_ref are supposed to be scaling
factors for omega and m_flow respectiveley. omega_ref is the angular
velocity that produces a pressure ratio of 2 at m_flow=0. m_flow_ref
is the massflow, that produces a negative pressure ratio of 1 at
omega=omega_ref. The skewness factor can be used to shape the
characteristic curve inbetween (see fig. 1).
When pr < 1, the reciprocal pressure ratio 1/pr = p_inlet/p_outlet is more interesting. It can be seen for different values of skew in fig. 2.
Fig. 1: different skewness factors for omega/omega_ref=1. pressure ratio pr over m_dot/m_dot_ref
Fig. 2: different skewness factors for omega/omega_ref=1. Reciprocal pressure ratio 1/pr over m_dot/m_dot_ref
function dp_tau_const_isentrop
extends partial_dp_tau;
import R_m = Modelica.Constants.R "General gas constant";
input Real omega_ref(unit = "rad/s") = 1000 "Reference speed, that produces pr=1-skew (at m_flow = m_flow_ref)" annotation(
Dialog(group = "Pressure ratio curve", enable = true));
input Real skew(unit = "1") = 0 "Scewness factor for mixed part of pr equation" annotation(
Dialog(group = "Pressure ratio curve", enable = true));
input Real m_flow_ref(unit = "kg/s") = 0.25 "Reference mass flow rate, that produces pr=1-skew (at omega = omega_ref)" annotation(
Dialog(group = "Pressure ratio curve", enable = true));
input Real eta(unit = "1") = 1 "Isentropic efficienty" annotation(
Dialog(enable = true));
input Real k(unit = "1") = 2 "Exponential factor used for pr<1" annotation(
Dialog(tab = "Advanced", enable = true));
input SI.Volume V_ref = 0.001 "Reference volume for chocke torque calculation" annotation(
Dialog(tab = "Advanced", enable = true));
input Boolean kappaFromMedia = true "=true, if isentropic coefficient is calculated using the media model" annotation(
Dialog(group = "Isentropic exponent", enable = true),
choices(checkBox = true));
input Real kappa_fixed(unit = "1") = 1.4 "Isentropic coefficient" annotation(
Dialog(group = "Isentropic exponent", enable = not kappaFromMedia));
end dp_tau_const_isentrop;