1 引言
电力机车辅助逆变器为车上的辅助设备如空气压缩机、冷却风机、空调、照明等供电,因此对辅助逆变器的控制效果直接影响着整个电力机车的运行情况。20世纪80年代中后期,我国开始引进国外辅助变流器技术,取得了一系列的成就,但距离欧洲和日本等发达地区仍有很大差距[1],因此,研究辅助逆变器控制技术,加速国产化势在必行。
计算机技术的飞速发展促进电力机车辅助逆变器的控制系统向信息化、数字化、网络化发展。通常逆变器控制系统采用数字信号处理器DSP实现。目前很多DSP芯片具有系统时钟频率高、控制精度高、运算速度快、外设资源丰富等特点,大大促进了辅逆控制技术的发展,但依然存在成本高,外设资源分配受限、各模块只能顺序执行等方面的缺点。相对于DSP来讲,现场可编程门阵列FPGA具有丰富的IO资源,配置灵活,具有强大的时序电路和组合电路的实现能力,集成度高,节约开发成本,模块并行,可以同时执行多种不同的操作,但运算能力较弱。将DSP和FPGA有效结合起来,可以利用二者各自的优点,提高整个控制系统的性能,使其具有运算速度快、实时性强、开发灵活等特点[2]。此外,FPGA在PWM脉冲产生方面以及数字信号处理方面简单易行,成本低,速度快[3-6],同时FPGA弥补了一般处理器PWM通道不足的缺陷[7],很好地促进了变流器PWM控制的数字化发展。
文采用DSP与FPGA构成核心控制系统。首先提出了控制系统整体架构,简析了各控制模块的FPGA实现,其次分析了PWM脉冲控制的FPGA实现原理,最后实验验证了控制系统的可行性。
图1 控制系统总体框图
图2 周期控制示意图
图3 异步调制脉冲产生原理
463df1a【中国自动化网社区】e79158【http://sns.ca800.com】ca
2 控制系统总体设计
DSP、FPGA与丰富的外围电路构成了辅助逆变器的控制系统,其总体结构框图如图1所示。
DSP采用TI公司的TMS320VC33,具有高速、低功耗、低成本、易于开发的显著特点,有浮点运算功能,支持高达150M/FLOPS的运行速率,能够满足控制精度和速度的需求,适用于需要浮点运算的场合。FPGA采用Xilinx公司的XC3s1500,150万门阵列资源,丰富的IO管脚资源,采用verilog HDL语言进行开发,可重复使用,修改灵活方便。
该控制系统采用模块化设计,主要包括AD采样数据接收及处理模块、逻辑状态采集及控制模块、CAN通信控制模块、PWM脉冲控制模块以及故障日志记录及读取模块,还包括实时时钟(Real Time Clock,RTC)控制模块、数字温度传感器(Digital Temperature Sensor,DTS)控制模块等。由于FPGA管脚资源丰富,具有多种IO端口电平标准,可以满足各种控制需求,因此上述所有模块的外围电路均由FPGA控制,并且并行运行。DSP只与上级主控单元、FPGA进行通信,完成控制算法,接收上级指令,向上级反馈信息以及向FPGA发布控制指令和信息。FPGA与DSP之间的数据交换通过FPGA内部的双口RAM软核实现。
FPGA具有强大的时序电路处理能力,能够灵活产生满足一定时序关系的时序信号,控制外围电路的功能芯片,例如AD转换芯片,通过移位处理进行数据的串并转换,并可以进行简单的运算,对AD采样数据进行简单处理。同样FPGA通过产生相应的时序逻辑可以灵活地对CAN通信功能芯片、故障日志的flash芯片以及RTC、DTS功能芯片进行读写操作。同时将获得所有数据实时传输给DSP。
a2048【中国自动化网社区】e256f5【http://sns.ca800.com】6e1
图4 双极性相电压输出波形
图5 载波比为15的SHEPWM调制脉冲扇区划分
图6 死区产生示意图
a2048【中国自动化网社区】e256f5【http://sns.ca800.com】6e1
3 PWM脉冲控制的实现
辅助逆变器有两种运行模式,一种是定频模式,即工作于工频50Hz,一种为变频模式,工作于0~50Hz之间。调制波频率较低时,采用异步SPWM调制可以达到较好的控制效果,同时控制简单,而当调制波频率较高时,由于电力机车这种大功率场合,开关频率只有几百Hz,为避免大量低次谐波的产生,需要采用谐波优化处理方法[8]。因此,本文中0~50Hz之间,采用正弦脉宽调制(Sinusoidal Pulse Width Modulation,SPWM)方式,定频模式下采用特定次谐波消除PWM调制(Selected Harmonic Elimination PWM, SHEPWM)方式。
DSP根据SPWM和SHEPWM实现原理以及相关采样值计算得到每个控制周期的开关动作点,传递给FPGA,由FPGA产 生控制PWM脉冲,对开关管进行控制。同时,检测IGBT门极状态故障以及电源故障、过压过流等故障,并向DSP实时反馈故障信息。
3.1PWM脉冲的周期控制
PWM脉冲的控制周期由FPGA实现,采用增计数的方式产生控制周期计数器Counter_PWM,计数器在SPWM异步调制和SHEPWM调制模式下的计数周期分别为PRD_spwm和PRD_she。
周期计数器从0到计数周期值循环计数,在每个计数器的过零点产生一个低脉冲信号,作为DSP的外部中断信号,使DSP进入中断程序。DSP在中断程序中完成控制算法的运行,得出下一个控制周期的开关动作点CMP_1_X和CMP_2_X(X=A,B,C),然后将相应的控制信息和有效数据传递给FPGA,并通知其数据写入完毕。FPGA检测到数据写入完毕后,读取有效数据,在下一个计数器的过零点将开关动作点CMP_1_X和CMP_2_X赋值给比较寄存器,与周期计数器进行比较产生脉冲。同时,FPGA通过双口RAM将故障信息等数据反馈给DSP。周期控制实现示意图见图2。其中“1”区域为DSP运算并向双口RAM写入数据,“2”区域为FPGA读取有效数据,“3”区域为FPGA向DSP反馈信息。
DSP传递给FPGA的控制信息和有效数据如表1所示。每个控制周期更新一次数据。FPGA根据指令内容在下一个控制周期执行相应的命令。控制字高位和控制字低位分别为16位宽,一共32位,其具体内容如表2所示。控制字的31~14位域为SHEPWM调制模式的相关参数,只在SHEPWM调制模式下有效,SPWM异步模式下无效。信息有效标志位是为了防止产生误码,提高可靠性。
3.2脉冲产生原理
(1)SPWM模式
在SPWM异步调制模式下,每个控制周期内,脉冲中间对称。脉冲产生原理图如图3所示。其中D为控制周期内脉冲的占空比,由DSP计算得到,然后计算得出开关动作点CMP_1_X和CMP_2_X。
(2)SHEPWM模式
在工频50Hz,采用SHEPWM调制方式。图4给出了SHEPWM调制方式产生的双极性相电压波形,其中Ud为直流母线电压,建立SHEPWM的数学模型[9],得到n次谐波的幅值Um(n)为:
(1)
其中,αi为[0, π/2]四分之一个周期内的第i个开关角,该四分之一周期内共有N个开关角。
根据SHEPWM原理,在三相对称系统中,最多可消除N-1个低次谐波[9][10],这里N选择为奇数,可以成对消除低次谐波。本文采用载波比为15的SHEPWM调制方式,在调制波的四分之一个周期内有
7个开关角,则可以消除5,7,11,13,17,19次谐波。令式(1)中的n分别等于5,7,11,
13,17,19并令相应的谐波幅值为0,可得:
(2)
其中,n=5,7,11,13,17,19,U1为相电压基波幅值。
定义调制度: m=U1/(2Ud/π) (3)
即可得到式(4):
(4)
n=5,7,11,13,17,19。
通过分段拟合的方法可以采用幂次曲线方程近似该超越方程曲线,DSP根据幂次曲线方程计算得到[0,π/2] 的开关角,其余的开关角可以根据SHEPWM脉冲的对称性求得。
FPGA实现SHEPWM的过程中,为便于控制,将载波周期360°分为24个扇区,每15°一个扇区,保证在每个扇区内的开关动作点不超过两个,图5为SHEPWM脉冲扇区划分示意图。
SHEPWM模式下,DSP在每个控制周期计算每个扇区内开关动作点的数字值,传递给FPGA,用于产生SHEPWM脉冲。FPGA在每个周期计数器的过零点,读取有效数据,判断运行状态、运行模式等信息,根据指令产生脉冲。表3列出了各扇区内的脉冲状态变化规律。CMP1与角1相对应,为角1的弧度对应的数字值,CMP2与角2对应。“▽”表示在周期控制计数器的值等于CMP1时,该相控制脉冲由高变低,“△”表示当计数器的值等于CMP2的值时,该相控制脉冲由低变高。“—”表示该扇区内没有对应的开关角,即不动作。
3.3死区产生的FPGA实现
死区模块的作用是对控制同一桥臂的脉冲控制信号作用,使上下两管的控制信号在转换开关状态时出现同时关断的一段时间,防止贯穿短路,这段时间称为死区。
死区产生方法[11]如图6所示,当输入脉冲为低电平“0”时,若死区计数器DB_Cnt=0,计数器的值保持不变;若DB_Cnt≠0,进行减1计数;当输入脉冲为高电平“1”时,若DB_Cnt=Td,计数器的值保持不变;若DB_Cntr≠Td,进行加1计数。
本文在此基础上进行了优化,在输入脉冲的上升沿跳变时,死区计数器归零,在输入脉冲下降沿跳变时,死区计数器置数Td,这样可以避免死区时间长度不准。例如,若输入脉冲的上升沿来临之前的低电平时间不足以使DB_Cnt减到0,则当上升沿来临的时候,DB_Cnt从一个非零数开始加1计数到达Td,这样会使死区时间变短,因此需要在输入脉冲的上升沿和下降沿对DB_Cnt归零或置数。
为输入为“1”,且DB_Cnt= Td时,Pulse_L=0,Pulse_H=1,上桥臂导通;输入为0,且DB_Cnt=0时,Pulse_L =1,Pulse_H =0,下桥臂导通;当DB_Cnt在0~ Td之间时,Pulse_H=Pulse_L=0,上下桥臂均截止,形成死区。FPGA实现死区模块的程序流程图见图7。
d1db93【中国自动化网社区】efd68c【http://sns.ca800.com】d3561a2
图7 死区产生的FPGA实现
图8 SHEPWM调制脉冲
图9 SPWM调制脉冲
图10 死区示意图
图11 工频时逆变器输出线电压波形
d1db93【中国自动化网社区】efd68c【http://sns.ca800.com】d3561a2
4 实验结果
将FPGA程序和DSP程序分别下载到HXD2C电力机车辅助控制单元的硬件平台上,进行PWM脉冲控制实验。图8给出了工频时A、B两相上管的SHEPWM脉冲波形,以及二者作差的波形。图9为SPWM调制时A、B两相上管脉冲波形,以及二者作差的波形,频率为40Hz。图10为同一桥臂上下两管脉冲死区波形。图11为工频时逆变器输出线电压波形。
可以看出,控制系统在SHEPWM模式和SPWM模式下均能发出正确的控制脉冲,FPGA正确实现死区设置,逆变器电压输出稳定。实验证明开控制系统的设计可行。
d1db93【中国自动化网社区】efd68c【http://sns.ca800.com】d3561a2
5 结论
本文采用DSP-FPGA核心控制系统实现电力机车的辅助逆变器控制。降低了对DSP外设资源要求,充分利用其运算优势,发挥FPGA灵活的逻辑处理能力和丰富的IO、门阵列以及内嵌RAM资源,实现了资源的优化利用,降低了成本,提高了控制系统的实时性和可靠性。建立了控制系统的总体架构,实现了基于DSP-FPGA的SHEPWM和SPWM脉冲控制方法。实验结果证明了控制系统的可行性。DSP和FPGA的快速发展对变流器控制技术的发展起着十分重要的作用,因而二者配合使用,各取所长,也有很大的发展前景。
68【中国自动化网社区】d3f2d9【http://sns.ca800.com】405b2e4
作者简介
王会锦(1987-)女 硕士研究生,研究方向为电力电子与电力传动。
参考文献
[1]邹稳根.轨道交通用辅助逆变器制造技术发展概况[J].铁道机车车辆工人.2010, 1: 1-3.
[2]郑飞,彭飞,费树岷,周杏鹏等.基于DSP-FPGA的SVPWM细分优化算法的实现[J].电力电子技术,2010,44(8):39-40.
[3]肖敏.PWM控制的FPGA实现.绵阳师范学院学报[J].2009,28(5):35-38.
[4]徐强, 庄燕滨.基于FPGA的SPWM变频系统研究[J].工矿自动化,2008(2):79-81.
[5]Toshihhiro Ide, Tomoki Yokoyama.A study of Deadbeat Control for There Phase PWM Inverter using FPGA based Hardware Controller.35th Annul IEEE Power Electronics Specialists Conference. 2004:50-53.
[6]Pongiannan.R.K.,Selvabharathi.P.Yadaiah, N. FPGA based three phase sinusoidal PWM VVVF controller. Electrical Energy Systems (ICEES), 2011 1st International Conference.2011:34-39.
[7]Liqiao Wang,Weiyang Wu.FPGA Based Multichannel PWM Pulse Generator for Multi-modular Converters or Multilevel Converters. Power Electronics and Motion Control Conference. 2006, 1-5.
[8]李威, 车向中, 郝荣泰等.交-直-交电力机车PWM调制方法研究[J].铁道学报,2000,22(6):26-31.
[9]石媛,李明勇,胡传西,方华松等.逆变器SHEPWM的数学模型及其开关角计算方法[J].舰船科学技术,2010,32(8):203-206.
[10]李治典,周秦英,李宏,焦振宏等.实时求解特定消谐方程组的新算法[J].西北工业大学学报,2004,22(1):37-40.
[11]黄金,陈春阳,孙鹏飞,卢燕霞等.三电平逆变器SVPWM的FPGA实现[J].电力电子技术,2009,43(12):12-13.
68【中国自动化网社区】d3f2d9【http://sns.ca800.com】405b2e4