本发明属于运动控制领域,具体涉及一种基于移动平均算法的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具体为,利用余弦函数的泰勒展开式
所述步骤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、将
步骤s2.4、利用
所述步骤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个插补周期,
本发明的有益效果为:本发明采用基于三角函数的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)的初步表达式。本实施例中,利用余弦函数的泰勒展开式
所述步骤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),令
步骤s2.2、取a,b,c,d为遗传基因,且
步骤s2.3、将
本实施例中,遗传算法的参数选择的原则如下:
群体大小:当取值较小时,可提高遗传算法的运算速度,但是降低了物种群体的多样性,有可能会引起遗产算法的早熟现象;而当取值较大时,又会提高算法的复杂度,影响了运算效率,一般建议取值范围是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的值带入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取5,n取10,则在第1-4个插补周期,
如图4所示,为采用本发明的方法后得到的优化后的位移在matlab下的仿真曲线图;
如图5所示,为采用本发明的方法后得到的优化后的速度在matlab下的仿真曲线图;从仿真曲线可以看出,此算法的运动曲线非常平滑且连续,能够很好的满足工业上的大多数需求。
我们将此算法应用在实际的伺服电机加减速中,得到的位移曲线如图6所示,速度曲线如图7所示,由图可以看出电机启动停止和运行过程中非常平稳,无任何抖动和震荡。
本发明采用基于三角函数的s曲线加减速控制方法,在此基础上进行滑动平均滤波,运算时间简短,性能优越,能够很好的满足高档数控系统的加工要求。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。