伺服定位闭环控制 点击:21598 | 回复:262



rockey

    
  • 精华:1帖
  • 求助:6帖
  • 帖子:81帖 | 668回
  • 年度积分:0
  • 历史总积分:954
  • 注册:2005年4月01日
发表于:2012-09-02 15:16:58
楼主
大家好,我想问一下,我伺服定位控制如果要实现闭环控制,是不是电机那侧还要加个编码器做高速计数与PLC中发出的脉冲数做比较,然后再次发出与反馈过来的脉冲数,不知道还有没有别的简单点的方法



wenwan90

  • 精华:0帖
  • 求助:12帖
  • 帖子:28帖 | 575回
  • 年度积分:12
  • 历史总积分:2497
  • 注册:2011年11月03日
发表于:2012-09-03 14:32:17
21楼
回复内容:
对:rockey关于引用 wenwan90 的回复内容:回复内容:对:rockey关于谢谢刘老,现在的伺服编码器出线都是接驱动器的,有没有编码器出现有两路的,一路反馈给驱动器,一路用来给高速计数;要不然是不是我还得在伺服电机轴上加个编码器 内容的回复:伺服已经是闭环了,你还做什么闭环,如果你这么做还要伺服做什么啊?你想知道编码器的现在值,可以用通讯读取私服驱动器内部存储编码器值的寄存器。如果你用编码器反馈,就不要用伺服了,改为步进电机好了。 这个闭环只是驱动器和电机之间吧,PLC和电机不还是开环的啊内容的回复:


伺服是闭环的,PLC只需让伺服走多少就可以了,剩下的就由伺服来完成了,如果你怕PLC到伺服之间丢脉冲,可以由通讯读取伺服的状态,如果你用编码器反馈回来的话,来来回回,不是丢的更多了。当然,你非这样做,一般私服编码器频率很高,并且还是差分输出的,你的PLC支持吗?

rockey

  • 精华:1帖
  • 求助:6帖
  • 帖子:81帖 | 668回
  • 年度积分:0
  • 历史总积分:954
  • 注册:2005年4月01日
发表于:2012-09-03 15:20:29
22楼

到也不一定非得加编码器,我主要就是想要把电机反馈的脉冲数与PLC的脉冲数做比较,这样能确保目标位置没有偏差,用通讯读取伺服驱动器的反馈脉冲应该也是可靠的了。

王者之师--去北极看企鹅

  • 精华:0帖
  • 求助:0帖
  • 帖子:16帖 | 146回
  • 年度积分:933
  • 历史总积分:25438
  • 注册:2004年11月08日
发表于:2012-09-03 16:15:47
23楼
伺服控制器的位置控制模式本身就是闭环控制,只不过是半闭环,如果想实现全闭环必须在加个编码器或者光栅尺之类的反馈。如果精度要求不那么太高,半闭环就够用了,

rockey

  • 精华:1帖
  • 求助:6帖
  • 帖子:81帖 | 668回
  • 年度积分:0
  • 历史总积分:954
  • 注册:2005年4月01日
发表于:2012-09-03 16:37:17
24楼
现在主要是有干扰问题不太好解决,所以要用闭环控制

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2012-09-03 16:48:26
25楼

引用 rockey 的回复内容:谢谢刘老,现在的伺服编码器出线都是接驱动器的,有没有编码器出现有两路的,一路反馈给驱动器,一路用来给高速计数;要不然是不是我还得在伺服电机轴上加个编码器


1、编码器的检测反馈脉冲的和×脉冲当量=位移量;

2、编码器的检测反馈脉冲数/秒÷周反馈脉冲数=速度;

3、你需要的数字,一个编码器就够了,1进入位置环,2进入速度环;

rockey

  • 精华:1帖
  • 求助:6帖
  • 帖子:81帖 | 668回
  • 年度积分:0
  • 历史总积分:954
  • 注册:2005年4月01日
发表于:2012-09-03 16:49:42
26楼
还有就是如果发的脉冲数和实际收到的脉冲数有偏差的话,用什么办法来弥补这个偏差

rockey

  • 精华:1帖
  • 求助:6帖
  • 帖子:81帖 | 668回
  • 年度积分:0
  • 历史总积分:954
  • 注册:2005年4月01日
发表于:2012-09-03 16:52:35
27楼
引用 刘志斌 的回复内容:引用 rockey 的回复内容:谢谢刘老,现在的伺服编码器出线都是接驱动器的,有没有编码器出现有两路的,一路反馈给驱动器,一路用来给高速计数;要不然是不是我还得在伺服电机轴上加个编码器 1、编码器的检测反馈脉冲的和×脉冲当量=位移量;2、编码器的检测反馈脉冲数/秒÷周反馈脉冲数=速度;3、你需要的数字,一个编码器就够了,1进入位置环,2进入速度环;


那这个怎么进入位置环和速度环啊,还是需要跟伺服通讯吧?

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2012-09-03 16:56:16
28楼

引用 rockey 的回复内容:现在主要是有干扰问题不太好解决,所以要用闭环控制


1、我说的就是伺服位置环、速度环、电流环的结构原理;

2、你既然用的是伺服,伺服里本身就有位置环、速度环、电流环;

3、你自己没有必要加什么环,你的干扰问题是什么?说出来,看看怎么解决!

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2012-09-03 17:14:05
29楼

引用 rockey 的回复内容:到也不一定非得加编码器,我主要就是想要把电机反馈的脉冲数与PLC的脉冲数做比较,这样能确保目标位置没有偏差,用通讯读取伺服驱动器的反馈脉冲应该也是可靠的了。


1、伺服里就有你想要的这个位置环;

2、但是电机并不是你想的,能在给定位置启动、停车,因为数字脉冲的控制只产生一个给定位置,一个停车的命令,电机停没有停车完全是另一码事,你加一个闭环也没有用;

3、就好像你开车,心里知道停车的位置,可是实际停车总不在你想要的位置一样;

4、伺服的数控是精确地,而电机的启动和停车并没有得到有效控制,必须在电机的控制上下功夫,例如电机在目标位置前什么时候开始减速、惯量是多少、减速时间是多少、停车时是否需要制动等等问题上下功夫;

5、你用的是伺服,看看说明书,这些参数都有,自己多试验几次,就能找到一个好的设置;

 

  • 精华:2帖
  • 求助:0帖
  • 帖子:10帖 | 2393回
  • 年度积分:1
  • 历史总积分:5804
  • 注册:2006年1月06日
发表于:2012-09-03 17:24:06
30楼

伺服驱动器会输出到位信号,到位信号表示伺服转过脉冲数与接收的脉冲数之差小于设定值,这个设定值大小可以在驱动器中设置。

只要偏差小于这个数值,到位信号有效。

PLC可以判断这个信号是否有效来判断有没有到达指定位置!

如果想一个脉冲都不差,有点难度,最好用上位系统,将位置环做在上位机里,伺服运行在速度模式下,这个上位系列用PLC实现不了,PLC功能太简单了、扫描周期太长,还没有伺服自己的位置闭环好呢!

  • 精华:2帖
  • 求助:0帖
  • 帖子:10帖 | 2393回
  • 年度积分:1
  • 历史总积分:5804
  • 注册:2006年1月06日
发表于:2012-09-03 18:38:21
31楼

某些“高人”的高论, 实在是让人好笑!

有没有见过伺服、PLC都是个问题, 这样也敢乱指点, 不怕XXX吗?

笨鳥慢飛

  • 精华:3帖
  • 求助:3帖
  • 帖子:15帖 | 2548回
  • 年度积分:0
  • 历史总积分:4928
  • 注册:2005年10月16日
发表于:2012-09-03 19:25:08
32楼

伺服控制器的位置控制模式本身就是闭环控制,只不过是半闭环,如果想实现全闭环必须在加个编码器或者光栅尺之类的反馈。如果精度要求不那么太高,半闭环就够用了,

-----------------------------------

小老弟 講得很外行喔

笨鳥慢飛

  • 精华:3帖
  • 求助:3帖
  • 帖子:15帖 | 2548回
  • 年度积分:0
  • 历史总积分:4928
  • 注册:2005年10月16日
发表于:2012-09-03 19:35:14
33楼
老劉 樓主只是干擾的問題才想改成閉環 跟你寫的都沒有關係 請把內容看清楚 搞明白再發言

rockey

  • 精华:1帖
  • 求助:6帖
  • 帖子:81帖 | 668回
  • 年度积分:0
  • 历史总积分:954
  • 注册:2005年4月01日
发表于:2012-09-03 19:59:20
34楼
引用 刘志斌 的回复内容:引用 rockey 的回复内容:到也不一定非得加编码器,我主要就是想要把电机反馈的脉冲数与PLC的脉冲数做比较,这样能确保目标位置没有偏差,用通讯读取伺服驱动器的反馈脉冲应该也是可靠的了。1、伺服里就有你想要的这个位置环;2、但是电机并不是你想的,能在给定位置启动、停车,因为数字脉冲的控制只产生一个给定位置,一个停车的命令,电机停没有停车完全是另一码事,你加一个闭环也没有用;3、就好像你开车,心里知道停车的位置,可是实际停车总不在你想要的位置一样;4、伺服的数控是精确地,而电机的启动和停车并没有得到有效控制,必须在电机的控制上下功夫,例如电机在目标位置前什么时候开始减速、惯量是多少、减速时间是多少、停车时是否需要制动等等问题上下功夫;5、你用的是伺服,看看说明书,这些参数都有,自己多试验几次,就能找到一个好的设置; 


谢谢!这个应该在不存在干扰的情况下吧,我现在是PLC譬如发了1000个脉冲,但是实际驱动器反馈的脉冲有1100个,等于是多收到了100个,位置就不准了

rockey

  • 精华:1帖
  • 求助:6帖
  • 帖子:81帖 | 668回
  • 年度积分:0
  • 历史总积分:954
  • 注册:2005年4月01日
发表于:2012-09-03 20:04:47
35楼

引用 征 的回复内容:伺服驱动器会输出到位信号,到位信号表示伺服转过脉冲数与接收的脉冲数之差小于设定值,这个设定值大小可以在驱动器中设置。只要偏差小于这个数值,到位信号有效。PLC可以判断这个信号是否有效来判断有没有到达指定位置!如果想一个脉冲都不差,有点难度,最好用上位系统,将位置环做在上位机里,伺服运行在速度模式下,这个上位系列用PLC实现不了,PLC功能太简单了、扫描周期太长,还没有伺服自己的位置闭环好呢!




谢谢!这个倒是可以设置,伺服转过脉冲数与接收的脉冲数之差如果大于设定值那就判断只能停机了吧!

将位置环做在上位机里,伺服运行在速度模式下,这个方法不会很明白,能否详细说明下,谢谢!

 

  • 精华:2帖
  • 求助:0帖
  • 帖子:10帖 | 2393回
  • 年度积分:1
  • 历史总积分:5804
  • 注册:2006年1月06日
发表于:2012-09-03 20:45:07
36楼

回复内容:
对:rockey关于引用 刘志斌 的回复内容:引用 rockey 的回复内容:到也不一定非得加编码器,我主要就是想要把电机反馈的脉冲数与PLC的脉冲数做比较,这样能确保目标位置没有偏差,用通讯读取伺服驱动器的反馈脉冲应该也是可靠的了。1、伺服里就有你想要的这个位置环;2、但是电机并不是你想的,能在给定位置启动、停车,因为数字脉冲的控制只产生一个给定位置,一个停车的命令,电机停没有停车完全是另一码事,你加一个闭环也没有用;3、就好像你开车,心里知道停车的位置,可是实际停车总不在你想要的位置一样;4、伺服的数控是精确地,而电机的启动和停车并没有得到有效控制,必须在电机的控制上下功夫,例如电机在目标位置前什么时候开始减速、惯量是多少、减速时间是多少、停车时是否需要制动等等问题上下功夫;5、你用的是伺服,看看说明书,这些参数都有,自己多试验几次,就能找到一个好的设置; 谢谢!这个应该在不存在干扰的情况下吧,我现在是PLC譬如发了1000个脉冲,但是实际驱动器反馈的脉冲有1100个,等于是多收到了100个,位置就不准了内容的回复:


什么牌子驱动器?

首先驱动器接收到的PLC脉冲是不是1000个? 这个接收到的脉冲数值在驱动器的面板上应该查看到的。

如果不是1000的话,你只能查查是不是干扰很厉害了, 有没有用屏蔽线之类的, 具体原因不好讲, 跟你的应用有关。要从根源上解决问题, 否则用其他的方法是做无用功,因为你接收到的指令脉冲就不准。

 

如果驱动器接收到的PLC脉冲个数正确, 即1000个, 而电机转了1100个,这驱动器有点问题,调调驱动器参数(位置环比例增益)看看效果。我个人意见,定位差这么多脉冲的情况下,即便是用驱动器的默认参数也不应该差这么多, 100个脉冲是个不小的数目。当然这个跟用什么牌子的驱动器有关,不好下结论。


 

rockey

  • 精华:1帖
  • 求助:6帖
  • 帖子:81帖 | 668回
  • 年度积分:0
  • 历史总积分:954
  • 注册:2005年4月01日
发表于:2012-09-03 20:59:03
37楼
用的是三菱MR-E的,我监控的指令反馈脉冲P,第一次回原位时清零,接下来回零位的时候就显示有累积误差了,越来越大,屏蔽说明的都做了,增益调了下也不明显,我在想真要是干扰应该没这么大,一般也应该是少收到脉冲吧

rockey

  • 精华:1帖
  • 求助:6帖
  • 帖子:81帖 | 668回
  • 年度积分:0
  • 历史总积分:954
  • 注册:2005年4月01日
发表于:2012-09-03 21:02:14
38楼

还有跟伺服里面的加减速时间设置了有没有关系,驱动器不设加减速时间会不会精度要高一点

 

  • 精华:2帖
  • 求助:0帖
  • 帖子:10帖 | 2393回
  • 年度积分:1
  • 历史总积分:5804
  • 注册:2006年1月06日
发表于:2012-09-03 21:04:04
39楼

回复内容:
对:rockey关于引用 征 的回复内容:伺服驱动器会输出到位信号,到位信号表示伺服转过脉冲数与接收的脉冲数之差小于设定值,这个设定值大小可以在驱动器中设置。只要偏差小于这个数值,到位信号有效。PLC可以判断这个信号是否有效来判断有没有到达指定位置!如果想一个脉冲都不差,有点难度,最好用上位系统,将位置环做在上位机里,伺服运行在速度模式下,这个上位系列用PLC实现不了,PLC功能太简单了、扫描周期太长,还没有伺服自己的位置闭环好呢!谢谢!这个倒是可以设置,伺服转过脉冲数与接收的脉冲数之差如果大于设定值那就判断只能停机了吧!将位置环做在上位机里,伺服运行在速度模式下,这个方法不会很明白,能否详细说明下,谢谢! 内容的回复:


将位置环做在上位系统上, 伺服运行在速度模式下。 上位系统对运动轨迹进行规划、然后形成位置指令,再根据位置指令和当前实际位置的偏差进行计算后得到需要的速度指令值, 将速度指令值发送给驱动器, 可以有下面的实现方式

1) 采用模拟量给定

    例如0到10V对应于负最高速度 到 正最高速度, 上位机输出速度对应的电压模拟量, 驱动器根据模拟量换算成速度指令, 控制电机运转。

    当前部分数控系统是这么做的, 至于如何将速度指令对应于模拟量参考驱动器的用户说明书。

 

2) 通讯给定

    上位机直接按照通讯协议将速度指令只发送给驱动器, 驱动器驱动电机。

    高端数控系统是采用这种方式的。

 

将位置环做到上位系统上, 由现成的数控系统和运动控制卡可用。 可以编程实现。如果是自己设计, 对上位系统设计者的水平有要求,不是随便做一个上位系统、瞎凑凑就满足的,至少你得知道运动控制的一些知识,这个上位系统用PLC是根本实现不了的。

 

 对一些没有这方面技术的公司, 建议还是采用PLC发脉冲, 驱动器运行在位置模式下, 这种控制对技术要求最低、最容易实现。实际上,这种控制方式能满足绝大多数的低端应用要求。 在中国, 有些客户拿到伺服就是为了实现一个定长的裁剪、加工等简单的应用,在国外,这种应用用变频器加编码器就满足要求。

只要是讲到用PLC发脉冲给伺服驱动器, 这种应用对定位精度的要求就不会很高, 要要求很高的话, 就不会用PLC了。

 

 

  • 精华:2帖
  • 求助:0帖
  • 帖子:10帖 | 2393回
  • 年度积分:1
  • 历史总积分:5804
  • 注册:2006年1月06日
发表于:2012-09-03 21:09:27
40楼

引用 rockey 的回复内容:还有跟伺服里面的加减速时间设置了有没有关系,驱动器不设加减速时间会不会精度要高一点 



一般来说, 日系伺服的驱动器里的加减速时间是对速度控制来说的, 如果在位置控制模式下, 这个加减速是不起作用的。

如果你想做加减速处理, 需要你在PLC中做, 调整脉冲发送的频率。

 

在位置模式下, 我见过西门子的611是可以对接收到的脉冲指令自己进行处理的, 可以自己设置最大加速度、最高速度限制等, 但在安川等日系产品里, 我没看到过。

或许现在的日系产品添加了该功能, 你自己查查说明书。


热门招聘
相关主题

官方公众号

智造工程师