2008MicrochipTechnologyInc.DS01175A_CN第1页AN1175简介无刷直流电机(BLDC)引起众多关注。与有刷DC电机相比较,BLDC电机具有以下诸多优点:•省却了机械换向器可实现更高速运行•电刷性能限制了DC电机的瞬态响应能力•直流电机电刷上的压降增加了电机损耗•由于电枢电抗电压导致的电刷缺陷限制了铁心长度,从而降低了速度响应且增加了特定转矩下的电机惯量•BLDC电机中的发热源位于定子上,而DC电机的发热源位于转子上,因此BLDC的散热更为容易•降低了音频噪声和电磁噪声无刷直流电机具有许多不同的种类,它们的区别在于:-定子中的相数不同-转子上的极数不同-转子和定子之间的相对位置不同(即内转子和外转子结构的区别)本应用笔记讨论了三相电机。AN1178,《智能风机控制》(DS01178A_CN)则对两相电机进行了讨论,而单相电机则是从两相电机简化、衍生而来。背景知识对三相无刷直流电机具有的全面介绍,请参阅应用笔记“BrushlessDCMotorControlMadeEasy”(DS00857)。AN857对无刷直流电机及如何对其实现位置传感器反馈换相驱动进行了极佳的描述。通过采用高性能比较器模式和一些新的软件技术,此应用笔记展示了具有更高性能的无位置传感器换相控制策略。电机控制BLDC电机控制包括两部分。第一部分是使电机以昀高效的方式进行换相。第二部分是使电机速度控制在设定的参数范围内。本应用笔记的目的在于展示如何在低成本单片机上实现高性能的无位置传感器控制技术。所有演示软件都在开环速度模式下运行。硬件BLDC系统的硬件可分解为以下部分:-电机功率驱动器-使用反电势检测来检测转子位置-电流监测-单片机-单片机电源-速度设定点输入电机功率驱动器所有BLDC电机都需要三个半桥型驱动器。每个半桥驱动器控制电机的一相,如图1所示:作者:JosephJulicherDieterPeterMicrochipTechnologyInc.基于PIC16的无传感器无刷直流电机控制实现AN1175DS01175A_CN第2页2008MicrochipTechnologyInc.图1:电机功率驱动器RA1RA07/832415/6Q1TPC8405Toshiba7/832415/6Q2TPC8405Toshiba7/832415/6Q3TPC8405ToshibaUVWR1220R2220R3220U_LV_LW_LR4220R5220R6220R7R332010C147u16VQ4BC847BQ5BC847BQ6BC847BR10220123J1DC2.5mmD1S3AC2100n16VU_HV_HW_HRA0/AN0/C1IN+/ICSPDAT/ULPWU19RB7/TX/CK10RC0/AN4/C2IN+16RC1/AN5/C12IN1-15RC2/AN6/C12IN2-/P1D14RC3/AN7/C12IN3-/P1C7RC4/C2OUT/P1B6RC5/CCP1/P1A5RC6/AN8/SS8RA4/AN3/T1G/OSC2/CLKOUT3RA5/T1CKI/OSC1/CLKIN2RB4/AN10/SDI/SDA13RB5/AN11/RX/DT12RB6/SCK/SCL11RA1/AN1/C12IN0-/VREF/ICSPCLK18RA3/MCLR/VPP4RA2/AN2/T0CKI/INT/C1OUT17RC7/AN9/SDO9U1PIC16F690UVWU_HV_HW_HV_LU_LW_L12345678J2MM8-FR847kR910kR1147kR1210kR1347kR1410kR1547kR1647kR1747kR183k3V_UV_VV_WUVWUVWV_STARV_UV_VV_WV_STARR193k3Q7BC847BR2047koptionalC3100nMCLRR2147kVCCMCLRVBUSR22220R23220D2Zener5.1VC4100nVBUSVDDRV125kR2447kVDDR2522012SW1Start/StopSpeedBUS-VoltagedividerStar-PointreconstructionOvercurrentdetection123456J3CONN-SIL6ICD-ConnectorMCLRVDDRA0RA12008MicrochipTechnologyInc.DS01175A_CN第3页AN1175在该示例原理图中,采用三个P沟道MOSFET对从+VCC端流进电机每一相的电流进行控制。另外,还有三个N沟道MOSFET对从电机每一相流入地的电流进行控制。在N沟道MOSFET和地之间设置有一个小电阻(R7),用来对流经电机的电流进行检测,其两端的电压与流经该电阻的电流成正比。三个BJT晶体管用来驱动P沟道MOSFET。N沟道MOSFET则由PIC®MCU的I/O引脚进行驱动。对于较小功率的MOSFET和双极型晶体管输出级,通常不需要MOSFET驱动器。反电势检测为获得转子当前位置,系统需要采用某种转子位置检测环节。在有位置传感器的系统中,转子位置的检测是通过一系列霍尔效应传感器来实现的,霍尔效应传感器能够感知转子永磁磁极的位置。对于无位置传感器的设计,则是通过检测磁极何时从非导通相绕组下通过来获取转子位置信息。在每一个换相周期中,将有一相绕组处于不导通状态,因此可检测到转子磁极从在该绕组经过的时刻。以下电路采用自偏置形式,且使用一个比较器来实现反电势位置检测。图2:反电势检测电路注意到反电势检测电路包括四个单元,其中三个具有相同的电路结构。这些单元的目的在于检测过零事件,即使VDD电压处于变化过程中。可通过两种简单的方法来检测正弦波反电势的中点(过零点)。第一种方法是对其取反并将其与原波形进行比较。此时两波形的相交的地方即为反电势波形的中点。第二种方法是将反电势波形幅值缩小并将其与三相中点幅值缩小后的波形进行比较。同样两波形的交点则是反电势波形的中点。第二种方法昀为简单,因为它只需单个比较器和一些电阻。由于电机是一个三相系统,每一个电周期存在六个过零点,即三个上升沿过零点和三个下降沿过零点。当换相发生时,通过写入单片机中的CMxCON0SFR可选择三相输入中的一相。为降低成本,通常比较器输入端没有配置硬件滤波器,因此电机运行时造成的噪声可能导致虚假的过零点。解决方法是采用基于软件实现的择多检测器。为使择多检测器的实现更为简化,CMxCON0寄存器中的极性位在每一次换相时进行翻转,这将使得所有比较器输出上的过零看似一个下降沿。电流监测在任何电机控制系统中,电流监测都是一个比较好的功能,而对于BLDC电机则显得更为必要。电流监测具有以下优点:•大电流且没有出现过零点,表示转子堵转•过电流限制•转矩控制电流监测功能可通过在半桥开关单元对地回路中加入一个小的检流电阻来实现。如果检流电阻很小,则可能需要采用运算放大器。昀简单的过电流监测器只需对单片机进行复位并重新启动换相。图1中显示了该方法。电流检测电阻用来驱动Q7的基极。如果外部MCLR被使能,该晶体管将导致单片机复位。如果外部MCLR未被使能,则软件可进一步对该输入进行查询,并在检测到过电流条件时采取相应的保护措施。软件软件将实现以下任务:•起动电机•检测过零点•定子绕组换相•调节换相频率使之与电机转速匹配电机起动电机起动是无传感器控制昀需技巧的部分。昀简单的方法是通过低速率、低占空比的方式对电机进行换相从而起动电机。换相应与转子位置保持一定关系,这样在某一点过零检测器将能发现过零点。一旦检测到过零点,转子将开始与换相保持同步,从而进入正常运行模式。该方法非常简便,但存在一些问题:•电机可能进行无规律旋转直到获得同步•电机可能同步于实际转速的谐波转速上•电机起动过程可能耗时较长UR8R947kV_U10kP1VR11R1247kV_V10kP2WR13R1447kV_W10kP3UR1547kVR1647kWR1747kR183.3kV_STARAN1175DS01175A_CN第4页2008MicrochipTechnologyInc.为克服这些缺陷,可采用其他一些方法确定转子堵转位置并立即从该点启动换相。对于许多电机,一种简单的方法是在过零点之后延迟相应的时间进行强迫换相,这样可以获得令人满意的性能;本应用笔记中也采用了这一方法。过零检测器过零检测电路应能按照不同换相序列进行同步切换以选择不同的比较器输入,并对比较器的输出进行监控。比较器输出使用择多检测器进行滤波。该滤波器由换相序列表中的事件进行驱动,且在高电平到低电平跳变时进行触发。一旦检测到跳变事件,即进行换相。过零择多检测器在无噪声系统中,过零事件可通过观测反电势检测比较器的输出何时从1跳变到0来确定。高压条件下对大电流进行开关控制将会在系统中引入大量噪声(见图3)。在这样的环境下准确确定过零事件需采用某种形式的滤波方法来抑制噪声影响。采用分立元件构成滤波器的方案会带来太大延迟,使其难以应用于高速电机系统。分立的滤波器还存在温漂问题,从而导致对延迟问题的处理复杂化。一个较好的滤波器方案是延时具有可预测性且不受环境影响。择多滤波器可通过软件实现。软件滤波器具有固定且可预测的延时,且不会受到环境的影响。滤波器使用一系列比较器输出采样来检测过零事件。如果前半部分采样值中的大多数为1而后半部分采样值中的大多数为0,则认为出现了过零事件。对于6采样窗口,当前三次采样值中有2或3次为1而后三次采样值中有2或3次为0,这表明检测到过零事件。表1显示了所有满足这些条件的可能组合。图3:PWM噪声环境下的典型过零事件2008MicrochipTechnologyInc.DS01175A_CN第5页AN1175表1:过零事件每一个位模式中的的昀高位是这一系列中的第一个采样值。当进行每一次新的采样时,它将占据昀低位而其他所有数据位左移以腾出空间。移位后的结果是昀高位被丢失。实际上,位模式向左移到通过6采样窗口。当采样值通过采样窗口,择多滤波器在软件中是基于以下原理进行实现的。考虑到采样窗口的初始位为全零。当进行了一次逻辑高电平的采样,采样值将被左移进入滤波器采样窗口,这样导致窗口中的全部值为1。当进行新的采样时,其值将移位进入窗口,并将现有的值左移。如果采样值为1,而其他所有后续采样为零,在它移出和窗口值返回零之前,则窗口中的值开始为1,随后变为2、4、8、16直到昀后为32。窗口值将保持为零直至进行另一次逻辑高电平采样。对于每一次采样,窗口值首先加倍,随后将新采样值的逻辑电平加入窗口值。例如,窗口值为4时进行的采样为逻辑高电平,则窗口值将变为8加1为9。在下一次采样时,9将通过左移而加倍并加入新的采样值,这样结果将是18或19,取决于新的采样是否为逻辑高电平。初看起来,也许有人会认为择多滤波器可通过采用采样窗口寻址查询表的方法来构建。符合择多标准的地址将从表中返回过零事件的指示标志。这一点是可行的,但一些位模式在移过窗口时可能返回多个过零事件。这一问题也可通过在检测到过零事件后清除采样窗口的方法来解决。但存在两个问题:第一,某些模式可能永远不会出现;第二,清除采样窗口需要时间。对于第一种情形,考虑到模式60在下一次采样发生时可能变为模式56或模式57,这些模式都将返回事件标志。这表明择多标准表存在问题,模式56确实是一个无噪声的过零事件而模式57则是紧邻的第二个。如果表中存在模式60,则实际的事件模式56将不可能出现。一个简单的方法是将模式60从表中移除。但这不是唯一存在问题的模式。模式28也可能在下一次采样发生时变成模式56或模式57。模式28同样会导致模式56不会出现。实际上,还存在许多其他相类似的情况。表2:事件值表2列举了了所有事件值及其先前和后续的值。如果某一个事件值的前面或后面也是另一个事件值,则应考虑将其从表中移除。进行移除选择时,应衡量那一个事件值昀能表征实际过零事件。移除多余的事件值还能避免由于先前误检测从而导致过