Convergence of the hydraulic system at high outlet pressure - Ansys Twinbuilder with Modelica

Hi,

I have a hydraulic system which should operate between 4 bar(inlet pressure) and 500 bar(outlet pressure). I have two valves in the system(High Pressure Valve and Low Pressure Valve) which opens and closes according to movement of piston. When the volume, in which the water is compressed, increases then low pressure valve opens, otherwise high pressure valve opens. When I operate the system at 10 bar outlet pressure then it can be simulated. But when it is operated at 500 bar outlet pressure, then I get no error but calculation doesn`t continue. I add my code and block diagramm. Do you have an idea, what can be reason of it?. Thanks in advance!

model Hochdruckreiniger3
    //Declaration(s)
    Real V_max = 0.000003;
    Real V_tod = 0.000002;
    Real N = 2800;
    Real opening_NP;
    Real opening_HP;
    //Component(s)
    Modelica.Fluid.Machines.SweptVolume Swept1 (
        pistonCrossArea = 0.0001131,
        clearance = 0.00000250621,
        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 = 16.66,
        offset = 0.005567,
        phase = -Modelica.Constants.pi/2);
    Modelica.Fluid.Sources.FixedBoundary boundary (p = 4e5, redeclare package Medium = Modelica.Media.Water.StandardWater, nPorts = 1);
    Modelica.Fluid.Valves.ValveIncompressible Niederdruckventile (
        dp_nominal = 94.35,
        m_flow_nominal = 0.05867441,
        rho_nominal = 998.388,
        opening = opening_NP,
        redeclare package Medium = Modelica.Media.Water.StandardWater);
    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.Valves.ValveIncompressible Hochdruckventile (
        dp_nominal = 96.38,
        m_flow_nominal = 0.05867441,
        rho_nominal = 1019.921,
        opening = opening_HP,
        redeclare package Medium = Modelica.Media.Water.StandardWater);
    Modelica.Fluid.Pipes.DynamicPipe pipe4 (
        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.Sources.FixedBoundary boundary1 (p = 10e5, redeclare package Medium = Modelica.Media.Water.StandardWater, nPorts = 1);
    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);


equation
    if der(Sine1.y)>=0 then
            opening_NP=1;
            opening_HP=0;
           else
            opening_NP=0;
            opening_HP=1;
          end if;
    //Connection(s)
    connect(Posit1.flange, Swept1.flange);
    connect(Sine1.y, Posit1.s_ref);
    connect(Niederdruckventile.port_b, pipe2.port_a);
    connect(pipe2.port_b, Swept1.ports[1]);
    connect(Swept1.ports[2], pipe3.port_a);
    connect(pipe3.port_b, Hochdruckventile.port_a);
    connect(Hochdruckventile.port_b, pipe4.port_a);
    connect(pipe4.port_b, boundary1.ports[1]);
    connect(pipe5.port_b, Niederdruckventile.port_a);
    connect(boundary.ports[1], pipe5.port_a);
end  Hochdruckreiniger3;


Answers

  • Hello,

    It is always helpful to create simpler versions of the model. This helps to identify errors and understand the models a bit better. For example, you could create a testbench for the "Volume Swept" component that includes the Volume Swept and the position source only, run it. Then, you could add components and re run the model. Please let me know if this helps.

    Regards

  • Hı,

    Thanks for the reply. As my model has standard water as the medium. It cannot be compressed in the ''Volume Swept'' component. I cant test standard water by such a simplified configuration. What other components should I include in the system so that I can determine pressure increase in the ''Volume Swept'' component? Thanks in advance!

Sign In or Register to comment.