加减速算法的分析及软件设计(精)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
加减速算法的分析及软件设计
陈宝罗
(西南交通大学电气工程学院,四川成都610031)
摘要:运动控制系统在起始和停止阶段,应采用合适的加减速算法以避免产生冲击、失步和振荡,以保证运动部件平稳准确定位。分析三种加减速算法,建立离散数学模型,从而优化软件实现,提高运算和控制效率,同时给出可实现的软件流程,并对三种算法进行比较,分析算法的缺陷和优势,得出S曲线是比较适用的算法。
关键词:运动控制;梯形曲线;指数曲线;S曲线;软件设计;
analysis of accelerating and decelerating arithmetic and software design
Chen Baoluo
Electric Engineering Academe Southwest, JiaoTong University ChengDu SiChuan 610031
Abstract: Motion control system should adopt appropriate arithmetic to abstain shock, miss step, and surge on start and stop stage, so motion part is ensured orientation of placidity and nicety. The paper analyzed three kinds of accelerating and decelerating arithmetic, and established discrete mathematics model which bring optimal software design, operation, and efficiency of control, then showed the feasible flow charts for software design. Found that S shape curve is more appropriate than others by analyzing the three arithmetic .
Key Word: Motion control ; trapezoid curve; exponent curve; S shape curve; software design;
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 曲线的核心