model PlungerCylinder
import HydraulicsByFluidon.Media.Base.FluidInterface;
import SI = Modelica.SIunits;
parameter SI.Length cylinderDiameter = 0.1 "Inner diameter of cylinder";
parameter SI.Length plungerDiameter = 0.05 "Plunger diameter";
parameter SI.Length cylinderLength = 0.4 "Cylinder length";
parameter SI.Length plungerLength = 0.4 "Plunger length";
parameter SI.Angle angle = 0 "Inclination angle";
parameter SI.Volume deadVolume = 1e-4 "Dead volume";
parameter SI.Mass massPlunger = 50 "Plunger mass";
parameter SI.Mass massCylinder = 40 "Cylinder mass";
parameter Real fProp(final unit = "N.s/m", final min = 0) = 10000 "Velocity dependent friction";
parameter Modelica.SIunits.Force fCoulomb = 250 "Constant friction/Coulomb force";
parameter Modelica.SIunits.Force fBreakaway = 500 "Breakaway friction force";
parameter Modelica.SIunits.Velocity vM = 0.005 "Velocity parameter for Stribeck friction";
parameter Boolean relFric = false "Use \"relative friction factor\" to calculate friction";
parameter Real relFricFactor = 0 "Relative friction factor";
parameter SI.Velocity vSmall = 1e-4 "Relative velocity near to zero";
parameter SI.VolumeFlowRate leakageFlowRateExternal(min = 0) = 0 "External leakage: volume flow";
parameter SI.Pressure leakagePressureDiffExternal(min = 0) = 1e+7 "External leakage: pressure difference";
parameter Modelica.SIunits.Density leakageReferenceDensity = 860 "Reference density for volume flow and pressure difference";
Modelica.Mechanics.Translational.Interfaces.Flange_a flange_c;
Modelica.Mechanics.Translational.Interfaces.Flange_b flange_p;
HydraulicsByFluidon.Interfaces.FluidPort fluidPortA "Hydraulic port A";
Modelica.Blocks.Interfaces.RealOutput strokeOut "Relative position of piston";
equation
/* Implementation is Protected */
end PlungerCylinder;