简介
汇川codesys底层使用的CAM凸轮表功能默认是五次曲线和直线,五次曲线和直线可以满足绝大多数场合的使用,但是也存在一些场合对加速度要求不高,需要降低最高速度提高运行效率,那么这时候就需要用到比五次更低次的曲线,例如三次、二次或梯形曲线。
三次曲线目前在底层不支持,汇川有一些其他的功能块来实现三次曲线。本文不讲汇川的功能块,只从曲线的原理来分析五次曲线和三次曲线的关系,以及如何修改凸轮表参数,实现五次曲线降次变为三次来使用。最后在附件提供一个包含FC的程序来展示计算过程和结果。
曲线计算
凸轮曲线指的是位置曲线,曲线计算是一元n次方程组的求解,核心思想就在于如何将所有系数用凸轮设定的参数表述出来,而且经过求解过后,对于曲线的理解将会更会透彻,五次变三次曲线也不再是幻想。目前各大品牌使用的位置曲线最常用的为:一次曲线(直线)、三次曲线、五次曲线。用户在使用过程中一定会有一个疑虑:为什么没有四次曲线?
想搞明白这个问题,就必须要深入研究曲线参数和系数求解之间的关系。先给出结论,再举例论证。
n次曲线有n+1个系数,n+1个系数求唯一解需要列出n+1个方程,凸轮曲线参数是对称参数(曲线的起点参数和终点参数),对称参数决定了方程个数为偶数(n+1为偶数),所以n是奇数。所以高次曲线必定是奇数次曲线。
例如五次曲线有六个系数,五次曲线可以设定起点和终点的位置、速度、加速度参数共六个,所以五次曲线可以求唯一解。四次曲线有五个系数,需要列出五个方程,然而凸轮对称性决定了方程个数为四或者六,所以四次曲线要么是有无穷多解,要么限定单边加速度参数,再加上位置和速度参数列出五个方程求解。这也就解释了有些厂家虽然存在二次曲线,但是二次曲线不可以设定速度,原因就在于底层限定了单边的速度,以保证唯一解。
定义如下参数:
Xs:主轴起点位置;Xe主轴终点位置;
Ys从轴起点位置; Ye从轴终点位置;
Vs起点速度; Ve终点速度;
As起点加速度; Ae终点加速度;
为方便公式计算,下面公式中默认Xs=0,Xe=(Xe-Xs)。
五次曲线计算
一元五次方程一般式如下:
将(Xs,Ys)(Xs,Vs)(Xs,As),(Xe,Ye)(Xe,Ve)(Xe,Ae)代入得出六个方程组,解算结果如下:
三次曲线计算
一元三次方程一般式如下:
将(Xs,Ys)(Xs,Vs),(Xe,Ye)(Xe,Ve)代入得出四个方程组,解算结果如下:
五次变三次
理论上,五次曲线比三次曲线多了五次项和四次项,让五次项和四次项的系数数值为0,那么五次曲线就可以降为三次曲线使用了,实际是否是这样呢?
令三次曲线的C[3]/C[2]/C[1]和五次曲线的C[3]/C[2]/C[1]分别相等,可计算出As与Ae的表达式,再将As与Ae代入五次曲线的C[4]和C[5]中,可计算出C[4]=C[5]=0,所以只要保证在五次曲线中设置的As和Ae的上述关系,则就可以将五次曲线降低为三次使用,公式如下:
下面给出几组五次曲线降低为三次曲线的参数的对比,仅修改As和Ae的参数,其余参数不变,三次函数最直观的现象为加速度是直线。
例1.起点参数(0,0,0,0),终点参数(10,10,0,0)。变换三次计算的As=0.6,Ae=-0.6。
例2.起点参数(0,0,0,0),终点参数(10,15,1,0)。变换三次计算的As=0.7,Ae=-0.5。
总结
五次曲线修降低为三次使用,这种仅修改加速度更改曲线的方式比较方便,但需要注意是衔接点处五次曲线默认加速度连续,可能会引起速度曲线的变形。
因此,变换后的三次曲线,如果需要与直线或者五次曲线连接,需要注意在衔接点处增加点位来避免此问题。附件中放入了一个点位计算的FC程序源码,欢迎讨论交流。