我在Modelica中模拟了一个系统,在这个系统中,流体应该从4巴压缩到500巴。我给出了4巴入口压力和500巴出口压力作为边界条件。我想通过活塞的运动来实现这种压缩。当出口压力定义为10bar时,该系统可以进行模拟。但它不能模拟出口压力为500bar的情况。当出口边界条件为500bar时,活塞腔内压力不高于500bar。所以在活塞腔里,我得到负的质量流量和压力。因此,模拟不会继续。当我观察腔内的压力时,它简单地假设为中等压力,这是在活塞端口定义的压力。活塞的压缩运动不会影响活塞内部的压力,因为活塞内的压力是由活塞端口的压力给出的。你知道怎么增加活塞内部的压力吗?这样我的活塞内部的压力就可以超过500bar了。
我添加了代码和框图。任何帮助都将不胜感激!非常感谢!


//----------------------------------------------------------------------------
// Name of Model: Hochdruckreiniger3
// Date: 11/15/20 21:16:37
// Generated from Modelica Diagram Editor
//----------------------------------------------------------------------------
model Hochdruckreiniger3
//Declaration(s)
Real V_max = 0.000003;
Real V_tod = 0.000002;
Real N = 2800;
Real opening_NP;
Real opening_HP;
replaceable package medium = Modelica.Media.Water.StandardWater( );
//Component(s)
Modelica.Fluid.Machines.SweptVolume Swept1 (
pistonCrossArea = 0.003131,
clearance = 0.000250621,
redeclare package Medium = medium,
nPorts = 3,
use_portsData = false,
p_start = system.p_start,
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.66,
offset = 0.005567,
phase = -Modelica.Constants.pi/2);
Modelica.Fluid.Sources.FixedBoundary boundary (p = 500e5, redeclare package Medium = medium, nPorts = 1);
Modelica.Fluid.Pipes.DynamicPipe pipe2 (
length = 0.5,
diameter = 0.03,
redeclare package Medium = medium,
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 = medium,
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 pipe4 (
length = 0.5,
diameter = 0.03,
redeclare package Medium = medium,
momentumDynamics = system.momentumDynamics,
massDynamics = Modelica.Fluid.Types.Dynamics.DynamicFreeInitial,
energyDynamics = system.energyDynamics,
allowFlowReversal = system.allowFlowReversal,
modelStructure = Modelica.Fluid.Types.ModelStructure.a_vb);
Modelica.Fluid.Sources.FixedBoundary boundary1 (p = 500e5, redeclare package Medium = medium, nPorts = 1);
Modelica.Fluid.Pipes.DynamicPipe pipe5 (
length = 0.5,
diameter = 0.3,
redeclare package Medium = medium,
momentumDynamics = system.momentumDynamics,
massDynamics = Modelica.Fluid.Types.Dynamics.DynamicFreeInitial,
energyDynamics = system.energyDynamics,
allowFlowReversal = system.allowFlowReversal,
modelStructure = Modelica.Fluid.Types.ModelStructure.av_b);
Modelica.Blocks.Sources.Pulse Puls1 (period = 0.02142, width = 45.331);
Modelica.Blocks.Sources.Pulse Puls2 (period = 0.02142, startTime = 0.01071, width = 45.331);
Modelica.Fluid.Valves.ValveLinear NDVentile (dp_nominal = 94.35, m_flow_nominal = 0.05867441, redeclare package Medium = medium);
Modelica.Fluid.Valves.ValveLinear HDVentile (dp_nominal = 95, m_flow_nominal = 0.05867441, redeclare package Medium = medium);
Modelica.Fluid.Sensors.Pressure pressureamSweptvolume (redeclare package Medium = medium);
Modelica.Fluid.Sensors.Pressure PressureanderPipe (redeclare package Medium = medium);
Modelica.Fluid.Sensors.Pressure PressureanBeginnderHochdruckventile (redeclare package Medium = medium);
Modelica.Fluid.Sensors.Pressure Pressure_amEndederHDVentile (redeclare package Medium = medium);
Modelica.Fluid.Pipes.DynamicPipe pipe1 (
length = 0.5,
diameter = 0.03,
redeclare package Medium = medium,
momentumDynamics = system.momentumDynamics,
massDynamics = Modelica.Fluid.Types.Dynamics.DynamicFreeInitial,
energyDynamics = system.energyDynamics,
allowFlowReversal = system.allowFlowReversal,
modelStructure = Modelica.Fluid.Types.ModelStructure.a_vb);
Modelica.Fluid.Vessels.ClosedVolume volume (
V = 7e-9,
nPorts = 2,
use_portsData = false,
redeclare package Medium = medium,
p_start = 26.5e5);
equation
if der(Sine1.y)>=0 then
opening_NP=1;
opening_HP=0;
else
opening_NP=0;
opening_HP=1;
end if;
//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(pipe4.port_b, boundary1.ports[1]);
connect(boundary.ports[1], pipe5.port_a);
connect(pipe5.port_b, NDVentile.port_a);
connect(NDVentile.port_b, pipe2.port_a);
connect(NDVentile.opening, Puls1.y);
connect(Puls2.y, HDVentile.opening);
connect(pipe3.port_b, HDVentile.port_a);
connect(pressureamSweptvolume.port, Swept1.ports[3]);
connect(PressureanderPipe.port, pipe3.port_a);
connect(PressureanBeginnderHochdruckventile.port, HDVentile.port_b);
connect(Pressure_amEndederHDVentile.port, HDVentile.port_a);
connect(pipe1.port_a, PressureanBeginnderHochdruckventile.port);
connect(pipe1.port_b, volume.ports[1]);
connect(volume.ports[2], pipe4.port_a);
end Hochdruckreiniger3;发布于 2021-05-26 02:16:26
您可以通过单击栏上的向下箭头来查看注释,线号在左侧,除非您已经使用图形编辑器对模型进行了建模。
https://stackoverflow.com/questions/64849696
复制相似问题