基于单片机实现对单相无刷电机的控制系统设计
扫描二维码
随时随地手机看文章
对于小功率电机应用,成本比复杂性更为重要,并且对转矩的平顺性要求较低,因此单相无刷直流(BLDC)电机是三相电机或两相电机不错的替代方案。此类电机结构简单,易于制造,因此成本较低。此外,它只需要使用一个电枢位置传感器和几个MOSFET即可控制电机绕组。
对于小功率电机应用,成本比复杂性更为重要,并且对转矩的平顺性要求较低,因此单相无刷直流(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使用。
外层回路
图2中所示的外层回路用于控制电机在不同条件下的转速,例如负载需求、干扰和温度漂移变化等。转速由SMT测量。SMT是一款具有时钟和门控逻辑的24位计数定时器,经配置可用于测量多种数字信号参数,如脉冲宽度、频率、占空比以及两输入信号边沿之间的时间差。可通过SMT的周期和占空比采集模式测量电机的输出频率。在此模式下,SMT信号的占空比或周期都可基于SMT时钟进行采集。SMT会计算单个电机旋转周期内的SMT时钟数,然后将结果存储于捕捉周期寄存器中。使用该寄存器可获得电机的实际频率。将实际转速与参考转速进行比较时,如果实际转速高于设定的参考转速,则产生正误差;如果实际转速低于设定的参考转速,则产生负误差。此误差会馈入PI控制器。PI控制器是一种固件算法,用于计算转速偏差的补偿值。在初始PWM占空比的基础上加减此补偿值可得到新的占空比值。
主程序框图:
速度控制框图:
中断处理流程:
结论
在成本敏感型电机控制应用中,高效而灵活的单片机可大显身手。器件效率可针对外设集成度进行测量,从而优化控制任务、引脚和存储器数量以及封装尺寸。此外,如果需要不同的设计,易用性和上市时间也会显得尤为重要。本文介绍了低成本单片机如何满足上述需求,以及如何通过驱动器设置所需的参考转速、预测转子位置、实现控制算法、测量电机实际转速以及执行故障检测。