PistonAccumulator

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

    parameter SI.Length pistonDiameter = 0.2 "Diameter of piston";
    parameter SI.Volume nominalVolume = 0.005 "Nominal volume";
    parameter SI.Volume gasDeadVolume = 5e-4 "Additional gas volume";
    parameter SI.Volume deadVolume = 1e-4 "Fluid dead volume";
    parameter SI.Angle angle = 0 "Inclination angle";
    parameter SI.Mass massPiston = 1 "Piston mass";
    parameter SI.Pressure relBiasingPressure = 5e+6 "Biasing pressure (rel.)";
    parameter SI.Temperature biasingTemperature = 293.1 "Biasing Temperature";
    parameter Real polytropicExponent = 1.4 "Polytropic exponent";
    parameter Real fProp(final unit = "N.s/m", final min = 0) = 10000 "Velocity dependent friction";
    parameter Modelica.SIunits.Force fCoulomb = 25 "Constant friction/Coulomb force";
    parameter Modelica.SIunits.Force fBreakaway = 50 "Breakaway friction force";
    parameter Modelica.SIunits.Velocity vM = 0.005 "Velocity parameter for Stribeck friction";
    HydraulicsByFluidon.Interfaces.FluidPort fluidPort "Hydraulic port";
    parameter Boolean enableStrokeOutput = false "Enable stroke output";
    parameter Boolean enableVelocityOutput = false "Enable velocity output";
    parameter Boolean enableVolumeOutput = false "Enable fluid volume output";
    output Modelica.Blocks.Interfaces.RealOutput strokeOut if enableStrokeOutput "Stroke of piston";
    output Modelica.Blocks.Interfaces.RealOutput velocityOut if enableVelocityOutput "Velocity of piston";
    output Modelica.Blocks.Interfaces.RealOutput volumeOut if enableVolumeOutput "Fluid volume";
equation
    /* Implementation is Protected */
end PistonAccumulator;