本程序为气缸闭环控制系统,通过压力传感器反馈实时调整气缸位置,实现压力-位移的精准控制。系统集成滤波处理、限位保护、压力最低值捕捉及多轴协同运动功能,适用于工业自动化、流体控制或实验设备场景。
核心模块解析
1. 参数与硬件配置
-
气缸参数:
-
丝杠导程:5mm(每转螺旋推进5mm);
-
行程:150mm(最大移动距离);
-
活塞直径:200mm → 面积:A=πr2=31415.9 mm2A=πr2=31415.9mm2;
-
最大体积:Vmax=A×150 mm=4.7 LVmax=A×150mm=4.7L。
-
-
控制参数:
-
C=80 mL/cmH2OC=80mL/cmH2O(系统柔顺性);
-
R=3 cmH2O/(L/s)R=3cmH2O/(L/s)(流阻系数);
-
时间步长:Δt=0.004 sΔt=0.004s。
-
2. 初始化与回零
-
虚拟寄存器(VR)配置:
-
VR(10001)=4
:设定控制周期为4ms; -
VR(10006)=1
:气缸移动长度缩放系数(默认1);
-
-
回零操作:
basic
复制
BASE(0) ' 选择轴0 MOVEABS(0) ' 绝对移动至零点 WAIT IDLE ' 等待运动完成 DEFPOS(0) ' 定义当前位置为轴0的零点
3. 主循环逻辑
(1)启停控制
-
停止状态(VR(10000)=0):关闭位移计算、压力滤波及跟随程序,清零捕捉计数;
-
启动状态(VR(10000)=1):启用所有计算模块。
(2)压力滤波处理
-
原始压力值
VR(302)
通过一阶低通滤波平滑:basic
复制
difp = VR(302)*0.5+ VR(10004)*0.5
减少传感器噪声对控制的干扰。
(3)位移计算
-
压力转位移公式:
-
差压传感器原始值
difp
转换为kPa:复制
dpkpa = (difp - 10000)/40000 * 16 * 15/16 - 4
-
体积变化计算(基于流体力学模型):
复制
vl_new = (dpkpa * 10.197 - vl_old * 1000 / C) / R * Δt + vl_old
-
体积转位移:
复制
movepos = (vl_new * 1000 / 314.159) / 5 * VR(10006)
物理意义:体积变化对应活塞位移,考虑丝杠导程(5mm/转)及缩放系数。
-
(4)压力最低值捕捉
-
状态机(SELECT_CASE):
-
CASE 0:持续记录最低压力值,达到设定次数(
VR(10014)/VR(10001)
)后切换至CASE 1; -
CASE 1:若当前压力接近最低值(+0.5kPa容差),触发CASE 2;
-
CASE 2:控制实物轴(AXIS(0))与虚拟轴(AXIS(1))同步运动。
-
(5)限位保护
-
硬限位约束:
basic
复制
IF movepos >= poslimit THEN movepos = poslimit IF movepos <= neglimit THEN movepos = neglimit
防止机械超程损坏(正限位
poslimit=21
,负限位neglimit=-11
)。
(6)周期控制
-
通过
TICKS
计时器严格约束循环周期(4ms):basic
复制
starttime = TICKS stoptime = starttime - VR(10001)WAITUNTIL TICKS < stoptime
关键变量与函数说明
变量/函数
作用
| 动态修改轴目标位置,实现平滑运动; |
| 气缸移动长度缩放系数,调试时调整运动幅度; |
| 系统时钟计数器(单位:ms),用于精确时序控制; |
| 实物轴与虚拟轴标识,支持双轴协同或模拟测试。 |
应用场景
-
工业自动化:注塑机、液压缸的压力-位置闭环控制;
-
实验设备:流体力学实验中动态压力响应的位移补偿;
-
医疗设备:呼吸机气压调节或输液泵流量控制。
注意事项
-
单位一致性:
-
压力传感器原始值需校准,确保
dpkpa
计算准确; -
位移公式中的单位转换(如mm²→cm²)需严格验证。
-
-
实时性保障:
-
控制周期(4ms)需与硬件响应速度匹配,避免超时或数据丢失;
-
-
限位安全:
-
实际限位值(-11, 21)需与机械行程匹配,建议留2-3mm余量;
-
-
虚拟轴调试:
-
先通过虚拟轴(AXIS(1))验证逻辑,再切换至实物轴(AXIS(0))。
-
总结
本程序通过压力反馈动态调节气缸位置,融合信号处理、状态机与运动控制,实现了高精度闭环控制。其模块化设计便于扩展(如添加PID算法),适用于需快速响应压力变化的工业场景。开发时需重点关注传感器校准、单位转换及实时性优化。