打印
[技术讨论]

PID 驱动步进电机控制阀门的思路

[复制链接]
260|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
showmyself|  楼主 | 2023-1-3 16:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


大家好,

我现在需要做一个产品,该产品主要用来稳定气体流量,也就是通过一个步进电机来控制阀门开合,流量大了,就把阀门开小一点,流量小了,就把阀门开达一点,通过步进电机不断调节阀门开度来把气体流量最终稳定在某一个值。
这个阀门是自带流量检测传感器的,可以实时测量从阀门流过的气体流量。

比如我现在要把流量稳定在10L/min,阀门传感器检测到当前流量是5L/min,那么单片机需要控制步进电机把阀门开大一点,这里是闭环控制,10L是目标值,5L是测量值,通过PID算法控制步进电机,进而控制阀门开合。

这里有个问题,这种应用场景,我理解是不是不需要计算步进电机的转动角度了?也就是不需要计算步进电机当前在什么位置,然后转动多少位置了?所以也不需要编码器之类的东西来记录步进电机位置了?不知道我的理解对不对?

因为我的最终被控对象是流量大小,当单片机接收到设置流量与当前流量的差值后,将差值反馈给单片机PID,PID根据这个差值计算出一个值,然后用这个值去控制步进电机驱动阀门转过一定角度,所以这里要把这个流量误差值转换为对应的阀门转动的角度值,这里不知道怎么对应起来?

假设我的阀门的最大开度是720度(开度范围0~720度),如果0开度对应流量是0,720度开度对应流量20L,此时PID计算后得到的增量值为X, 设阀门需要转动的角度为Y,那么20/720=X/Y,通过这个式子可以计算出Y的值,也就是步进电机驱动阀门转动的角度。不知道我的理解对不对?

所以总结下,
应该全程都不需要记录步进电机的位置,只需要计算流量误差值与阀门转动的角度的对应关系就行了。
比如这次我把流量稳定在10L,然后我关机了,然后再开机,设置流量稳定到15L,那么上一次电机和阀门应该停在10L位置,这次设置到15L后,PID启动,检测到误差值,PID会不断调整电机位置然后让其稳定在15L。所以我理解是,不管什么应用场景,我应该都不需要管步进电机的位置了,不知道这个理解对不对?

以前没用PID算法,写了大量代码来检测步进电机的位置,也就是电机转过多少角度对应多少流量,这个对应关系是死的。现在用了PID,我想了下,好像不需要检测电机位置了,因为PID会根据测到的流量误差来调整阀门开度,位置好像不重要了。刚开始做PID,理解不是很深入,希望给位前辈不吝赐教!

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

48

主题

117

帖子

1

粉丝