一种基于FPGA的五相随机SVPWM技术实现方法与流程

文档序号:11233971阅读:1099来源:国知局
一种基于FPGA的五相随机SVPWM技术实现方法与流程

本发明公开了一种基于fpga(现场可编程门阵列)的五相随机svpwm(空间矢量脉宽调制)技术实现方法,属于多相调制技术领域。



背景技术:

近年来,在航空航天,舰船推进,电动汽车等低压大功率领域,多相电机及其驱动系统得到了越来越多的应用。与传统三相电机驱动系统相比,多相电机驱动系统具有如下优点:(1)每相绕组承担功率减小;(2)输出转矩脉动小;(3)容错能力增加;(4)控制参数多,控制策略灵活。

多相逆变器作为多相电机的驱动器,其研究也受到了广泛关注,而调制技术是逆变器控制的基础,因此研究多相调制技术对多相电机及其驱动系统的发展有着重要意义

在多相电机中,最常见的调制方式是svpwm调制技术。在传统svpwm调制中,功率器件的开关频率是固定的,因此在开关频率及其整数倍数处,系统输出的电流电压波形会有大量高次谐波,会给系统带来大量噪声和电磁干扰,从而对系统正常工作造成影响。而随机pwm(脉宽调制)的出现则为这一问题的解决提出了思路。随机pwm调制技术通过改变每个开关周期的周期值使得系统的开关频率在一定范围内随机变化,从而将传统pwm调制在开关频率处的高次谐波分散到一定范围内,尽管谐波总量没有发生变化,但是大大减小了高频处的谐波幅值,从而减小了系统噪声与电磁干扰。

通常调制技术在dsp(数字信号处理器)中进行实现,但是随着集成电路的迅猛发展,可编程逻辑器件的产生与应用颠覆了传统电子设计的方法,其速度快,体积小,容量高,功耗小,受到研究人员的广泛使用,并且其可按照开发人员具体的设计要求进行实现,大大方便了系统的设计。可编程逻辑器件从最初的prom(可编程只读存储器),pla(可编程逻辑阵列)逐步发展为pal(可编程阵列逻辑),gal(通用阵列逻辑),再到目前的cpld(复杂可编程逻辑器件),fpga(现场可编程门阵列),其制造工艺,逻辑功能,功耗与速度都有了极大的改善。与dsp相比,fpga依赖硬件实现算法,其处理速度更快,并且fpga不局限于特定功能,设计灵活,可以根据实际需求配置引脚,适用于多相系统相数的扩展。

目前随机调制技术通常采用dsp实现,运算速度慢且不易扩展到更多相数的系统中去,而利用fpga则可有效避免上述问题。



技术实现要素:

本发明针对上述背景技术的不足,提出了一种基于fpga的五相随机svpwm技术实现方法,利用fpga实现五相随机svpwm技术,解决了传统dsp实现运算速度慢,不易扩展到更多相数的系统中去的技术问题。

本发明为其技术问题采用如下技术方案:

一种基于fpga的五相随机svpwm技术实现方法,包括如下步骤:

1)首先由正弦信号产生模块产生正弦参考电压;

2)其次由随机信号产生模块产生随机周期值与零矢量作用时间;

3)接着由扇区选择模块判断正弦参考电压位于哪个扇区;

4)然后由矢量作用时间模块计算相邻最近四矢量作用时间;

5)接着由开关动作时间模块计算上下开关管动作时间;

6)最后由pwm产生与死区设置模块产生带有死区的pwm波,从而驱动后级电路。

步骤1的具体方法为:建立查找表,将正弦值计算出,存在相应的rom中,使用时根据地址读取相应的正弦值。

步骤2的具体方法为:采用线性同余法产生随机信号,在fpga中,利用变量的位数进行操作,选择随机数的位宽为16位,当其大于16位时,高位溢出,等效于作同余计算;选用同样的方法,不同的质数,产生两个不同的随机序列,采用两状态马尔科夫链的形式产生随机开关频率与随机零矢量作用时间。

步骤3的具体方法为:扇区选择模块将平面分为十个扇区,根据参考电压在α-β平面的位置判断该正弦电压矢量位于哪个扇区。

步骤4的具体方法为:矢量作用时间模块采用移位的方式将无理数成比例扩大1024倍后取整,再同比例缩小,以此计算矢量作用时间。

步骤5的具体方法为:开关动作时间模块根据矢量作用时间,按照五相svpwm原理计算出各开关管的动作时间。

步骤6的具体方法为:pwm产生与死区设置模块首先根据αβ平面的参考电压值进行扇区选择,随后根据计算出的开关动作时间设置开关信号0,1值;配置死区时,以上管开通关断时刻作为基准,下管相应的提早关断与延时导通,死区设置为1μs。

本发明具有以下有益效果:

1、fpga是基于硬件实现算法,相比于传统dsp实现,运算速度快。

2、采用线性同余法产生随机数,实现方便且不占用空间,加入两状态马尔科夫链后,可优化随机数的分布情况,并且马尔科夫链实现过程与线性同余法类似,缩短开发时间。

3、fpga拥有引脚管理模块,可灵活地配置引脚,使最终输出的十路pwm满足用户的需求,在此基础上,可方便地增加引脚将五相调制技术扩展到更多相数中去,利于今后进一步研究。

附图说明

图1为五相随机svpwm总体设计模块图。

图2为正弦信号产生模块示意图。

图3为随机信号产生模块示意图。

图4为pwm产生及死区设置示意图。

具体实施方式

下面结合附图对发明创造做进一步详细说明。

五相随机svpwm设计流程图如图1所示,整个设计流程包括正弦信号产生模块,随机信号产生模块,矢量作用时间模块,开关动作时间模块,扇区选择模块,pwm产生及死区设置模块。首先由正弦信号产生模块产生参考电压值,随机信号产生模块产生随机周期值,接着矢量作用时间模块根据这些量计算矢量作用时间,开关动作时间模块根据矢量作用时间计算开关动作时间,最后pwm产生及死区设置模块产生pwm波并设置死区,从而驱动后级电路。

正弦信号产生模块如图2所示。五相svpwm调制的输入量为α-β坐标轴下的电压量,为使最终逆变器输出为正弦,因此调制时的输入量选用正弦值。在fpga中,通常采用查找表的方式输出正弦量。查找表方法是将正弦值计算出,存在相应的rom或ram中,使用时根据地址读取相应的正弦值。根据正弦波的对称性,只需知道周期内的正弦值便可推算出整个周期内的正弦值,并且这样做还节约了大量资源。在实际操作过程中,首先采用matlab生成周期的正弦值,共50个值,考虑到fpga无法运算小数,则将正弦值扩大212倍后取整,生成可供romip核读入的后缀为.coe文件。在fpga开发环境中,生成一个位宽13位,深度50的rom存储器,根据时钟的上升沿及地址便可取出相应的正弦值。

基于两状态马尔科夫链的随机信号产生模块如图3所示。实验中采用线性同余法产生伪随机数。线性同余法的递推公式是:

nj+1≡(a×nj+b)(同余m)(j=0,1,2....)

其中nj为j时刻值,nj+1为j+1时刻值,a,b,m是设计者自行选择的参数,要求满足下列条件:

1.a,b是正整数;

2.b,m互质;

3.若m是4的倍数,则a-1也是;

4.m的所有质因子的积能整除a-1;

5.a,b,n0(nj,j=0)都比m小。

根据以上理论计算出的序列nj就是伪随机序列。

在fpga中,同余计算需要消耗大量资源,因此可以利用变量的位数进行操作,选择随机数的位宽为16位,当其大于16位时,高位溢出,等效于作同余计算。一个随机数的产生只需进行一次乘法运算与一次加法运算。

采用两状态马尔科夫链时需要产生两个随机数,均是通过线性同余法产生,只是在选择互质的质数时不同。加入马尔科夫链后,原理如图3所示。随机数1用来产生转移概率,首先将随机数2与数学期望相比,再根据转移概率判断下一时刻的随机数2大于还是小于数学期望,并作相应处理,利用此方法产生的随机数能更均匀地分布在数学期望的两侧,使得最终实现效果更好。

pwm产生及死区设置模块如图4所示。五相逆变器需要十路pwm驱动,图4以a相为例,介绍pwm及死区模块。首先根据αβ平面的参考电压值进行扇区选择,随后根据计算出的开关动作时间设置开关信号0,1值。配置死区时,以上管开通关断时刻作为基准,下管相应的提早关断与延时导通,死区设置为1μs。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1