单液压缸仿真
此示例说明如何使用 Simulink® 对液压缸进行建模。您可以将这些概念应用于需要液压行为建模的应用中。请参阅两个相关示例,它们使用相同的基本组件:具有负载约束的四缸模型和两缸模型。
注意:这是一个基本液压示例。您可以使用 Simscape™ Driveline™ 和 Simscape Fluids™ 更轻松地构建液压和汽车模型。
Simscape Fluids 提供用于流体系统建模和仿真的组件库。它包括泵、阀门、作动器、管道和热交换器的模型。您可以使用这些组件开发液压驱动系统,如前装载机、动力转向和起落架作动系统。引擎冷却和燃油供应系统也可以用 Simscape Fluids 开发。您可以使用 Simscape 产品系列中提供的组件来集成机械、电气、热力和其他系统。
Simscape Driveline 提供用于一维机械系统建模和仿真的组件库。它包括旋转和平移部件的模型,如蜗轮、行星齿轮、丝杠和离合器。您可以使用这些组件对直升机传动系统、工业机械、车辆动力总成系统和其他应用中的机械动力传输进行建模。还包括汽车部件,如发动机、轮胎、传动系统和变矩器。
模型的分析与物理原理
图 1 显示基本模型的示意图。该模型将泵流量 Q
引导至供应压力 p1
,层流 q1ex
从供应压力泄漏至排气。活塞/缸组件的控制阀建模为通过可变面积孔口的紊流。其流量 q12
导致中间压力 p2
,该压力随后在连接到作动器缸的管路中下降。缸压力 p3
克服弹簧负载移动活塞,从而产生位置 x
。
图 1:基本液压系统示意图
在泵输出端,流量分为泄漏流量和流向控制阀的流量。我们将泄漏 q1ex
建模为层流(参见方程模块 1)。
方程模块 1
我们用孔口方程对通过控制阀的紊流进行建模。符号函数和绝对值函数适用于任一方向的流量(参见方程模块 2)。
方程模块 2
流量 q12 = q23
减去活塞运动的柔度使得缸内的流体增压。在本例中,我们还对流体可压缩性进行了建模(参见方程模块 3)。
方程模块 3
由于液压力较大,活塞和弹簧质量忽略不计。我们通过对这种关系进行微分,并结合 p2
和 p3
之间的压降,完成了方程组。方程模块 3 对从阀门到作动器的管路中的层流进行建模。方程模块 4 给出了活塞处的力平衡。
方程模块 4
建模
图 2 显示模型的顶层图。泵流量和控制阀孔口面积是仿真输入。该模型由两个子系统组成:Pump 和 Valve/Cylinder/Piston/Spring Assembly。
打开模型并运行仿真
要打开此模型,请在 MATLAB® 终端中键入 sldemo_hydcyl
(如果您正在使用 MATLAB 帮助,可以点击超链接)。按下模型工具栏上的播放按钮以运行仿真。
该模型将相关数据记录到 MATLAB 工作区中的 Simulink.SimulationOutput 对象 out
。信号记录数据存储在 out
对象中名为 sldemo_hydcyl_output
的结构体中。记录的信号有蓝色指示符(参见模型)。有关详细信息,请参阅 可视化和访问信号记录数据。
图 2:单缸模型及仿真结果
Pump 子系统
右键点击 Pump 封装子系统,并选择封装 > 查看封装内部。泵模型将供应压力计算为泵流量和负载(输出)流量的函数(图 3)。Qpump
是泵流量数据(保存在模型工作区中)。包含时间点列向量和对应流速 [T, Q]
的矩阵指定流量数据。该模型计算压力 p1
,如方程模块 1 中所示。由于 Qout = q12
是 p1
的直接函数(通过控制阀),因此形成了一个代数环。对初始值的估计值 p10
可得到更高效的解。
图 3:Pump 子系统
我们在 Simulink 中封装了 Pump 子系统,以允许用户轻松访问参数(参见图 4)。要指定的参数是 T
、Q
、p10
和 C2
。然后,我们给封装模块分配了图 2 中所示的图标,并将其保存在 Simulink 库中。
图 4:输入泵参数
Valve/Cylinder/Piston/Spring Assembly 子系统
右键点击 Valve/Cylinder/Piston/Spring Assembly 子系统,选择封装 > 查看封装内部查看 Actuator 系统(参见图 5)。微分代数方程组用压力 p3
对缸增压进行建模,该压力在方程模块 3 中显示为导数,并用作状态(积分器)。如果我们忽略活塞质量,弹簧力和活塞位置则直接是 p3
的倍数,速度则直接是 p3
的时间导数的倍数。后一种关系形成围绕 Beta 增益模块的代数环。中间压力 p2
是 p3
与从阀门流向缸的压降之和(参见方程模块 4)。这种关系还通过控制阀和 1/C1
增益施加代数约束。
控制阀子系统计算孔口(参见方程模块 2)。它使用上游和下游压力以及可变孔口面积作为输入。Control Valve Flow 子系统计算有符号平方根:
使用三个非线性函数,其中两个是不连续的。然而,在组合中,y
是 u
的连续函数。
图 5:valve/cylinder/piston/spring 子系统
结果
仿真参数
我们使用以下数据对该模型进行了仿真。该信息是从 MAT 文件 sldemo_hydcyl_data.mat
加载的,该文件也用于其他两个液压缸模型。用户可以通过图 4 和图 6 中 Pump 和 Cylinder 子系统的封装输入数据。
T = [0 0.04 0.04 0.05 0.05 0.1 ] sec
Q = [0.005 0.005 0 0 0.005 0.005] m^3/sec
图 6:输入 valve/cylinder/piston/spring 装配参数
绘制仿真结果
系统最初的泵流量为 0.005 m^3/sec=300 l/min
,在 t=0.04 sec
突然降至零,然后在 t=0.05 sec
恢复为其初始流速。
控制阀从零孔口面积开始,在 0.1 sec
仿真时间内逐渐变为 1e-4 sq.m.
。当阀门关闭时,所有泵流量都会泄漏,因此初始泵压增加到 p10 = Q/C2 = 1667 kPa
。
当阀门打开时,压力 p2
和 p3
增加,而 p1
随着负载的增加而降低,如图 7 所示。当泵流量切断时,弹簧和活塞就像蓄能器一样工作,并且 p3
持续下降。然后流量反向流动,因此 p2
(虽然相对接近 p3
)却突然下降。在泵本身,所有回流均泄漏,并且 p1
急剧下降。随着流量的还原,行为会发生逆转。
活塞位置与 p3
成正比,液压和弹簧力在此处保持平衡。在 0.04
秒和 0.05
秒处速度的不连续性表明质量可以忽略不计。当所有泵流量再次泄漏时,该模型达到稳定状态,这是由于现在控制阀上的压降为零(这意味着 p3 = p2 = p1 = p10
)。
图 7:仿真结果:系统压力
图 8:仿真结果:液压缸活塞位置
关闭模型
关闭模型并清除生成的数据。