摘要:本节介绍步进电机S曲线加减速方法,包含了一般形式S曲线方程的推导,以其适配51单片机+TB6600驱动器S曲线运动数据的生成。本节所述S曲线均为标准Sigmod曲线的简称,与其他算法所述的7段式S曲线或者5段式S曲线相比,二者本质属于不同的算法
 步进电机加减速通常的处理方式有S曲线加减速、T型加减速、指数曲线加减速、正余弦曲线加减速等,最具代表性的为前两种,下面详细介绍这两种控制方法
 
 一、 S曲线方程
 1.1 S曲线基本形式
  
      
       
        
        
          y 
         
        
          = 
         
         
         
           1 
          
          
          
            1 
           
          
            + 
           
           
           
             e 
            
            
            
              − 
             
            
              x 
             
            
           
          
         
        
       
         y=\frac{1}{1+e^{-x} } 
        
       
     y=1+e−x1
 
1.2 S曲线经过平移、缩放后,可以使其经过任意不同两点(X1,Y1),(X2,Y2)且中心对称,示意图及方程如下
  
      
       
        
        
          y 
         
        
          = 
         
         
         
           K 
          
          
          
            1 
           
          
            + 
           
           
           
             e 
            
            
             
             
               − 
              
             
               ( 
              
             
               x 
              
             
               − 
              
             
               A 
              
             
               ) 
              
             
            
              N 
             
            
           
          
         
        
          ( 
         
        
          N 
         
        
          ≠ 
         
        
          0 
         
        
          , 
         
        
          K 
         
        
          ≠ 
         
        
          0 
         
        
          ) 
         
        
       
         y=\frac{K}{1+e^{\frac{-(x-A)}{N} } } (N≠0,K≠0) 
        
       
     y=1+eN−(x−A)K(N=0,K=0)
N:X轴方向比例变换系数
 K:Y轴方向比例变换系数
 A:X轴方向平移系数
 B:Y轴方向平移系数
N由用户自行设定,作为调节S曲线平滑度参数
 
二、步进电机S曲线加减速
 将X轴作为时间轴,Y轴作为速度轴,S曲线经过(0,w0),(tn,w1)两点,如果w0<w1,即为S曲线加速图像,如果w0>w1即为减速图像,下面以加速为例进行介绍
 
 根据位移公式可以得到如下两个方程
  
      
       
        
        
          a 
         
        
          n 
         
        
          g 
         
        
          l 
         
         
         
           e 
          
         
           n 
          
         
        
          = 
         
        
          n 
         
        
          ∗ 
         
         
          
          
            s 
           
          
            t 
           
          
            e 
           
          
            p 
           
          
         
           X 
          
         
        
          … 
         
        
          … 
         
        
          ① 
         
        
       
         angle_{n} =n*\frac{step}{X} ……① 
        
       
     anglen=n∗Xstep……①
  
      
       
        
        
          a 
         
        
          n 
         
        
          g 
         
        
          l 
         
         
         
           e 
          
         
           n 
          
         
        
          = 
         
         
         
           ∫ 
          
         
           0 
          
          
          
            t 
           
          
            n 
           
          
         
        
          f 
         
        
          ( 
         
        
          t 
         
        
          ) 
         
        
          d 
         
        
          t 
         
        
          … 
         
        
          … 
         
        
          ② 
         
        
       
         angle_{n} =\int_{0}^{tn}f(t)\mathrm{d}t ……② 
        
       
     anglen=∫0tnf(t)dt……②
f(t):中心对称的S曲线方程
 angle_n: 第n步转过的角度
 step:步距角
 X: 驱动器细分值
其中S曲线的f(t)方程较为复杂,不容易求得原函数,直接积分较为困难,故采用数值积分的方式求得tn(n=1、2、3……n),相邻两步之间的时间差值△tn= tn- t(n-1)即为步进电机两步之间的时间间隔,也是单片机的定时器的定时时间,即实现Sigmod曲线加减速。其具体计算过程为纯数值计算领域的内容,此处不展开讲述,关键词条:辛普森积分
三、生成器介绍
 加速过程、减速过程数组生成如下
 
 
 四、测试
 烧录hex文件后,单片机上电,步进电机在起步90°内,速度从30RPM增加到500RPM,随后持续匀速转动
 
五、功能扩展
 扩展1:
 ① 增加S曲线减速过程,程序上电后,电机按照S曲线加速-匀速-S曲线减速过程,转动720°
 
扩展2:(实测视频见文末百度网盘)
 ① 增加4个按键,控制电机启动、方向、角度加、角度减
 ② 增加数码管,显示信息
扩展3:(实测视频见文末百度网盘)
 ① 增加4个按键,控制电机启动、方向、角度加、角度减
 ② 增加数码管,显示信息
 ③ 增加光电开关,上电后步进电机自动回零点
扩展4:(实测视频见文末百度网盘)
 ① 增加4个按键,控制电机启动、方向、角度加、角度减
 ② 增加1602LCD,显示信息
扩展5:(实测视频见文末百度网盘)
 ① 增加4个按键,控制电机启动、方向、角度加、角度减
 ② 增加数码管,显示信息
 ③ 增加1602LCD,上电后步进电机自动回零点
五.总结
 该S曲线算法优点是加减速过程十分平滑,产生的冲击较小,缺点是加减速过程固定,适用于大角度转动且加减速可以固化的场景,例如:丝杠滑台运输物料等场景,对于在使用过程中需要反复调整加减速的场景不适用
六、附件
 Hex测试程序+测试视频请见百度网盘
 链接: https://pan.baidu.com/s/1-3fxN9FEJl6fnrPyxUyNtg
 提取码: 1x29
Keil源码请见某宝,搜索:【皮皮黄步进电机】
↓↓↓点击下方【目录】,查看本系列全部文章













![[代码随想录09]字符串2的总结](https://i-blog.csdnimg.cn/direct/fa60461c927b416ea50acb2155dfbd09.png)





