打印

PWM控制步进电机细分的问题

[复制链接]
3880|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
最近在研究步进电机 细分的驱动,使用的电机是两相四线,步距脚为1.8度,驱动电路如下,

准备先做一个4细分的驱动程序, 通过 四个PWM通过H桥电路分别控制步进电机的A+,A-,B+,B-,假设PWM的占空比与平均电流大小成正比,通过调节每路PWM的占空比来调节A+,A-,B+,B-各路电压,以此来模拟正弦电流的产生,具体做法是计算出步进电机每走一微步A,B个线圈中对应的PWM占空比,做成一个表,通过查表的方法,每一个PWM脉冲,步进电机走一微步,更改一次占空比的值。因为是四细分,所以需要16个阶梯时的值,PWM的脉冲周期设置为160us,对应的PWM一个周期计数器中的值为5120,经计算,A相中的占空比数值为{5120,4730,3620,1959,0,-1959,-3620,-4730,-5120,-4730,-3620,-1959,0,1959,3620,4730}; B相中的为{ 0,1959,3620,4730,5120,4730,3620,1959,0,-1959,-3620,-4730,-5120,-4730,-3620,-1959}; 出现负数的地方 并不是占空比为负,而是A,B中的电流需要换向的地方,所以对应的A+,A-,B+,B-的占空比表为
static const word Aplus[16] ={5120,4730,3620,1959,0,0,0,0,0,0,0,0,0,1959,3620,4730};

static const word Aminus[16] ={ 0,0,0,0,0,1959,3620,4730,5120,4730,3620,1959,0,0,0,0};
static const word Bplus[16] ={ 0,1959,3620,4730,5120,4730,3620,1959,0,0,0,0,0,0,0,0};
static const word Bminus[16] ={ 0,0,0,0,0,0,0,0,0,1959,3620,4730,5120,4730,3620,1959};
这样子做了以后,电机能够转起来,但是感觉不够平稳,想问问大神们,这样子做是不是有问题啊,是否还有更好的产生正弦电流的方法啊,
看过一些厂商的步进电机的驱动器,可以调节细分数,通过示波器观察,发现驱动器每一路输出的PWM波形 占空比也在变化,每一路占空比都是先从小变到最大,再从最大变为最小,但是占空比基本上没有0的情况出现,A+和A-的PWM波形也不是靠左对其,先用画图画个大家凑合看,下次示波器截个图, 各位大神 ,有没有哪位知道 这种细分原理呢,大家都来讨论一下吧


相关帖子

沙发
airwill| | 2013-4-21 19:48 | 只看该作者
通过 PWM 的 "正弦波电压" 控制是没有办法做平稳的.
还是得通过电流控制才行

使用特权

评论回复
板凳
裴婉婉| | 2014-4-27 13:48 | 只看该作者
楼主,我也是这么做的,也是感觉很不稳定,楼主找到解决的问题了么??

使用特权

评论回复
地板
裴婉婉| | 2014-4-27 13:49 | 只看该作者
airwill 发表于 2013-4-21 19:48
通过 PWM 的 "正弦波电压" 控制是没有办法做平稳的.
还是得通过电流控制才行 ...

你好,麻烦问一下怎么控制电流??

使用特权

评论回复
5
airwill| | 2014-4-27 19:40 | 只看该作者
怎么控制电流??
说起来有些复杂, 目前有很多专用步进电机驱动芯片, 都是采用电流控制的.
推荐一个芯片 A3977. 数据手册上有详细地电流控制的讲解, 先下载了好好研究一下吧

使用特权

评论回复
6
星火燎原| | 2014-8-6 10:44 | 只看该作者
ding

使用特权

评论回复
7
伊泽瑞拉| | 2014-8-6 11:27 | 只看该作者
继续讨论  把这个问题给解决掉

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

1

粉丝