本发明属于运动控制领域,具体涉及一种基于移动平均算法的S曲线加减速控制方法。

背景技术:

加减速技术是数控系统的关键技术之一,算法的优劣直接决定着加工效率和加工精度。一种优秀的加减速算法既可以保证机床在启动或停止的过程中不发生冲击、失步、超程和震荡,也满足算法简单,加减速时间短,实时性强的特点。

一般常用的加减速算法包括直线加减速,指数型加减速和S曲线加减速。前两种虽然算法简单,但是不能够进行柔性加工,在加工过程中容易对工件进行冲击,不能够满足高速高精的要求。现在一般的中高档机床都会实行S曲线的加减速控制方法,但是普通的7段S曲线加减速也存在计算复杂,而且加加速度Jerk不连续的缺点。

技术实现要素:

本发明的主要目的旨在解决上述问题,提出了一种基于移动平均算法的S曲线加减速控制方法。

本发明解决上述技术问题的技术方案如下:

一种基于移动平均算法的S曲线加减速控制方法,包括以下步骤:

步骤S1、利用三角函数的泰勒展开式,求得优化前速度v(t)的初步表达式;

步骤S2、利用最优解求解算法对优化前速度v(t)的初步表达式中的系数进行计算,得到优化前速度v(t)的最终表达式;

步骤S3、采用移动平均算法对v(t)进行优化,得到优化后速度V(t)的表达式。

所述步骤S1具体为,利用正弦函数或余弦函数的泰勒展开式进行求导,得到v(t)的初步表达式。

所述步骤S1具体为,利用余弦函数的泰勒展开式得到位移表达式f(t)=S(t)=1-b1t2+b2t4-b3t6+b4t8,对f(t)进行多次求导,分别得到速度表达式f(1)(t)=v(t)=-2b1t+4b2t3-6b3t5+8b4t7,加速度表达式f(2)(t)=a(t)=-2b1+12b2t2-30b3t4+56b4t6和加速度表达式f(3)(t)=24b2t-120b3t3+336b4t5。

所述步骤S2中,所述步骤S2中,最优解求解算法为遗传算法。

所述步骤S2中,采用遗传算法对v(t)的初步表达式中的系数进行计算,得到v(t)的最终表达式的具体步骤包括以下步骤:

步骤S2.1、计算误差函数及各级导数,其中误差函数g(t)=f(t)-cos(t),对g(t)进行多次求导,得到g(1)(t)=f(1)(t)+sin(t),g(2)(t)=f(2)(t)+cos(t),令G(t)=max(|g(t)|)+max(|g(1)(t)|)+max(|g(2)(t)|)+max(|g(3)(t)|),目标函数为MIN(G(t));

步骤S2.2、取A,B,C,D为遗传基因,且

步骤S2.3、将带入f(t)、f(1)(t)、f(2)(t)和f(3)(t),设置误差函数的约束条件和遗传算法的群体大小参数、交叉概率参数、变异概率参数和终止代数参数,利用遗传算法计算得到A、B、C和D的值;

步骤S2.4、利用计算得出b1、b2、b3、和b4的值,将b1、b2、b3和b4的值带入速度表达式f(1)(t)=v(t)=-2b1t+4b2t3-6b3t5+8b4t7,得到v(t)的最终表达式。

所述步骤S3中,采用移动平均算法对v(t)进行优化,得到优化后速度V(t)的表达式的具体方法为:

设在第i个插补周期,t=ti,在第j个插补周期,t=tj;v(ti)表示第i个插补周期对应的优化前速度,V(tj)表示第j个插补周期对应的优化后速度;设移动平均的步数为n,设N为由初始速度v0开始增加经过加速、匀速和减速后达到终止速度ve的过程中经过的插补周期总个数,n和N均为自然数;经过移动平均算法优化后,优化后速度V(tj)滞后了n-1个插补周期,在第N+(n-1)个插补周期后结束,优化后速度V(tj)的表达式如下:

在第1至n-1个插补周期,在第n至第N个插补周期,在第N+1至N+(n-1)个插补周期,

本发明的有益效果为:本发明采用基于三角函数的S曲线加减速控制方法,在此基础上进行滑动平均滤波,运算时间简短,性能优越,能够很好的满足高档数控系统的加工要求。

附图说明

图1为本发明的方法流程示意图;

图2为本发明的f(t)的原函数、一阶导数、二阶导数和三阶导数的仿真示意图;

图3为本发明的移动平均算法示意图;

图4为采用本发明的方法后得到的优化后的位移在Matlab下的仿真曲线图;

图5为采用本发明的方法后得到的优化后的速度在Matlab下的仿真曲线图;

图6为本发明的方法应用在实际的伺服电机加减速中,得到的位移曲线图;

图7为本发明的方法应用在实际的伺服电机加减速中,得到的速度曲线图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

如图1所示,本发明解决上述技术问题的技术方案如下:

一种基于移动平均算法的S曲线加减速控制方法,包括以下步骤:

步骤S1、利用三角函数的泰勒展开式,求得优化前速度v(t)的初步表达式;

步骤S2、利用最优解求解算法对优化前速度v(t)的初步表达式中的系数进行计算,得到优化前速度v(t)的最终表达式;

步骤S3、采用移动平均算法对v(t)进行优化,得到优化后速度V(t)的表达式。

所述步骤S1具体为,利用正弦函数或余弦函数的泰勒展开式进行求导,得到v(t)的初步表达式。本实施例中,利用余弦函数的泰勒展开式得到位移表达式f(t)=S(t)=1-b1t2+b2t4-b3t6+b4t8,对f(t)进行多次求导,分别得到速度表达式f(1)(t)=v(t)=-2b1t+4b2t3-6b3t5+8b4t7,加速度表达式f(2)(t)=a(t)=-2b1+12b2t2-30b3t4+56b4t6和加速度表达式f(3)(t)=24b2t-120b3t3+336b4t5。

所述步骤S2中,求f(t)及各阶导数问题其实就是求多目标函数的极值优化问题,可以使用遗传算法求解。

采用遗传算法对v(t)的初步表达式中的系数进行计算,得到v(t)的最终表达式的具体步骤包括以下步骤:

步骤S2.1、计算误差函数及各级导数,其中误差函数g(t)=f(t)-cos(t),对g(t)进行多次求导,得到g(1)(t)=f(1)(t)+sin(t),g(2)(t)=f(2)(t)+cos(t),令目标函数为MIN(G(t));

步骤S2.2、取A,B,C,D为遗传基因,且

步骤S2.3、将带入f(t)、f(1)(t)、f(2)(t)和f(3)(t),对于个函数需要满足起点和终点的各个约束条件,本实施例中约束条件为设置|g(3)(0)|<10-3,|g(3)(PI)|<10-3,目标函数为MIN(G(x)),表示G(x)的最小值,而G(x)表示函数及其导数误差的绝对值最大值之和。再设置遗传算法的群体大小参数、交叉概率参数、变异概率参数和终止代数参数,利用遗传算法计算得到A、B、C和D的值;

本实施例中,遗传算法的参数选择的原则如下:

群体大小:当取值较小时,可提高遗传算法的运算速度,但是降低了物种群体的多样性,有可能会引起遗产算法的早熟现象;而当取值较大时,又会提高算法的复杂度,影响了运算效率,一般建议取值范围是20~100。

交叉概率:该值一般取值较大,但是如果太大的话会破坏物种的优良模式,对进化运算不利。一般建议的取值范围是0.4~0.99。

变异概率:如果数值太大,则容易破坏物种的优良模式,使得算法结果不够准确;若取值过小,则会产生新的个体,同时抑制早熟的能力也会变差。一般建议的取值范围是0.0001~0.1。

终止代数:该数值是表示遗传算法运行结束条件的一个参数,一般建议的取值范围是100~100。

本实施例中,采用多点交叉策略,取交叉概率为0.96,变异概率为0.02,群体大小为100,终止代数为1000,计算结果为:

A=0.98894940;B=0.90982058;C=0.96296328;D=0.76983124;

步骤S2.4、利用计算得出b1、b2、b3、和b4的值,将b1、b2、b3和b4的值带入速度表达式f(1)(t)=v(t)=-2b1t+4b2t3-6b3t5+8b4t7,得到v(t)的最终表达式。

同理,将b1、b2、b3和b4的值带入f(t)的原函数、二阶导数和三阶导数表达式可得到相应的最终表达式,如图2所示,为f(t)的原函数、一阶导数、二阶导数和三阶导数的仿真示意图,可看出函数曲线完全逼近三角函数,而且其各阶导数的图像也光滑连续。

步骤S3、采用移动平均算法对v(t)进行优化,得到优化后速度V(t)的表达式。

所述步骤S3中,采用移动平均算法对v(t)进行优化,得到优化后速度V(t)的表达式的具体方法为:

设在第i个插补周期,t=ti,在第j个插补周期,t=tj;v(ti)表示第i个插补周期对应的优化前速度;设移动平均的步数为n,设N为由初始速度v0开始增加经过加速、匀速和减速后达到终止速度ve的过程中经过的插补周期总个数,n和N均为自然数;经过移动平均算法优化后,优化后速度V(ti)滞后了n-1个插补周期,在第N+(n-1)个插补周期后结束,优化后速度V(t)的表达式如下:

在第1至n-1个插补周期,在第n至第N个插补周期,在第N+1至N+(n-1)个插补周期,

本实施例中,n取5,N取10,则在第1-4个插补周期,如图3所示,1号箭头指向的点即为在第4个插补周期,v0和v(t1)至v(t4)累加后计算平均值之后得到的V(t4);在第4-10个插补周期,例如,以此类推,得到V(t7)-V(t10),如图3所示,2号箭头指向的点即为在第5个插补周期,v(t1)至v(t5)累加后计算平均值之后得到的V(t5);在滞后的4个插补周期里,即在第11-14个插补周期里,例如,以此类推,得到V(t13)和V(t14)。

如图4所示,为采用本发明的方法后得到的优化后的位移在Matlab下的仿真曲线图;

如图5所示,为采用本发明的方法后得到的优化后的速度在Matlab下的仿真曲线图;从仿真曲线可以看出,此算法的运动曲线非常平滑且连续,能够很好的满足工业上的大多数需求。

我们将此算法应用在实际的伺服电机加减速中,得到的位移曲线如图6所示,速度曲线如图7所示,由图可以看出电机启动停止和运行过程中非常平稳,无任何抖动和震荡。

本发明采用基于三角函数的S曲线加减速控制方法,在此基础上进行滑动平均滤波,运算时间简短,性能优越,能够很好的满足高档数控系统的加工要求。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

matlab生成s加减速曲线,一种基于移动平均算法的S曲线加减速控制方法与流程相关推荐

  1. mallat算法分析及c语言实现,一种基于Mallat算法提高小波包分解速度的方法与流程...

    本发明涉及信号处理技术领域,具体涉及一种在mallat算法的基础上利用半小波包和改进卷积过程算法提高小波包分解速度的方法. 背景技术: 随着信息技术的发展,探索人体生理问题的研究深入,研究脑电信号,并 ...

  2. matlab程序实例光频梳,一种基于光频梳和频谱整形的任意波形发生装置及方法与流程...

    本申请属于微波光子信号生成领域,具体涉及一种基于光频梳和频谱整形的任意波形发生装置及方法. 背景技术: 目前半导体激光器.光纤光学和微波天线.微波单片集成电路等光学与微波相结合的技术正在高速发展,产生 ...

  3. aes子密钥生成c语言_一种基于流密码算法的子密钥生成方法与流程

    本发明涉及一种用于分组加解密算法的子密钥的生成方法. 背景技术: 随着信息技术的发展,信息安全性的问题却愈来愈显得突出,保证信息安全的一个重要技术就是密码学.密码学在信息安全技术中扮演着基础的角色,是 ...

  4. python自带的对称算法_一种基于对称算法和专用加载模块的Python程序模块加密方法...

    一种基于对称算法和专用加载模块的Python程序模块加密方法 [专利说明]一种基于对称算法和专用加载模块的Python程序模块加密方法 技术领域 [0001]本发明涉及一种网络安全技术,具体涉及一种P ...

  5. matlab血糖预测,一种基于VMD-PACF-BP模型的动态血糖在线预测方法与流程

    本发明属于血糖预测技术领域,尤其涉及一种基于VMD-PACF-BP模型的动态血糖在线预测方法. 背景技术: 目前,中国患有糖尿病人数已成为在世界上拥有糖尿病患者最多的国家.为了降低糖尿病患者长期处于高 ...

  6. 时间窗口算法用matlab,一种基于动态规划算法的时间窗口相关的参与者选择方法与流程...

    本发明涉及一种移动群智感知中时间窗口相关的参与者选择方法,特别地,涉及一种基于动态规划算法的时间窗口相关的参与者选择方法. 背景技术: 在移动群智感知网络中,智能设备中嵌入了麦克风.相机.温度传感器. ...

  7. 一种基于DFA算法的敏感词检测JAVA程序片段

    本文章提供一种基于DFA算法的敏感词检测JAVA程序片段,如下: 1.构造多叉树数据结构 import org.jetbrains.annotations.NotNull;/*** 多叉树* @aut ...

  8. 一种基于SURF算法的图像拼接方法

    基于MATLAB的SURF算法的图像拼接 一.课题背景 现有的图像拼接方法一般采用SIFT算法和Harris角点算法,采用SIFT算法和Harris角点算法存在特征点提取速度慢,而且鲁棒性低.尤其是在 ...

  9. c语言编程图像拼接,一种基于Lucas-Kanade算法的图像配准和拼接方法

    一种基于Lucas-Kanade算法的图像配准和拼接方法 [技术领域] [0001 ]本发明涉及图像处理技术领域,具体涉及一种基于Lucas-Kanade算法的图像配准 和拼接方法. [背景技术] [ ...

最新文章

  1. Lesson 016 —— python 元组
  2. java 访问 网络swf_JAVA访问网络资源
  3. 深入理解分布式技术 - Redis 分布式锁解决方案
  4. 印象大使_基本服务-使用大使网关
  5. hadoop3 禁用ec_Hadoop + Amazon EC2 –更新的教程
  6. java 前端及后台轮询方法总结
  7. 「转」101个著名的心理效应
  8. hosts文件修改,文件类型修改
  9. 硬改intel网卡MAC地址
  10. 苹果系统服务器状态,苹果开发者中心app显示黄色状态详情介绍
  11. 如果你35岁恐慌了,那你真的该反思自己了···
  12. Mongoose Populate
  13. 计算n个整数中有多少个正整数、多少个负整数,并计算这些整数的总和和平均值
  14. 一个软件开发者的BPM之路
  15. 先来先服务算法、运行时间最短者优先算法和最高响应比优先调度算法_CPU的调度器scheduler...
  16. 汉泰示波器软件|汉泰示波器上位机软件NS-Scope,任意添加测量数据
  17. 深入研究核辐射!核辐射的原理(转)
  18. ffmpeg有gpl和lgpl版本,jetson硬件加速
  19. txt如何转成tsv文件
  20. 3.03 bison移进/规约冲突和操作符优先级

热门文章

  1. 《慢慢来,一切都来得及》语录
  2. bullet3 代码结构梳理
  3. 51单片机和LCD1602实现简单的密码锁
  4. 单片机---HLK-W801蓝牙遥控点灯
  5. 誓成运动科技第一股:为何Keep忘初心
  6. js html 图片贴纸,Sticker.js 在网页实现便签贴纸效果 - 文章教程
  7. 【程序员笑话】让你泪流满面的瞬间
  8. ARM与Intel芯片性能不严谨比较
  9. Mydrivers: DVD Jon出手,绕过ATT激活iPhone
  10. Java根据IP地址/掩码位(CIDR)和起始IP-终止IP计算网段(IPV4和IPV6)