Cylinder

model Cylinder
    import HydraulicsByFluidon.Media.Base.FluidInterface;
    import SI = Modelica.SIunits;

    parameter SI.Length pistonDiameter = 0.1 "Piston diameter";
    parameter SI.Length rodDiameter = 0.05 "Rod diameter";
    parameter SI.Length cylinderLength = 0.4 "Cylinder length";
    parameter SI.Length rodLength = 0.4 "Rod length";
    parameter SI.Angle angle = 0 "Inclination angle";
    parameter SI.Volume deadVolume = 1e-4 "Dead volume";
    parameter SI.Mass massPiston = 50 "Piston 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 leakageFlowRateInternal(min = 0) = 1.67e-8 "Internal leakage: volume flow";
    parameter SI.Pressure leakagePressureDiffInternal(min = 0) = 1e+7 "Internal leakage: pressure difference";
    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";
    parameter Boolean forwardFluidProperties = false "Forward fluid properties between ports";
    Modelica.Mechanics.Translational.Interfaces.Flange_a flange_c;
    Modelica.Mechanics.Translational.Interfaces.Flange_b flange_p;
    HydraulicsByFluidon.Interfaces.FluidPort fluidPortA "Hydraulic port A";
    HydraulicsByFluidon.Interfaces.FluidPort fluidPortB "Hydraulic port B";
    Modelica.Blocks.Interfaces.RealOutput strokeOut "Relative position of piston";
equation
    /* Implementation is Protected */
end Cylinder;