model SimpleExpansionContraction "Sudden Expansion / Contraction"
import HydraulicsByFluidon.Media.Base.FluidInterface;
parameter Modelica.SIunits.Length D1 = 0.016 "Diameter 1";
parameter Modelica.SIunits.Length D2 = 0.05 "Diameter 2";
extends HydraulicsByFluidon.Components.Base.HydTwoPortVertical;
protected
Real zeta;
Real zetaoO;
Real zetaOo;
Real my;
Real beta;
Real A1 = 0.25 * (D1 * D1 * Modelica.Constants.pi);
Real A2 = 0.25 * (D2 * D2 * Modelica.Constants.pi);
Real signDp;
Real pMax;
Real dp;
equation
if D1 < D2 then
if noEvent(0 < dp) then
zeta = zetaOo;
else
zeta = zetaoO;
end if;
else
if noEvent(0 < dp) then
zeta = zetaoO;
else
zeta = zetaOo;
end if;
end if;
fluidPortA.mFlow + fluidPortB.mFlow = 0;
beta = min(D1, D2) / max(D1, D2);
dp = fluidPortB.p - fluidPortA.p;
my = 0.614 + 0.133 * beta ^ 2 - 0.261 * beta ^ 4 + 0.511 * beta ^ 6;
pMax = max(fluidPortA.p, fluidPortB.p);
signDp = noEvent(sign(dp));
zetaOo = 1.5 * ((1 - my) / my) ^ 2;
zetaoO = (1 - min(A1, A2) / max(A1, A2)) ^ 2;
fluidPortB.mFlow = sqrt(2 / zeta) * min(A1, A2) * sqrt(abs(dp) * FluidInterface.calcRho(fluidId, pMax, fluidPortB.fluidTemperature)) * signDp;
annotation (
Icon(
coordinateSystem(
preserveAspectRatio = true,
extent = {
{-100, -100},
{100, 100}}),
graphics = {
Rectangle(extent = {
{-30, -90},
{30, 0}}),
Rectangle(extent = {
{-50, 90},
{50, 0}}),
Text(
origin = {0, -68},
lineColor = {0, 0, 255},
fillColor = {0, 0, 255},
extent = {
{-78, -20},
{78, 20}},
textString = "1"),
Text(
origin = {0, 68},
lineColor = {0, 0, 255},
fillColor = {0, 0, 255},
extent = {
{-78, -20},
{78, 20}},
textString = "2")}),
Documentation(info = "<html>\n <p>\n The component ExpansionContraction is a model of a cross section enlargement (diffusor) or a cross section reduction (nozzle). It\n depends on the flow direction.\n </p>\n <p>\n The component computes the loss number zeta\n </p>\n <p>\n <center><img align=\"middle\" src=\"modelica://HydraulicsByFluidon/Resources/Images/Components/Resistors/Zeta.png\"></center>\n </p>\n <p>\n according to the following equations:\n </p>\n <p>\n <center><img align=\"middle\" src=\"modelica://HydraulicsByFluidon/Resources/Images/Components/Lines/ExpansionContractionExpansion.png\"></center>\n </p>\n <p>\n Borda-Carnot Equation\n </p>\n <p>\n <center><img align=\"middle\" src=\"modelica://HydraulicsByFluidon/Resources/Images/Components/Lines/ExpansionContractionZetaExpansion.png\"></center>\n </p>\n <p>\n <center><img align=\"middle\" src=\"modelica://HydraulicsByFluidon/Resources/Images/Components/Lines/ExpansionContractionContraction.png\"></center>\n </p>\n <p>\n <center><img align=\"middle\" src=\"modelica://HydraulicsByFluidon/Resources/Images/Components/Lines/ExpansionContractionBeta.png\"></center>\n <center><img align=\"middle\" src=\"modelica://HydraulicsByFluidon/Resources/Images/Components/Lines/ExpansionContractionMy.png\"></center>\n <center><img align=\"middle\" src=\"modelica://HydraulicsByFluidon/Resources/Images/Components/Lines/ExpansionContractionZetaContraction.png\"></center>\n </p>\n <p>\n Formulas are taken from E. Truckenbrodt, Fluidmechanik, Band 1: Grundlagen und elementare Strömungsvorgänge dichtebeständiger Fluide, 4. Auflage, 2008.\n </p></html>"));
end SimpleExpansionContraction;