liuxia19872003 发表于 2009-3-15 15:29:39

步进电机在带负载的时候容易失步,用变加速转的方法可以解决,不知道大家有没有什么好方

步进电机在带负载的时候匀速转容易失步,用变加速转的方法可以解决,不知道大家有没有什么好方法?
最近做一个贴片机上料的设备项目,精度要求很高。设计要求上就是要求电机从变加速转到高速 ,在从高速变减速将到低速。
步进电机速度的变化对应脉冲频率的变化,大家有没有频率变化的好算法??
(控制用mega32+FGPA)
我相信这个问题的讨论对精度要求高的雕刻机项目也是有好处的。

jjldc 发表于 2009-3-15 15:55:50

我现在就在写直线加速的代码
感觉不怎么好,做的有点头大

输出脉冲用的延时,单位是us
进给参数和直线加速的单位是Hz,他们之间转换用1000000/Hz=us,
因为用到除法运算了,性能可能不好

于是,我把速度线性增加变成了脉冲周期线性递减,
即先取一个初速度周期(比如10ms),在加速区间内逐渐减小周期
这样每次插补计算脉冲周期可以少一个除法运算
但是似乎实际脉冲频率的变化就不是线性变化了。。。

同时,定义:
Tdh:最高速度(设定速度)时的周期
Tdl:启动速度时的周期
Ta:每次脉冲周期的变化量
dP:每经过dP步脉冲,速度变化Ta
这样整个加/减速区间变为了n=(Tdh-Tdl)/Ta段恒定速度区间,每段速度区间内有dP步

在一开始,先初始化Tdh Tdl Ta dP等参数
同时计算出加/减速区间的步数N=n*dP
然后进行一次判断
总的进给步数E
E-N<0 说明加减速时间长于总进给步数,不进行直线加速控制,直接用较慢速度进行匀速进给
E-N>=0 进行加减速控制

如果要进行加减速控制
就接着计算梯形速度曲线的两个速度拐点(加速结束点,减速开始点)
AccStep=N
DownStep=E-N
每走一步,检查本段速度区间是否走完,走完则加/减速,没走到则按上次速度进给,同时判断是否走到拐点

目前我想到的办法就这样,貌似算法比较简单了,进给过程中都只有加减法和几条判断的语句
效果如何就不知道了~~ 还处于写代码阶段呢
~~

new007 发表于 2009-3-15 15:58:57

可能你负载超了电机的能力

jjldc 发表于 2009-3-15 16:03:46

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_425690.jpg
(原文件名:速度曲线.jpg)

baiyuan 发表于 2009-3-15 19:37:42

步进电机本来的转速就不算高,再减速的话,就更慢了吧?为何不使用伺服呢?

cbcb128 发表于 2009-3-15 20:05:47

6线制的低速细分,高速不细分,现在还试不出过渡是否会丢步.

robinyuan 发表于 2009-3-15 21:10:34

步进电机 在低速的情况最大的问题是振动 即时是高度细分 依然存在

IMCEO 发表于 2009-3-15 21:49:26

你直接用伺服就能解决丢步问题,或者用带编码器反馈的步进驱动器,你需要给原先的电机加个码盘,不过价格比较贵,
你说的缓慢加减速其实就是直线补偿和曲线补偿,一般的运动卡都带这功能,没有必要再去“研发”。

jianzhong_187 发表于 2009-3-15 23:15:48

用S形加速曲线.用查表法!

blue-sky 发表于 2009-3-16 15:44:57

楼上正解
页: [1]
查看完整版本: 步进电机在带负载的时候容易失步,用变加速转的方法可以解决,不知道大家有没有什么好方