我有一个关于Modelica活塞压力行为的问题。我模拟了一个简单的测试案例,看看活塞内部的压力是如何表现的。当活塞压缩流体时,压力不会沿整个压缩行程增加。活塞仅在一定的压缩行程内压缩流体。但根据实际情况,活塞内流体在上死点时应具有最高的压力。在每个压缩行程中,我得到了不同的压力增量。你知道为什么在我的模型中不是这样吗?提前感谢!


model Hochdruckreiniger4
//Declaration(s)
Real V_max = 0.000003;
Real V_tod = 0.000002;
Real N = 2800;
replaceable package medium = Modelica.Media.Water.StandardWater( );
//Component(s)
Modelica.Fluid.Machines.SweptVolume Swept1 (
pistonCrossArea = 0.0001131,
clearance = 0.000000250621,
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 = 46.66,
offset = 0.005567,
phase = -Modelica.Constants.pi/4);
Modelica.Fluid.Sources.FixedBoundary boundary (p = 4e5, redeclare package Medium = Modelica.Media.Water.StandardWater, nPorts = 1);
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.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);
Modelica.Fluid.Sources.FixedBoundary boundary1 (p = 4e5, redeclare package Medium = Modelica.Media.Water.StandardWater, nPorts = 1);
equation
//Connection(s)
connect(Posit1.flange, Swept1.flange);
connect(Sine1.y, Posit1.s_ref);
connect(pipe2.port_b, Swept1.ports[1]);
connect(Swept1.ports[2], pipe3.port_a);
connect(boundary.ports[1], pipe5.port_a);
connect(pipe3.port_b, boundary1.ports[1]);
connect(pipe2.port_a, pipe5.port_b);
end Hochdruckreiniger4;发布于 2020-11-20 22:34:32
如果在模型中向前移动活塞,体积中的压力(初始值为1巴)会上升,直到压力刚刚超过4巴(边界的4巴+管道中的压力损失),那么只要活塞向前移动,水就会一直流出。
你在开始时看到的压力上升不是由于活塞的运动,而是一种接近平衡的运动。检查如果将StartTime设置为0.5s会发生什么。
如果要模拟扫掠体的作用类似于泵,则必须在模型中添加一些阀,以防止水流出。
发布于 2020-11-17 20:56:23
压缩行程中的不同压力峰值可能是输出样本太少的结果。您可以尝试增加模拟中的采样数(Dymola中的“间隔”)(或减少间隔长度)。
压力峰值相对于活塞位置的“相移”可能是由系统的时间常数引起的动态现象。不知道你的模型的细节,我假设它主要与Swept1的体积和Sine块的频率成比例。你应该通过改变频率或音量来验证这一点:较小的音量/较低的频率→较少的“相移”。
https://stackoverflow.com/questions/64874121
复制相似问题