├── README.md └── SLineControl.c /README.md: -------------------------------------------------------------------------------- 1 | # SLineControl 2 | 电机控制中的S形曲线加减速控制,主要用于步进电机的平滑启动和停止,防止电机出现失步 3 | -------------------------------------------------------------------------------- /SLineControl.c: -------------------------------------------------------------------------------- 1 | //len:S曲线的长度,即采样点个数 2 | //FStart:曲线的起始值 3 | //FStop:曲线的结束值 4 | //flexible:曲线的拉伸变换,越大代表压缩的最厉害,中间(x坐标0点周围)加速度越大;越小越接近匀加速。理想的S曲线 flexible的取值为4-6。 5 | //index:曲线索引点,区间[0,len] 6 | //Fcurrent:索引点对应的曲线幅值 7 | // 8 | //当FStart len)  index = len; 18 | num = len/2;    19 | melo = flexible * (index-num) / num;    20 | deno = 1.0 / (1 + expf(-melo));   21 | Fcurrent = FStart - (FStart-FStop) * deno; 22 | 23 | return Fcurrent; 24 | } 25 | --------------------------------------------------------------------------------