最近在研究步进电机 细分的驱动,使用的电机是两相四线,步距脚为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波形也不是靠左对其,先用画图画个大家凑合看,下次示波器截个图,
各位大神 ,有没有哪位知道 这种细分原理呢,大家都来讨论一下吧
|