回复:1200PID控制液压缸伸缩调节

已锁定

hhyx9

  • 帖子

    853
  • 精华

    20
  • 被关注

    41

论坛等级:奇侠

注册时间:2015-04-11

钻石 钻石 如何晋级?

发布于 2022-05-13 22:16:35

12楼

展开查看
以下是引用手机用户20220323239664在2022-05-13 20:58:48的发言 >11楼

根据您的提议我回复几点,讨论一下,技术小白有错误的地方多多包涵

  1. 您提到PID_compact  输出的是0-100的数,这是选择output还是output_PER因为我用output_PER连接PID监视时输出的是0-27648的数,即模拟量  组态里和output相关的就是输出值上下限,所以想请教一下您不管是采用output还是output_PER可否通过设定输出值上下限来改变输出,即0-50%/50-100%  对应output_PER0-18324/18324-27648   这是我一直疑惑的地方 因为很少有资料将PID_compact的输出问题

  2. 您提到的反逻辑控制,我看到的资料是  正作用:偏差增大输出值增大反作用:偏差增大输出值减小

    这个逻辑是对偏差的大小判断还是偏差绝对值判断呢  即设定值为-15 实际值为0时选正作用还是反作用逻辑 

  3. 根据楼上几位大神的一些建议,我目前的控制方法是:用两个PID_compact  先对上升/下降进行判断  上升工况信号给PID1  下降工况给PID2   输出选择output_PER  输出的是一个0-27648的数  对两个输出进行缩放  输出值0-27648变成 0-18324和18324-27648  这样发送给伺服阀的信号就可以直接控制阀门的开和闭  因为模拟量输出选择的是4-20mA的电信号  伺服阀的控制也是4-12mA和12-20mA  这样给0-18324和18324-37648  的模拟量信号就相当于直接控制伺服阀口的转换   但是也存在问题就是监视时  output_PER 的输出要么0要么27648   反思了一下控制逻辑应该没问题  不知道是不是反控制逻辑的问题  因为下降时设定值和实际值都是负数

以下是引用飞行1022在2022-05-10 19:22:23的发言 >10楼:1、把实际位置作为P...

引用10楼详细内容:

1、把实际位置作为PID控制器的输入值,需要达到的位置作为设定值。在定时中断块里调用PID_compact。

2、PID的输出是一个0~100的数,除以100变为0~1的小数,我们记为伺服阀控制比例P。

3、用SCALE_X指令,指令中的min为0(对应4mA),max为27648(对应20mA),第2步的P值作为VALUE。若油缸运行方向反了,则在PID控制器的组态窗口修改为“反转逻辑控制”。

4、SCALE_X的输出作为模拟量输出值给伺服阀。

5、优化PID参数。

另外考虑到楼上大神们指出的上升和下降的PID不同的问题,我认为是不是可以还是用同一个PID参数,但是我们需要计算或者实测一个补偿量,这个补偿量应该是可以克服负载的重力影响,就把上下运动简化为了类似水平运动的控制。例如补偿量为2mA,则当需要上升时,在PID控制器输出的基础上,加2mA即可。我没做过试验,理论上或许可行。

请各位大神指正。

PID_compact 中output输出的是工程量,就是0-100,output_PER输出的是模拟量所以是0-27648

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15121条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。