基于同元气动模型库的双气缸顺序控制系统建模与仿真
2026/8/22 10:38:52 网站建设 项目流程

气动系统中,两个气缸按照固定顺序伸出、缩回,是比较典型的一类顺序控制问题。比如要求两个双作用气缸依次完成:

A 伸出 → B 伸出 → B 缩回 → A 缩回

如果直接搭建硬件,一旦阀件选择、控制气路或动作节拍存在问题,往往需要反复调整管路。相比之下,先在仿真环境中把整个回路跑一遍,可以提前检查气路结构和顺序控制逻辑。

最近我在 MoHub 上看到一个双气缸顺序控制案例。模型包含气源处理、方向控制阀、行程反馈阀以及两个双作用气缸,而且控制信号通过气动端口传递。

案例地址:

https://mohub.net/model/26115/summary

我在 Sysplorer 中实际运行了一遍,下面主要看看这个气动回路是怎么搭起来的,以及最终的动作顺序是否符合设计目标。

双气缸顺序控制模型

案例的目标是利用气动元件和气动控制信号,实现两个双作用气缸的顺序动作。

在 Sysplorer 中搭建完成后的整体模型如下。

图1:双气缸顺序控制系统整体模型结构

从模型结构可以看到,整个系统主要分为几个区域:

  • 气源处理

  • 气缸 A 主回路

  • 气缸 B 主回路

  • 行程反馈控制信号

图中实线主要表示主气路,虚线表示控制气路。两个气缸的工作气路和控制信号被放在同一张模型图中,因此可以比较直观地沿着连接关系观察各个阀件之间的控制过程。

对应的气动系统原理图如下。

图2:双气缸顺序控制系统气动原理图

案例中共包含 7 个主要阀件:

阀件主要作用
阀1启动阀
阀2气缸 A 主换向阀
阀3、阀4气缸 A 行程反馈阀
阀5气缸 B 主换向阀
阀6、阀7气缸 B 行程反馈阀

按照设计,整个回路需要完成:

A+ → B+ → B- → A-

其中:

A+:气缸 A 伸出 B+:气缸 B 伸出 B-:气缸 B 缩回 A-:气缸 A 缩回

也就是 A 缸先动作,A 到位后触发 B 缸伸出;随后 B 缸缩回,最后 A 缸回到初始位置。

模型中的几个关键设置

模型运行环境为Sysplorer + Modelica,依赖TYPneumatics气动组件库。

主要仿真参数为:

StopTime = 20 s Interval = 0.02 s Tolerance = 1e-6

气源压力设为0.6 MPa

两个气缸的主要参数分别为:

参数气缸A气缸B
缸径50 mm40 mm
杆径20 mm16 mm
行程200 mm150 mm

在该模型中,阀2和阀5采用带气动控制接口的DirectionalValve24作为主换向阀,通过左右控制端的压力改变阀芯位置;其余几个控制阀采用 3/2 气动信号阀。

因此主换向动作并不是直接用布尔量或电信号控制,而是通过气动控制端口完成。

另外一个比较关键的处理是行程反馈信号的等效实现

真实气动系统中,行程阀通常由气缸运动到指定位置后机械触发。而在这个模型中,采用了:

Pulse → PressureSource → 行程阀

的方式,在指定时刻产生一段气动控制压力,等效气缸到位后触发行程阀的过程。

因此,这个模型能够保持气动控制信号的传递形式,但实际动作时刻也会受到Pulse参数的直接影响。

仿真结果:两个气缸实际是怎么动作的?

仿真完成后,首先观察气缸 A 和气缸 B 的位移曲线。

图3:气缸A、B位移曲线

从曲线中可以比较清楚地看到两个气缸的动作过程。

气缸 A 首先伸出,在约0.7 s左右达到最大行程:

A ≈ 200 mm

随后气缸 B 开始动作,并在约3.3 s左右伸出到:

B ≈ 150 mm

到这里,前两个动作符合预期:

A+ → B+

但继续观察缩回阶段,会发现一个比较明显的问题。

气缸 A 在约5.6 s左右已经缩回到零位,而气缸 B 一直到约7.4 s才缩回。

所以从实际位移曲线来看,本次仿真的动作顺序实际上是:

A+ → B+ → A- → B-

而模型原本标注的目标顺序是:

A+ → B+ → B- → A-

也就是说:

两个气缸的伸出顺序是正确的,但缩回顺序与设计目标相反。

这一点很值得注意,因为如果只看“模型是否能够正常仿真”和“两个气缸是否都完成了往复运动”,这个问题很容易被忽略。

为什么气缸A会提前缩回?

回头检查模型中的触发参数,可以找到一个比较直接的原因。

启动阀对应的脉冲pulseStart设置为:

width = 12 period = 40

按照当前参数,启动控制信号持续到约5 s左右。

当启动信号释放后,控制阀状态随之发生变化,气缸 A 的主换向阀复位,因此 A 缸开始提前缩回。

这与图3中的结果基本对应:

约 5 s:启动信号释放 约 5.6 s:气缸 A 缩回

而按照原本的设计逻辑,应该先完成 B 缸缩回,再触发 A 缸缩回。

因此这里暴露出的并不是“气缸不能动作”,而是一个更具体的控制节拍问题

由于模型中的行程反馈采用Pulse + PressureSource进行等效,所以:

startTime width period

这些脉冲参数实际上已经参与到了顺序控制逻辑中。

如果几个脉冲之间的时间关系没有正确匹配,即使气动回路能够正常连接和运行,最终得到的动作顺序仍然可能与设计目标不同。

这也是仿真的一个实际价值:不仅验证模型能不能运行,还能通过结果曲线检查控制逻辑是否真的正确。

主供气压力是否稳定?

除了两个气缸的位移,我还观察了减压阀出口的主供气压力。

图4:主供气压力曲线

气源设定压力为:

0.6 MPa

也就是约:

600 kPa

从图4可以看到,系统启动后主供气压力很快上升到接近 600 kPa,并在大部分时间保持稳定。

在几个气缸动作和换向时刻,压力出现了比较明显的瞬时下降。

例如气缸动作过程中,压力会短暂下降到约480~500 kPa,随后重新恢复到 600 kPa 左右。

这种变化与气缸换向和瞬时用气有关。

整体来看,压力波动主要集中在动作瞬间,并没有出现持续性的供气压力下降。两个气缸动作完成后,系统压力重新稳定在设定值附近。

因此,从供气侧来看,模型中的气源处理和减压环节能够维持基本稳定的主供气。

这个案例适合看什么?

跑完整个模型后,我觉得这个案例比较有价值的地方不只是“两根气缸能不能动”,而是可以比较直观地观察几个气动系统中的基础问题。

1. 主气路和控制气路如何配合

主气路负责向气缸提供压缩空气,控制气路则通过压力信号改变主换向阀的状态。

整个控制过程可以理解为:

控制信号 ↓ 行程阀 ↓ 气动控制压力 ↓ 主换向阀 ↓ 气缸运动

把这条链路放到完整模型中以后,比单独看阀件符号更容易理解。

2. 顺序控制不能只看“有没有动作”

本次仿真中,两个气缸都能够正常伸出和缩回,如果只验证这一点,很容易认为模型已经满足要求。

但把位移曲线与目标动作顺序放在一起比较,就能发现:

目标:A+ → B+ → B- → A- 实际:A+ → B+ → A- → B-

这说明对于顺序控制系统而言,动作发生了并不等于动作逻辑正确

3. 仿真结果可以反过来定位参数问题

发现动作顺序不一致后,再去检查pulseStart等触发参数,就能进一步定位到控制信号释放过早的问题。

这也是仿真相比直接搭建硬件比较方便的一点:不仅能看到最终结果,还可以沿着模型参数和控制链路继续排查原因。

这个模型也有一个明显的简化

需要说明的是,这个案例中的行程反馈并不是根据气缸实际位移自动产生,而是采用:

Pulse + PressureSource

模拟到位后的气动压力触发。

真实系统中更接近:

气缸运动 ↓ 到达行程位置 ↓ 机械触发行程阀 ↓ 产生控制压力

而当前模型更接近:

到达预设时间 ↓ Pulse触发 ↓ 产生控制压力 ↓ 控制行程阀

因此它目前更适合用于气动顺序控制原理演示、气路逻辑验证和 Modelica 气动系统建模练习

如果希望模型进一步接近真实系统,可以考虑让行程反馈直接与气缸实际位移关联。这样下一阶段动作什么时候发生,就由前一个气缸是否真正到位决定,而不是预先设定好触发时间。

小结

这个案例利用 TY 气动库搭建了一个完整的双气缸顺序控制回路,包括气源处理、主换向阀、行程反馈和两个双作用气缸。

从实际仿真结果来看:

  • 气缸 A 可以伸出约 200 mm

  • 气缸 B 可以伸出约 150 mm

  • 两个气缸均能完成伸出和缩回

  • 主供气压力大部分时间稳定在约 0.6 MPa

  • 换向过程中会出现短时压力下降

  • 实际动作顺序为A+ → B+ → A- → B-

  • 与目标顺序A+ → B+ → B- → A-存在差异

  • 顺序偏差可以进一步定位到触发脉冲参数的设置

所以这个模型除了可以用来理解气动顺序控制原理,也比较适合说明一个很实际的问题:

模型能够正常运行,不代表控制逻辑一定符合设计要求。对于顺序控制系统,最终还是需要结合气缸位移、压力等仿真结果逐项验证。

案例源码、模型文件以及相关说明可以在这里获取:

双气缸顺序控制系统案例

https://mohub.net/model/26115/summary

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询