运动控制中,加减速算法的软件设计(精简)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
加减速算法的分析及软件设计
1.引言
在运动控制中,加减速是一个重点。
在加减速的过程中,希望达到在给定最高速度的情况下,加减速的时间越短越好,被控电机运转越平稳越好,同时在基于微处理器的数字控制中,要求控制算法的可实现性也要好。
现代运动控制中,常用的加减速算法有三种,即梯形曲线,指数曲线,S曲线。
2.梯形速度曲线算法分析
如图1所示是梯形速度曲线,包括三个阶段:恒加速阶段、匀速阶段、恒减速阶段。
图1梯形速度和加速度曲线
在加减速阶段的v-t的关系式可描述为:v = at。
其中a>0是加速,a<0是减速
以下以加速阶段为例,来分析算法的软件实现。
关系式:v = at (1)
在给定最高速度Vm的情况下,可以算出具体的到达时间Tm = Vm/a,在从坐标点(0,0)开始画轨迹,到达终点(Tm,Vm),所形成的轨迹就是一直线段。
最一般的实现方法是时间t从0开始递增,对应每个t代入式(1)中算出v,这个方法是可行的,但是运算量太大,还要涉及到浮点乘除,对于微处理器来说应尽量减少运算量,对于运动控制来说运算时间越短越好,响应越快越好,加速过程时间拉长,是不符合系统的要求的。
所以在软件的实现过程中,尽量避免浮点运算,提高运算效率。
由此可以复制运动控制中直线运动插补算法到这个加速阶段,即从点(0,0)运动到(Tm,Vm),利用插补算法,以数字方式实现运动过程。
这里采用最小偏差法,来实现直线运动,下面是实现过程,以a>1为为例:
a >1
则Vm>Tm
初始偏差判断函数f = Vm – 2Tm
循环判断f的值:
a)如果0 <= f, v进给一步,f = f -2Tm
b)如果0 > f, v和t都进给一步,f = f + 2Vm-2Tm
上面一直循环判断,直到v =Vm停止,软件实现流程如图2
图2 梯形曲线软件流程图
在实际应用中,有时加速段也写为:v = at + v0。
其中v0称为起跳速度或是频率,有利于改善电机动力源的启动性能,在一定程度上也加快了加速过程,当然这个v0要满足电机性能的要求。
3. 指数速度曲线
图3是指数速度和加速度曲线轨迹,它的加速和减速曲线是对称的。
下面以加速阶段为例来说明指数曲线加减速过程。
曲线加速阶段的速度v -t 关系式为: /()(1)t c v t v e τ-=- (2)
其中c v 代表终点速度或是频率,t 代表时间,τ代表调节系统时间常数。
图3 指数速度和加速度曲线
从式(2)可以知道:
当t << τ时,v (t )≈ 0
当t >>τ时,v (t )≈ c v
从上面的分析可以知道,时间常数τ反映了系统从速度0变化到给定的最高速度的变化效率,加速过程的时间受该常数的约束,所以采用指数曲线进行加减速要根据系统选好时间常数τ。
根据式(2),直接用软件实现加速过程是可以实现的,但同时也要浪费很多时间在浮点运算过程中,不可取。
下面进行离散处理以利于软件实现的优化,假定系统稳定且离散时间间隔T<<τ。
根据假定可得:
/21/1/2!(/)T e T T τττ-=-+
-
1/(/)1T Rn T T ττ=-+≈-
所以可得到
//(1)//()(1)()(1)
(1)
((1))//((1))
t nT c c n T T c v t v e v nT v e v e e v n T T v T v n T ττττττ-----=-==-=-⋅=-+⋅-⋅-
由此得到在第n 步的速度或频率的进给v ∆: ()((1))//((1))c v v nT v n nT T v T v n T ττ∆=--=⋅-⋅- (3)
式(3)是我们编写程序实现算法的关键,它给出了每个采样间隔T 时间内在速度或频率上需要的进给量,使算法实现了数字化。
程序实现流程如图4所示:
4. S 曲线算法分析
S 曲线不是一种固定算法的加减速形式,只是由于其加减速段的速度程S 形而得名,常见的S 曲线有抛物线型和三角函数型。
本文以抛物线为例对S 曲线进行分析。
S 曲线的核心
图4 指数速度曲线软件流程图
思想是让加速度不产生突变,而是由零逐渐增大到目标加速度,并在撤销加速度时也采用逐渐减小加速度的方式。
图5给出了抛物线S曲线的速度、加速度曲线图形。
图5 S型速度和加速度曲线
它的加减速阶段的曲线是对称的,下面以加速段为例来说明S曲线的加减速算法的实现。
S曲线的加速段主要分为三个子阶段:加加速阶段、匀加速阶段、减加速阶段。
下面做如下定义
v为最大速度
max
A为最大加速度
max
1()a t 为加加速阶段的加速度
2()a t 为匀加速阶段的加速度
3()a t 为减加速阶段的加速度
1()v t 为加加速阶段的速度
max 2v 为匀加速阶段的最高速度
3()v t 为减加速阶段的速度
m t 为加加速阶段的时间和减加速阶段的时间
x t 为匀加速阶段的时间
T 为采样时间间隔,T 足够小,假定在该时间间隔中,加速度恒定
根据上面的定义以及图5可以得到:
max 1()(/)m a t A t t =⋅
(0<= t <=m t ) max 2()a t A = (0<= t <=x t )
max max 3()(/)m a t A A t t =-⋅
(0<= t <=m t ) 由此得到加加速阶段的速度变化,其中tm =nT :
max max max 1(0)0
1()1(0)(/)1(2)1()(/)21()1((1))(/)m m m v v T v A t T T
v T v T A t T T
v n T v n T A t nT T
=-=⋅⋅-=⋅⋅⋅--⋅=⋅
⋅
将上面各式叠加,左边加左边,右边加右边: max 2max 1()(/)(02)(/)(1)()/2m m v n T A t T T nT T A t n n T ⋅=⋅+++
⋅=⋅+⋅⋅ (4)
式4得到的就是加加速阶段的最高速度,由此可以得到匀加速阶段的最高速度: max max max 21()1()m x m v v t A t v t A m T =+⋅=+⋅⋅
(5)
其中tx =mT
接着推导减加速阶段的速度变化: max
max max max max max 3(0)23()23()
3()3(0)(23()2)((/))m v v v T v a T v T v v a T v T A A t T T ==+-=+-⋅=-⋅⋅
max max max max 3(2)3()((/)2)3()3((1))(/)m m v T v T A A t T T
v nT v n T A A t nT T
-=-⋅⋅--⋅=-⋅
⋅()
两边叠加得到3()v nT
max max 2max max max 3()3(0)(/)(02)2(/)(1)()/2
m m v nT v A nT A t T T nT T v A nT A t n n T =+⋅-⋅+++
⋅=+⋅-⋅+⋅⋅
代入式(4)和式(5)得到最后的速度: max max max max 3()()
m x v v nT A m T A nT
A t t =⋅⋅⋅=⋅+=+ 最终得到tx 和tm 要满足一个恒等式:
max max /v A =m x t +t 根据分析计算发现,匀速阶段所取的时间越长,功率耗散越小,加速过程的时间越短,一般我们可以取2x m t t =,则可以得到max max /(3)m t v A =⋅。
由以上的推导过程知道,只要给定两个参数即最大速度和最大加速,就可以实现S 曲线。
程序流程如图6:
图6 S 曲线软件流程图
5. 三种算法比较
如图7所示,是三种算法在给定一样的加减速时间和最高速度的轨迹。
由此图可以看出梯形速度曲线是一个恒加速过程,它的快速性很好,但是从图1中梯形加速度曲线看出,它的加速度有突变的情况,在现在电机驱动元件的性能还不能达到比较理想的动态响应的条件下,实际使用梯形加减速的数控系统的起停速度轨迹并不是理想的斜线,还存在明显的波动(主要表现在起动时的滞后以及到达恒速时的过冲)。
指数速度曲线在加速和减速阶段结束时的平滑性是最好的,并且它的快速性也比较好,
1.梯形曲线
2.指数曲线
3.S型曲线
图7三种曲线比较图
但是相对于S曲线和梯形曲线,它在加减速启动过程中,速度、加速度变化率都较大,当负载扭矩较大时容易造成电机的堵转;
相比之下S曲线的加速度是一个连续的变化过程,所以在机械运动的平稳性方面较好,虽然从速度的快速性上比不上梯形曲线,但是在满足一定平稳性的条件下,可以将最大加速度提高或加长匀加速阶段来提高加速效率。
而且完整的S曲线是由多个阶段组成的,加加速段、匀加速段以及匀速段的运动时间可以取不同值,可以得到很多情况下的功率耗散。
6. 结束语
梯形速度曲线的加速度有突变性,实际中运用的比较少,而指数速度曲线算法比较简单,跟踪性比较强,在跟踪响应要求较高的切削加工中应用比较多。
S曲线算法相对较为精确,启动和停止的平稳性都比较好,可以根据各电机性能调整速度变化率。
三种加减速曲线在软件实现上,都已经数字化,所以必然会有误差,为了保证算法的精度,有必要在软件上进行修正,特别是在加速到顶峰和减速到停止的时候。