FixedDisplacementPump

model FixedDisplacementPump
    extends HydraulicsByFluidon.Components.Pumps.Base.PartialDisplacementPump;
equation
    pumpInt.volume = dispVolume * min(1, min(fluidPortA.p, fluidPortB.p) / minSuctionPressure);

    annotation (
        Documentation(info = "<html>\n            <p>\n                Model of a pump with fixed displacement volume and losses.\n            </p>\n            <p>\n                <center><img src=\"modelica://HydraulicsByFluidon/Resources/Images/Components/Pumps/FixedDisplacementPump.png\"></center>\n            </p>\n            <p>\n                The main parameters of the pump are its maximum <var>Displacement volume</var> and the \n                <var>Rotational moment of inertia</var>.\n            </p>\n            <p>\n                The losses are parameterised by providing volumetric and mechanical efficiencies <var>Volumetric efficiency</var> and <var>Mechanical efficiency</var> for a given operating point. \n                The operating point is characterised by a reference pressure difference <var>Reference pressure difference</var> and a corresponding shaft speed <var>Reference speed</var>. \n                Based on the entered values, the parameters of a laminar throttle (volumetric losses) and a linear damper (representing the\n                mechanical losses) are determined automatically. Unlike the efficiencies, the parameters of these two elements typically do not vary\n                significantly with the operating conditions.\n            </p>\n            <p>\n                The parameter <var>Ratio external Leakage / total Leakage</var> allows to split the leakage between internal and external leakage. A gear pump e. g. typically has no \n                external leakage, <var>Ratio external Leakage / total Leakage</var> has to be set to 0. In contrast, a piston pump has a significant external leakage\n                (0.5 < <var>Ratio external Leakage / total Leakage</var> <= 1).\n            </p>\n            <p>\n                <i>minSuctionPressure</i> takes into account that a pump requires a minimaum suction pressure for full flow. Below this pressure, \n                the flow rate is reduced. In this model, the reduction is assumed to be simplified as a linear function of suction pressure in \n                relation to <i>minSuctionPressure</i>.\n            </p>\n            <p>\n                <center><img align=\"middle\" src=\"modelica://HydraulicsByFluidon/Resources/Images/Components/Pumps/PumpSuctionPressure.png\"></center>\n            </p>\n            </html>"),
        Icon(
            graphics = {
                Line(points = {
                    {-100, 10}, 
                    {-59, 10}}), 
                Line(points = {
                    {-100, -10}, 
                    {-59, -10}}), 
                Line(points = {
                    {59, 10}, 
                    {100, 10}}), 
                Line(points = {
                    {59, -10}, 
                    {100, -10}}), 
                Line(
                    origin = {91, 0},
                    points = {
                        {-9, -30}, 
                        {-4, -20}, 
                        {1, 0}, 
                        {-4, 20}, 
                        {-9, 30}},
                    smooth = Smooth.Bezier), 
                Polygon(
                    origin = {44, -65},
                    rotation = 30,
                    fillPattern = FillPattern.Solid,
                    points = {
                        {80, 80}, 
                        {85, 60}, 
                        {75, 60}, 
                        {80, 80}}), 
                Polygon(
                    origin = {183, -15},
                    rotation = 150,
                    fillPattern = FillPattern.Solid,
                    points = {
                        {80, 80}, 
                        {85, 60}, 
                        {75, 60}, 
                        {80, 80}})},
            coordinateSystem(initialScale = 0.1)));
end FixedDisplacementPump;