直流电动机的PWM调压调速原理

直流电动机转速N的表达式为:N=U-IR/Kφ

由上式可得,直流电动机的转速控制方法可分为两类:调节励磁磁通的励磁控制方法和调节电枢电压的电枢控制方法。其中励磁控制方法在低速时受磁极饱和的限制,在高速时受换向火花和换向器结构强度的限制,并且励磁线圈电感较大,动态响应较差,所以这种控制方法用得很少。现在,大多数应用场合都使用电枢控制方法。

对电动机的驱动离不开半导体功率器件。在对直流电动机电枢电压的控制和驱动中,对半导体器件的使用上又可分为两种方式:线性放大驱动方式和开关驱动方式。

线性放大驱动方式是使半导体功率器件工作在线性区。这种方式的优点是:控制原理简单,输出波动小,线性好,对邻近电路干扰小;但是功率器件在线性区工作时由于产生热量会消耗大部分电功率,效率和散热问题严重,因此这种方式只用于微小功率直流电动机的驱动。绝大多数直流电动机采用开关驱动方式。开关驱动方式是使半导体器件工作在开关状态,通过脉宽调制PWM来控制电动机电枢电压,实现调速。

在PWM调速时,占空比α是一个重要参数。以下3种方法都可以改变占空比的值。

(1)定宽调频法

这种方法是保持t1不变,只改变t2,这样使周期T(或频率)也随之改变。

(2)调频调宽法

这种方法是保持t2不变,只改变t1,这样使周期T(或频率)也随之改变。

(3)定频调宽法

这种方法是使周期T(或频率)保持不变,而同时改变t1和t2。

前两种方法由于在调速时改变了控制脉冲的周期(或频率),当控制脉冲的频率与系统的固有频率接近时,将会引起振荡,因此这两种方法用得很少。目前,在直流电动机的控制中,主要使用定频调宽法。

直流电动机双极性驱动可逆PWM控制系统

双极性驱动则是指在一个PWM周期里,作为在电枢两端的脉冲电压是正负交替的。

双极性驱动电路有两种,一种称为T型,它由两个开关管组成,采用正负电源,相当于两个不可逆控制系统的组合。但由于T型双极性驱动中的开关管要承受较高的反向电压,因此只用在低压小功率直流电动机驱动。

另一种称为H型。

H型双极性驱动

1.  电动机控制电路模块

H桥电动机驱动电路的工作原理:

A:当单片机的P0.0脚输出高电平,而P0.1脚输出低电平时,通过光电耦合器后仍然输出为高电平,使Q4管导通,此时Q1也处于导通状态,但Q2管的基极的电位被强行拉低,Q2管处于截止状态。由于单片机的P0.1脚输出低电平,

Q8处于截止状态,而此时Q7因为Q5的截止而处于导通状态,从而使电动机形成回路,电机正常工作。

B:同理可得,当P0.0脚输出低电平,而P0.1脚输出高电平时,三极管的状态与上述相反,电机同样处于正常工作状态。

C:当P0.0脚和P0.1同时为高电平或低电平,由于Q4与Q8和Q3与Q7的工作状态相同,同时处于导通或截止,使电机两断电位相同,无法使电机形成闭和回路,电机不工作,着就是所谓本设计所提及的刹车状态。

由于电路中在驱动功率管的发射极各添加了一个小电感,目的是为了使电机驱动电压更加稳定,得到较为平滑的驱动电压,从而增加了刹车时动作的准确性,减少电机的在起动和停止的瞬间产生过大的电压对功率管的冲击,导致功率管的损坏。同时也提高了电机的刹车控制可靠性和准确性,不至于因惯性而导致控制上产生较大的误差。

该桥的优点是电路的原理简单、易控制、功耗低带负载能力强、刹车的精度很高而且价格低廉。在驱动电路的控制信号输入断采用了光电隔离技术,减小H桥电机驱动电路对单片机的干扰,实现模拟电路与数字电路的隔离。在单片机的配合下,通过PWM调节脉宽的方法,实现了对驱动电机的轻松调速,通过键盘的配置可以对体的参数进行修改,可以使电机适应各种不同的工作状态,而实现智能控制的目的。正因为采取了PWM该技术,使我们完成基本要求的过程变得简单易行。

在电路中所采取的功率管为中功率管,其中将驱动功率管设计为灵活替换方式,可以根据实际驱动电路的需要,从而调整功率管的型号而不用另行更改电路,就可以满足电路控制的要求

 

2、软件模块部分

在速度控制方面,一般是能通过改变加在电机两端的电压来实现的,可以是连续改变(加直流电压),也可以是断续改变(加脉冲电压)。为了简单用,我们采用了脉宽调速,脉宽的变化可以通过硬件或软件来实现。

方案一    硬件实现是通过改变振荡电路中RC参数来调整充放电时间。若用硬件电路来实现,在稳定性方面得不到保证。

方案三    用软件的作法是通过设置高电平及低电平的保持时间来达到PWM的脉宽调制目的。

就比较而言,软件调整量化指标更高、调整更可靠、更方便、更准确。因此在设计时,常考虑方案二。

脉冲频率对电机转机也有影响,脉冲频率高连续性好,但带负载能力差,频率低则反之。经实验发现,脉冲频率在15━20HZ效果最佳。在本设计中采用了20HZ进行设计。

脉冲调速实质上是调节加在电机两端的平均功率,通过计算可发现电机的速度与脉宽成正比。

软件编程的考虑是设置脉宽这个变量。在P0.0,P0.1的输出控制信号来产生20HZ可调脉宽方波。

下面是51单片机的实验程序

#include < reg51.h >
#include < intrins.h >

sbit  K1 =P1^4 ;                    //增加键
sbit  K2 =P1^5 ;                    //减少键
sbit  P00 =P0^1;
sbit  BEEP =P3^7 ;                //蜂鸣器
unsigned char PWM=0xe7;   //赋初值

void Beep();
void delayms(unsigned char ms);
void delay(unsigned char t);

/*********************************************************/
void main()
{ 

     P1=0xff;
    TMOD=0x21 ;
    TH0=0xff ;             //50us延时常数
    TL0=0xce ;            //频率调节

    TH1=PWM ;            //脉宽调节
    TL1=0 ;

     EA=1;
     ET0=1;
     ET1=1;
   
     TR0=1 ;

   while(1)
   {
     do{
            if(PWM!=0xff)
           {PWM++ ;delayms(10);}
           else Beep() ;
         }
     while(K1==0);

     do{
           if(PWM!=0xce)
          {PWM-- ;delayms(10);}
           else Beep() ;
          }
     while(K2==0);
   }
}

void timer0() interrupt 1
{ 
    TR1=0 ;
    TH0=0xff ;
    TL0=0xce ;
    TH1=PWM ;
    TR1=1 ;
    P00=0 ;      //启动输出
}


void timer1() interrupt 3
{
    TR1=0 ;
    P00=1 ;     //结束输出
}

/*********************************************************/
//蜂鸣器子程序
/*********************************************************/

void Beep()    
  {
      unsigned char i  ;
      for (i=0  ;i<100  ;i++)
        {
          delay(100)  ;
          BEEP=!BEEP  ;                //Beep取反
        }
     BEEP=1  ;                            //关闭蜂鸣器
     delayms(100);
  }

/*********************************************************/
// 延时子程序
/*********************************************************/ 
void delay(unsigned char t)
 {
    while(t--)   ;
 }

/*********************************************************/
// 延时子程序
/*********************************************************/
void delayms(unsigned char ms)

{
    unsigned char i ;
    while(ms--)
     {
        for(i = 0 ; i < 120 ; i++) ;
     }
}

/*********************************************************/