如何实现电子凸轮 点击:19287 | 回复:94



叫我小白

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:22帖 | 1559回
  • 年度积分:0
  • 历史总积分:3025
  • 注册:2006年6月08日
发表于:2007-12-07 09:03:00
楼主
在考虑实现复杂的运动控制时(特别是非线性运动时),电子凸轮是较好的选择,如何实现电子凸轮,我请教了一些人,但是没有得到答案。所以根据经验和猜测、以及IEC61131-3 motion control的一些知识,估计实现的方法如下。如果有何错漏之处,欢迎指正。

首先对电子凸轮进行简单的定义:实现主轴和从轴的啮合运动。

实现电子凸轮分为三部分:

1、获取主轴位置;

获取主轴位置有多种方法:一是采用虚拟轴,计算简单准确;二是从主轴编码器获取,将主轴编码器信号进行处理;三是从测量编码器获取。获得编码器信号之后,还要将其换算成主轴位置。

2、实现主从轴的啮合

实际上是获取主从轴之间的关系(称之为cam table)。cam table有两种方法表述:一是采用X、Y的点对点关系;二是采用两者的函数关系。cam table的获取也有多种途径:一是采用厂商提供的软件;二是函数关系计算。cam table在运行中的实现根据表述方法的不同也有两种方式:一是根据X、Y的点对点关系查表得到;二是根据两者的函数关系进行计算(特别需要提到的是,有些函数关系可能会根据不同情况而得到不同的函数,也就是函数并不确定。这些西门子轮切手册提到的五次曲线给了我很大的提示)。cam table可以定义多个cam曲线,根据需要切换、拉伸不同的cam。

关系确定和实现后,根据主轴的位置,就能得到从轴的位置。

三、根据从轴位置控制当前轴

通常日系和欧系在根据从轴位置控制当前轴有不同的处理方式,日系的低成本伺服采用输出脉冲的方式,这种方式可能的缺点是丢失脉冲,以及响应的实时性能不足;欧系伺服多采用总线(通讯)方式实现,精确同步的能力更为突出。

原文发表于我的博客:http://blog***/more.asp?name=lightwhite&id=30729


楼主最近还看过



七夜

  • 精华:1帖
  • 求助:0帖
  • 帖子:6帖 | 248回
  • 年度积分:0
  • 历史总积分:458
  • 注册:2005年2月03日
发表于:2008-04-07 10:06:34
21楼

和我当初的想法一样,可是,你实践起来就知道难度了。你的运动不仅仅是个支撑点,实际上整条曲线的点都需要计算出来,第一,市面上完全支持高级语言编程,特别是复杂函数的很少很少。第二,你计算出每个点的数据后(position,speed,Jerk, acceleration )如何让机器把他们平滑连贯的运动出来?要知道从第一个点到第二个点的动作,实际是上对反馈环体的精确控制。除非你调用硬件的支持。。。。

说白了,如果硬件支持,那么你做的就是个初级工种,你算出点,然后机器实现,你不会知道它怎么实现。如果你想明白的话,可以从明白机器怎么定位开始。。。。

小白兄,不知道你代理的机器可不可以使用C语言编程?如果可以,你做一次就明白了。。。

 

七夜

  • 精华:1帖
  • 求助:0帖
  • 帖子:6帖 | 248回
  • 年度积分:0
  • 历史总积分:458
  • 注册:2005年2月03日
发表于:2008-04-07 10:08:57
22楼
回复内容:
对:ltsksc关于

和我当初的想法一样,可是,你实践起来就知道难度了。你的运动不仅仅是个支撑点,实际上整条曲线的点都需要计算出来,第一,市面上完全支持高级语言编程,特别是复杂函数的很少很少。第二,你计算出每个点的数据后(position,speed,Jerk, acceleration )如何让机器把他们平滑连贯的运动出来?要知道从第一个点到第二个点的动作,实际是上对反馈环体和调节量的精确控制。除非你调用硬件的支持。。。。

说白了,如果硬件支持,那么你做的就是个初级工种,你算出点,然后机器实现,你不会知道它怎么实现。如果你想明白的话,可以从明白机器怎么定位开始。。。。但是会回答我原来的点上,每一家厂家都不会告诉你他的硬件代码,除非你是研发的经理。。

小白兄,不知道你代理的机器可不可以使用C语言编程?如果可以,你做一次就明白了。。。

 

内容的回复:


叫我小白

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 1559回
  • 年度积分:3
  • 历史总积分:3122
  • 注册:2006年6月08日
发表于:2008-04-07 15:09:06
23楼

哈,当然是因为我作出来了。所以才敢说不难。

http://blog.gkong.com/more.asp?name=lightwhite&id=34218

这篇是针对锻压做的运动曲线,现在看来,还是太幼稚了。

我也做过旋切的曲线。只是因为包米勒目前旋切的功能块已经非常全面了,所以我也不想认真去开发了。

 

叫我小白

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 1559回
  • 年度积分:3
  • 历史总积分:3122
  • 注册:2006年6月08日
发表于:2008-04-07 15:12:13
24楼

第一,市面上完全支持高级语言编程,特别是复杂函数的很少很少。

-----------有些自动化软件能够提供支持高级语言编程的软件,比如3S,KW,IEC61131-3语言中的ST语言可以认为是高级语言编程。

第二,你计算出每个点的数据后(position,speed,Jerk, acceleration )如何让机器把他们平滑连贯的运动出来?要知道从第一个点到第二个点的动作,实际是上对反馈环体和调节量的精确控制。除非你调用硬件的支持。。。。

---------------的确,目前包米勒的硬件支持。应该说,开发性的硬件平台是可以支持这点的。前提是德国人肯不肯告诉你怎么去应用他的硬件平台。

叫我小白

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 1559回
  • 年度积分:3
  • 历史总积分:3122
  • 注册:2006年6月08日
发表于:2008-04-07 15:48:31
25楼

目前,德国的很多伺服驱动器是基于标准来开发的,弄懂了标准,则控制方式是差不多的。

硬件支持是必要的,我不可能做到软硬件通吃。

firstrazor

  • 精华:1帖
  • 求助:0帖
  • 帖子:15帖 | 753回
  • 年度积分:0
  • 历史总积分:909
  • 注册:2007年7月28日
发表于:2008-04-07 21:37:38
26楼
这个帖基本上以论及伺服系统里的其中一个核心技术了,厉害!

七夜

  • 精华:1帖
  • 求助:0帖
  • 帖子:6帖 | 248回
  • 年度积分:0
  • 历史总积分:458
  • 注册:2005年2月03日
发表于:2008-04-07 22:00:53
27楼
回复内容:
对:lightwhite关于

目前,德国的很多伺服驱动器是基于标准来开发的,弄懂了标准,则控制方式是差不多的。

硬件支持是必要的,我不可能做到软硬件通吃。

 

“这篇是针对锻压做的运动曲线,现在看来,还是太幼稚了。 我也做过旋切的曲线。 ”旋切?SEW很多时候旋切是用异步交流电机来做的。。。。精度《1mm.

你这个曲线代表什么?看不明白。不知道你想表达的是什么?

“比如3S,KW,IEC61131-3语言中的ST语言可以认为是高级语言编程”,请问,IEC61131-3是如何实现拉格朗日方程或者矩阵方程?。。。忍不住说一句,我曾经就这些问题给德国的SEW同事(参与IEC61131-3模块的人)问过,他的回答,想真正搞明白CAM,除非你搞明白硬件,否则。。。就像我一开始说的那样。。。。

SEW的电子凸轮是可以在异步交流电机+变频器做的(没有运动控制卡件)。但是前提条件是SEW的变频器可以支持IPOS编程。实际上,SEW的变频器就可以有还飞剪、旋切、追剪、张力控制、套准等一系列工艺模块库。我说的是变频器不是伺服。。。。。

我们的Movi-PLC(意义上类似B maXX-drivePLC)9个电机实轴的周期处理循环时间只要3ms.2个ms内可以实现100个虚拟编码器。采用CoDeSys编程(IEC61131-3),与3S公司标准软件库联接。。。。。那是用来做机器人的,也许KUKA欧洲总部的人比较清楚:),很期待今年年中的欧洲之行:)。。

“哈,当然是因为我作出来了。所以才敢说不难。

http://blog.gkong.com/more.asp?name=lightwhite&id=34218

这篇是针对锻压做的运动曲线,现在看来,还是太幼稚了。

我也做过旋切的曲线。只是因为包米勒目前旋切的功能块已经非常全面了,所以我也不想认真去开发了。 ”


目前讨论的是理论上的实现。

曾经询问过如何在包米勒平台上实现一个自定义公式的电子凸轮,没有下文。不过根据这篇文章,我现在就可以在包米勒平台下实现各种复杂的运动控制,如果有足够时间,我甚至可以自行开发飞剪这种较为复杂的运动控制。 ”

飞剪?那也是可以用一个变频器+异步交流电机来实现的,例子有一大把。IPOS编程环境下,大概不会超过150行C语言代码。老实说,我做个。。。不需要CAM。就写IPOS程序(c语言代码)。

我想做的是,用一个可以支持C语言的模块,依靠C语言的编程,然后去控制一个控制只有Speed ControL功能的变频器,去实现一个复杂的电子凸轮。这才是电子凸轮的核心。

“变频技术: 简单的变频器只能调节交流电机的速度,这时可以开环也可以闭环要视控制方式和变频器而定,这就是传统意义上的V/F控制方式。现在很多的变频已经通过数学模型的建立,将交流电机的定子磁场UVW3相转化为可以控制电机转速和转矩的两个电流的分量,现在大多数能进行力矩控制的著名品牌的变频器都是采用这样方式控制力矩,UVW每相的输出要加摩尔效应的电流检测装置,采样反馈后构成闭环负反馈的电流环的PID调节;这样可以既控制电机的速度也可控制电机的力矩,而且速度的控制精度优于v/f控制,编码器反馈也可加可不加,加的时候控制精度和响应特性要好很多。

伺服系统:1、伺服驱动器 在发展了变频技术的前提下,在驱动器内部的电流环,速度环和位置环(变频器没有该环)都进行了比一般变频更精确的控制技术和算法运算,在功能上也比传统的伺服强大很多,主要的一点可以进行精确的位置控制。通过上位控制器发送的脉冲序列来控制速度和位置(当然也有些伺服内部集成了控制单元或通过总线通讯的方式直接将位置和速度等参数设定在驱动器里),驱动器内部的算法和更快更精确的计算以及性能更优良的电子器件使之更优越于变频器。”

如果我告诉你SEW的变频器+交流异步电机就可以实现电流环,速度环和位置环,可以实现电子凸轮,精确定位,飞剪,你还这么认为吗?:)
PS:我们会定期的做竞争对手的产品性能简报。



内容的回复:

叫我小白

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 1559回
  • 年度积分:3
  • 历史总积分:3122
  • 注册:2006年6月08日
发表于:2008-04-08 09:33:26
28楼

我想做的是,用一个可以支持C语言的模块,依靠C语言的编程,然后去控制一个控制只有Speed ControL功能的变频器,去实现一个复杂的电子凸轮。这才是电子凸轮的核心。

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

如果你一定要在速度环上去实现电子凸轮,我觉得SEW的上位无法实现这个功能。这个功能通常需要驱动器提供定位控制功能。如果一定要实现这个目标,那么需要采用高性能的运动控制卡,Trio或者MKS的一些产品能达到这个要求。

SEW的产品看来很不错,当然,能达到你所提到的“变频器+交流异步电机就可以实现电流环,速度环和位置环,可以实现电子凸轮,精确定位,飞剪”的要求,还有很多产品。比如丹佛斯,比如KEB。

七夜

  • 精华:1帖
  • 求助:0帖
  • 帖子:6帖 | 248回
  • 年度积分:0
  • 历史总积分:458
  • 注册:2005年2月03日
发表于:2008-04-08 10:25:36
29楼

嘿嘿,所以我说首先明白定位,这也是德国人说的精华。其实所有的的定位功能的机器它的核心是什么??从速度控制开始,不断的调节PID控制器。。。。。。反馈,不断修正调节控制量,。。。。

七夜

  • 精华:1帖
  • 求助:0帖
  • 帖子:6帖 | 248回
  • 年度积分:0
  • 历史总积分:458
  • 注册:2005年2月03日
发表于:2008-04-08 10:28:55
30楼
还有,你错了。如果你的上位可以实现高速的数学运算,那么你可以使用一个speed control 的机器去实现复杂的功能。定位的依据来自于根据反馈量去调节速度和力矩。这才是华丽的核心,这也是德国人说的SEW的精华,可是没有对硬件底层的明白。。。。那就什么都不是。。。。。。。。

叫我小白

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 1559回
  • 年度积分:3
  • 历史总积分:3122
  • 注册:2006年6月08日
发表于:2008-04-08 10:44:01
31楼

定位,也就是位置环功能,目前至少有两个方式:一个驱动器提供位置环。伺服驱动器肯定都提供该功能,部分变频器也能提供该功能;二是采用运动控制卡(器)、PLC等。驱动器提供速度控制,运动控制卡提供位置环功能。

我的判断是:驱动器的厂商通常会选择驱动器提供位置环,而不是采用上位(运动控制卡、PLC)提供位置环。因为位置环控制是驱动器的必要要求。

七夜

  • 精华:1帖
  • 求助:0帖
  • 帖子:6帖 | 248回
  • 年度积分:0
  • 历史总积分:458
  • 注册:2005年2月03日
发表于:2008-04-08 13:36:51
32楼

呵呵,看来,我不是在讨论同一个方面的问题

叫我小白

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 1559回
  • 年度积分:3
  • 历史总积分:3122
  • 注册:2006年6月08日
发表于:2008-04-08 14:05:22
33楼

你注重于位置环控制算法以及硬件实现。

典型位置控制为Kv控制加前馈,也有采用其他方式的。

位置环很少采用PLC实现,采用运动控制卡的比较多。Trio,PMAC都是典型代表,当然,控制算法是不会告诉别人的。

七夜

  • 精华:1帖
  • 求助:0帖
  • 帖子:6帖 | 248回
  • 年度积分:0
  • 历史总积分:458
  • 注册:2005年2月03日
发表于:2008-04-08 14:18:58
34楼

运动控制卡和你的DRIVE-PLC有什么区别?没有位置环,就无力真正理解CAM。。

叫我小白

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 1559回
  • 年度积分:3
  • 历史总积分:3122
  • 注册:2006年6月08日
发表于:2008-04-08 14:29:19
35楼

我的drivePLC不做位置环调整相关的控制,只需要指定电机运动位置,驱动器工作在位置控制模式。位置环控制、插补运算等由驱动器实现,

运动控制卡根据计算出来的位置控制驱动器定位,驱动器工作在速度控制模式。

这是两种电子凸轮的实现方法。

七夜

  • 精华:1帖
  • 求助:0帖
  • 帖子:6帖 | 248回
  • 年度积分:0
  • 历史总积分:458
  • 注册:2005年2月03日
发表于:2008-04-08 15:55:09
36楼

那我的MOVI-PLC 可以.我的可以在PLC里实现,可以在控制器里实现。取决于你的喜好

叫我小白

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 1559回
  • 年度积分:3
  • 历史总积分:3122
  • 注册:2006年6月08日
发表于:2008-04-08 16:35:26
37楼

很难在PLC中实现位置环。

举例来说:目前包米勒伺服驱动器的位置环循环周期为125us,而PLC最小循环周期为1ms,如果位置环改由PLC控制,同时考虑到通讯的时延,性能会大大下降。

之所以运动控制卡能做到这点,是因为高档运动控制卡的循环周期达到了100us。而PLC很难做到这一点。

七夜

  • 精华:1帖
  • 求助:0帖
  • 帖子:6帖 | 248回
  • 年度积分:0
  • 历史总积分:458
  • 注册:2005年2月03日
发表于:2008-04-09 09:33:31
38楼

如果我要使用变频器的定位功能,操作模式必须是XXXXX-IPOS。。。。。。。。,而VFC-N-CONTROL,代表闭环速度控制。变频器控制交流变频电机

叫我小白

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 1559回
  • 年度积分:3
  • 历史总积分:3122
  • 注册:2006年6月08日
发表于:2008-04-09 12:12:05
39楼

从上面看来SEW推出了高端变频器,以及在此基础上的定位控制,进而实现电子凸轮。

我可以理解,SEW变频器可以自身带有定位功能,也可以通过上位来实现定位功能。

 

 

firstrazor

  • 精华:1帖
  • 求助:0帖
  • 帖子:15帖 | 753回
  • 年度积分:0
  • 历史总积分:909
  • 注册:2007年7月28日
发表于:2008-04-09 21:47:08
40楼

七夜反复强调用变频器做各种同步控制功能. 从运动控制器的角度看,伺服和变频没有什么功能上的区别。德国人把伺服的输出模块统称为Inverter。

所以用变频器+交流异步电机就可以实现...,完全没什么问题,和伺服的区别只是动态响应的快慢而已。

150行c语言做飞剪而不用电子凸轮,请描述一下做了些什么。这个功能和什么语言没有任何关系,关键看你在做什么,拉格朗日方程或者矩阵方程(你自己提到的)? 不管你做了什么,马达总要有个运动曲线在跑吧,可以把运动位置曲线作个几次微分给我们看看吗?


热门招聘
相关主题

官方公众号

智造工程师