Dynamic piping system

给你一囗甜甜゛ 提交于 2021-01-07 02:49:56

问题


I try to model a hydraulic system in Twinbuilder with Modelica. But I get always errors which I think has to do with convergence problem. To understand what the problem is, I simplified my system to a dynamic pipe, fixed boundary, and swept volume whose movement will be given by a sinus function. But I still get an error in this simplified case. I am able to compile the model even though I get warnings. When I try to solve the model,. It is not solved. I want to ask if you give me a suggestion on this problem?

This is block diagramm of the model

Errors which I get when I try to solve the model are as follows:

Error occured when entering initialization mode on Hochdruckreiniger3_1.

Error encountered in the Initialize function of user model.

Error encountered while initializing the simulators

Residual function evaluation failed at initial point for "1" From Hochdruckreiniger3_1: Jacobian evaluation failed at initial point for "1" From Hochdruckreiniger3_1: Failed to find a consistent solution in event iteration in "1", 0 at 0.0000000000000000E+000 From Hochdruckreiniger3_1: Residual function evaluation failed at initial point for "3" "#r171#" From Hochdruckreiniger3_1: Initialization failed.

The code is as follows:

model Hochdruckreiniger3
    //Declaration(s)
    Real V_max = 0.000003;
    Real V_tod = 0.000002;
    Real pi = 3.14;
    Real N = 2800;
    //Component(s)
    Modelica.Fluid.Machines.SweptVolume Swept1 (
        pistonCrossArea = 0.0001131,
        clearance = 0.00000250621,
        redeclare package Medium = Modelica.Media.Water.StandardWater,
        nPorts = 1,
        use_portsData = true,
        use_T_start = true,
        T_start = 293.15);
    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.72,
        offset = 0.005567,
        phase = -pi/2);
    Modelica.Fluid.Sources.FixedBoundary boundary (p = 4e5, redeclare package Medium = Modelica.Media.Water.StandardWater, nPorts = 1);
    Modelica.Fluid.Pipes.DynamicPipe pipe1 (
        length = 0.5,
        diameter = 0.03,
        redeclare package Medium = Modelica.Media.Water.StandardWater,
        modelStructure = Modelica.Fluid.Types.ModelStructure.av_b);


equation

    //Connection(s)
    connect(Posit1.flange, Swept1.flange);
    connect(Sine1.y, Posit1.s_ref);
    connect(pipe1.port_b, Swept1.ports[1]);
    connect(boundary.ports[1], pipe1.port_a);
end  Hochdruckreiniger3;


回答1:


Dymola shows two errors in you model:

  1. pi must be a constant or parameter to comply with the variability of the parameter phase in the sine block. By the way, it is good practice to refer to Modelica.Constants.pi.
  2. in swept1 you set use_portsData = true but don´t provide any port data.

Fixing these two issues, the model simulates but warns you about initial values not being explicitly set.



来源:https://stackoverflow.com/questions/64605426/dynamic-piping-system

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!