查看: 4920|回复: 41
收起左侧

[教程经验] 分享:凸轮位置曲线计算

邀请回答

马上注册,享受更多特权

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
本帖最后由 孙黎明 于 2022-2-9 21:26 编辑

先祝大家新年快乐,刚回到工作岗位有点节假日综合征,今天给大家分享凸轮曲线的计算过程,顺便稳稳自己的工作心态。


一、简介
       本章的主要内容是计算凸轮点位间的衔接曲线函数的计算,例如CodeSys系统默认的曲线类型是直线、五次曲线,本章要分享的也是例如此类曲线的计算,只不过另外加入了二次、三次、正弦曲线等,其他曲线举一反三都可参与计算,主要使用场合是自己编写凸轮功能或者对虚拟轴的速度位置进行规划。
       凸轮功能大家多多少少都使用过或者接触过,但是对于凸轮功能的理解各有千秋。我所理解的凸轮是一种位置偏差的pid功能,最基础的位置随动跟随(或者FollowPosition)为直线跟随,直线也是曲线的一种特殊表现形式,所以在掌握了直线跟随的算法后,曲线算法也随之而出。重点在于如何计算曲线,曲线计算需要限定哪些参数?

二、曲线计算
       曲线计算的本质是方程组的计算。若有n个方程,有m个未知数,若m=n则方程组有且仅有唯一组解(线性代数中矩阵的秩)。曲线的计算的复杂程度取决于未知数m的个数,未知数能否有唯一的解取决于所提供的参数组成的方程数n是否与m相等。大概意思就是曲线方程如果想计算出唯一解,未知数个数要和方程数相等。
       先引入几个主要的参数,一条线段中必须配置的参数为起点(x1,y1)终点(x2,y2),表现在凸轮中为(主轴位置1,从轴位置1)、(主轴位置2,从轴位置2),另外加入的参数为起点斜率y'(x1)=y1',终点斜率y'(x2)=y2',即起点速度y1',终点速度y2'。
       下面的截图凸轮功能是我个人开发的,使用followVelocity指令实现的位置跟随,目前就是加了二次、三次、五次、正弦函数,计算过程会拿些数据出来论证比较。

1.二次曲线
       二次曲线和系统加减速斜坡的二次方是同一个道理,中心对称曲线,在上一篇文章《中型机的速度斜坡-计算加减速时间和距离》已经分享过不再赘述。

2.三次曲线
       三次曲线的一般式含有4个未知数,位置函数y=A*x^3+B*x^2+C*x+D,速度函数(位置导函数)y'=3A*x^2+2B*x+C,四个未知数需要四个方程,此处引入起点坐标(x1,y1)终点坐标(x2,y2)代入位置函数,起点斜率y(x1)=y1'终点斜率y(x2)=y2'代入速度函数,此时得到四个方程,即可逐一算出A、B、C、D的值。
image.png image.png
image.png image.png

3.五次曲线
       三次曲线的一般式含有6个未知数,位置函数y=A*x^5+B*x^4+C*x^3+D*x^2+E*x+F,速度函数y=5A*x^4+4B*x^3+3C*x^2+2D*x+E,加速度函数y=20A*x^3+12B*x^2+6C*x+2D,6个未知数需要提供6个方程,即将 起点坐标、终点坐标、起点斜率、终点斜率、起点加速度、终点加速度共6个参数代入后,同样可以计算出A、B、C、D、E、F的值。
image.png image.png
image.png image.png

4.正弦曲线
       正弦曲线sin的一般式y=Asin(Bx)+C,三个未知数,已知过起点终点坐标的前提下,加上曲线所占半个正弦周期,即T=Pi/(x2-x1),此时满足三个方程,以此计算A、B、C的值。
image.png image.png
image.png image.png

三、总结
       凸轮常用功能就是位置跟随,例如高速场合、高惯量场合、弱刚性场合,在不同的场合中需要不同的曲线去解决问题,解决问题的过程中也能锻炼数学和物理能力,欢迎大家批评指正。
       另外凸轮曲线远不止上面提出的这几种,常用的还包括梯形、S形、双谐波、摆线等等,里面有些曲线的用参数方程的形式实现的,在此向大家求助如何将xOy对应到参数方程中去,之前一直没想出解决办法,例如摆线方程如何与xOy关联求解?希望各位指点一下。

点评

感谢楼主慷慨分享  发表于 2022-5-9 15:12




上一篇:从外部导入凸轮曲线问题
下一篇:手册

已有 2 人打赏作者

ertyuio2013 赏了楼主5水滴 Inovance 赏了楼主100水滴
回复 邀请回答送花

使用道具 举报

向~ 2022-2-27 22:18:34 | 显示全部楼层
感谢楼主无私分享,数学这个东西太强大了
回复 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部