动态管道系统

ali*_*asa 0 modelica

我尝试使用 Modelica 在 Twinbuilder 中对液压系统进行建模。但是我总是遇到错误,我认为这与收敛问题有关。为了理解问题是什么,我将我的系统简化为动态管道、固定边界和扫描体积,其运动将由正弦函数给出。但是在这种简化的情况下,我仍然遇到错误。即使收到警告,我也能够编译模型。当我尝试求解模型时,. 它没有解决。我想问你是否给我一个关于这个问题的建议?

这是模型的框图

升

我在尝试求解模型时遇到的错误如下:

在 Hochdruckreiniger3_1 上进入初始化模式时发生错误。

在用户模型的初始化函数中遇到错误。

初始化模拟器时遇到错误

残差函数评估在“1”的初始点失败来自 Hochdruckreiniger3_1:雅可比评估在“1”的初始点失败来自Hochdruckreiniger3_1:无法在“1”中的事件迭代中找到一致的解决方案,0 处 0.00000000000000000E+000 来自 Hochdruckreiniger3_1:来自 Hochdruckreiniger3_1: “3”“#r171#”的初始点残差函数评估失败来自 Hochdruckreiniger3_1:初始化失败。

代码如下:

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;

Run Code Online (Sandbox Code Playgroud)

Ren*_*sen 5

Dymola 在您的模型中显示了两个错误:

  1. pi必须是一个constantparameter遵守的参数的变异性phasesine块。顺便说一句,参考Modelica.Constants.pi.
  2. swept1您设置use_portsData = true但不提供任何端口数据。

解决这两个问题后,模型会模拟但会警告您未明确设置初始值。

  • 可变性:https://mbe.modelica.university/behavior/equations/variables/#variability (2认同)
  • 是的,请永远不要自己声明 pi,尤其是不要声明错误的值,而是使用“import pi = Modelica.Constants.pi;”或直接使用全名“Modelica.Constants.pi”。 (2认同)