无刷直流电机的良好特性与其控制器的性能密切相关。介绍基于Microchip公司的数字信号控制器(DSC)dsPIC30F2010设计的300V无刷直流电机的控制器,阐述了利用这种DSC控制无刷直流电机的原理,详细介绍了该控制器的硬件结构与软件流程。实验结果证明了该控制器的可行性。
无刷直流电机具有与普通直流电机相似的线性机械特性和转矩/电流特性,在较高的转速下仍具有较高的可靠性,其良好的工作特性与无刷直流电机控制器的性能密切相关。
传统的无刷直流电机的控制器主要有两类,一类是专用控制集成电路,如Motorola公司的无刷直流电机控制器MC33035和电子测速器MC33039[1],专用集成电路结构简单、成本低廉,但是复杂的控制策略和算法难以通过硬件实现;另一类控制器是以单片机或者DSP为控制核心的无刷直流电机控制器,单片机外设丰富、中断处理能力强,但是软件编程实现复杂的数学运算需占用大量的程序空间,DSP计算能力强,但其引脚数目多,控制较复杂。
Microchip公司的数字信号控制器DSC(Digital Signal Controller)综合了单片机与DSP的出色性能,是嵌入式器设计的理想单芯片选择。本文介绍了基于一款数字信号控制器dsPIC30F2010设计的永磁无刷直流电动机控制器,并通过负载实验验证了该控制器的可行性。
dsPIC30F2010数字信号控制器以16位单片机作为其内核,具有强大的外设和快速中断处理能力,并融合了管理高速计算活动的DSP功能,28引脚的低引脚数封装形式使其成为电机控制领域的理想选择。它具有以下主要特性:
(1)改进的哈佛结构和最大30MIPS的指令执行速度使程序代码的执行效率更高,优化的C编译指令集,使控制程序的编写、调试和运行更加方便快捷;
(2)16位宽的数据总线提供8位单片机两倍的数据处理能力和速度,12K程序存储器提供了比传统单片机更大的程序空间,可擦写10万次的增强型闪存程序存储器使软件与硬件的结合更加方便;
(3)与传统单片机软件编程相比,DSC中两个40位宽的累加器和17×17位单周期硬件乘法器使复杂的控制策略和算法的实现更加快速;
(4)具有一个转换速率为500Ksps 的10位模数转换器(A/D)和三个16位定时/计数器,丰富的外设满足了电机控制的各种要求;
(5)具有一个专用的电机控制MCPWM模块,该模块有6个具备3占空比发生器的PWM I/O引脚,16位精度。可以通过软件编程实时更改PWM频率并且使其分别工作于互补或者独立的输出模式以及边沿和中心对齐模式,另外还可以实现手动输出控制。用于互补模式的死区时间控制可以避免驱动电路的直通故障。PWM特殊事件触发器实现了PWM与A/D转换的同步。
图1为无刷直流电动机及其控制系统框图,其中无刷直流电动机本体、转子位置传感器和控制电路是最基本的组成部分。无刷直流电动机的结构与永磁同步电动机类似,永磁磁极位于转子上,定子中放置多相定子绕组。
转子位置传感器的作用是获得转子位置信号,来控制功率开关器件按一定顺序接通或关断相绕组,以驱动电机转动。转子位置传感器通常是由霍尔集成元件构成,霍尔元件的数目以及在电机定子中放置所间隔的电角度由无刷直流电机的相数决定。
本文的控制对象为一台三相无刷直流电机,三个霍尔元件间隔60°电角度。
图2为三相霍尔位置信号的波形,根据在不同时刻相绕组的通电情况,分为6个工作区间,每个区间为60°电角度,在每个工作区间内有特定的两相绕组通电,图中给出了每个工作区间内霍尔位置信号编码和功率开关导通状态。
从图2中可以看出,三相霍尔位置信号可以构成一个三位二进制编码,每个二进制编码代表了转子所处位的置空间。在控制程序的开始建立驱动表,在得到位置编码之后查驱动表就可以驱动相应的功率开关。控制系统中,为了获得位置信号,位置传感器与dsPIC30F2010的中断输入CN(Change Notification)引脚相连,CN引脚上的电平发生变化会产生中断。在CN中断服务程序中,由位置信号编码查取应该导通的功率开关并使能相应的输出引脚,驱动电机转动。
表1为60°无刷直流电机功率开关驱动表。
与普通直流电动机相似,无刷直流电动机的转速与加在绕组两端的电压成正比,改变加在定子绕组两端的电压就可以实现无刷直流电动机的调速。在控制系统中,是通过改变加在功率开关器件上PWM驱动信号的占空比来调速的。
dsPIC30F2010的电机控制MCPWM模块是专为电机控制应用而设计的,它可以提供六个由PWM信号驱动的PWM输出。MCPWM有一个专用的16位的PTPER(Time Base Period Register)时基周期寄存器和PTMR定时器寄存器(Timer Register),PTMR定时器每隔一个指令周期TCY进行一次递增计数,并与PTPER寄存器的值进行比较,当两者匹配时,开始一个新的周期。因此,改变PTPER寄存器的值就可以改变PWM的频率。控制占空比的方法与此类似,只需改变三个PDC占空比寄存器中的值就可以实现。
1、 控制器的硬件设计
图3为基于dsPIC30F2010的无刷直流电机控制器的硬件结构图。霍尔位置信号与CN中断输入引脚相连,AN0引脚被软件配置为A/D转换模拟输入,将0~5V电压通过A/D转换作为速度给定。本文所控制的无刷直流电机额定功率500W,额定电压300V。电机的电源由工频电源经二极管整流桥模块获得,所采用的模块的参数为35A/1000V。
为了获得稳定的控制电压,控制电源采用高性能开关电源。本文采用HF10W-DL-C型双路输出开关电源,一路输出为恒定的5V,给单片机供电,另一路输出为15V,给无刷直流电机的霍尔元件以及MOSFET驱动集成芯片IR2110供电。功率开关器件采用德国英飞凌(Infineon)公司生产的MOSFET 20N60S,额定电压600V,额定电流20A。
IR2110是美国国际整流器公司(International Rectifier Company)生产的高性能MOSFET 驱动集成芯片,该芯片采用自举技术实现同一集成电路可同时输出两个驱动逆变桥中侧与低压侧的通道信号。IR2110的SD引脚为保护信号输入端,当该引脚接高电平时,IR2110的输出信号全被封锁。
控制系统中,功率驱动电路的负端通过一个小电阻接地。若通过功率开关的电流过大,使得检测电阻上的电压超过设定的安全工作电压时,比较器的输出与SD端相连为高电平,封锁全部PWM信号,起到对控制器和无刷直流电机的保护作用。
2、 控制器的软件设计
为了克服负载增加所造成转速下降,本文采用无刷直流电机转速闭环控制,速度控制环提供了对速度的(Proportional and Integral ,PI)比例和积分控制。在驱动程序中,使用TMR3作为定时器来测量电机的转速。
图4为闭环控制主程序流程图,程序的开始完成对MCPWM模块和A/D转换模块的初始化以及各功能引脚的配置,当按下电机起动键时,CN中断引脚读取霍尔位置编码,查驱动表,更改OVDCON寄存器中的值。OVDCON寄存器为手动输出改写寄存器,它的值决定六路PWM引脚的工作状态。当DSC检测到电机的实际转速与给定速度存在偏差时,PI控制服务子程序计算比例和积分速度误差,来改变PDC占空比寄存器的值,使无刷直流电机的实际转速与给定速度保持一致。
控制程序的编写与调试是在Microchip公司的集成开发环境MPLAB IDE中完成的。MPLAB IDE拥有32位调试环境应具备的所有高级编辑/编译/调试功能,它不仅集成了软件开发功能,而且集成了许多硬件开发工具,如软件模拟器MPLAB SIM、在线调试/开发编程器MPLAB ICD2,通过ICD2将程序烧写进DSC非常简单方便。
为了验证本文所设计的无刷直流电机控制器的可行性,对实验样机及其控制器进行了负载实验。样机的额定功率500W,额定电压300V,额定转速1500r/min。图5~图7为当电机从空载到额定负载时,输出功率、转速与效率随着负载转矩的变化关系。
从实验结果可以看出,本文所设计的基于数字信号控制器dsPIC30F2010的无刷直流电机控制器工作正常。该控制器比相同功能的DSP控制器结构简单,且控制程序采用高级语言C30语言编写,节省了程序代码占用的存储空间。与传统的专用集成电路相比,可以通过软件实现速度的闭环控制。数字信号控制器将在无刷直流电机控制系统领域广泛应用。
(摘编自《电气技术》,原文标题为“基于数字信号控制器的无刷直流电机控制器”,作者为张冉、王秀和、朱长青。)
联系客服