基于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,用于决定功率晶体管开关频率及换相的时刻。在控制直流无刷电机转速时.通常希望在负载变化时也能使电机 转速稳定在设定值内,而不发生太大的波动。因此,在无刷电机内部设置霍尔传感器.以感应磁场变化,该传感器既可作为电机转速中闭环控制的速度反馈部件,也 可作为相序控制的依据。

  当控制器工作时,可根据霍尔传感器检测到电机转子的当前位置,依照定子绕组决定开启或关闭功率晶体管的顺序,使电流依序流经电机线绕组,以产生 顺向或逆向的旋转磁场,并与转子的磁铁相互作用,使电机顺时或逆时转动。当电机转子转动到霍尔传感器检测出另一组信号的位置时,再开启下一组功率晶体管, 如此循环,电机就能依据同一方向继续转动,直到控制器决定使电机转子停止时,则关闭功率晶体管;决定使电机转子反向时,则开启功率晶体管,但顺序相反。 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、霍尔传感器的换相处理、正弦驱动信号的产生和电机的转速控制,因而所需的外围器件少, 成本低,并且还可提高系统的可靠性。

继续阅读
基于AVR单片机的简易灭火机器人设计

本设计以AVR单片机为核心,通过传感器的检测使灭火机器人自动调整自身位置,自动完成沿轨迹行驶寻找火源,并将其扑灭,模拟灭火现场.本系统采用ATmega48作为控制核心,CPU产生的PWM脉冲波形触发H桥的功率元件,实现对电机的斩波调速,从而实现对直流电机高、低速运行的切换.

基于ATmega48的简易灭火机器人设计

本设计以AVR单片机为核心,通过传感器的检测使灭火机器人自动调整自身位置,自动完 成沿轨迹行驶寻找火源,并将其扑灭,模拟灭火现场。本系统采用ATmega48作为控制核 心,CPU产生的PWM脉冲波形触发H桥的功率元件,实现对电机的斩波调速,从而实现对直流电机高、低速运行的切换。

基于AVR的微功耗电刺激器

本系统选用的ATmega48V是ATmega48的低电压工作的芯片,选用ATmega48V作为电刺激器的主控芯片,几乎不需要另加其他的元件。

基于ATmega48的串口转FSK通信模块设计

以AVR单片机ATmega48芯片及CMX865调制/解调芯片为硬件架构规范了对外串口通信协议,采用模拟口线的方式对CMX865寄存器进行操作,设计了一种串口转FSK的通信模块,实现数据传输方式的转换。硬件电路以ATmega48微处理器为核心,并利用C/BUS总线控制CMX865芯片,实现FSK/DTMF收、发功能;外围电路由振铃检测、FSK数据收发接口电路组成。模块软件设计主要包括串口通信和FSK通信两部分程序,串口通信程序实现串口通信命令的组包发送、收包解析/处理功能;FSK通信程序实现利用中断方式发送、接收FSK数据功能。

基于ATmega48的串口电压表的制作

现在很多的高档数字万用表都具有RS232串行接口,万用表在实际测量电参数的同时把测量到的电参数按一定的通讯协议通过RS232串行接口传输到计算机

©2018 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss