新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > SVPWM信号发生器的VHDL实现

SVPWM信号发生器的VHDL实现

——
作者:时间:2007-01-26来源:《电子设计应用》

引言

近年来,dsp在svpwm(空间矢量脉宽调制)控制领域得到了广泛应用。但是使用dsp单核心的控制方法仍然存在一些缺陷:基于软件的dsp在实现svpwm触发信号时需要较长的时钟周期;微处理器中不确定的中断响应会导致pwm脉冲的相位抖动。针对以上问题,本文提出了一种利用fpga实现的svpwm信号发生器,系统结构如图1所示。作为dsp的外围接口电路,该信号发生器能够屏蔽dsp内部错误中断对输入时间信号的影响,保证输出完整的svpwm触发信号波形,其三相并行处理结构还能够有效提升系统的动态响应速度。

svpwm简介

svpwm的主要思想在于利用逆变器空间电压矢量的切换合成参考电压矢量。具体方法如下:在桥式电路中,同一桥臂上两个开关的工作状态在任意时刻都是互补的,所以可以用二值逻辑函数表示6个开关的工作状态:

k=(a,b,c) (1)

由式1可见,3组开关的工作状态共有23=8种,不同的开关工作状态对应着不同的三相输出电压。这8种工件状态分别对应着8条基本空间电压矢量,任意区域内的空间电压参考矢量都可以由2条非零矢量以及2条零矢量合成。在进行电压矢量合成时,规定每一次开关动作只能有一相桥臂的工作状态发生转换,目的是为了降低电路中的谐波含量,确定基本电压矢量的切换顺序。

svpwm信号发生器的设计

基本原理

图1中dsp采集逆变器交流侧输出电压值,并通过计算得到桥式电路开关的状态保持时间,svpwm信号发生器将dsp的输入时间信号转换为开关触发信号,在结构上可以分为数据锁存器和有限状态机两个模块,其顶层文件原理图如图2所示。

本文引用地址:http://www.eepw.com.cn/article/20761.htm


在状态机的一个工作周期内,输入时间信号的突变会使状态机的工作状态发生不规则跳变,对输出信号造成巨大影响,无法得到所需要的svpwm触发信号。因此,图2中latch锁存器模块的作用就是锁存输入时间数据time1_a,time0_a、tim1_b、tim0_b、time1_c、time0_c,直至状态机的当前工作周期结束(即"order"命令有效)从而避免外界对状态机的工作状态的影响,保证状态机按照输入时间数据要求完成工作状态的转换。

利用有限状态机的方法设计fpga,只须控制三相桥臂开关状态的保持时间,就可以实现svpwm触发信号。图2中fsms主要由1个基准计数器和3个比较器构成,输入时间数据预存在3个比较器内,通过比较基准计数器当前值和比较器中的预存数据控制fsms工作状态的转换,同时根据不同的比较结果生成不同的三相桥臂开关驱动信号。如果基准计数器当前值等于预存输入时间,说明状态机当前工作状态已经完成,要转入下一个工作状态,相应的触发信号也要改变;如果基准计数器当前值不等于预存输入时间,说明状态机当前工作状态尚未完成,需要继续保持当前工作状态,相应的触发信号也保持不变。状态机按照输入时间信号的要求转换自身工作状态,使触发信号产生相应变化,从而实现时间信号向svpwm触发信号的转变。另外,由于fsms内部比较器参照同一基准计数器,因此三相触发信号之间不存在时间延迟,得到的是并行的三相触发信号。

设计方法

本设计采用自顶向下、层次化、模块化的设计思想。

latch锁存器模块由6个并行的6位数据锁存器构成,所有锁存器均使用图2中的"0rder"作为数据锁存信号,具体规定如下:
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输出为高阻态。

仿真结果

利用mux+plus ⅱ软件对本设计的逻辑功能进行仿真验证,仿真时间为0-120μs,时钟频率为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核,因而可简便地应用于逆变器控制系统中。


关键词:

评论

技术专区

关闭