不同罐高液体压力的测定
在这个例子中,我们将演示导热液体的一个属性,由于该属性,当它在罐中时,温度可能在不同的高度上略有变化。
模型描述
让我们创建一个系统,由一个油箱,一个将液体从油箱泵入其中的泵和几个传感器组成。
在由状态方程描述的真实液体中,不同高度的温度会因液柱内压力的变化(流体静力效应)和介质的热力学性质而略有变化。 让我们严格检查这个问题。
对于符合状态方程的液体,温度和压力的分布由流体静力定律决定 ,状态方程 和 和几个额外的影响(热平衡,压缩/膨胀)。 这里 -压力, -温度, -身高, -密度, -自由落体加速, -特定的内部能量。
液体的下层处于略高的压力下,因此罐底部的液体将比表面稍微温暖。
实际上,许多其他热效应不太可能允许在这里呈现的配方中观察到实验。 混合、泵的热效应以及通过罐壁的热传递都可能对液体的温度产生影响。
启动模型并分析结果
在我们的模型中,坦克的直径为1 ,液体流入其中,由泵以1kg/s的速度泵送,计算从0到1000秒进行。 液体温度传感器位于1,2和3m的高度。
In [ ]:
model_name = "tank_temperature_at_different_heights";
model_name in [m.name for m in engee.get_all_models()] ? engee.open(model_name) : engee.load( "$(@__DIR__)/$(model_name).engee");
res = engee.run( model_name );
在观察过程中,罐内的液位上升了1m,让我们看看温度读数在不同高度的变化。
In [ ]:
gr()
using Plots.PlotMeasures
plot(
plot( res["Уровень воды"].time, res["Уровень воды"].value, label=false, title="Уровень воды, м",
xlabel="Время, с", ylabel="Высота, м" ),
plot( res["Сенсор 2м.1"].time,
[res["Сенсор 1м.1"].value res["Сенсор 2м.1"].value res["Сенсор 3м.1"].value],
label=["1м" "2м" "3м"], title="Датчики температуры", xlabel="Время, с", ylabel="Температура, К"),
size=(1000,400), titlefont=font(11), guidefont=font(10), left_margin = [10mm 0mm], bottom_margin = 30px
)
Out[0]:
在1m和2m之间,传感器显示出不同的温度值,但差异的规模在现实中几乎无法改变–对于1m,温度下降 1.41e-4 К 度的千分之一)。 但是我们可以看到,罐底部的温度略高于表面。
In [ ]:
res["Сенсор 2м.1"].value[1] - res["Сенсор 1м.1"].value[1]
Out[0]:
如果您从温度传感器中获取其中一个图表并减去线性趋势,您甚至可以看到非常小的非线性。:
In [ ]:
t = res["Сенсор 1м.1"].time
v = res["Сенсор 1м.1"].value
a = [t.^0 t.^1] \ v
разница = v .- (a[1] .+ a[2].*t)
plot( t, разница, label=false )
plot!( [t[1],t[end]], [разница[1],разница[end]], ls=:dash, c=:red, label=false )
plot!(title = "Нелинейный компонент измерения Т", xlabel="Время, с", ylabel="Температура, К\n(нелинейное слагаемое)",
titlefont=font(11), guidefont=font(10), left_margin = [10mm 0mm], bottom_margin = 30px)
Out[0]:
结论
使用一个简单的例子,我们已经展示了如何使用导热液体库中的块配制的虚拟实验使我们能够展示一些理论效应,这些效应在教育实验室设置中相当 但它们将在更复杂的情况下表现出来,这些影响可能是危险的忽视。

