无刷直流电机驱动控制器的SOPC技术研究
摘 要:采用纯硬件方式设计了无刷直流电机驱动控制器,详细介绍控制器各模块的设计,包括速度PI和电流PI调节器、电流检测模块、位置与速度检测模块、PWM发生器和换相控制模块,使系统控制电路都集成在一片FPGA上,提高了系统的集成度、稳定性和可靠性,也使得系统容易修改升级。软件仿真和实验结果均表明,该控制器的设计合理,运行稳定。
关键词:现场可编程门阵列(FPGA); 无刷直流电机; PI; PWM; Verilog HDL
中图分类号:TP23 文献标识码:A
文章编号:1004-373X(2010)11-0117-04
SOPC Technology of Brushless DC Motor Drive Controller
QI Hui, LEI Yang-jie
(Beijing University of Technology, Beijing 100124,China)
Abstract: A brushless DC motor drive controller was designed by pure hardware approach.The design of each module of the controller is introduced,including the speed PI and current PI regulator,current detection module,position and speed detection module,PWM generator and commutation control module.The system control circuit is integrated on only one FPGA,the integration,stability and reliability of the system are improved,and the system is easy to be modified and upgraded.The simulation and experimental results indicate that the design of the system is reasonable, and the operation is stable.
Keywords: filed programmable gate array(FPGA); brushless DC motor; PI; PWM; Verilog HDL
无刷直流电机具有无电刷和换相火花,体积小,低噪声等诸多优点[1],广泛应用在当今的控制系统中。目前对无刷直流电机的控制主要由单片机和DSP实现[2]。但是其外围电路复杂,对系统的稳定性和可靠性有较大的影响。近年来,基于可编程门阵列(FPGA)的硬件设计技术已经成为一种全新的设计思想。与专用集成电路(ASIC)不同的是,FPGA本身只是标准的单元阵列,没有一般集成电路所具有的功能,但用户可以根据需要,通过专门的布局布线工具对其内部进行重新编程,在最短的时间内设计出自己专用的集成电路,从而提高产品的竞争力。由于它以纯硬件的方式进行并行处理,而且不占用CPU的资源,所以可以使系统达到很高的性能。本文用纯硬件的方式设计实现了无刷直流电机驱动控制器,包括PI调节算法,外围电路简单,实时控制速度快,系统稳定可靠。
1 无刷直流电机的工作原理
无刷直流电机主要由电动机本体、位置传感器和电子开关线路三部分组成。其基本工作原理就是借助反映转子位置的位置信号,通过驱动电路,驱动逆变电路的功率开关元件,使电枢绕组依一定顺序通电,从而在气隙中产生旋转磁场,拖动永磁转子旋转。
三相四极星型连结的无刷直流电机采用两两导通方式,位置传感器在无刷直流电机中起着测定转子磁极位置的作用,为逻辑开关电路提供正确的换相信息[3]。无刷直流电机转子位置信号由3只在相位上差120°的霍尔传感器(Sa,Sb,Sc)检测,霍尔传感器一个周期内的开关信号有6个状态,如图1所示。无刷直流电机控制系统工作原理如图2所示,其中VF为逆变器,根据霍尔信号,FPGA控制器产生PWM信号,经过驱动电路放大送至逆变器各功率开关管(Th1~Th6),从而控制电机各相绕组按照一定顺序工作,实现无刷直流电机正常运转。
2 控制器的整体设计
随着现代技术的进步,电机驱动对控制器在快速性、实时性和准确性方面提出了更高的要求,使得高性能的FPGA在控制器开发领域有了广阔的应用前景。系统使用FPGA XC3S1500完成无刷直流电机控制系统,采用转速、电流双闭环控制策略调节速度[4-5]。图3为无刷直流电机驱动控制器硬件逻辑设计结构图,其中各模块均采用硬件逻辑设计完成,模块之间使用串行连接,霍尔信号Sa,Sb,Sc经过换相控制模块输出6路开关管信号,同时经过位置与速度检测模块计算得到速度反馈转速n并与速度给定Speed_Ref一起经过速度调节器调节得到电流环给定USpeed_Ref,控制A/D转换输出A相和B相电流经过电流检测模块输出母线电流Idc并与速度调节器输出值USpeed_Ref一起经过电流调节器输出占空比信号Comp用以调节PWM波的宽度,达到调速的目的。以数字电路的方式实现无刷直流电机的控制,使得系统的稳定性得到了很大的提高。
图1 霍尔信号对应电机控制逻辑图
图2 无刷直流电机控制系统工作原理图
图3 无刷直流电机驱动控制器硬件逻辑设计结构图
3 控制器模块设计
3.1 高精度PWM发生器
采用自然采样法产生PWM波形,其结构图如图4所示,因为自然采样法最能真实反映PWM的控制思想,效果最好[6]。该发生器采用现场可编程门阵列实现,具有接口简单、响应速度快、可现场编程等优点,能够应用于全数字化控制[7-8]。载波发生器采用了锯齿波作为PWM载波,从电路的角度来讲设计锯齿波发生器会比设计三角波发生器使用更少的组合逻辑资源,有利于时序约束到较高的频率;比较模块不同于普通的纯组合逻辑比较器,通过例化FPGA的底层子元件,在该比较器内部插入了一级D触发器,大大减少了由于数据位宽增加而增加组合逻辑延迟;PWM波周期设定模块和分频模块能够根据需要共同改变PWM的频率,且分频模块能够解决高位宽下过长的进位链带来的延迟问题。
图4 PWM发生器硬件逻辑结构图
3.2 换相控制模块
换相控制模块根据三相霍尔信号的状态(见图1),以组合逻辑的形式输出六路开关信号Th1~Th6(设计中开关管为低导通),开关管Th1,Th3,Th5接收来自PWM波发生器输出的PWM波,即系统采用半桥调制方式,其时序仿真波形如图5所示,图中1~6表示了一个霍尔信号周期内开关管的6个状态(与图1对应)。
图5 换相模块时序仿真波形
3.3 速度调节器和电流调节器
速度环和电流环均采用增量式PI调节算法,用FPGA实现PI调节器,即用数字电路来实现PI控制算法,应用此硬件算法提高了控制器的可靠性和实时性,同时基本消除计算机给控制系统带来的影响。PI算法的硬件逻辑结构如图6所示。
PI算法公式如下:
Δu(k)=KP[e(k)-e(k-1)]+KIe(k)
u(k)=u(k-1)+Δu(k)
e(k)=r(k)-c(k)
式中:k为采样序号,k=0,1,2,…;
u(k)为第k次采样时刻的输出值;
u(k-1)为第(k-1)次采样时刻的输出值;
e(k)为第k次采样时刻输入的偏差值;
r(k)为系统给定;
c(k)为系统反馈输入;
KP为比列系数;
KI为积分系数。
图6 PI算法的硬件逻辑结构图
设计中的Clk为时钟信号,Ref为给定信号,Fdb为反馈信号,PI_Result为PI调节器输出,为了与AD反馈结果匹配,均采用13位有符号数表示,KP和KI为PI参数,模块中的整体运算均采用先对数据符号进行判断,然后再进行普通的计算,运算结果的符号由以前得出的数据符号确定。时序控制子模块用来控制调节器中其他模块的运算顺序;求偏差模块负责给定信号与反馈信号求差,将结果输出给比例模块和积分模块;比例模块实现比例系数与本次偏差和上次偏差之间差的乘积,积分模块实现积分系数与本次偏差的乘积;求和模块在上述模块输出有效时计算出输出的偏差量,此偏差量和上次的输出值求和得到本次调节的结果并输出。PI调节算法被例化于速度调节器和电流调节器中。输出结果限值也在模块中设置,若输出值大于等于系统的限幅值,则调节器以限幅值作为本次的输出值。
3.4 电流检测模块
电流反馈检测模块包括电流采样、滤波模块和多路选择器,硬件逻辑结构图如图7所示。电流采样采用ADI公司的AD7862AR-2,AD7862是高速的12位并行AD芯片,最高采样频率为250 KSPS,内部参考电压为+2.5 V,工作电压为+5 V,有A和B两个通道,每个通道又有两个输入端(VA1,VA2与VB1,VB2),两个输入端可以同时进行转换,系统使用A通道的两个输入端分别对A相和B相电流进行采样。AD控制器输出信号Ia_Fin和Ib_Fin分别为A相和B相电流,经过滤波电路输出给多路选择器,多路选择器根据开关管状态判断此刻的母线电流是A相电流还是B相电流以及电流的正负关系,从而能够准确采样瞬时电流,提高控制精度。
图7 电流检测模块硬件逻辑结构图
根据AD7862采样时序图,AD控制器控制AD芯片工作,可以通过AD控制器调节AD的采样频率,最大到250 KSPS,本模块采样频率设置100 KSPS进行验证。其仿真波形符合AD7862的采样时序图,并通过了测试。图8为AD控制器的时序仿真波形。
图8 AD控制器的时序仿真波形
3.5 位置和速度检测模块
位置信号通过三个霍尔传感器得到,每一个霍尔传感器都会产生180°脉宽的输出信号,如图9所示。Sa,Sb,Sc分别表示三相霍尔信号,Clk为高频时钟脉冲。电机测速分为M法、T法和M/T法,T法测速适用于低速段,本设计采用T法测速[8]。通过对霍尔信号Sa的每个周期用一个计数器对主时钟脉冲进行计数,通过除法器计算转速,计算公式如下:
Speed_out=60×f0/Z×Count_reg
式中:f0为系统时钟;Count_reg为霍尔信号一个周期内的脉冲计数值;Z为电机转一圈输出的霍尔信号个数,因为是五对极电机,所以Z=5。
图9 三相霍尔信号输出波形
图10为位置与速度检测硬件逻辑结构图,三相霍尔信号通过数字滤波模块后,以霍尔信号Sa为条件的计数器启动计数,作为16位除法器的分母输入,经过除法运算,在下一个霍尔信号Sa周期内输出速度计算结果Speed_out及模块输出有效信号OutValid_Speed。运算时间与除法器的内部结构有关。
4 实验结果
采用额定功率PN=300 W,额定电压UN=220 V,额定转速nN=3 000 r/min,额定电流IN=1.6 A,额定转矩TN=0.96 Nm的无刷直流电机进行实验,整个实验系统还包括以FPGA为主的控制单元、功率电路和测功机负载实验平台,实验中采用转速、电流双闭环调节方式。电机给定转速1 000 r/min时,空载启动响应波形如图11所示,调节时间为300 ms,稳态性能良好;利用测功机对系统进行加载测试,负载0.3 Nm时A相和B相电流波形如图12所示,充分证明了该控制器的正确性,也说明电机运行稳定。
图10 位置与速度检测硬件逻辑结构图
图11 启动转速响应波形
图12 A相和B相电流波形
5 结 语
采用FPGA硬件可编程逻辑器件,以纯硬件的方式实现无刷直流电机的控制,对无刷直流电机控制的结果表明,该电路能有效地对无刷直流电机进行双闭环控制。设计特点是控制电机的所有外围电路包括PI调节算法均采用FPGA实现,真正实现电机的SOPC控制,系统实时性高、可靠性强。
参考文献
[1]张琛.直流无刷电动机原理及应用[M].北京:国防工业出版社,2001.
[2]王晓明,王玲.电动机的DSP控制[M].北京:北京航空航天大学出版社,2008.
[3]杨耕.电机与运动控制系统[M].北京:清华大学出版社,2006.
[4]Xilinx.Spartan-3 FPGA family datasheet[M]. USA: Xilinx, 2005.
[5]陈伯时.电力拖动自动控制系统[M].北京:机械工业出版社,2003.
[6]张运波.PWM信号的软件实现方法[J].微计算机信息,2002,18(30):53-54,57.
[7]张岩.基于FPGA的高精度PWM发生器设计与实现[J].微计算机信息,2009,25(2):162-164.
[8]潘明.基于FPGA的直流电机脉宽调制控制[J].广西科学院学报,2005,4(7):219-221.
[9]夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社,2003.
[10]CILETTI Michael D. Advanced digital design with the verilog HDL[M].北京:电子工业出版社,2005.