王大彧, 郭宏
(北京航空航天大学自动化科学与电气工程学院,北京 100191)
采用DSP和FPGA直驱阀用音圈电机驱动控制系统
王大彧, 郭宏
(北京航空航天大学自动化科学与电气工程学院,北京 100191)
针对直驱阀用音圈电机控制系统的性能要求,以及现有电机驱动控制器存在的不足,提出一种基于浮点数字信号处理器(DSP)和现场可编程逻辑门阵列(FPGA)的驱动控制器结构方案。根据系统驱动控制所需功能以及DSP和FPGA各自的特点,进行了功能划分。其中:DSP作为主处理器,主要负责完成上电自检、系统初始化、通讯、以及位置环计算;FPGA作为协处理器,主要负责完成PWM信号的产生、A/D采样控制、数字滤波及过流保护、与DSP之间的数据交换、以及电流环计算。运用模块化设计思想,采用VHDL语言编程完成了FPGA功能设计。实现了对直驱阀用音圈电机系统的位置/电流双闭环控制。仿真及实验结果表明,该驱动控制系统可以满足直驱阀用音圈电机系统的性能要求。FPGA的运用,简化了系统硬件结构,分担了DSP的计算负担,保证了驱动控制系统的实时性。
电机驱动控制;数字信号处理器;现场可编程逻辑门阵列;音圈电机;非线性PID
直接驱动式电液伺服阀(direct drive valve,DDV),具有高频响、大流量、抗污染能力强等优点,是目前电液伺服阀的主要发展趋势[1-4]。本文所研究的基于音圈电机的直接驱动阀(voice coil motor based direct drive valve,VCM-DDV)与传统电液伺服阀相比,其最大的区别在于取消了液压放大级,用大功率音圈电机直接驱动滑阀阀芯,从而提高了阀芯运动的固有频率。因此,对直驱阀用音圈电机系统的驱动控制性能有较高要求。
传统的直驱阀用驱动控制器普遍采用模拟控制实现[5-6],其存在一些固有缺点,如调试不方便、温漂、无法与其他数字控制器直接实现接口。数字控制器具有对环境变化不敏感、可实现复杂算法、可增加附属功能等优点,是今后控制器发展的主要方向。现有电机数字控制器广泛釆用数字信号处理器(digital signal processor,DSP)并配合一些外围电路来完成电机控制,如TI公司C2000系列DSP等。该控制器结构有两点不足[7-10]:一是其釆用的DSP核心均为定点型,无法高速、高精度的完成一些较为复杂的控制算法;二是外设模块均是固化的,用户无法对其结构进行修改,缺少灵活性。近年来,现场可编程逻辑门阵列(field programmable gate array,FPGA)发展十分迅速,其具有集成度高、功耗低、编程配置灵活且易于移植等优点[11-12]。将FPGA应用于电机控制系统,不仅可以简化系统硬件结构,而且增加了系统设计的灵活性。在现有的采用FPGA的电机驱动控制器中[13-15],FPGA通常只负责完成一些简单的逻辑操作和时序转换,其性能并未得到充分发挥。
本文提出一种基于浮点DSP和FPGA的驱动控制器硬件结构,实现对直驱阀用音圈电机的位置/电流双闭环控制。根据DSP和FPGA各自的结构特点,以及系统控制中所需功能,进行了功能划分,并给出了FPGA功能设计和DSP软件设计的具体方法。
驱动控制器采用基于浮点DSP和FPGA的结构,并与信号检测电路和功率驱动电路相配合来完成VCM-DDV系统的驱动控制。系统硬件结构如图1所示。其中,DSP采用TI公司的32位浮点型DSP TMS320VC33;FPGA采用Altera公司的EP2C5;功率驱动电路釆用H桥电压型逆变器;电机位置传感器釆用电涡流式位置传感器;电流传感器釆用LEM霍尔闭环式电流传感器。
图1 系统硬件结构框图Fig.1 Block diagram of hardware
DSP属于软件可编程,其特点是具有通用性、灵活性、可以高速的完成复杂计算。FPGA属于硬件可编程,其特点是可以完成一些高速并行操作,但其不适合完成复杂计算,因为此时需占用大量逻辑单元。根据DSP和FPGA各自的结构特点,以及系统控制中所需功能,进行了功能划分。控制器的功能划分如图2所示。其中,DSP负责完成上电自检、系统初始化、通讯及位置环计算;FPGA负责完成PWM信号产生,A/D采样控制、数字滤波及过流保护,与DSP之间的数据交换,以及电流环计算。从DSP角度看,FPGA相当于他的协处理器。
图2 控制器功能划分Fig.2 Function dividing of controller
在FPGA功能设计时,采用模块化设计思想,将系统中需由FPGA完成的功能划分为独立的功能模块,利用VHDL语言编程实现。采用模块化设计,便于系统维护以及功能升级。FPGA中功能模块可划分为:1)PWM产生模块;2)A/D采样控制模块;3)采样信号数字滤波及过流保护模块;4)通信模块;5)电流环计算模块。
采用增减计数器、比较寄存器和比较器来实现PWM波的产生,即采用三角波比较法。为了防止H桥功率电路中上、下管直通造成电源短路,需要在PWM信号中加入死区。死区发生器由死区计数器和一些组合逻辑组成,使同相的上、下桥臂驱动信号错开一个死区时间,防止功率器件短路。死区时间由死区寄存器决定,最后输出各相上、下桥臂的驱动信号。
A/D采样控制通过有限状态机来实现。通过控制多路模拟开关Max309和高速单通道14位A/D转换器AD7899,并采用分时复用的方法,完成对电流反馈信号、位置指令信号、位置反馈信号的采样。A/D采样控制的流程图如图3所示。状态机则是根据A/D采样芯片的转换时序图来编写。A/D采样控制器的触发信号由采样周期定时器来产生,A/D采样控制器在采样结束后将产生一个标志信号以启动电流环计算模块。使用有限状态机控制高速A/D器件的优点:其一,状态机可以并行完成运算和控制操作。因此,由状态机构成的硬件系统工作速度更快。其二,状态机由纯硬件电路构成,其运行可靠性更高。
图3 A/D采样流程图Fig.3 Flowchart of A/D sampling
考虑到用FPGA实现复杂数字滤波算法需要占用较多的硬件资源,因此采样信号的数字滤波采用三点中位值滤波算法,即每次对反馈信号连续采样3次,然后把3个采样值从小到大排序,取中间值作为本次采样值。
过流保护模块通过对本次电流采样值进行判断,若超出设定的电流最大值,则立即封锁PWM信号,使功率主电路的各功率管均处于关断状态,并给出过流指示信号。
DSP与FPGA之间必须进行有效通信,才能协同工作。常用通信方式主要有:1)串口通信;2)DMA通信;3)利用标准总线通信;4)利用共享存储器通信。系统中要求DSP和FPGA之间进行高速可靠的通信,并且希望硬件结构尽可能简单。所以,选择DSP和FPGA之间通过双口RAM进行通信。在系统设计时,并没有直接外扩双口RAM,而是通过编程在FPGA内部实现了双口RAM。这样不仅简化了系统硬件结构,提高了可靠性,而且充分利用了系统现有硬件资源。由FPGA实现的双口RAM作为DSP的外扩存储器,其读写速度快,DSP对其访问无需插入等待。因而,可实现DSP与FPGA之间的高速数据交换。DSP与FPGA的通信原理如图4所示。
图4 DSP与FPGA通信原理图Fig.4 The schematic of communication between DSP and FPGA
电流环采用PI算法。由A/D采样的结束信号来触发PI计算模块,即每采样一次电流就进行一次电流环计算。由位置环计算得出的给定电流值与电流采样值相减得到当前的电流偏差,对电流偏差进行PI计算可得当前需要的占空比值。由于FPGA只能处理数字量,所以采用数字PI算法,并对输出进行了限幅。带输出限幅的增量式数字PI算法为式中:e(k)为当前电流偏差值;e(k-1)为上一次电流偏差值;u(k)为当前计算得到的占空比;u(k-1)为上一次计算得到的占空比;uo(k)为实际输出的占空比;umax、umin分别为占空比输出限幅的最大值和最小值;q0,q1为可调控制参数,q0>0,q1<0;k为采样时刻。
DSP软件设计采用自顶向下的设计思路,按功能划分了软件模块。由于系统中许多控制功能已由FPGA完成,因此,DSP的主要任务就是完成上电自检、系统初始化、以及位置环控制算法计算。DSP程序包括:主程序、系统初始化子程序、上电自检子程序、定时器T0中断服务程序等。
主程序的功能是调用上电自检程序对系统各部分进行自检,调用系统初始化子程序对系统进行初始化,启动定时器T0,然后进入循环体,等待定时器T0中断。当发生定时器T0中断时优先去执行中断服务程序,在中断服务程序中完成系统的控制。上电自检程序的功能是系统上电后对系统各部分硬件的进行自检,并根据自检结果给出相应的故障指示,以提高系统运行的可靠性及安全性。DSP主程序流程如图5所示。
图5 DSP主程序流程图Fig.5 Flowchart of DSP main program
定时器T0中断服务程序的功能是完成位置环控制算法计算,并将计算得到的电流指令发送给FPGA。位置环采用非线性PID控制,其可以很好地解决系统中快速性与超调之间的矛盾。
位置环非线性PID控制算法[16]为
位置指令信号跟踪微分器:
位置环非线性误差反馈控制率:
式中:v(k)为位置指令信号;v1(k+1)为位置指令安排的过渡过程;v2(k+1)为位置指令信号的微分;T为位置环计算周期;r1决定跟踪微分器的跟踪速度;z(k)为位置反馈信号;z1(k+1)为位置反馈信号;z2(k+1)为位置反馈信号的微分;r2决定跟踪微分器的跟踪速度;u(k)为电流指令;α、δ为常数,设计中 α 取0.5、δ取0.01;kP、kI、kD为可调参数,其意义分别与经典PID控制中的积分系数、比例系数以及微分常数相同。
在基于FPGA的应用中,对所设计的各部分进行功能以及时序仿真是十分有必要的。因此,本设计中利用Altera公司的FPGA开发软件Quartus II 7.0对FPGA中的各个功能模块进行了仿真,以验证设计的正确性。其中,PWM模块仿真波形如图6所示;数字PI计算模块仿真结果如图7所示。
图6PWM模块仿真波形Fig.6 Simulation results of PWM block
图7 PI计算模块仿真波形Fig.7 Simulation results of PI calculation block
利用自行设计的基于DSP和FPGA驱动控制器,进行了VCM-DDV系统实验。VCM-DDV系统参数如表1所示。
表1VCM-DDV系统参数Table 1 Parameters of the VCM-DDV
首先,进行内环电流环实验,以验证系统的电流跟踪性能。将通过仿真测试过的VHDL代码,经过编译后产生配置文件并下载到FPGA中。由于所采用的音圈电机为无铁心电机,因此其绕组电感较小,从而增加了电流控制的难度。为此,系统通过采用较高的PWM开关频率(40kHz)和较短的电流环计算周期(25μs),以获得较好的电流控制效果。这也正体现了由FPGA实现的控制器,处理速度快的优点。上、下桥臂的PWM信号波形和电流方波响应分别如图8和9所示。电流环实验结果表明,系统具有较好的电流跟踪精确度,可以满足系统性能要求。并且用FPGA构成的电流环控制器,具有结构简单、控制速度快、可靠性高等优点。
系统的位置正弦响应和位置阶跃响应分别如图10和11所示。如图10所示,系统具有很好地低速跟踪平稳性。如图11所示,系统的位置阶跃响应调节时间仅为3.8 ms,且无超调。实验结果表明,系统具有很好的位置跟踪性能,可以满足VCM-DDV系统性能要求。由于FPGA分担了DSP的计算负担,使DSP专用于完成位置环非线性PID控制算法的计算,因而提高了系统控制的实时性。
图8 上、下桥臂PWM波形(40kHz)Fig.8 PWM signal generated by FPGA
图9 电流方波响应(100Hz)Fig.9 Current square-wave response
图10 位置正弦响应(0.1Hz)Fig.10 Position sinusoid response(0.1Hz)
图11 位置阶跃响应Fig.11 Position step response
本文提出了一种基于浮点DSP和FPGA的音圈电机驱动控制系统,完成了高直驱阀用音圈电机系统的位置/电流双闭环控制。实验结果表明,该控制系统有较好的稳、动态性能,可以满足系统性能要求。通过对系统功能的合理划分,实现了系统硬件资源的合理配置。FPGA的运用,大大简化了硬件的设计,分担了DSP的计算负担,保证了系统控制的实时性。
[1] 郭宏,蔚永强,邢伟.三余度直接驱动阀驱动控制系统[J].北京航空航天大学学报,2007,33(11):1286-1290.
GUO Hong,YU Yongqiang,XING Wei.Triplex-redundancy control system for direct-drive-valve[J].Journal of Beijing University of Aeronautics and Astronautics,2007,33(11):1286 -1290.
[2] 方群,黄增.电液伺服阀的发展历史、研究现状及发展趋势[J].机床与液压,2007,35(11):162-165.
FANG Qun,HUANG Zeng.Developing process research actuality and trend of electro hydraulic servo valve[J].Machine Tool&Hydraulics,2007,35(11):162 -165.
[3] YU Kaiping,GUO Hong,WANG Dayu,et al.Design of multi-redundancy electro-mechanical actuator controller with DSP and FPGA[C]//International Conference on Electrical Machines and Systems.Seoul,South Korea:IEEE,2007:584 -587.
[4] 李其朋,丁凡.电液伺服阀技术研究现状及发展趋势[J].工程机械,2003,06:28 -33.
LI Qipeng,DING Fan.Current situations and developing trend of the research of electro-hydraulic servo valve technique[J].Construction Machinery and Equipment,2003,06:28 -33.
[5] LIN J S,CHEN C L.Buck/boost servo amplifier for direct-drivevalve actuation [J].IEEE Trans Aero and Electron Sys,1995,31(3):960-967.
[6] OBOE R,ANTONELLO R,CAPRETTA P.Realization of an adaptive voltage driver for voice coil motor[J].Microsystem Technologies,2005,11(8):663 -675.
[7] KOBAYASHI M,HOROWITZ R.Track seek control for hard disk dual-stage servo systems[J].IEEE Trans on Magnetics,2001,37(21):949-954.
[8] YU Kaiping,GUO Hong,WANG Dayu,et al.Design of multi-redundancy electro-mechanical actuator controller with DSP and FPGA[C]//International Conference on Electrical Machines and Systems.Seoul,South Korea:IEEE,2007:584 -587.
[9] 陈幼平,张代林,艾武,等.基于DSP的直线电机位置伺服控制策略研究[J].电机与控制学报,2006,10(1):61-65.
CHEN Youping,ZHANG Dailin,AI Wu,et al.Research on the DSP-based control strategies of a positioning servo system of the linear motors[J].Electric Machines and Control,2006,10(1):61-65.
[10] DUBEY R,AGARWAL P,VASANTHA M K.Programmable logic devices for motion control-a review[J].IEEE Trans on Industrial Electronics,2007,54(1):559 -566.
[11] ZHANG Da,LI Hui.A stochastic-based FPGA controller for an induction motor drive with integrated neural network algorithms[J].IEEE Transactions on Industrial Electronics,2008,55(2):551-561.
[12] 刘东,黄进,陈高,等.FPGA在大功率多相变频调速系统中的应用[J].电机与控制学报,2010,14(6):52-55.
LIU Dong,HUANG Jin;CHEN Gao,et al.Application of FPGA in high-power multiphase variable speed drives[J].Electric Machines and Control,2010,14(6):52 -55.
[13] AYASRAH O Al,ALUKAIDEY T,PISSANIDIS G.Mixed signal DSP based multi task motion control system using external FPGA structural design[C]//IEEE INDICON,2005:419-422.
[14] HUANG J B,XIE Z W,LIU H,et al.Adaptive cartesian impedance control system for flexible joint robot by using DSP/FPGA architecture[J].International Journal of Robotics and Automation,2008,23(3):251-258.
[15] 颜景斌,刘嘉辉,谢金宝,等.矢量控制速度伺服系统的FPGA 实现[J].电机与控制学报,2007,11(1):17-20.
YAN Jingbin,LIU Jiahui,XIE Jinbao,et al.FPGA implementation of the vector-controlled speed servo system [J].Electric Machines and Control,2007,11(1):17 -20.
[16] HAN Jingqing.From PID to Active Disturbance Rejection Control[J].IEEE Trans Ind Electron,2008,56(3):900 -906.
(编辑:于智龙)
A DSP and FPGA based drive control system for voice coil motor used in direct drive valve
WANG Da-yu,GUO Hong
(School of Automation Science and Electrical Engineering,Beijing University of Aeronautics and Astronautics,Beijing 100191,China)
Aiming at the performance requirements of the control system for voice coil motor used in direct drive valve,a hardware structure of voice coil motor drive control system based on float-point digital signal processor(DSP)and field programmable gate arrays(FPGA)was presented.The assignment of the control system was functionally divided into the DSP and FPGA modules according to their structure features.DSP,as the host processor,fulfilled the system functions of self-test and the calculation of position loop.FPGA,as the coprocessor,fulfilled the system functions of PWM signal generation,analog signal detected and digital filtering,over-current protection,communication with DSP and calculation of current loop.Meanwhile,a double-closed loop control composed of position loop and current loop was accomplished.The function modularization design of FPGA was implemented by Very-High-Speed Integrated Circuit Hardware Description Language(VHDL).The simulation and experiment results show the system’s validity.The application of FPGA can simplify the hardware structure,release the calculation burden for DSP,and guarantee the real time of the drive control system.
motor drive control;field programmable gate arrays;digital signal processor;voice coil motor;nonlinear PID
TP 921
A
1007-449X(2011)04-0007-06
2010-09-04
国家科技支撑计划(2006BAF01B10-01)
王大彧(1982—),男,博士研究生,研究方向为特种电机设计及其驱动控制;
郭 宏(1967—),男,教授,博士生导师,研究方向为特种电机设计及其驱动控制。