直流无刷电机广泛应用于计算机外围设备、数控机床、机器人、伺服系统、汽车、家电等领域。本文介绍的电机驱动电路就是某稳定平台的角度伺服控制回路的驱动部分。本文中设计的基于CPLD的电机驱动电路,充分利用cPLD的硬件可编程和实现逻辑运算方便的特点,用一片CPLD代替原有十几片逻辑门和一部分模拟电路。采用VHDL语言编程实现相关逻辑。利用CPLD在线可编程的特点,可以很方便的对系统进行调试。
1 无刷直流电机的驱动原理
直流无刷电动机是由电动机本体、转子位置传感器和电子开关电路组成一个闭环系统。与一般的有刷电机不同,他的定子为电枢绕组,转子采用永磁体。本文介绍的电动机采用了3相Y型联结的全控电路,其基本构成如图1所示。
其电子开关电路为6个IGBT组成的三相逆变电路。直流无刷电机驱动电路的作用就是对来自电机转子位置传感器的位置信号、来自外部的PWM控制信号以及其他控制信号采样并进行译码,使A,B,C三相绕组能按要求的顺序导通,实现定子绕组的正确换相,从而使电机正常运行。在实际应用中还要对电机的过压、欠压、过流、过热保护等进行设计。并按要求进行光电隔离和基极驱动电路设计。
2 系统总体方案设计
电动机驱动电路包括3个部分,即:
(1)CPLD核心控制电路;
(2)驱动及隔离电路;
(3)IPM接口电路;其系统框图如图2所示。
3 硬件电路设计
3.1 CPLD控制电路
该部分是电动机驱动电路的核心部分见图3,其信号采集、换相译码、死区发生器设计以及故障处理均由该部分完成。采集的信号有:电机控制器的PWM信号;正反转控制信号;经过整形的电机的霍尔位置传感器的位置信号;来自IPM模块的电机的欠压、过压、过流、过热等故障检测信号。这些信号输入到CPLD后,通过CPLD的软件实现换相译码、编程死区和电机保护逻辑,最后输出控制信号UP,VP,WP,UN,VN,WN到IPM的三相逆变电路。控制电机的三相电枢正确换相,从而使电机正常运行。
霍尔传感器信号的整形电路如图4所示:
采用4路精密电压比较器LM339完成。对来自霍尔传感器的信号进行整形,并对输出到CPLD的信号加滤波电容滤波。
3.2 驱动隔离电路
驱动隔离电路包括光电隔离电路和基极驱动电路。
光电隔离电路的作用是实现CPLD控制电路与IPM模块之间的电气隔离。隔离信号有2部分:
(1)CPLD输出到IPM模块的UP等控制信号;
(2)IPM反馈给CPLD的电机故障诊断信号F1,F2,F3,F4;
UP等信号的电气隔离采用高速光电耦合芯片6N137,该芯片的最大延迟时间为75 ns。可实现3 000 VDC的高电压隔离,适合于电气控制场合。IPM反馈给CPLD信号的电气隔离由光电耦合芯片4N25完成,如图5所示。
基极驱动电路采用9014三极管,并使三极管工作在开关状态。增加控制信号的驱动能力,并最终输出控制电压给IPM模块的三相逆变电路。如图6所示:
3.3 IPM接口电路设计
IPM(智能功率模块)将多个IGBT集成到一起,广泛应用于无噪声逆变器、低噪声UPS和伺服控制器中。一般含有栅极驱动、短路保护、过压、过流保护等。本文采用三菱电机生产的PM75CSA120的IPM模块实现驱动电机所需的三相逆变电路。他内部集成6只IGBT,每2只对应电机的一相。其额定负载电流为75 A,额定控制电压为1 200 V。另外还集成过流、过热、欠压、短路等故障检测电路,其示意图如图7所示。
出现故障时,IPM会将检测信号FO送到CPLD进行处理,采取相应的措施,提高系统的可靠性。
IPM工作需要单独的电源供电,与控制电路电源严格分开。其中上桥臂的3个IGBT各自需要1路电源,下桥臂的3个IGBT共用1个电源,这样就需要4路电源。其电源模块的电路如图8所示。
智能功率模块将功率电子器件和驱动电路集成到一起,并且内藏有故障检测电路,不仅体积小,而且可靠性高。
4 系统软件设计
4.1 软件构架设计
CPLD的软件采用VHDL语言编程实现。软件模块间的程序并行执行,没有程序流程图,只能用程序架构表示。CPLD的软件主要有电机的换相译码、死区发生器设计、故障处理和PWM与转向控制等功能,其软件构架如图9所示。
4.2 换相译码程序设计
换相译码器的作用是根据当前位置信号和PWM控制信号以及转向控制信号Q,确定出UP,VP,WP,UN,VN,WN的相应值。需要实现的逻辑表达式为:
4.3 死区发生器设计
为防止三相逆变电路上下桥臂的IGBT产生“共态导通”的现象,导致短路。需要给IGBT的控制信号的上升沿设置死区,使其在一段延时之后才真正达到高电平。
死区发生器设计采用饱和计数器的方式,类似于电容的充放电过程,需产生如图10所示的时序。其规则为:
(1)当UP_IN输入为0时,如果计数值T等于0,则计数值T保持不变,否则作减1计数;
(2)当UP_IN输入为1时,如果计数值T等于max,则计数值T保持不变,否则做加1计数;
(3)当输入为1且死区计数器数值T为MAX时,UP=1对应IGBT导通;
(4)当死区计数器数值在0~MAX之间时,UP=0,对应IGBT关闭;
下面为死区时间为N个时钟周期的VHDL程序,程序的运行结果如下。
4.4 IPM故障处理
在系统中故障检测信号的处理是把信号引入到CPLD中,然后UP实现的逻辑后输出,既保证IPM出现故障时,UP无输出,又保证UP与UN的反逻辑。
5 结 语
介绍一种采用CPLD做核心控制器的无刷直流电动机的驱动电路的设计。实现电机驱动所需的换相逻辑、电机运行故障处理以及可以灵活设置死区时间的死区发生器。该电机驱动电路可以用于高精度的伺服控制系统中。