最近在看步进电机 细分的驱动,使用的电机是两相四线,步距脚为1.8度,手头有一个步进电机驱动盒,拆开测量了一下电路,如下图,,自己在网上查了一些资料,尝试做了一下四细分,通过 四个PWM通过H桥电路分别控制步进电机的A+,A-,B+,B-,通过调节每路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-所对应的PWM0,PWM2,PW1,PWM4的占空比表为
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的占空比,电机能够转起来,但是感觉不够平稳,想问问大虾们,这样子做是不是有问题啊,是否还有更好的产生正弦电流的方法啊,
用示波器测了一下手上的驱动盒,在32细分,输入脉冲为50KHZ时,,通过示波器观察,控制A+,A-的PWM0和pwm2输出波形 并不是如我上面所做的,虽然驱动器每一路输出的PWM波形占空比也在变化,每一路占空比都是先从小变到最大,再从最大变为最小,但是PWM0,PWM2占空比基本上没有0的情况出现,A+和A-的PWM波形也不是靠左对其,具体波形如下图
大虾们帮忙看下,这是用的什么原理啊,小弟刚开始看,有点迷糊,希望大虾们不要见笑啊 |