- UID
- 1023230
|
近年来,DSP在SVPWM(空间矢量脉宽调制)控制领域得到了广泛应用。
但是使用DSP单核心的控制方法仍然存在一些缺陷:基于软件的:DSP在实现SVPWM触发信号时需要较长的时钟周期;微处理器中不确定的中断响应会导致PWM脉冲的相位抖动。针对以上问题,本文提出了一种利用FPGA实现的SVPWM信号发生器,系统结构如图1所示。作为DSP的外围接口电路,该信号发生器能够屏蔽DSP内部错误中断对输入时间信号的影响,保证输出完整的SVPWM触发信号波形,其三相并行处理结构还能够有效提升系统的动态响应速度。
SVPWM简介
SVPWM的主要思想在于利用逆变器空间电压矢量的切换合成参考电压矢量。具体方法如下:在桥式电路中,同一桥臂上两个开关的工作状态在任意时刻都是互补的,所以可以用二值逻辑函数表示6个 开关的工作状态:
由式1可见,3组开关的工作状态共有23=8种,不同的开关工作状态对应着不同的三相输出电压。这8种工作状态分别对应着8条基本空间电压矢量,任意区域内的空间电压参考矢量都可以由2条非零矢量以及2条零矢量合成。在进行电压矢量合成时,规定每一次开关动作只能有一相桥臂的工作状态发生转换,目的是为了降低电路中的谐波含量,确定基本电压矢量的切换顺序。
SVPWM信号发生器的设计
基本原理
图1中DSP采集逆变器交流侧输出电压值,并通过计算得到桥式电路开关的状态保持时间。SVPWM信号发生器将DSP的输入时间信号转换为开关触发信号,在结构上可以分为数据锁存器和有限状态机两个模块,其顶层文件原理图如图2所示。
在状态机的一个工作周期内,输入时间信号的突变会使状态机的工作状态发生不规则跳变,对输出信号造成巨大影响,无法得到所需要的SVPWM 触发信号。因此,图2中LATCH锁存器模块的作用就是锁存输入时间数据TIME1_A、TIME0_A、TIME1_B、TIME0_B、TIME1_C 、TIME0_C,直至状态机的当前工作周期结束(即"ORDER"命令有效),从而避免外界对状态机工作状态的影响,保证状态机按照输入时间数据要求完成工作状态的转换。
利用有限状态机的方法设计FPGA,只须控制三相桥臂开关状态的保持时间,就可以实现SVPWM 触发信号。图2中FSMS主要由1个基准计数器和3个比较器构成,输入时间数据预存在3个比较器内,通过比较基准计数器当前值和比较器中的预存数据控制FSMS工作状态的转换, 同时根据不同的比较结果生成不同的三相桥臂开关驱动信号。如果基准计数器当前值等于预存输入时间,说明状态机当前工作状态已经完成,要转入下一个工作状态,相应的触发信号也要改变;如果基准计数器当前值不等于预存输入时间,说明状态机当前工作状态尚未完成,需要继续保持当前工作状态,相应的触发信号也保持不变。状态机按照输入时间信号的要求转换自身工作状态,使触发信号产生相应变化,从而实现时间信号向SVPWM 触发信号的转变。另外,由于FSMS内部比较器参照同一基准计数器,因此三相触发信号之间不存在时间延迟,得到的是并行的三相触发信号。
设计方法
本设计采用自顶向下、层次化、模块化的设计思想。
LATCH锁存器模块由6个并行的6位数据锁存器构成,所有锁存器均使用图2中的"ORDER"作为数据锁存信号,具体规定如下:
1)"ORDER" 信号作为锁存器工作进程的唯一敏感信号参量,只有其信号值发生变化时才会启动锁存器的工作进程,否则锁存器不做出任何响应;
2)当"ORDER"信号发生变化,且当前值为1时,锁存器中的存储数据得以释放,被输入FSMS,新的时间数据同时输入锁存器;
3)当"ORDER"信号发生变化,且当前值为0时,锁存器锁存已输入时间数据,保持FSMS的时间输入数据不变, 同时拒绝新数据输入;
4)锁存器的数据锁存时间等于FSMS中基准计数器的一个工作周期。当基准计数器完成一个工作周期时,"ORDER"信号将被置'1',其余时间,"ORDER"信号被置'0'。
为了得到三相并行输出的SVPWM触发信号.FSMS模块内部设计了3个状态机分别控制A、B、C相输出。根据式1,假设上桥臂每个开关在一个周期内工作状态的转换顺序都是"1-0-1",因此可以将每个状态机都设计为3种状态.分别代表每一相开关在一个周期内的3个工作状态,工作状态的保持时间由输入时间决定。当输入时间信号发生变化时,FSMS 工作进程启动。具体流程如图3所示。
以A相桥臂为例(另外两相桥臂的控制方法与A相桥臂类似),状态机进程启动后,基准计数器开始计时,比较器实时比较计数器当前值和比较器内部预存的时间。计数器的一个工作周期可以分为三个阶段:
1)计数器当前值小于输入时间TIME1_A时.状态机处于"00"态.A相上桥臂输出为'1';
2)计数器当前值大于等于输入时间TIME1_A而小于TIME1_A与TIME0_A的和时,状态机处于"01"态,A相上桥臂输出为'0';
3)计数器当前值大于等于TIME1_A与TIME0_A的和时,状态机处于"10"态,A相上桥臂输出为'1'。
如果状态机处于非法状态"11",则图2中管脚A和NOTA输出为高阻态。
仿真结果
利用MAX+PLUS II软件对本设计的逻辑功能进行仿真验证,仿真时间为0~120us,时钟频率为1MHz。
采用EPM3256ATC144-7FPGA芯片进行逻辑编程后,共占用166个逻辑单元,芯片利用率为64%,具有较大的扩展空间。仿真结果如图4所示。
图4中输出信号A和NOTA,B和和NOTB,C和NOTC分别代表桥式电路3组互补开关的驱动命令,输入信号time1_A、time1_B、time1_C和time0_A,time0_B、time0_C分别代表各开关高低电平状态的保持时间。通过仿真波形可以看到,FPGA实现了空间矢量的转换,开关的状态保持时间取决于输入信号time0_A、time0_B、time0_C和time1_A、time1_B、time1_C,完全实现了时间信号到触发信号的转换。而且,A相桥臂有效地抵抗了外界干扰,没有受到输入时间信号突变的影响,表明SVPWM信号发生器具有良好的抗干扰能力。
结语
本文用VHDL硬件描述语言设计了一种由锁存器阵列和有限状态机构成的SVPWM信号发生器,该信号发生器不仅成功实现了输入时间信号到SVPWM触发信号的转换,而且具有良好的抗干扰能力。此外,其并行处理结构可以保证三相桥臂开关同时动作,有效地提升了控制系统的整体性能。由于SVPWM信号发生器是用VHDL硬件描述语言实现的IP核.因而可简便地应用于逆变器控制系统中。 |
|