model DoubleRodCylinder
import HydraulicsByFluidon.Media.Base.FluidInterface;
import SI = Modelica.SIunits;
parameter SI.Length pistonDiameter = 0.1 "Piston diameter";
parameter SI.Length rodDiameterA = 0.05 "Rod diameter @ port A";
parameter SI.Length rodDiameterB = 0.05 "Rod diameter @ port B";
parameter SI.Length cylinderLength = 0.4 "Cylinder length";
parameter SI.Length rodLengthA = 0.4 "Rod length @ port A";
parameter SI.Length rodLengthB = 0.4 "Rod length @ port B";
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 "Cylinder flange";
Modelica.Mechanics.Translational.Interfaces.Flange_a flange_pa "Piston flange @ port A";
Modelica.Mechanics.Translational.Interfaces.Flange_b flange_pb "Piston flange @ port B";
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 DoubleRodCylinder;