Engee 文档
Notebook

两个储罐之间的管道

在这个例子中,我们将展示当不可压缩液体在过大压力下通过管道时,如何计算管道的流量。

模型描述

这个简单管道系统的模型包含两个储层(一个块 Reservoir),其中第一个相对于第二个具有50,000Pa的超压。 在两种情况下的基本压力值都是大气压(101,325Pa),但在这里并不起特别的作用,包括因为不可压缩的液体流过管道。

管(Pipe (IL))的特征在于长度为10米,直径为0.2m(横截面积 pi*(0.1^2) м2).

image.png

在"服务"模块中,模型包含一个用于设置流体参数的模块 Isothermal Liquid Properties (IL) 和块 Solver Configuration -两者都有默认设置。

模型执行

让我们启动这个模型:

In [ ]:
modelName = "reservoirs_pipe"

if modelName  [m.name for m in engee.get_all_models()] engee.load( "$(@__DIR__)/$modelName.engee"); end;

data = engee.run( modelName )
Out[0]:
SimulationResult(
    run_id => 2,
    "Расход" => WorkspaceArray{Float64}("reservoirs_pipe/Расход")

)

让我们展示通过模型找到的这个管道的液体流量。:

In [ ]:
data["开支"].value[end]
Out[0]:
269.8851941815642

因此,当用0.05mpa的超压泵入水时,长度为10m的0.2m直径管道的吞吐量为269.9kg/s。

与Simulink模型的比较

在Simulink环境中组装的类似模型显示了相同的结果:通过管道的流速为269.9kg/s。

image.png

如果需要,您可以运行附加的模型并仔细检查结果。

In [ ]:
using MATLAB

demoroot = @__DIR__
mat"start_simulink"
mat"p = $demoroot; addpath(p);"
mat"p = '/user/start/examples/helper_units'; addpath(p);"

mat"simout = sim('reservoirs_pipe_2023a.slx');"
mat"disp( simout.G.Data(end) )"
>> >> >>   269.8856

结论

我们创建了一个非常简单的模型,并解决了在一定条件下通过管道计算水流量的问题。 结果与Simulink中创建的模型完全匹配。