一种基于移动平均算法的S曲线加减速控制方法转让专利

申请号 : CN201710737399.5

文献号 : CN107368041B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈刘洋

申请人 : 武汉迈信电气技术有限公司

摘要 :

本发明涉及一种基于移动平均算法的S曲线加减速控制方法,包括以下步骤:步骤S1、利用三角函数的泰勒展开式,求得优化前速度v(t)的初步表达式;步骤S2、利用最优解求解算法对优化前速度v(t)的初步表达式中的系数进行计算,得到优化前速度v(t)的最终表达式;步骤S3、采用移动平均算法对v(t)进行优化,得到优化后速度V(t)的表达式。本发明采用基于三角函数的S曲线加减速控制方法,在此基础上进行滑动平均滤波,运算时间简短,性能优越,能够很好的满足高档数控系统的加工要求。

权利要求 :

1.一种基于移动平均算法的S曲线加减速控制方法,其特征在于,包括以下步骤:步骤S1、利用三角函数的泰勒展开式,求得优化前速度v(t)的初步表达式;

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

步骤S3、采用移动平均算法对v(t)进行优化,得到优化后速度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个插补周期, (j=1,2,3,…,n-1);在第n至第N个插补周期, (j=n,n+1,…N);在第N+1至N+(n-1)个插补周期,(j=N+1,…,N+n-1)。

2.根据权利要求1所述的基于移动平均算法的S曲线加减速控制方法,其特征在于,所述步骤S1具体为,利用正弦函数或余弦函数的泰勒展开式进行求导,得到v(t)的初步表达式。

3.根据权利要求2所述的基于移动平均算法的S曲线加减速控制方法,其特征在于,所述步骤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。

4.根据权利要求1所述的基于移动平均算法的S曲线加减速控制方法,其特征在于,所述步骤S2中,最优解求解算法为遗传算法。

5.根据权利要求4所述的基于移动平均算法的S曲线加减速控制方法,其特征在于,所述步骤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为遗传基因,且

(1) (2) (3)

步骤S2.3、将 带入f(t)、f (t)、f (t)和f (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)的最终表达式。

说明书 :

一种基于移动平均算法的S曲线加减速控制方法

技术领域

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

背景技术

[0002] 加减速技术是数控系统的关键技术之一,算法的优劣直接决定着加工效率和加工精度。一种优秀的加减速算法既可以保证机床在启动或停止的过程中不发生冲击、失步、超程和震荡,也满足算法简单,加减速时间短,实时性强的特点。
[0003] 一般常用的加减速算法包括直线加减速,指数型加减速和S曲线加减速。前两种虽然算法简单,但是不能够进行柔性加工,在加工过程中容易对工件进行冲击,不能够满足高速高精的要求。现在一般的中高档机床都会实行S 曲线的加减速控制方法,但是普通的7段S曲线加减速也存在计算复杂,而且加加速度Jerk不连续的缺点。

发明内容

[0004] 本发明的主要目的旨在解决上述问题,提出了一种基于移动平均算法的 S曲线加减速控制方法。
[0005] 本发明解决上述技术问题的技术方案如下:
[0006] 一种基于移动平均算法的S曲线加减速控制方法,包括以下步骤:
[0007] 步骤S1、利用三角函数的泰勒展开式,求得优化前速度v(t)的初步表达式;
[0008] 步骤S2、利用最优解求解算法对优化前速度v(t)的初步表达式中的系数进行计算,得到优化前速度v(t)的最终表达式;
[0009] 步骤S3、采用移动平均算法对v(t)进行优化,得到优化后速度V(t)的表达式。
[0010] 所述步骤S1具体为,利用正弦函数或余弦函数的泰勒展开式进行求导,得到v(t)的初步表达式。
[0011] 所述步骤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。
[0012] 所述步骤S2中,所述步骤S2中,最优解求解算法为遗传算法。
[0013] 所述步骤S2中,采用遗传算法对v(t)的初步表达式中的系数进行计算,得到v(t)的最终表达式的具体步骤包括以下步骤:
[0014] 步骤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));
[0015] 步骤S2.2、取A,B,C,D为遗传基因,且
[0016] 步骤S2.3、将 带入f(t)、f(1)(t)、f(2)(t)和f(3)(t),设置误差函数的约束条件和遗传算法的群体大小参数、交叉概率参数、变异概率参数和终止代数参数,利用遗传算法计算得到A、B、C和D的值;
[0017] 步骤S2.4、利用 计算得出b1、b2、b3、和 b4的值,将b1、b2、b3和b4的值带入速度表达式f(1)(t)=v(t)=-2b1t+4b2t3-6b3t5+8b4t7,得到v(t)的最终表达式。
[0018] 所述步骤S3中,采用移动平均算法对v(t)进行优化,得到优化后速度V(t) 的表达式的具体方法为:
[0019] 设在第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)的表达式如下:
[0020] 在第1至n-1个插补周期, ;在第n至第N个插补周期, 在第N+1至 N+(n-1)个插补周
期,
[0021] 本发明的有益效果为:本发明采用基于三角函数的S曲线加减速控制方法,在此基础上进行滑动平均滤波,运算时间简短,性能优越,能够很好的满足高档数控系统的加工要求。

附图说明

[0022] 图1为本发明的方法流程示意图;
[0023] 图2为本发明的f(t)的原函数、一阶导数、二阶导数和三阶导数的仿真示意图;
[0024] 图3为本发明的移动平均算法示意图;
[0025] 图4为采用本发明的方法后得到的优化后的位移在Matlab下的仿真曲线图;
[0026] 图5为采用本发明的方法后得到的优化后的速度在Matlab下的仿真曲线图;
[0027] 图6为本发明的方法应用在实际的伺服电机加减速中,得到的位移曲线图;
[0028] 图7为本发明的方法应用在实际的伺服电机加减速中,得到的速度曲线图。

具体实施方式

[0029] 以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0030] 如图1所示,本发明解决上述技术问题的技术方案如下:
[0031] 一种基于移动平均算法的S曲线加减速控制方法,包括以下步骤:
[0032] 步骤S1、利用三角函数的泰勒展开式,求得优化前速度v(t)的初步表达式;
[0033] 步骤S2、利用最优解求解算法对优化前速度v(t)的初步表达式中的系数进行计算,得到优化前速度v(t)的最终表达式;
[0034] 步骤S3、采用移动平均算法对v(t)进行优化,得到优化后速度V(t)的表达式。
[0035] 所述步骤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+
6 (3) 3 5
56b4t和加加 速度表达式 f (t)=24b2t-120b3t+336b4t。
[0036] 所述步骤S2中,求f(t)及各阶导数问题其实就是求多目标函数的极值优化问题,可以使用遗传算法求解。
[0037] 采用遗传算法对v(t)的初步表达式中的系数进行计算,得到v(t)的最终表达式的具体步骤包括以下步骤:
[0038] 步骤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));
[0039] 步骤S2.2、取A,B,C,D为遗传基因,且
[0040] 步骤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的值;
[0041] 本实施例中,遗传算法的参数选择的原则如下:
[0042] 群体大小:当取值较小时,可提高遗传算法的运算速度,但是降低了物种群体的多样性,有可能会引起遗产算法的早熟现象;而当取值较大时,又会提高算法的复杂度,影响了运算效率,一般建议取值范围是20~100。
[0043] 交叉概率:该值一般取值较大,但是如果太大的话会破坏物种的优良模式,对进化运算不利。一般建议的取值范围是0.4~0.99。
[0044] 变异概率:如果数值太大,则容易破坏物种的优良模式,使得算法结果不够准确;若取值过小,则会产生新的个体,同时抑制早熟的能力也会变差。一般建议的取值范围是
0.0001~0.1。
[0045] 终止代数:该数值是表示遗传算法运行结束条件的一个参数,一般建议的取值范围是100~100。
[0046] 本实施例中,采用多点交叉策略,取交叉概率为0.96,变异概率为0.02,群体大小为100,终止代数为1000,计算结果为:
[0047] A=0.98894940;B=0.90982058;C=0.96296328;D=0.76983124;
[0048] 步骤S2.4、利用 计算得出b1、b2、b3、和 b4的值,将b1、b2、b3和b4的值带入速度表达式 f(1)(t)=v(t)=-2b1t+4b2t3-6b3t5+8b4t7,得到v(t)的最终表达式。
[0049] 同理,将b1、b2、b3和b4的值带入f(t)的原函数、二阶导数和三阶导数表达式可得到相应的最终表达式,如图2所示,为f(t)的原函数、一阶导数、二阶导数和三阶导数的仿真示意图,可看出函数曲线完全逼近三角函数,而且其各阶导数的图像也光滑连续。
[0050] 步骤S3、采用移动平均算法对v(t)进行优化,得到优化后速度V(t)的表达式。
[0051] 所述步骤S3中,采用移动平均算法对v(t)进行优化,得到优化后速度V(t) 的表达式的具体方法为:
[0052] 设在第i个插补周期,t=ti,在第j个插补周期,t=tj;v(ti)表示第i 个插补周期对应的优化前速度;设移动平均的步数为n,设N为由初始速度v0开始增加经过加速、匀速和减速后达到终止速度ve的过程中经过的插补周期总个数,n和N均为自然数;经过移动平均算法优化后,优化后速度V(ti)滞后了n-1个插补周期,在第N+(n-1)个插补周期后结束,优化后速度V(t)的表达式如下:
[0053] 在第1至n-1个插补周期, 在第n至第N个插补周期, 在第N+1至 N+(n-1)个插补周
期,
[0054] 本实施例中,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)。
[0055] 如图4所示,为采用本发明的方法后得到的优化后的位移在Matlab下的仿真曲线图;
[0056] 如图5所示,为采用本发明的方法后得到的优化后的速度在Matlab下的仿真曲线图;从仿真曲线可以看出,此算法的运动曲线非常平滑且连续,能够很好的满足工业上的大多数需求。
[0057] 我们将此算法应用在实际的伺服电机加减速中,得到的位移曲线如图6 所示,速度曲线如图7所示,由图可以看出电机启动停止和运行过程中非常平稳,无任何抖动和震荡。
[0058] 本发明采用基于三角函数的S曲线加减速控制方法,在此基础上进行滑动平均滤波,运算时间简短,性能优越,能够很好的满足高档数控系统的加工要求。
[0059] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。