可压缩气体特性研究¶
在本例中,我们将使用活塞模型并绘制气体压缩实验图。
模型描述¶
该模型的主要元素是活塞组件Translational Mechanical Converter
。活塞杆的负向运动意味着压缩,导致出口通道的温度和压力升高。
其他模块负责控制和测量活塞状态:
- 活塞杆在位移传感器的作用下移动。
Translational Velocity Source
- 位移传感器
Absolute Translational Motion Sensor
测量活塞杆的位置 - 压力和温度传感器
Absolute Pressure & Temperature Sensor (G)
测量活塞出口处的气体特性。 - 块
Gas Properties (G)
设置模型的工作体属性。
该模型可与理想气体、半理想气体和实际气体模型一起工作。
活塞有一个极限位置(等于 0.0)和一个初始位置(Initial interface displacement
),设定为 0.5 米。
到达零位后,活塞内部的压力将等于其属性中设置的值Dead volume
(在模型中等于 1e-5 m^3),活塞杆无法继续移动。
活塞杆控制¶
在该型号中,杆的运动由恒速装置设定。通过这种控制,杆的运动将是均匀的、渐进的,并且不会考虑压缩气体的反作用力。*在现实中,当压缩气体的反作用力与施加在活塞杆上的力相比微不足道,且活塞本身的结构坚不可摧时,可能会出现近似的情况。
在这种情况下,将力源连接到活塞杆会导致方程组无法求解。
** 如果活塞杆的初始位置为零,活塞就不可能做负向运动。** 在求解这样的方程组时,积分器会减小步长,直到出现错误为止DtLessThanMin
。
向Translational Velocity Source
块传递速度的 "正值 "会导致拉杆被拉动,出口处的压力和温度降低。请将程序块Constant
的值改为正值以验证这一点。
启动模型¶
# Загрузим модель, если она еще не открыта на холсте
if "gas_actuator_model" ∉ getfield.(engee.get_all_models(), :name)
engee.load( "$(@__DIR__)/gas_actuator_model.engee");
end
model_data = engee.run( "gas_actuator_model" );
让我们绘制气体状态图。
gr()
pos = collect( model_data["Положение штока"] )
P_out = collect( model_data["P_out"] )
T_out = collect( model_data["T_out"] )
plot(
layout=(2,1),
plot( pos.time, pos.value, title="Перемещение штока", leg=false, c=1),
plot( plot( P_out.time, P_out.value, title="Давление", leg=false, c=2 ),
plot( T_out.time, T_out.value, title="Температура", leg=false, c=3 ) )
)
上图显示的是杆从初始位置(不是相对于零点的位置)开始的位移。
如果将模拟时间延长到 10 秒以上,杆的位置将变为零,模拟将停止并出现错误。为避免出现这种情况,可以使用基于Translational Mechanical Converter
的更复杂模型,例如块Single-Acting Actuator (G)
。
结论¶
通过这个小型模型,我们可以了解气体动力学模型中一个基本 "构件 "的运行情况。这个构件是许多其他更复杂组件模型的基础,如线性气体致动器和压缩机。