实时步进电机 仅通过加法和乘法实现线性斜坡

实时步进电机
仅通过加法和乘法实现线性斜坡


1.运动基础
线性加速度(斜坡)公式为:

                                                                       s = v0 · t + a·t²/2    [1]

                                                                       v = v0 +  a·t            [2]


其中

        S  -加速距离,在步进电机的情况下- 步数
        v0  -初始速度,基本速度(步每秒),
        v  -目标速度,回转速度(步每秒),
        a  -  加速度(步每秒秒),
        t  - 加速时间,爬坡周期(秒)。

通过重新排列[2]

t  =   (v-v  0 )/ a                          [3]

并把它放在[1]我们有

S =   (V  2  - v  2 )/(2 ·a          [4]



v   =  (V  2  + 2·a·  S) 1/2              [5]

这可以表示 为一个步骤递归计算形式

v i  = (Vi-12 + 2 ·a1/2         [6]    

其中

        i  - 步数(1 S)。


2.控制基础知识
为了产生步进电机的速度曲线,我们需要提供步进脉冲之间的实时延迟:

p i  = F / vi         [7]    

其中

        pi -延迟周期用于第i个步骤(定时器节拍),
        F  -  计时器频率每秒定时器的节拍数),

所以根据[6]的精确的延迟值将是:

p i   F /((F / Pi-1 2 + 2·a1/2         [8]    

要么

p i  = Pi-1  /(1 + Pi-1·2 · a/ F 21/2         [9]。    


3.逼近
使用泰勒级数

1 /(1 + n) 1/2     1 - n / 2         [10]    

当-1 <  < 1时,我们可以近似为[9]

pi   Pi-1 ·(1 - pi-1·a/ F 2         [11]

我们来检查-1 <  < 1的条件。我们  n  是

n  =   p  i-1  2   · 2 · a / F 2         [12]

或者通过速度,

n  =   2  · a / v  i-1  2          [13]。

  在第一个计算的步骤中, 最大   n值将处于最小速度,其中   i = 2

n max  =  ·  a / v 2         [14]。    

因为最小   0   是0,从[6]我们有

v 1min   = (2  ·  a1/2         [15]。    

所以   n   将始终 小于或等于1,因为我们的计算是前向的,所以我们在减速(负加速度)情况下也没有限制



4.实施
给定的参数为:

        0  - 基本速度,
        v  - 回转速度,
        a  - 加速度,
        F  - 定时器频率

和计算出的参数为:

        S  - 加速/减速距离

s =   (V  2  - v  2 )/(2 · a)          [4,16],

        1  - 初始步骤的延迟时间

1  = F /(V 2 + 2 · a1/2         [17],    

        S  - 摆动速度步长的延迟时间

S  = F / v         [18],    

        R  - 恒定乘数

R  =   a / F  2          [19]。

将为每个下一步重新计算 的可变延迟周期   p   (初始   p = 1)为:

p  =   p ·(1 + m · p · p)         [20]。

其中

        m  -变量乘数取决于所述运动相:

                m = - R 时在加速阶段,
                m = 0 在加速和减速阶段之间
                m =  R 时,在减速阶段。

为了精确的目的,让我们设定

        Ps = Ps ,  如果   P < Ps   或者加速和减速阶段之间
        P = P1   , 如果   p > 1  。


5.可选的增强
使用泰勒级数的高阶逼近
                                                                            1 / (1 + n)1/2  ~  1 - n / 2 + 3 . n2 / 8       [21]   

我们可以得到更准确的结果替代[20]

  =    p  .  (1 + q + 1.5  .  q  .  q)            [22]

其中

       =  m . p . p 

通过[22]我们有出色的精度,但具有两个额外的乘法和一个额外添加VS [20]的良好 精度的方法。最后让我们 用一个额外的乘法和一个额外的加法构建一个非常好的折中:

  =    p  .  (1 + q + q  .  q)         [23].

而且,我认为好的方法([20])不仅好,而且对于大多数步进电机应用来说足够好
对于步进/方向控制的伺服驱动器来说,增强功能非常重要,该功能可以从零速下降到零速。


6.编程说明
这个算法是为浮点 数学设计的,在这种形式下它的工作速度要快于 需要划分整数形式。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值