对于小功率电机应用,成本比复杂性更为重要,并且对转矩的平顺性要求较低,因此单相无刷直流(BLDC)电机是三相电机或两相电机不错的替代方案。此类电机结构简单,易于制造,因此成本较低。此外,它只需要使用一个电枢位置传感器和几个MOSFET即可控制电机绕组。
本文介绍的基于MCU的驱动电路实现对单相无刷电机的控制,它会利用两个反馈回路。一个是内层回路,负责控制换向;另一个是外层回路,负责控制转速。电机转速以外部模拟电压。作为参考,而且会检测出过流和过温故障。
基于单片机实现对单相无刷电机的控制系统设计
图1显示了基于Microchip的8位单片机PIC16F1613的单相驱动器。选择这款单片机是因为其引脚数较少,并且片上外设可以控制驱动器开关、测量电机转速、预测转子位置以及实现故障检测。本应用使用以下外设:互补波形发生器(CWG)、信号测量定时器(SMT)、模数转换器(ADC)、数模转换器(DAC)、捕捉/比较/脉宽调制(CCP)、固定参考电压(FVR)、定时器、比较器和温度指示器。上述外设通过固件在内部进行连接,因此可减少所需的外部引脚数。其中值得一提的是,互补波形发生器是一个好东西,由专门的硬件电路产生适合驱动马达的互补信号,大大简化了程序设计。
全桥电路由CWG输出进行控制驱动电机绕组,霍尔传感器用于确定转子位置。流过电机绕组的电流通过检测电阻Rshunt转换为电压,从而实现过流保护。转速以外部模拟输入作为参考。图2显示了电机驱动器控制框图。
对于本设计,电机额定电压为5V,额定转速为2400转/分钟。电机驱动器电源电压为9V。改变MOSFET的额定电压和导通电阻可以轻易适应从3.3V~100V不同的电压和对应的功率等级。参考转速可以是任一模拟输入,比如一个电位器和固定电阻组成的分压器,非常方便调速。PIC16F1613单片机的ADC模块具有10位分辨率以及多8个通道,因此适用于各类模拟输入。ADC模块用于提供参考转速和初始PWM占空比,从而根据参考转速源对电机转速进行初始化。
内层回路
内层反馈回路负责控制换向。
马达驱动就好像猴子推秋千一样,需要在恰当的时候用力。霍尔传感器负责告诉单片机何时用力。全桥驱动就好像在左边还有一个猴子,我们还要决定是哪边的猴子要用力。CWG输出用于控制定子绕组的激励,它取决于霍尔传感器输出的状态(霍尔传感器输出将通过比较器与FVR进行比较)。将使能比较器迟滞,以屏蔽传感器输出中的噪声。比较器输出可在正向全桥模式与反向全桥模式之间切换,从而使电机实现顺时针或逆时针旋转。CWG输出将馈入全桥电路的开关的输入。要生成一个电气周期,必须执行正反向组合。电机机械旋转一周需要两个电气周期,因此必须执行两次正反向组合电机才能完成顺时针旋转。
全桥电路
图3所示的全桥电路主要由两个P沟道MOSFET(用作上桥臂开关)和两个N沟道MOSFET(用作下桥臂开关)组成。P沟道
晶体管的主要优势在于可以在上桥臂开关位置轻松实现栅极驱动,从而降低上桥臂栅极驱动电路的成本。但这种组合上桥臂开关和下桥臂开关有可能同时导通,就是常说的跨越导通,应极力避免这种状况,否则将产生直通电流,导致驱动器元件损坏。
为避免跨越导通,可使用CWG的计数器寄存器来实现死区延时。这样可避免输出信号发生重叠,继而防止上桥臂和下桥臂同时导通。理想情况下,N沟道MOSFET和P沟道MOSFET应具有相同的导通电阻(RDSon)和总栅极电荷QG,以便获得的开关特性。因此,选择一对互补的MOSFET来匹配上述参数。
但实际上,由于互补MOSFET的结构不同,无法完全达到此要求;P沟道器件的芯片尺寸必须是N沟道器件的2到3倍才能匹配RDSon性能。但是,芯片尺寸越大,QG的影响也越大。因此,选择MOSFET时,务必先确定RDSon和QG二者中哪个对开关性能的影响更大,然后再相应地进行选择。
故障检测
若转矩负载超出允许的电机转矩负载值,可能会导致电机停转,从而使近似短路电流流过绕组。因此,为保护电机,必须实现过流和停转故障检测。为了实现过流检测,本设计中有Rshunt,该电阻会根据流过电机绕组的电流提供相应的电压。电阻两端的压降随电机电流线性变化。该电压将馈入比较器的反相输入并与参考电压进行比较,参考电压基于Rshunt电阻与允许的电机停转电流值之积。参考电压可由FVR提供,并可通过DAC进一步缩小。这样便可以使用非常小的参考电压,从而将电阻保持在较低水平,进而降低Rshunt的功耗。为了滤除噪声和保护单片机的IO,Rshunt上的信号通过R8,C5这个低通滤波器接入单片机,会造成一定时间的延迟触发,可以根据需要略微调整低通滤波器的时间常数。
如果Rshunt电压超出参考电压,比较器输出会触发CWG的自动关断功能,并且只要故障存在,CWG的输出便会保持无效状态。过温故障可通过器件的片上温度指示器进行检测,温度指示器的测量范围为-40?C至+85?C。指示器的内部电路会随着温度的不同而产生不同的电压,然后通过ADC将此电压转换为数字量。为提高温度指示器的度,可实施单点校准。
下图是马达绕向和电流图,供debug使用。
外层回路
的外层回路用于控制电机在不同条件下的转速,例如负载需求、干扰和温度漂移变化等。转速由SMT测量。SMT是一款具有时钟和门控逻辑的24位计数定时器,经配置可用于测量多种数字信号参数,如脉冲宽度、频率、占空比以及两输入信号边沿之间的时间差。可通过SMT的周期和占空比采集模式测量电机的输出频率。在此模式下,SMT信号的占空比或周期都可基于SMT时钟进行采集。SMT会计算单个电机旋转周期内的SMT时钟数,然后将结果存储于捕捉周期寄存器中。使用该寄存器可获得电机的实际频率。将实际转速与参考转速进行比较时,如果实际转速高于设定的参考转速,则产生正误差;如果实际转速低于设定的参考转速,则产生负误差。此误差会馈入PI控制器。PI控制器是一种固件算法,用于计算转速偏差的补偿值。在初始PWM占空比的基础上加减此补偿值可得到新的占空比值。
主程序框图:
速度控制框图:
中断处理流程:
结论
在成本敏感型电机控制应用中,高效而灵活的单片机可大显身手。器件效率可针对外设集成度进行测量,从而优化控制任务、引脚和
存储器数量以及封装尺寸。此外,如果需要不同的设计,易用性和上市时间也会显得尤为重要。本文介绍了低成本单片机如何满足上述需求,以及如何通过驱动器设置所需的参考转速、预测转子位置、实现控制算法、测量电机实际转速以及执行故障检测。