三电平选定消谐脉宽调制脉冲的发生方法
技术领域
一种三电平选定消谐脉宽调制脉冲的发生方法属于AC/DC/AC变频调速系统技术领域。
背景技术
高压变频技术是把固定频率、固定幅值的电压变成变频变幅电能,使电能产生的电磁力矩与其所驱动的负载械械力矩柔性配合,以获得较好的驱动特性并最大程度地提高电能的利用率的一种高新节能技术,也算用户电力技术DFACTS(Custom Power),它是电力技术FACTS在配电系统中应用的延伸。ABB、GE、Simens、Robincon等公司已有AC/DC/AC变频调速系统初步产品,但作为其核心部分的脉冲发生技术严格保密,未见诸公开发表的论文及相关专利。
发明内容
本发明的目的是为中高压AC/DC/AC变频调速工业装置提供一种基于数字信号处理器(DSP)的三电平选定消谐PWM(脉宽调制)脉冲的发生方法。
本发明所述的三电平选定消谐脉宽调制脉动的发生方法,其特征在于,它含有以下步骤:
(1)根据用于控制三电平电压源逆变器中各路集成门极换相晶闸管IGCT开关状态的脉冲开关函数的调制比m,脉冲频率f生成对应的开关脉冲序列并形成格式存入脉冲发生器的EEPROM中;
a.根据电力电子器件的开关特性和开关损耗约束,变频调速区域,系统输出谐波成分要求,即异步机工作时输入电压的最低次谐波频率以及为避免与输出LC滤波器发生谐振而设定的LC滤波器的固有频率来形成含有半波脉冲数N,N为0°到180°区间内的脉冲总个数,调制比m,输出频率范围,开关频率范围以及最低次谐波频率各物理量的半波脉冲数——频率划分表;
b.用选定消谐脉宽调制(PWM)技术作为控制策略,使上述逆变器的各桥臂上其上、下桥臂中相同位置的开关器件其状态互补而相异位置的开关器件时序相同,只是在时间上滞后半个周波;而各相间的脉冲序列依次滞后1/3周期,因此,三相脉冲发生器只需在A、B、C三相各桥臂的不同位置上生成开关器件A1、A4、B1、B4、C1、C4的共6路脉冲,经扩展后就能控制整个逆变器的状态;
c.根据选定消谐的目的生成上述6路脉冲的开关角度数据:
设A1路脉冲的开关函数为:
为其第n次谐波的幅值。ω=2πf,f为开关脉冲频率,k=1,…,N,是一个累加计数器,其中N指的是半周波脉冲数;
在设置开关角度α1,α2,…,αN解初值的条件下,以0.01为间隔,对半波脉冲数——频率划分表中m的范围进行均匀分割得到若干个调制比m值,调制比的个数为P,其数值由具体装置的设计和运行要求决定;再对任何一种N值,令调制比m从0.01递增至1.20,在不同的m值下用牛顿迭代法求解下列方程组:
开关角度α1,α2,…,αN采用如下初值设置公式:
(1)N为奇数时,
α2i-1=90-360[(N-1)/2+1-i]/[3×(N+1)]-0.0974,
α2i=90-360[(N-1)/2+1-i]/[3×(N+1)]+0.0974,
i=1,…,(N-1)/2;
(2)N偶数且N≠8时,
α2i-1=360i/(3N)-1.8/[2(N+1)],
α2i=360i/(3N)+1.8/[2(N+1)],
i=1,…,N/2;
(3)N=8时,
α1=25-0.974,α2=25+0.974,α3=38-0.974,α4=38+0.974
α5=56-0.974,α6=56+0.974,α7=70-0.974,α8=70+0.974
可得到:对应对某一个N值的情况的N条“m-α1,α2,…,αN曲线”,从下到上依次代表各不同m值下的开关角度数据α1,α2,…,αN,开关角度在0°~90°之间;m值的个数为P;
d.经一个“扫描”子程序,用脉冲状态字节序列PSW和与其相应的脉冲加载角度序列PLA来表述对应于某一个N值下,与P个不同的m值相对应的P组开关角度数据;“扫描”子程序依次含有以下步骤:对于特定的m值和开关器件A1的开关角度数据α1,α2,…,αN而言,用扫描角度Angle表示为编号为i的开关器件相对应的计算用临时角度,其中i=1,…6,它从0度开始,对于6路脉动,用统一公式tAngle=mod(Angle+(i-1)×60,360)表示各路脉冲的开关角度区间,mod是取余运算,由tAngle值来判断开关器件i在当前扫描角下的状态:
若tAngle≥180°,则该开关器件A1处于持续关断的半周波内,相应的开关状态pulse(i)设为0;
若180°>tAngle≥90,则令tAngle=180°-tAngle,再判断tAngle在α1,α2,…,αN中处于什么位置,如tAngle<α1,表示其位于第一个开通角度之前,则pulse(i)=0,如tAngle位于αN之后,则表示j=N,j即表示α1,α2,…,αN中与tAngle最按近且小于tAngle的那个开关角度的下标;
若tAngle不符合上述任一条件,则可搜索到一个j值,使αj=<tAngle<αj+1,则由pulse(i)=mod(j,2)得到当前编号为i的开关器件在Angle角度下的开关状态,从而可依次得到6个开关器件在某个Angle下的开关状态,即pulse(i),组成一个临时开关状态字tPSW;
(2)在脉冲发生器复位后把步骤(1)所述的脉冲生成算法自动加载到脉冲发生器的SRAM中去;
(3)接收监控主机的控制命令字M/F,其中M和F表示监控主机发送的命令数据;
(4)依次判断控制命令字M/F:
若:M=0,F=0,则跳转到复位子程序;
若:M=1,F=1,则向监控机报告脉冲发生器运行状态;
若:M=255,F=255,则把脉冲输出地址AR7改为89fff0H,封锁脉冲输出;
若:M=1000,F=1000,则把脉冲发生器输出地址AR7恢复成900000H,解除脉冲封锁输出;
否则,判别1≤M≤138和2000≤F≤33333?;若否,转入接收监控主机的控制命令字;若是,转入下一步骤;
(5)进入正常脉动控制,根据对应的调制比和频率参数,生成并发出对应的6路脉冲序列:
若M0=0,F0=0,开放Timer0和全局中断,设置接收的M/F为当前控制参数,根据M0得到对应PSW和PLA的首地址,存放在寄存器AR5、AR6中,记录PSW数目,初始化计数器i为1,输出首个PSW,按公式T=F0×PLA/3.6计算Timer0的定时周期,把该时间设置为Timer0的周期,启动Timer0。
若不是第一次接收到有效的控制脉冲参数,则暂存新的M/F到M1/F1,标记M/F已更新,
主程序和Timer0中断程序的循环运行,DSP便输出6路连续脉冲系列。
在所述的步骤1(d)中,把半个周波的数据扩展成整个周波的数据时,只要把开关元件A4的前半个周波数据作为开关元件A1的后半个周波数据,把开关元件A1的前半个周波的数据作为开关元件A4的后半个周波数据即可,B、C两相各自同理。
实验证明:它达到了预期要求。
附图说明
图1、脉冲发生器的电路原理框图;
图2、脉冲锁存与驱动电路原理图;
图3、三电平逆变器主电路拓朴结构图;
图4、开关器件A1的开关函数示意图;
图5、脉冲状态字格式图;
图6、脉冲发生数据存储格式示意图;
图7、脉冲发生算法的主程序流程框图;
图8、脉冲发生算法的Timer0中断子程序流程图;
图9、直流电压为2kV,N=9,m=1.0,f=50Hz时输出线电压的波形图;
图10、直流电压为2kV,N=9,m=1.0,f=50Hz时输出线电压的傅立叶分析结果图;
图11、由半波脉冲数和频率范围确定调制比的程序流程图;
图12、半波脉冲数N=9、输出频率范围为40~50Hz时的“调制比m-开关角度(α1,α2,…,αN)曲线”图;
图13、用于预先得到单个周期内的脉冲状态字节序列和与其相对应的脉冲加载角度序列的“扫描”程序流程图;
表1、半波脉冲数-频率划分表
具体实施方式
本发明适用的中高压变频调速装置主要包括主电路、监控系统、脉冲发生与分配等部分,其中脉冲发生器则是联接监控系统与主电路的重要通道。它接收监控系统发出的控制指令,形成并发出所需的6路脉冲序列,控制主电路中作为开关器件的集成门极换相晶闸管IGCT的导通与关断,从而形成所需频率与幅值的输出电压和电流。本发明适用的变频装置采用如图3所示的三电平逆变器结构,控制策略为选定消谐脉宽调制(PWM)技术。其每一个桥臂上的开关器件1与3、2与4状态互补(如A1开通的A3关断,A1关断时A3开通,A4开通时A2关断,A4关断时A2开通,对于B、C相同理),A4的开关时序与A1相同,只是在时间上滞后半个周期;而相间的脉冲序列依次滞后1/3周期(即B相滞后A相1/3周期,C相滞后B相1/3周期)。因此,脉冲发生器只需生成6路对应于A1、A4、B1、B4、C1、C4的脉冲,经扩展后就能控制逆变器的状态,而每一路脉冲按照选定消谐目的生成。图4是A1路脉冲的一个周期的波形,即开关函数,它的前半个周期是开关期,后半个周期是保持期,开关期内有N个波头,左右对称,故向有N个独立的开关角度,设为(α1,α2,…,αN)。应用傅立叶分析法,可知A1脉冲的开关函数可以表达为:
其中,An为第n次谐波的幅值,可表达为:
ω=2πf,f为脉冲频率。
如果选定一组开关角度(α1,α2,…,αN),使
按照上述控制策略且逆变器输出采用三相三线制,则易知线电压中谐波的最低次数为3N+1(N为偶数)或3N+2(N为奇数)。通过改变脉冲的半波脉冲数N,调制比m和频率f就可以达到调节输出电压的频率、幅值,进而达到高频调速的目的。脉冲发生器的主要职能就是根据监控主机提供的m、f值来实时生成满足上述要求的高精度脉冲,其实现步骤如下:
首先根据以下因素来确定半波脉冲数-频率划分表(如表1):(1)电力电子器件的开关特性和开关损耗约束,(2)变频调速区域,(3)系统输出谐波成分要求,(4)避免与输出LC滤波器发生谐振,(5)配合控制需要,并避免在转换点频繁振动而设置一定的滞环区域。
电力电子器件的开关频率(单位时间内开通和关断的次数)是有限的,如果开关控制超过其允许的最高开关频率,就会损坏器件。另一方面,在一定的散热条件下,逆变调速装置的温升取决于其损耗,为保证装置安全,必须限制温升,即限制工作损耗,而工作损耗随着输出功率和开关频率的增加而增大,因此从限制工作损耗考虑也需要限制器件的开关频率。采用选定消谐PWM控制方式时,器件的开关频率与半波脉冲数和输出基波频率成正比,即:器件开关频率=半波脉冲数N×输出基波频率,因此,变频调速区域(输出基波频率的变化范围)也影响器件的开关频率和半波脉冲数的选择。变频器输出电压一般含有丰富的谐波成分,在所采用的选定消谐PWM控制中,输出电压的最低次谐波频率=(3N+1)×输出基波频率(当N为偶数时),或输出电压的最低次谐波频率=3N+2×输出基波频率(当N为奇数时),为了抑止高次谐波导致异步电机的运行特性恶化(如脉振、发热等),一方面要提高输出电压的最低次谐波频率,通常要求当异步电机工作在0.2倍额定频率、即0.2×50Hz=10Hz附近时,电压的最低次谐波频率为额定频率的20倍、即20×50Hz=1000Hz左右,因此需要在输出基波频率较低时增加半波脉冲数N;另一方面采用LC滤波电路来滤除输出电压中的高次谐波成分,而LC滤波电路存在一个固有振荡频率,一旦输出电压的最低次谐波频率接近该固有振荡频率时,会引起LC电路振荡,损坏装置,因此为了避免谐振,应将LC滤波器的固有频率设计在输出电压的最低次谐波频率的1/2附近。可见,电压的最低次谐波频率要求与器件的开关频率限制有一定的矛盾,特定输出频率下,开关频率越高(半波脉冲数越多),电压的最低次谐波频率越高,但装置损耗也就越高,为解决上述矛盾,可将输出频率范围分成若干区段,在不同的区段中采用不同的半波脉冲数N,从而得到一张半波脉冲数-频率划分表。当然,为易于实现,区段数不宜过多,如10段以下。以我们开发的1600kW 6kV变频调速装置为例,采用的电力电子器件为ABB 5SHX08F4502(4500V/630A),装置的散热条件限制了单管的开关损耗在800W左右以及下,进而要求单管的开关频率在500Hz附近,逆变器输出频率低时,由于输出功率较小,可适当放宽,但尽量不超过800Hz。当输出频率为50Hz时,由公式:器件开关频率=半波脉冲数N×输出基波频率,可知半波脉冲数应低于10,而由公式:输出电压的最低次谐波频率=(3N+1)×输出基波频率(当N为偶数时),或输出电压的最低次谐波频率=3N+2×输出基波频率(当N为奇数时),可知,半波脉冲数应不小于7,因此输出频率为50Hz时,半波脉冲数可以选择9、8、7之一,而当N=9时,适用的输出频率范围比较广,如当输出频率下降到40Hz时,采用N=8则,输出电压的最低次谐波频率为1000Hz,达到临界值,而采用N=7,已不能满足要求,因此,在50Hz这一频率区段选择N=9,相应的频率范围为40~50Hz,其中选择40Hz作为该区段的下限并没有严格的计算公式,有一定的经验成分。以下各个区段的划分,都遵循同样的原则,即先划分一个频率区段,然后根据开关频率限制和输出电压的最低次谐波次数要求,选取对应的半波脉冲数N,在这个过程中需要利用一定的工程经验和试凑。
由半波脉冲数N和频率区段求取调制比m范围的流程如附图11所示。对于特定的m和N,方程组(2)包括N个独立方程和N个未知数,采用迭代算法求解时,很重要的一步是设置解(α1,α2,…,αN)的初值,我们在总结已有工程数据和文献资料的基础上,采用如下初值设置公式:
(1)当N为奇数时,
α2i-1=90-360[(N-1)/2+1-i]/[3×(N+1)]-0.0974,
α2i=90-360[(N-1)/2+1-i]/[3×(N+1)]+0.0974,
i=1,…,(N-1)/2;
(2)当N偶数且N≠8时,
α2i-1=360i/(3N)-1.8/[2(N+1)],
α2i=360i/(3N)+1.8/[2(N+1)],
i=1,…,N/2;
(3)当N=8时,
α1=25-0.974,α2=25+0.974,α3=38-0.974,α4=38+0.974
α5=56-0.974,α6=56+0.974,α7=70-0.974,α8=70+0.974
开关角度的单位为度(°)。
在附图11中,对于任何一种N(如N=9)的情况,设置(α1,α2,…,αN)的初值后,令整数计数k从1开始,而调制比为m=k/100,采用牛顿迭代算法求解方程组(2),可以得到当前m下的解,存放在A(1)中;依次递增k,对应的m也以0.01的步长增加,在新的m下以上一次得到解为初值,同样利用牛顿迭代算法得到新的m下的解,存放在A(k)中;直到k达到120(对应m达到1.20)或某个k下方程组无解。这样得到多组(α1,α2,…,αN)值,存放在A中,利用A可以绘制出“调制比m-开关角度(α1,α2,…,αN)曲线”,即:以调制比m为X坐标(0~1.20),Y坐标为开关角度(0~90°),分别将N个开关角度随着m的增加而得到的值依次在上述坐标轴中标记并依次连接起来得到一族曲线。附图12所示为N=9的情况,共有N=9条曲线,从下到上依次代表α1,α2,…,αN,当m值接近1.2时,曲线出线强烈的振荡,这代表方程组(2)无解。
得到各种N情况下的“m-(α1,α2,…,αN)曲线”后,就可以进一步确定半波脉冲数-频率划分表中某一N和输出频率范围对应的调制比范围,这主要是根据该N并参考其他N情况下的“m-(α1,α2,…,αN)曲线”来完成的,其中需要考虑以下因素:
(1)可实现性。即在该m范围下,方程组(2)有解,且其解可物理实现,后者用数学公式表达为:αi-αj>ε,(N≥i>j≥1),意味着电力电子器件必须按时序进行开关,且任意两次开关操作之间必须有足够的间隔。以N=9为例,满足该条件的m有效范围为0.71~1.15。
(2)输出频率与调制比m的大致成正比例关系,这可以保证异步电机的内部磁势大致维持在其额定值左右,既有利于转矩控制,又避免了磁通饱和的不利影响。
(3)为了避免当m微小变化时引起控制方式的频繁切换(不稳定),如当m在0.8附近变动时,控制策略可能在N为9和13之间反复变换,从而不能稳定工作,在各种N情况下的m范围之间设置一定的重叠区(滞环区),大小约为0.02~0.05。
(4)谐调考虑各种半波脉冲数的情况,并借助一定的工程经验。
附表1即是最终得到的半波脉冲数-频率划分表,其中的第一行表示:当半波脉冲数为9时,对应的调制比为0.80-1.15,输出频率范围为40.0-50.0Hz,此时电力电子器件的开关频率在360.0-450.0范围内(40.0-50.0Hz×9=360.0-450.0Hz),装置输出电压的最低次谐波频率为1160Hz(40×(3×9+2)=1160Hz);最后一列表示各区段的平均频率与平均调制比的比值。其它行可类推。
为避免谐振,将LC滤波器的固有频率设计为输出最低次谐波频率的1/2、即500Hz附近,相应的LC滤波器参数为电感L=4.3mH,电容C=20uF,实际的谐振频率为
附表1中调制比m从0.01到1.15,包括其中的滞环部分,以0.01为间隔则共有138个m值,对于每一个m值有一个对应的开关角度数据(α1,α2,…,αN),它决定了器件A1的开关时序,进而根据控制策略规定的相位关系可以得到其他5路开关角度数据。从而一共得到138组开关角度数据。
理论上,只要将开关角度数据表中的138组数据存储下来,就可以根据m/f参数生成对应的脉冲序列,因为m决定了采用那组开关角度数据,而f确定了角度所对应的时间宽度。但考虑实时性,必须对这些数据进行改造,本发明中采用存储脉冲状态字节(PSW)和脉冲加载角度(PLA)的方式来到达这一目的。脉冲状态字节如附图5所示,共8bit,其中低6位有效,每一位对应一个开关元件的开通或关断状态,1表示开通,0表示关断,如脉冲状态字为00100101时,表示器件C4开通、C1关断、B4关断、B1开通、A4关断、A1开通;脉冲加载角度是指某个脉冲状态字保持不变的电角度区间,亦即在某一状态下这6个开关元件都不进行开关动作所能持续的时间所对应的电角度(为便于存储,PSW是该电角度乘以100再取整)。对于138组开关角度数据中的任何一组,应用一个“扫描”程序,就可以预先得到单个周期内的脉冲状态字节序列和与其相对应的脉冲加载角度序列。“扫描”程序的流程如附图13所示。对于特定m和开关器件A1的开关角度数据为(α1,α2,…,αN),其过程如下:扫描角度Angle从0°开始,当前PSW/PLA计数器K从1开始,i是开关器件编号,从1到6循环变化,tAngle是与开关器件i对应的计算临时角度,它由可综合表示6路脉冲相位关系的公式tAngle=mod(Angle+(i-1)×60,360)得到,其中mod是求余运算;如i=3时,tAngle=mod(Angle+(3-1)×60,360)=mod(Angle+120,360),表示开关器件C1(对应PSW的D4位)的开关函数在相位上超前A1的开关函数120°,从而需要把开关器件A1的当前扫描角度Angle加120°,即以tAngle=mod(Angle+120,360)来求取开关器件C1的开关状态;其余类推。进而,可由tAngle值来判断开关i在当前扫描角下的状态值。如tAngle≥180°,则表示该开关器件处在持续关断的半个周波内,相应的开关状态pulse(i)设为0,如180°>tAngle≥90°,则令tAngle=180-tAngle,然后判断tAngle在(α1,α2,…,αN)中的位置,如tAngle<α1,表示其位于第一个开通角度之前,则开关状态为pulse(i)=0,而如果tAngle位90°内最后一个开关角之后,则记录j=N,这里用j表示(α1,α2,…,αN)中与tAngle最接近且小于tAngle的那个开关角度的下标数,如果tAngle不符合上述任何一个条件,则可以搜索到一个j值,使αj≤tAngle<αj+1,根据j的奇偶性由公式pulse(i)=mod(j,2)得到当前编号i开关器件在tAngle角度下的开关状态,如j是奇数,则pulsc(i)=1;如j为偶数,则pulse(i)=0。从而依次得到6个开关器件的在某个Angle下的开关状态,即pulse(1,…,6),进而由此组成一个临时开关状态字tPSW,组成的方式为:tPSW的第0位(最低位D0)等于pulse(1),tPSW的第1位(D1)等于pulse(4),tPSW的第2位(D2)等于pulse(5),tPSW的第3位(D3)等于pulse(2),tPSW的第4位(D4)等于pulse(3),tPSW的第5位(D5)等于pulse(6)。如果K=1(第一个脉冲状态字),则令PSW(m,k)=tPSW,PLA(m,k)=0;否则检查PSW(m,k)是否等于tPSW,如等于,则表示脉冲状态字没有改变,将当前的脉冲加载角度增加一个步长(0.01电角度,存储时,乘以100倍,按照整数存储);否则,当前PLA增加一个步长,计数器K增加1,存储新的PSW字,并设置新的PLA为0。扫描从0度开始,以0.01度为步长,一直进行到180度,从而得到当前m值下半个周波内的PSW和PLA序列数据。如m=1时得到的PSW和PLA序列的长度为208。因为共有138组m,故可以得到138组PSW/PLA序列数据。只需要扫描半个周波的PSW/PLA序列,是因为每个桥臂上开关元件1与4特殊的相位关系:元件1前半周波的PSW/PLA序列是元件4后半周波的PSW/PLA序列,而元件4前半周波的PSW/PLA序列是元件1后半周波的PSW/PLA序列,为节省存储空间,只在EEPROM中存储半个周波的数据,程序调入SRAM中实时运行前,再对数据进行扩展,得到整个周波的PSW/PLA数据。在我们的设计方案中,需要约55k×8bit的容量来存储138组m方式的半波内脉冲状态字和脉冲加载角度数据;数据在EEPROM中分两部分存放:数据表PDAngle_Tab存放PLA序列,即依次存放:半波脉冲数标志、由小到大依次存放的m值(实际数值是调制比m的100倍),该m下PLA序列的长度,该m下的PLA序列;数据表PDStatus_Tab存放PSW序列,即依次存放:半波脉冲数标志、由小到大依次存放的m值(实际数值是调制比m的100倍),该m下PSW序列的长度,该m下的PSW序列。
脉冲发生算法对应的应用程序和脉冲发生数据都存储在脉冲发生电路的EEPROM中。复位后,程序自动加载到SRAM中执行。脉冲发生算法包括主程序和中断予程序两部分,它们的流程图分别如附图7和8所示,下面分别介绍。
DSP复位后,程序自动加载执行。首先进行必要的初始化,包括清除IE、IF寄存器以禁止定时器0(以下称Timer0)和全局中断,设定DSP中断、陷阱矢量表指针以使Timer0中断程序指向设计的脉冲发生子程序,设置DSP总线控制寄存器IOSTRB和IOSTRB_CTRL分别为808060h和0F0718H,设置并口为输入模式,以及一些参数(当前脉冲控制字M0/F0,NeedUpdate,寄存器AR7)的初始值设置。其次读入脉冲发生数据表PDAngle_Tab和PStatus_Tab,由于他们只存储了半个周波的数据,需要扩展成整个周波的数据PDAngle和PStatus,扩展的方法即是将A1、B1、C1的后半个周期的数据设置为A4、B4、C4的前半个周期的数据,而将A4、B4、C4的后半个周期的数据设置为A1、B1、C1的前半个周期的数据,分别按照m的数值从小到大(滞环部分依次后推)依次分别将PSW和PLA存放在SRAM中的数据区,进一步为利于实时查询,生成一个映射地址表ASData_ADD,如附图6所示,ASData_ADD依次存储各组m下PSW和PLA的首地址,该地址分别指向对应这个m的PSW/PLA数据表,PSW/PLA数据表第一个16bit存放m×100对应的整数,第二个16bit存放该m值下PSW/PLA的数目,此后依次存放PSW和PLA。初始化完成后,主程序循环接收监控主机的控制命令字,控制命令字长3×8bit,第1个8bit组成一个无符号整数M(对应m序列中的第M个m值),后16bit组成另一个无符号整数F(对应输出频率Hz数的倒数的100000倍取整)。根据M/F的不同数值执行相应的操作,一共有5类操作:(1)复位(M=0且F=0);程序跳转到全局复位子程序,进行复位初始化。(2)状态查询(M=1且F=1);向监控主机发送脉冲发生器当前所处的工作状态及采用的控制参数M0/F0。(3)脉冲封锁(M=255且F=255);改变脉冲输出地址AR7=89fff0H从而堵塞输出脉冲,使输出固定为高电平或低电平,直到接收解除脉冲封锁命令。(4)解除脉冲封锁(M=1000且F=1000),恢复脉冲输出地址AR7为900000H,从而解除脉冲封锁。(5)正常脉冲控制(1=<M<=138且2000=<F<=33333);根据对应的调制比和频率参数,生成并发出对应的6路脉冲序列。操作(5)是脉冲发生器的主要功能,也是设计和实现的重点。当首次接收到有效的脉冲控制参数,即1=<M<=138、2000=<F<=33333且当前的M0=0、F0=0时,开放Timer0和全局中断,并设置接收到M/F为当前控制参数M0/F0,根据M0得到对应PSW和PLA数据的首地址,并存放在寄存器AR5和AR6中,记录PSW数目为K,初始化计数器i为1,(该计数器表示某一周期内已经发出的脉冲状态字个数),输出首个PSW;然后按公式T=F0×PLA/3.6计算Timer0的定时周期,该计算公式的含义为:当前状态字持续的时间T(以纳秒为单位)=109×输出基波周期(以秒为单位)×当前的脉冲加载角(以度为单位)/360度,而输出基波周期(以秒为单位)=F0/100000,而当前脉冲加载角(以度为单位)=PLA/100,因此有T=109×(F0/100000)×(PLA/100)/360=F0×PLA/3.6(纳秒);将该时间设置为Timer0的周期,并启动Timer0;如果不是第一次接收到有效的脉冲控制参数,则暂存新的M/F到M1/F1,并标记M/F已经更新,即设置NeedUpdate=1,以促使在下一次脉冲发生中断程序中检查并更改脉冲控制参数。
脉冲发生算法的Timer0中断子程序的流程如附图8所示。进入定时器Timer0的中断服务子程序时,首先检查当前周期是否完成(i=Num),如果已经完成,则次而检查M/F参数是否已经更新、即NeedUpdate是否为1,如是则更新M0/F0=M1/F1、设置NeedUpdate=0,然后开始新的脉冲周期,先根据M0计算PSW和PLA地址,并存放在寄存器AR5和AR6中,设置PSW数目Num和初始化计数器i,然后输出新周期的首个PSW;如否则递增PSW和PLA地址、即AR5和AR6存储的数据加1,计数器i加1,输出当前的PSW。每一次输出PSW后,要根据当前的PLA计算Timer0定时周期(方法同上),并启动它。
主程序和Timer0中断程序的循环运行使得DSP输出6路连续脉冲序列。
三电平选定消谐脉宽调制脉冲发生器的电路原理如附图1所示,它包括数字信号处理器DSP、存储器、脉冲锁存与驱动电路、扩展并口和DC/DC电源。数字信号处理器采用TI公司的32位浮点数字信号处理器TMS320C32。存储器包括静态存储器(SRAM)和电可擦除只读存储器(EEPROM),前者由4片ISSI IS62C1024构成,容量为128k×32bit;后者由1片29F010构成,容量为128k×8bit。脉冲锁存与驱动电路如附图2所示,由八位数据锁存器74LS373和六路OC门反向驱动器7406构成。数字信号处理器和脉冲锁存与驱动电路之间连以控制信号STRB1-B0和数据D0~D31;DSP的并口由ST16C552扩展而来;DC/DC电源采用HZD10-48D05,输入48V DC,输出±5V DC,功率为10W。数字信号处理器DSP依次经ST16C552扩展接口、标准并行接口SPP与主控制器双向相连,输出的脉冲序列和地址选通信号STRB1-B0送至脉冲锁存与驱动电路,由于锁存器74LS373是低电平(下降沿)锁存,因此STRB1-B0需经过反向器(74LS04)再连到74LS373的11脚(C端)。当锁存信号U1-C为高电平时,74LS373的输出Q等于输入D,6路脉冲再经过反向0C门(7406)输出。
附图9是直流电压=2kV、N=9、m=1.0、f=50Hz时的输出线电压波形,附图10是相应的傅立叶分析结果,可见,输出线电压中,低于29次的谐波成分基本被消除,达到了预期的选定消谐目的。
附表1半波脉冲数-频率划分表
半波脉冲数 | 调制比 |
输出频率范围(Hz) |
开关频率范围(Hz) |
最低次谐波频率(Hz) |
平均频率/平均调制比 |
9 |
0.80-1.15 |
40.0-50.0 |
360.0-450.0 |
1160 |
46 |
13 |
0.55-0.85 |
27.5-42.5 |
357.5-552.5 |
1128 |
50 |
18 |
0.44-0.58 |
22.0-29.0 |
396.0-522.0 |
1210 |
50 |
26 |
0.24-0.48 |
12.0-24.0 |
312.0-624.0 |
948 |
50 |
50 |
0.14-0.28 |
7.0-14.0 |
350.0-700.0 |
1057 |
50 |
100 |
0.01-0.16 |
3.0-8.0 |
300.0-800.0 |
903 |
64 |