当控制器工作时,可根据霍尔传感器检测到电机转子的当前位置,依照定子绕组决定开启或关闭功率晶体管的顺序,使电流依序流经电机线绕组,以产生顺向或逆向的旋转磁场,并与转子的磁铁相互作用,使电机顺时或逆时转动。当电机转子转动到霍尔传感器检测出另一组信号的位置时,再开启下一组功率晶体管,如此循环,电机就能依据同一方向继续转动,直到控制器决定使电机转子停止时,则关闭功率晶体管;决定使电机转子反向时,则开启功率晶体管,但顺序相反。PWM是决定电机转速快或慢的方式,如何产生PWM是实现准确控制速度的核心。
图2中的开关器件采用MOSFET,它们是不能在关断瞬间切换的。如果UH和UL是反向信号,那么,在同一时刻,一个开关器件导通,另外一个开关器件截止。在这段过渡时期,会有一个短暂的时间,其中一个开关器件并未完全截止,而另一个也是导通的,这样会使电源与地直接连接,使得大电流流经晶体管。在工程应用中必须避免这种情况,因为若电路中没有必要的硬件保护,极有可能损坏驱动装置。因此,在控制电路中,每个PWM过渡期都应增加死区时间。要求在一个很小的时间内,上臂开关和下臂开关都不导通,即产生带死区的PWM信号。
图3示出采用ATmega48形成带死区时间的PWM信号原理。ATmega48中定时器/计数器的双斜率模式可产生带死区时间的PWM信号,它能产生一个关于B0TTOM对称的波形。图3中三角线表示双斜率相位修正模式下定时器/计数器T0的计数值。在向上计数时,当计数值与没定值匹配时,输出引脚OCOA清0;在向下计数时,当计数值与设定值匹配时,输出引脚OCOA置l。输出引脚OCOB也采用同样的设置。PWM占空比则通过输出比较寄存器OCROA和输出比较寄存器OCROB来设置;A,B两路PWM相位的输出相反。当设置的两个输m端比较值相同时,这两个PWM的输出互补。
为了在上臂开关与下臂开关切换时插入死区时间,必须改变0CROB和OCROA的比较值,两者之差值为插入的死区时间。如果3个计时/计数器都采用同样的设置,就可产生3对带死区的PWM波形,但必须保证PWM的输出是同步的。当采用8位定时器/计数器产生2路具有不同比较值的PWM信号时,其最大设定值为255。若采用16位定时器/计数器,则必须设定为8位相位修正PWM模式。此时,PWM的基本频率可由下式确定:
式中:fCPU为CPU的频率。
无刷直流电机常采用三相正弦驱动方式。常用的方法是把一个正弦波形数据存储在存储器中,通过程序查表输出所需的正弦驱动信号。由于3个正弦电压之间的相位差为120°,因此可以采用一个正弦波形移位产生所有的正弦驱动信号。图4给出各相驱动信号的产生机制和换相时序。图中Hl,H2,H3为霍尔传感器的输出状态;S1~S6为波形产生的步骤;虚线为相位切换波形;实线为输出的正弦驱动信号。图5给出用于控制器的换相控制程序设计流程。
4 结语
无刷直流电机的功率因数高,又无转子损耗,因此用于无刷直流电机调速系统的驱动器大都采用电压源型PWM控制。由于三相无刷直流电机借助ATmega48单片机进行控制.且通过软件实现了带死区的PWM、霍尔传感器的换相处理、正弦驱动信号的产生和电机的转速控制,因而所需的外围器件少,成本低,并且还可提高系统的可靠性。