Codesys电子凸轮表的规划与凸轮曲线的拟合
1、序言
Codesys电子凸轮的功能使用已经在之前介绍过,还未熟悉Codesys电子凸轮功能的可以参考文章
https://blog.csdn.net/qq_19979629/article/details/122373387
在实际应用中,主轴与从轴的关系不仅仅是简单的线性关系,更多的是一些不规则的曲线,那么在使用电子凸轮时,就需要更好的规划电子凸轮表,使电子凸轮曲线更加的切合真实的关系曲线。目前电子凸轮曲线的规划都使用多项式来拟合。本文主要介绍如何有效的调整多项式参数,使建立的电子凸轮满足功能要求。
2、电子凸轮规划
2.1、主从轴关系数学建模
要建立电子凸轮,首先需要建立主轴与从轴之间的数学关系,本文以水滴模型为例,图形如下
红色为加工件打磨外形,外形如下,圆o外一点A,从A引两条切线,A点+两条切线+圆O构成加工件的外形,形似水滴。
加工工艺:加工件绕原点O顺时针旋转,打磨砂轮根据旋转角度控制砂轮的行走位置打磨出外形;那么主从轴关系曲线也就是计算图中蓝色线段BO的长度与角1的关系函数曲线;
水滴外形的数学模型在之前的文章中也有介绍,参考文章如下:
https://blog.csdn.net/qq_19979629/article/details/122329175
为方便起见,这里我们的数值取值如下,圆O半径为R,AO距离为2R,则图中角A为60°,角2为30°,旋转角度即为α,则根据前文公式,可直接得出BO与α函数关系:
BO= R / sin(30°+α); (0<=α<=60°)
BO= R; (60°<α<300°)
BO= R / sin(390°-α);(300°<=α<360°)
假设R=180,则通过excel图标功能可以画出函数曲线
2.2、创建CAM曲线和CAM表
根据函数关系和曲线图,将函数分为3部分,左右两侧区间无法使用直线,需要用多项式,中间线段为直线,因此我们首先确定4个点位,以及段类型,如下图所示
得到的cam曲线如图所示
此时的cam曲线与实际的关系曲线还有较大偏差, 可以通过可视化仿真看到,打磨外形的切线段部分明显没有打磨到,结果如下:
电子凸轮设计
2.3、偏差分析
凸轮运转结果与实际效果可以看到,加工件在打磨切线部分是,速度没有跟上,导致切线边没有加工到。而对比凸轮曲线和数学模型曲线也可以明显看到在0-60°区间两条曲线的差异。如何快速有效的调整凸轮曲线,我们需要了解一些其他内容
a、cam曲线的含义,codesys中cam曲线包含4-5项内容,从轴位置曲线,从轴速度曲线,从轴加速度曲线,从轴加加速度曲线等,结合物理和数学可知,对位置曲线求导就得到速度曲线,对速度曲线求导就得到加速度曲线。以此类推;
b、多项式:目前电子凸轮常用的拟合多项式为5阶,f(x)=a+bx+cx^2+dx^3+ex^4+fx^5,对f(x)求导就可以得到f'(x)=b+cx+dx^2+ex^3+fx^4,再次对f'(x)求导可以f''(x)=c+dx+ex^2+fx^3,以此类推,分别对应cam曲线中的位置,速度,加速度等曲线,在实际应用中,一般用到加速度或者加加速度曲线即可,也就是常数e=f=0;
c、多项式拟合原理:将整个曲线分区间拟合,在固定区间内,让函数f(x)、f'(x)、f''(x)等函数与实际的位置、速度、加速度等曲线重合,求出常数a,b,c,d的值,如果无法满足误差要求,则将区间减小,达到误差范围内即可,实际应用中,只需要位置曲线和速度曲线拟合,基本就可以达到要求。
2.4、调整cam曲线和cam表
本例中,关键位置在于0-60°区间,其函数关系为f(x)=1/sin(30°+x),为方便求导计算起见,记为在30°-90°区间,f(x)=1/sinx,则其导数f'(x)=1/sinxtanx,这里f''(x)比较繁琐,并未计算。根据函数关系,列出点位表
根据列出的点位表,选择一些关键点位,设定对应数值,cam表中的数值对应位X,Y,再根据cam曲线,在cam表里调整V和A的值,或者直接在cam曲线里挪动点表,对应的V和A会自动变化,当位置曲线与函数曲线基本一致时,可以先试运行,如果偏差,在调整V、A如图所示
注意:cam表中段类型为line两端的点位,V和A的数值无法改动,因为两点确定后,其斜率也就是V的值就确定了,而直线的加速度为0。
2.5、验证结果
通过可视化仿真运行,其结果如下
电子凸轮修正后视频
通过视频可以看到,修正后的电子凸轮比初始创建的电子凸轮有很大改进,外形拟合基本达成,如果要求更高则可以增加点位,并调整V,A的值,以达到更高的拟合精度。
3、综述
通过以上测试,我们可以将电子凸轮cam曲线和cam表的调整方法分5步:
a、建数学模型,确定关系曲线,通过数学函数或者取大量的点位依次连接,类似excel画曲线法;
b、划分区间段,选择关键点位划分,用直线或多项式分别拟合各个区间的曲线或者函数;
c、区间内多项式拟合也可以增加关键点位以使拟合曲线更快的接近实际曲线;
d、调整点位内的速度V和加速度A的值,使cam曲线可以更加平滑,区间之间的衔接更加顺畅;
e、边运行,边调整,曲线拟合后还需要实际验证,并在运行中检查实际效果,记录偏差的点位,再进行优化调整,直到达到控制要求位置。
附:只要点位够多,即使cam表所用的点位都用line类型,也能够建立起有效的电子凸轮,这是最直接的办法。
本文相关的程序代码可以在以下地址下载:
https://download.csdn.net/download/qq_19979629/75445789
Codesys电子凸轮表的规划与凸轮曲线的拟合相关推荐
- Codesys电子凸轮功能的设计与可视化仿真
1.序言 在机械设计中,凸轮机构可以完成各种复杂的运动,包括直线运动.摆动.等速运动和不等速运动,能够应用于各个行业:电子凸轮(英文简称ECAM)是利用构造的凸轮曲线来模拟机械凸轮,以达到机械凸轮系统 ...
- codesys电子凸轮挺杆点的设置与使用
1.序言 之前的文章中,我们已经介绍了Codesys电子凸轮的功能设计与使用,参考文章: https://blog.csdn.net/qq_19979629/article/details/12237 ...
- 凸轮表(ECAM)的本质-运动控制轨迹规划(线性插值、3次样条插值、5次样条插值)
轨迹规划的重要性这里就不用多说,电子凸轮控制用到的凸轮表最终需要采用规划算法生成插值曲线,给到伺服的随动系统控制电子凸轮工作.通常运动控制器里对轨迹规划有5次样条插值和线性插值2种方法. 有关电子凸轮 ...
- 倍福--电子凸轮表绘制
凸轮表的绘制,出来可以在TwincaT中绘制凸轮曲线,也可以通过文件的方式导入凸轮表,这样能够实现凸轮表的保存,同样的曲线下次不用手动绘制.本文介绍其操作流程 操作流程 1.1. 凸轮表的导出 在绘制 ...
- CSS样式表的规划与组织
如果你的工作过程中遇到以下问题,那么请你阅读此文章. 1:样式表文件里面的代码混乱,随着项目的进展,样式表里面的先有代码不敢做任何改变,因为连自己也不知道改了以后会给现有项目造成什么影响.更不敢删除. ...
- 路径规划之曲线插值拟合算法分析
关注同名微信公众号"混沌无形",有趣好文! 原文链接:机器人曲线插值拟合算法研究现状简述(包含原文PDF百度云下载链接) 上述三类曲线插值拟合算法各有各的特点,接下来对比分析这三类 ...
- Excel自动转曲线图的时PHP,excel表格数据转为曲线-如何将EXCEL表中的数据生成曲线...
excel数据表转化为曲线图 可以选择数据后击插入--图表--散点图--带平滑线点图 工具 Office 2007 方法: 1.打开EXCEL表格,选择数据,并点击"插入"--图表 ...
- 【路径规划】局部路径规划算法——贝塞尔曲线法(含python实现 | c++实现)
文章目录 参考资料 1. 算法简介 2. 公式原理及python实现 2.1 一阶贝塞尔曲线 2.2 二阶贝塞尔曲线 2.3 三阶贝塞尔曲线 2.4 n阶贝塞尔曲线 2.5 贝塞尔曲线性质 3. c+ ...
- 轨迹规划之 贝塞尔曲线
轨迹规划之 贝塞尔曲线 前言 贝塞尔曲线 低次贝塞尔曲线的表达式 贝塞尔曲线的切线 高次贝塞尔曲线 高次贝塞尔曲线表达式 贝塞尔曲线的递归性 贝塞尔曲线的连接 贝塞尔曲线的速度 代码示例1:普通贝塞尔 ...
最新文章
- 记录第一次在egret项目中使用Puremvc
- oracle完全卸載,Oracle10g的完全卸載
- 提高oracle查询效率
- 我的世界之史蒂夫生存记
- junit链接mysql_java – 使用JUnit进行简单的JDBC连接测试
- JavaScript中一个对象数组按照另一个数组排序
- (计算机组成原理)第三章存储系统-第六节1:高速缓冲存储器Cache及其相关基本概念、程序访问的局部性原理和命中率
- ext4.0 代理 的使用
- 以企业面试讲解sql语句
- Nodejs学习笔记(六)——Mysql模块
- ad交互式布线如何改变走向_走向开放:如何改变思维和工作方式
- 如何断开GitLab远程仓库链接
- [教程]在Windows 2012 R2上安装Intel I217-V/I218-V网卡驱动
- deepsort报错 No module named ‘sklearn.utils.linear_assignment_‘ 问题解决
- Android 使用OPENCV实现图像实时对比
- MS2561低功耗RS-485接口芯片,可替换MAX487兼容MAX348
- 手把手教你入门微信公众号开发
- pi启动configtool
- K8s 亲和性和非亲和性(Affinity)
- 关于阿里云服务器的问题及答案(详细汇总)
热门文章
- @vuecomposition-apidistvue-composition-api.mjs in .node_modulesvue-demilibindex.mjs 报错
- 欢迎大家关注我的微信公众帐号小q机器人(xiaoqrobot)
- Android 之 APP上架应用宝平台
- 奔驰c260语言设置方法图解,奔驰C260L灯光使用方法 C260L灯光开关图解说明
- prompt learning——你需要掌握的基础知识以及离散型 prompt 的代码
- MapReduce实现倒排索引(Inverted Index)
- 三、cadence ic 5141 ——打开cadence软件
- Layui form 表单验证lay-verify
- R语言笔记-分类变量列联表和独立性检验
- mock.js的使用方法