基于ATmega48的三相无刷电机控制方法
扫描二维码
随时随地手机看文章
无刷直流电机以其重量轻,体积小,加速性能好,运行平稳,噪音低等优点而广泛用于丁业和民用产品中。无刷直流电机的功率因数高,无转子损耗,其转子转速能严格地与电源频率保持同步。转子磁场由永久磁铁产生。通常,采用电压源型脉宽调制(PWM)控制作为无刷直流电机调速系统用的驱动器。近年来,国外纷纷推出以单片机(MCU)为核心的单片电机控制器,它南一个MCU再配备外围驱动电路构成,能大大降低成本,缩小体积,紧凑结构,提高可靠性。在此,介绍r采用Atmega48单片机实现三相无刷直流电机控制器的方法。
2 ATmega48单片机
ATmega48单片机是Atmel公司基于自动电压调整器(Automatic Voltage Regulator,简称AVR)增强型精简指令集计算机(RISC)结构的低功耗8位CMOS微控制器。具有先进的指令集及单时钟周期指令执行时间,其数据吞吐率可以达到1 MIPS/MHz。AVR内核具有丰富的指令集和32个通用工作寄存器。这些寄存器都直接与算术逻辑单元(ALU)相连接.可在一个时钟周期内通过一条指令同时访问两个独立的寄存器,因此可提高代码效率。
ATmega48的硬件资源有:4 KB的系统内可编程Flash:256字节的EEPROM:512字节的SRAM;23个通用I/0口线;32个通用工作寄存器;2个带独立预分频器和比较器的8位定时器/计数器;1个带预分频器、比较器和捕捉功能的16位定时器/计数器;带独立振荡器的实时计数器;6个通道PwM;8路10位A/D转换器;6路10位A/D转换器;可编程的串行USART接口;可工作于主机/从机模式的SPI串行接口;面向字节的2线串行接口;独立片内振荡器的可编程看门狗定时器;片内模拟比较器及5种可通过软件选择的省电模式。ATmega48具有丰富的I/0口、A/D转换器、定时器/计数器、PWM通道等资源,为实现三相无刷直流电机的控制、换相检测等提供了方便。
3 三相无刷电机的控制实现方法
图1示出采用ATmega48单片机实现三相无刷电机控制器的原理图。图中,PC0、PCI和PC2为输入,用以接收来自电机U,V,W换相的霍尔传感器检测信号;PD5和PD6用于控制电机U相的功率驱动器件;PBl和PB2用于控制电机V相的功率驱动器件;PD3和PB3用于控制电机W相的功率驱动器件;PC3为电机给定转速的输入电压。
作为一种同步电机,直流无刷电机的转子转速受定子旋转磁场速度及转子极数的影响。当转子的极数固定时,只要改变定子的旋转磁场频率,即可改变转子的转速。直流无刷电机是一种控制定子的旋转磁场频率,并将电机转子转速回馈控制中心进行反复校正.以达到接近直流电机的特性。当负载变化时,它能在额定负载范围内控制电机的转子维持一定的转速。
图2给出用于图1中的功率驱动电路。该驱动部分由上臂VQl,VQ3,VQ5和下臂VQ2,VQ4,VQ6的6个功率晶体管组成,用于连接电机作为控制流经电机绕组的开关。控制部分提供PWM,用于决定功率晶体管开关频率及换相的时刻。在控制直流无刷电机转速时.通常希望在负载变化时也能使电机转速稳定在设定值内,而不发生太大的波动。因此,在无刷电机内部设置霍尔传感器.以感应磁场变化,该传感器既可作为电机转速中闭环控制的速度反馈部件,也可作为相序控制的依据。
[!--empirenews.page--]
当控制器工作时,可根据霍尔传感器检测到电机转子的当前位置,依照定子绕组决定开启或关闭功率晶体管的顺序,使电流依序流经电机线绕组,以产生顺向或逆向的旋转磁场,并与转子的磁铁相互作用,使电机顺时或逆时转动。当电机转子转动到霍尔传感器检测出另一组信号的位置时,再开启下一组功率晶体管,如此循环,电机就能依据同一方向继续转动,直到控制器决定使电机转子停止时,则关闭功率晶体管;决定使电机转子反向时,则开启功率晶体管,但顺序相反。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、霍尔传感器的换相处理、正弦驱动信号的产生和电机的转速控制,因而所需的外围器件少,成本低,并且还可提高系统的可靠性。