步进电机原理及驱动

这里把步进电机的资料做个整合

文章目录

  • 步进电机是什么
  • 原理
    • 定子
      • 定子的种类
    • 转子及其种类
  • 工作方式
    • 单拍方式
    • 双拍方式
    • 单双拍方式
    • 通电方式
  • 驱动器
  • 驱动程序

步进电机是什么

什么是步进电机?
步进电机是将电脉冲信号,转变为角位移或线位移的开环控制电机,又称为脉冲电机。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响。当步进驱动器接收到一个脉冲信号时,它就可以驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”。
步进电机原理及驱动_第1张图片

原理

下面是原理
步进电机是通过脉冲信号来进行控制,每输入一个脉冲信号,步进电机前进一步。步进电机旋转的步距角,是在电机结构的基础上等比例控制产生的,如果控制电路的细分控制不变,那么步进旋转的步距角在理论上是一个固定的角度。在实际工作中,电机旋转的步距角会有微小的差别,主要是由于电机结构上的固定有误差产生的,而且这种误差不会积累。
(就是说每一步之间可能有微小差距,但整体转一圈是固定的200步,这个不变,下面会解释)
步进电机原理及驱动_第2张图片

步进电机的总极数越大,加工精度的要求就会越高。通常工业用混合型步进电机的步距角是1.8度,就是200极。(极等同于步)
步进电机组成最主要的就是转子定子部分

定子

第一个概念,定子,就是由电流控制磁场方向,满足安培右手螺旋定律
步进电机的电流流过定子产生磁场的过程叫做励磁
步进电机原理及驱动_第3张图片
步进电机原理及驱动_第4张图片
拿常用的二相四线举例
步进电机原理及驱动_第5张图片
通常所说的二相步进电机,电机转子的旋转,包含不同磁极的磁场相斥和相吸实现的。如上图所示,A相产生N极磁场吸引转子的S极,B相产生S极磁场吸引转子的N极,使定子产生旋转的动力。如果改变A、B相定子线圈的电流方向,电机会产生另一步的旋转。连续改变A、B相定子线圈的电流方向,电机会产生连续的旋转。
步进电机原理及驱动_第6张图片
如上图所示,电机的运动是通过改变电流在电机中的流动来实现的,电子转子排斥B相磁极的定子,吸引A相磁极的定子,这就产生了另一个步进操作。

定子的种类

步进电机原理及驱动_第7张图片
步进电机按照定子上绕组来分类,共有二相、三相五相等系列。目前最受欢迎的是两相混合式步进电机,约占97%以上的市场份额,其原因是性价比高,配上细分驱动器后效果良好。

该种电机的基本步距角为1.8度/步,配上半步驱动器后,步距角减少为0.9度,配上细分驱动器后。其步距角可细分达256倍(0.007度/微步)。由于摩檫力和制造精度等原因,实际控制精度略低。同一步进电机可配不同细分的驱动器以改变精度的效果。(细分驱动器后面介绍)

转子及其种类

转子被定子环绕在中间受定子磁场变化产生转动

步进电机原理及驱动_第8张图片
按照转子分类,有三种主要类型:反应式(VR型)、永磁式(PM型)、混合式(HB型)。

反应式
定子上有绕组,绕组由软磁材料组成。其结构简单、成本低、步距角小,可达1.2度,但动态性能差,效率低、发热大,可靠性难以保证。

永磁式
永磁式步进电机的转子用永磁材料制成,转子的极数与定子的极数相同。其特点是动态性能好、输出力矩大,但这种电机度差,步距角大(一般为7.5度或15度)。(很好理解,如果磁性太强,再排斥和吸引的时候力也就更大)

混合式
混合式步进电机综合了反应式和永磁式的优点,其定子上有很多相绕组,转子上采用永磁材料,转子和定子均有多个小齿以提高步距精度。其特点是输出力矩大、动态性能好、步距角小,但结构复杂、成本相对较高。
说到这里
肯定有一个疑问,就是上面带转子齿是怎么实现转动的

步进电机原理及驱动_第9张图片
给定子绕组通电时,转子齿偏离定子齿一个角度。
由于励磁磁通力沿磁阻最小路径通过,因此对转子产生电磁吸力,迫使转子齿转动,
当转子转到与定子齿对齐位置时,因转子只受径向力而无切线力,故转矩为零,转子被锁定在这个位置上。由此可见:错齿是助使步进电机旋转的根本原因!!!

找到一个步进电机的拆解图
步进电机原理及驱动_第10张图片

工作方式

接下来了解几个概念
“相”-绕组个数
“齿距角” -转子相邻两齿的夹角
“拍”-绕组通电状态。如:三拍表示一个周期共有3种通电状态,六拍表示一个周期有6种通电状态,每个周期步进电机转动一个齿距角
“步距角”- 转子每拍转动的角度
步距角θ=360/(NZ)
N:步进电机的拍数 Z:转子的齿数。
(注意:齿距角步距角不一样)

结论步距角反映出步进电机的精度,步距角越小,该步进电机能够输出的单位位移量越小。步距角与电机本身结构(转子齿数)和工作方式(拍数)有关

工作方式,这里拿三相步进电机举例

单拍方式

步进电机原理及驱动_第11张图片
A相绕组通电,B、C 相不通电。
由于在磁场作用下,转子总是力图旋转到磁阻最小的位置,故在这种情况下,转子必然转到左图所示位置:1、3齿与A、A′极对齐。
步进电机原理及驱动_第12张图片
同理,B相通电时,转子会转过30°角,2、4齿和B、B´ 磁极轴线对齐;当C相通电时,转子再转过30°角,1、3齿和C´、C 磁极轴线对齐。

这种工作方式下,三个绕组依次通电一次为一个循环周期,一个循环周期包括三个工作脉冲,所以称为三相单三拍工作方式。
按A->B->C->A-> ……的顺序给三相绕组轮流通电,转子便一步一步转动起来。每一拍转过30°(步距角),每个通电循环周期(3拍)转过90°(一个齿距角)。

双拍方式

步进电机原理及驱动_第13张图片
按AB->BC->CA的顺序给三相绕组轮流通电。每拍有两相绕组同时通电。
步进电机原理及驱动_第14张图片

与单三拍方式相似,双三拍驱动时每个通电循环周期也分为三拍。每拍转子转过30° (步距角),一个通电循环周期(3拍)转子转过90°(齿距角)。

单双拍方式

步进电机原理及驱动_第15张图片
按A->AB->B->BC->C->CA的顺序给三相绕组轮流通电。这种方式可以获得更精确的控制特性。
步进电机原理及驱动_第16张图片
A相通电,转子1、3齿与A、A’ 对齐。
步进电机原理及驱动_第17张图片
A、B相同时通电,A、A’ 磁极拉住1、3齿,B、B’ 磁极拉住2、4齿,转子转过15,到达左图所示位置。
步进电机原理及驱动_第18张图片
B 相通电,转子2、4齿与B、B´ 对齐,又转过15°。
步进电机原理及驱动_第19张图片
B、C相同时通电,C’ 、C 磁极拉住1、3齿,B、B’ 磁极拉住2、4齿,转子再转过15°。

总结
单拍——实现简单,性能较差
双拍——转矩较大,带负载能力较强
单双拍——步距角较小,控制精度较高

通电方式

以下以两相四线举例讲通电方式

单拍控制
步进电机原理及驱动_第20张图片

步进电机原理及驱动_第21张图片
双拍控制

步进电机原理及驱动_第22张图片
步进电机原理及驱动_第23张图片
单双拍控制
步进电机原理及驱动_第24张图片步进电机原理及驱动_第25张图片
步进电机原理及驱动_第26张图片

下面讲驱动器部分

驱动器

用的是A4988驱动器
datasheet下载地址
步进电机原理及驱动_第27张图片

步进电机原理及驱动_第28张图片
datasheet里的图
步进电机原理及驱动_第29张图片

主要就是几个引脚:
DIR:控制正反转,=1:正转,=0:反转;
STEP:接PWM,每个脉冲转对应一个角度;(频率要小于50khz)
sleep,reset:通常短接;
MS1,MS2,MS3:MS1和MS3引脚具有100kΩ的下拉电阻,MS2引脚具有50kΩ的下拉电阻。
步进电机原理及驱动_第30张图片
控制细分的引脚
000:全步
100:二分步
010:4分步
110:8分步
111:16分步

VDD:接3.3V或者5V;
VMOT:电机直流供电:8~35V;
1B 1A 2A 2B:接步进电机 ,通常四相电机红绿为一组,蓝黄为一组,即1A,1B接步进电机的一组线圈,2A,2B接步进电机的一组线圈

驱动程序

接好线之后
step控制速度,dir控制方向
这里给个简单程序
51版

#include<reg52.h>

typedef unsigned char u8;
typedef unsigned int u16;
typedef unsigned long u32;

u8 TR0H;
u8 TR0L;
bit flag_5s=0;

u32 PeriodCnt = 0;
u8 HighRH = 0;
u8 HighRL = 0;
u8 LowRH = 0;
u8 LowRL = 0;
u8 T1RH = 0;
u8 T1RL = 0;

sbit STEP=P3^2;//step引脚定义
sbit DIR=P3^3;//Dir引脚定义

void ConfigPWM(u16 fr, u8 dc);//配置PWM,fr频率,dc占空比
void ConfigTimer1(u8 ms);
////延时程序 11.0592mhz
/oid delayms(u16 t)
//{
//	u16 i,j;
//	for(i=t;i>0;i--)
//		for(j=114;j>0;j--);
//}
void main()
{
	
	DIR=1;
	ConfigTimer1(100);
	ConfigPWM(500,50);//pwn配置
	EA = 1;//打开总中断
	
	while(1)
	{
		if(flag_5s==1)
		{
			flag_5s=0;
			if(DIR)
			{
				DIR=0;
			}
			else
			{
				DIR=1;
			}
		}
	}
	
	

}

void ConfigTimer1(u8 ms)
{
	u32 temp;

	temp=11059200/12;
	temp=(temp*ms)/1000;
	temp=65535-temp;
	TR0H=(u8)(temp>>8);
	TR0L=(u8)temp;
	TMOD&=0XF0;
	TMOD|=0x10;
	TH1=TR0H;
	TL1=TR0L;
	ET1=1;
	TR1=1;


}
//pwm配置程序
void ConfigPWM(u16 fr, u8 dc)
{
    u16 high, low;

    PeriodCnt = (11059200/12)/fr;
    high = (PeriodCnt*dc)/100;
    low = PeriodCnt - high;
    high = 65536 - high;
    low = 65536 - low;
    HighRH = (u8)(high>>8);
    HighRL = (u8)high;
    LowRH = (u8)(low>>8);
    LowRL = (u8)low;

    TMOD &= 0xF0;
    TMOD |= 0x01;
    TH0 = HighRH;
    TL0 = HighRL;
    ET0 = 1;
    TR0 = 1;
    STEP = 1; 
}

//pwm中断程序
void InterruptTimer0() interrupt 1
{
    if(STEP == 1)
    {
        TH0 = LowRH;
        TL0 = LowRL;
        STEP = 0;
    }
    else
    {
        TH0 = HighRH;
        TL0 = HighRL;
        STEP = 1;
    }
}

void Timer1()interrupt 3
{
	static u8 times=0;

	TH1=TR0H;
	TL1=TR0L;
	times++;
	if(times>200)
	{
		times=0;
		flag_5s=1;
	}
}


效果是5s正转5s反转

你可能感兴趣的:(步进电机原理及驱动)