0
votes

I have a question relating to piston pressure behaviour on Modelica. I model a simple testcase to see how behave pressure inside the piston. When piston compresses the fluid, pressure doesn´t increase along the whole compression stroke. Piston compresses the fluid just in a certain amount of compression stroke. But according to reality, fluid inside the piston should have the highest pressure when it is at top dead center. And I get different pressure increases in each compression stroke. Do you have an idea why it is not the case in my model? Thanks in advance! enter image description here

enter image description here


model Hochdruckreiniger4
    //Declaration(s)
    Real V_max = 0.000003;
    Real V_tod = 0.000002;
    Real N = 2800;
    replaceable package medium = Modelica.Media.Water.StandardWater( );
    //Component(s)
    Modelica.Fluid.Machines.SweptVolume Swept1 (
        pistonCrossArea = 0.0001131,
        clearance = 0.000000250621,
        redeclare package Medium = Modelica.Media.Water.StandardWater,
        nPorts = 2,
        use_portsData = false,
        p_start = 1e5,
        use_T_start = true,
        T_start = 293.15,
        V(start = 0.005),
        m(start = 0.005));
    inner Modelica.Fluid.System system;
    Modelica.Mechanics.Translational.Sources.Position Posit1 (exact = true, useSupport = false);
    Modelica.Blocks.Sources.Sine Sine1 (
        amplitude = 0.005567,
        freqHz = 46.66,
        offset = 0.005567,
        phase = -Modelica.Constants.pi/4);
    Modelica.Fluid.Sources.FixedBoundary boundary (p = 4e5, redeclare package Medium = Modelica.Media.Water.StandardWater, nPorts = 1);
    Modelica.Fluid.Pipes.DynamicPipe pipe2 (
        length = 0.5,
        diameter = 0.03,
        redeclare package Medium = Modelica.Media.Water.StandardWater,
        momentumDynamics = system.momentumDynamics,
        massDynamics = Modelica.Fluid.Types.Dynamics.DynamicFreeInitial,
        energyDynamics = system.energyDynamics,
        allowFlowReversal = system.allowFlowReversal,
        modelStructure = Modelica.Fluid.Types.ModelStructure.av_b);
    Modelica.Fluid.Pipes.DynamicPipe pipe3 (
        length = 0.5,
        diameter = 0.03,
        redeclare package Medium = Modelica.Media.Water.StandardWater,
        momentumDynamics = system.momentumDynamics,
        massDynamics = Modelica.Fluid.Types.Dynamics.DynamicFreeInitial,
        energyDynamics = system.energyDynamics,
        allowFlowReversal = system.allowFlowReversal,
        modelStructure = Modelica.Fluid.Types.ModelStructure.a_vb);
    Modelica.Fluid.Pipes.DynamicPipe pipe5 (
        length = 0.5,
        diameter = 0.3,
        redeclare package Medium = Modelica.Media.Water.StandardWater,
        momentumDynamics = system.momentumDynamics,
        massDynamics = Modelica.Fluid.Types.Dynamics.DynamicFreeInitial,
        energyDynamics = system.energyDynamics,
        allowFlowReversal = system.allowFlowReversal,
        modelStructure = Modelica.Fluid.Types.ModelStructure.av_b);
    Modelica.Fluid.Sources.FixedBoundary boundary1 (p = 4e5, redeclare package Medium = Modelica.Media.Water.StandardWater, nPorts = 1);


equation
    //Connection(s)
    connect(Posit1.flange, Swept1.flange);
    connect(Sine1.y, Posit1.s_ref);
    connect(pipe2.port_b, Swept1.ports[1]);
    connect(Swept1.ports[2], pipe3.port_a);
    connect(boundary.ports[1], pipe5.port_a);
    connect(pipe3.port_b, boundary1.ports[1]);
    connect(pipe2.port_a, pipe5.port_b);
end  Hochdruckreiniger4;
2
What is the second boundary for? - Imke Krueger
It specifies which outlet pressure the system must have - alimuradpasa

2 Answers

3
votes

If you move the piston forward in your model, the pressure in the volume (initial value is 1 bar) rises until the pressure is just above 4 bars (4 bar of the boundaries + pressure loss in the pipes), then the water will keep flowing out as long as the piston moves forward.

The rise in the pressure you see at the beginning is not due to the moving piston but a movement towards equilibrum. Check what happens if you set the StartTime to 0.5s.

If you want to model that the swept volume acts like a pump, you have to add some valves to your model which prevent the water from flowing out.

2
votes

The different pressure peaks in the compression strokes could be a result of too few output samples. You could try to increase the number of samples ("intervals" in Dymola) in your simulation (or reduce interval length).

The "phase shift" of the pressure peak relative to the piston position is probably a dynamic phenomenon caused by the time constant of your system. Not knowing your model in detail, I would assume that it is mainly proportional to the volume of Swept1 and the frequency of the Sine block. You sould verify this by varying the frequency or the volume: smaller volume/lower frequency → less "phase shift".