三电平空间矢量调制的FPGA实现
2010-06-30胡海兵姚文熙吕征宇
胡海兵 姚文熙 吕征宇
(1. 南京航空航天大学航空电源重点实验室 南京 210016 2. 浙江大学电力电子国家专业实验室 杭州 310027)
1 引言
在大功率、高电压的应用领域,多电平拓扑因具有改善输出波形质量、减少电压应力和提高电压等级等诸多优点已成为近年来电力电子一个研究热点[1-3]。在众多的多电平拓扑中,二极管钳位型三电平应用最多,国内外学者就该电路变换器展开深入研究,包括拓扑软开关实现、中点电压平衡策略和各种调制方法等方面[4-5]。在各种三电平的调制方法中,空间矢量调制具有较高的直流利用率等优点,在三相系统中广获使用[6]。
虽然两电平和三电平空间矢量调制的原理完全一样,但是由于三电平开关状态较多,并存在冗余和中点电压平衡问题,因而,三电平空间矢量调制的实现要复杂得多。据目前发表的文献,三电平空间矢量调制都是采用软件的方法予以实现[4-8],这种实现方法具有较好的灵活性和适用性,但也存在若干缺点:①调制算法执行时间较长,产生较长的控制延时,从而影响控制性能。②占用较多的计算资源。为了解决这类问题,在一些应用系统中采用多处理器系统[9],然而这种多处理器的架构将会极大增加软硬件设计的复杂程度,同时系统的可靠性也会大大降低。
随着微电子技术和 EDA(Electronic Design Automation)技术的快速发展,应用硬件实现一些复杂算法是近几年兴起的一种全新设计思想。文献[10-11]采用FPGA实现两电平的空间矢量调制;为了减轻处理器的计算负担,文献[12]用 CPLD实现基于模型参考自适应的速度估算核;文献[13]在FPGA中实现感应电动机的直接转矩控制。不难看出,上述几个实现方案都借用硬件的并行性来快速实现复杂计算,因而采用硬件直接实现运算复杂的三电平空间矢量调制算法将会为上述问题提供一种较好的解决方法。本文详细给出了三电平矢量调制算法的硬件实现方法,包括三电平空间矢量的优化算法、关键数据的处理和实验验证。
2 三电平空间矢量原理和计算流程
2.1 基本原理[14]
二极管钳位型三电平主电路如图1所示,每一桥臂有四个开关管组成,相应的有效开关状态有 3种,分别记作:P、O和N。桥臂开关状态与终端电压之间状态关系见表 1,对于三相的三电平主电路有33=27种开关状态,总共有27个矢量,其中零矢量有3个,短矢量有12个,中矢量有6个,长矢量有6个。由这些矢量可以得出三电平矢量图,如图 2所示。任何一参考矢量 Vref都可以由与它相近的固定矢量来合成。为了叙述方便,把这27个矢量称为固定矢量,同时扇区用字母标识,扇区内区域用数字标识。
图1 二极管钳位型三电平主电路Fig.1 Main circuit of NPC three level topology
表1 桥臂开关状态与终端电压关系Tab.1 Switching states and their terminal voltages
图2 三电平空间矢量图Fig.2 Space-vector diagram of the three-level topology
2.2 基本计算流程
根据空间矢量的基本原理,容易得到三电平空间矢量调制的实现过程,图3为三电平空间矢量调制基本计算流程。对于任何一个参考矢量,空间矢量的合成计算在相应扇区内只需完成一次计算即可。用软件容易实现这种计算流程,同时也不增加算法计算时间,然而若采用基于并行处理的硬件实现,那么在硬件计算资源上必须同时具备6个扇区的矢量调制计算,这将极大耗费硬件资源。为了有效地减少算法对硬件资源的需求,因此有必要对三电平空间矢量的基本计算流程进行相应优化。
图3 三电平空间矢量调制基本计算流程Fig.3 Basic calculation flow of three level SVPWM
3 优化算法
由图 2容易看出,6个扇区的几何形状完全相同。实际上,不同扇区内同一相对位置的参考矢量在矢量作用时间计算上存在对应关系。如图4所示,设参考矢量落在A扇区的2小区,而参考矢量由参考矢量逆时针旋转60°得到,根据合成矢量的伏秒平衡原则,参考矢量和分别可用式(1)和式(2)合成
图4 在A、B扇区相差60°参考矢量Fig.4 Two reference vectors with 60° shifting in the sector A and B
由式(1)和式(2)分别易得固定矢量作用时间ta、tb和tc。把式(1)乘以旋转因子 e-jπ/3可以转换成式(2),具体变换为
上式说明A扇区和B扇区的固定矢量作用时间ta、tb和tc完全相等,其结果容易推广到其他扇区。因此,矢量作用时间的计算可以通过矢量旋转变换集中在A扇区内进行。
若能找出A扇区与其他扇区的相应参考矢量所对应开关序列的内在联系,那么就可以在A扇区内进行开关序列的安排,然后通过开关序列的对应关系,把A扇区的开关序列映射到其他扇区内,则所有计算流程可以集中在A扇区内完成。
表2 合成6个扇区参考矢量的相电压关系Tab.2 Relationship of phase voltages constructing the reference vectors in six sectors
相序的交换非常简单,通过交换相之间的相应的 PWM信号就能实现。相电压的反相则可以通过桥臂内上下桥臂之间的 PWM信号的镜像得到,如图5所示,若该相桥臂开关状态为P,镜像后,开关状态为N,同样当开关状态分别为N和O,镜像后,开关状态分别为P和O。
图5 PWM镜像后的电压反相实现Fig.5 Phase voltage reversing by mirroring PWM signals
容易推出上桥臂开关管 S1和 S2在镜像前后占空比之间的关系,见表 3,其中 PWM输出为对称方式,Ts为开关周期。
表3 镜像前后S1和S2管的占空比关系Tab.3 Relationship of on-times of S1 and S2 before and after mirroring
通过优化算法,6个扇区计算流程可以映射到A扇区来完成,具体计算流程如图6所示。优化算法减少了对硬件资源的需求。
图6 优化计算流程图Fig.6 Optimized calculation flow chart
4 硬件设计
根据优化计算流程,三电平SVPWM硬件实现电路可划分为如图7所示的几大功能模块,分别为扇区判断、参考矢量旋转、矢量作用时间计算、小区判断、开关时序分配、映射和转换以及PWM发生单元。通过接口电路,MCU或DSP可以方便地操作四个寄存器,其中寄存器uα和uβ用于存放参考矢量的两个分量,另两个 PWM设置寄存器分别用于设置PWM开关频率和死区时间。
图7 三电平SVPWM硬件实现电路功能结构Fig.7 Hardware functional blocks of three level SVPWM
在硬件设计中,需要考虑计算精确度、硬件简单性和灵活性等诸多因素。为此,本文采用若干设计措施。此外,所有的计算均采用16位的定点运算。
设计措施一:数据归一化处理
对输入参考矢量uα、uβ进行标幺化处理,同时对PWM占空比tx也进行标幺化处理,本文选取各自基准值为
式中 2E——母线电压;
Ts——开关周期。
同时考虑到 PWM过调制和运算过程中系数的大小,在整个运算中统一采用Q14定标。
设计措施二:乘法计算处理
在计算过程中,所有乘法均涉及 3Y X= 的运算,为了减少硬件资源,本文采用把乘法变成相应的加法来实现,其具体实现过程如下:
3的整数近似值可表示为式(8)的形式
该乘法实现结构框图如图8所示,该方法容易用简洁的HDL语言来实现。
图8 基于加/减法的乘法实现结构Fig.8 Realization of multiplication based on addition/subtraction
设计措施三:溢出处理
当输入的参考矢量位于过调制区时,运算过程就可能会出现溢出。在本设计中乘法的实现全部用加法和减法来替代,因此整个运算过程只有加法和减法这两种运算,在可能出现溢出的加减运算中,本文采用带有溢出符号的加减运算IP核,如图9所示,当结果出现溢出时,需要对运算结果进行额外处理,本文依据真值表4对运算结果进行处理。
图9 带有溢出判断的加/减IP核Fig.9 Addition/subtraction IP core with overflow flag
表4 加/减运算溢出处理真值表Tab.4 True table of overflow processing for addition/subtraction
5 仿真验证
图7所有功能模块采用VHDL硬件描述语言实现,通过编译、优化和综合把这些模块组装成一个完整的三电平空间矢量核。为了仿真测试方便,参考矢量输入 uα、uβ分别存放在两块 ROM 中,存放长度为一完整的波形周期,共256点,如图10所示,每次CLK从ROM中取出相应参考矢量送入三电平SVPWM电路,输入时钟周期为10MHz。为了直观表示仿真结果,把仿真所得的占空比导入Matlab中用图形方式表示,图11只给出A相的占空比波形,B、C相与A相的占空比波形在形状上是完全一致的,只是相差120°的相位,该图说明占空比的计算结果正确。仿真结果验证三电平SVPWM硬件设计正确。
图10 参考矢量发生器Fig.10 Reference vector generator
图11 A相上桥臂S1a、S2a管在不同调制比下的调制波形Fig.11 The modulation waveforms of switches S1a and S2a in phase A with different modulation indexes
6 实验验证
本文利用QuartusII 6.0对三电平空间矢量调制的顶层设计采用面积优化方式分析和综合,并下载到型号为EP1C6的FPGA中进行实验验证。表5为FPGA硬件资源使用情况。
表5 硬件电路的资源利用情况Tab.5 Resource summary of the designed hardware circuit
时序分析结果表明该三电平空间矢量调制电路运算频率可以超过13MHz,开关周期和死区时间均可以通过寄存器进行设置。验证平台如图12所示,DSP通过接口电路方便地设置开关周期和死区时间,由 PWM发生器每周期产生一次的溢出信号连接到 DSP外部中断 INT0,在该中断服务程序中,DSP向uα和uβ寄存器输入参考矢量,参考矢量一个完整的波形周期为200点。试验设置和主电路参数如下。实验参数设置:输入时钟CLK 10MHz,开关频率fs=10kHz,PWM输出方式对称PWM,死区时间 1.2µs;主电路参数:母线电压200V,滤波电感Ls=1.27mH,滤波电容C=10µF(星形联结)。
图12 实验验证平台Fig.12 Experimental setup
在实验验证时,采用三种典型调制比(m=0.25,0.875,1.5)对每一扇区的每个区域的计算都进行验证。图13为不同调制比下线电压调制波形和滤波后的线电压波形。图13a为调制比m=0.25时输出的线电压波形,在该调制比下仅用到短矢量,因而线电压输出仅为3电平,幅值为100V;图13b为较高调制比时输出的线电压波形,线电压输出为5电平。而图13c为过调制情况下输出的线电压波形,由于在设计中对过调制区采用限幅措施,尽管参考矢量落在过调制区,输出的线电压波形依然正确。通过对三个典型调制比的输出线电压实验验证,说明该三电平空间矢量调制的硬件设计完全正确。
图13 不同调制比的LC滤波前后AB相电压调制波形Fig.13 Line voltages before and after LC filter with different modulation indexes
7 结论
本文用硬件方式实现了三电平空间矢量算法。为了减少对硬件资源要求,提出了一种优化的三电平空间矢量算法。在具体硬件电路设计中,为了提高电路的适用性、灵活性和计算精确性,采用若干关键的数据处理设计措施。该电路既可作为 MCU或DSP的外设用于实现三电平空间矢量计算,也可以和其他功能电路组成更复杂控制硬件电路。仿真和实验结果表明该硬件电路能在低调制到过调制的宽范围中正确运行。
[1]Soto D, Green T C. A comparison of high-power converter topologies for the implementation of FACT controllers[J]. IEEE Transactions on Industrial Electronics, 2002, 49(5): 1072-1080.
[2]Peng Fangzheng. A generalized multilevel inverter topology with self voltage balancing[J]. IEEE Transactions on Industry Applications, 2001, 37(2):611-618.
[3]Lai Jih Sheng, Peng Fangzheng. Multilevel converters-a new breed of power converters[J]. IEEE Transactions on Industry Applications, 1996, 32(3):509-517.
[4]Jae Hyeong Seo, Chang Ho Choi, Dong Seok Hyun. A new simplified space-vector PWM method for three-level inverters[J]. IEEE Transactions on Power Electronics, 2001, 16(4): 545-550.
[5]Thomas Bruckner, Donald Grahame Holmes. Optimal pulse-width modulation for three-level inverters[J].IEEE Transactions on Power Electronics, 2005, 20(1):82-89.
[6]Subrata K Mondal, Bimal K Bose, Valentin Oleschuk.Space vector pulse width modulation of three-level inverter extending operation into overmodulation region[J]. IEEE Transactions on Power Electronics,2003, 18(2): 604-611.
[7]Yao Wenxi, Lu Zhengyu, Fei Wanming. Three-level SVPWM method based on two-level PWM cell in DSP[C]. Applied Power Electronics Conference and Exposition, 2004: 1720-1724.
[8]Song Q, Liu W, Yan G. DSP-based universal space vector modulator for multi-level voltage-source inverters[C]. Industrial Electronics Conference, 2003:1727-1732.
[9]Yao Wenxi, Hu Haibing, Lü Zhengyu, et al. Research on three-level inverter of six-phase synchronous motor[C]. International Power Electronics and Motion Control Conference, 2006, 2: 937-941.
[10]Tzou Ying Yu, Hsu Hau Jean. FPGA realization of space-vector PWM control IC for three-phase PWM inverters[J]. IEEE Transactions on Power Electronics,1997, 12(6): 953-963.
[11]Zhou Zhaoyong, Li Tiecai, Takahashi Toshio. Design of a universal space vector PWM controller based on FPGA[C]. Applied Power Electronics Conference and Exposition, 2004: 1698-1702.
[12]林平, 胡长生, 李明峰, 等. 基于模型参考自适应系统算法的速度估算核的研制[J]. 中国电机工程学报, 2004, 24(1): 118-123.Lin Ping, Hu Changsheng, Li Mingfeng, et al. The implement of speed estimation core based on MRAS algorithm[J]. Proceedings of the CSEE, 2004, 24(1):118-123.
[13]Sandro Ferreira, Felipe Haffner, Luis Fernando Pereira, et al. Design and prototyping of direct torque control of induction motors in FPGAs[C]. Proceedings of the 16th Symposium on Integrated Circuits and Systems Design 2003, 2003: 105-110.
[14]Nabae A, Takahashi I, Akagi H. A new neuralpoint-clamped PWM inverter[J]. IEEE Transactions on Industry Applications, 1981, 17(5): 518-523.