利用FPGA实现SVPWM的方法(1)

利用FPGA实现SVPWM的方法(1),第1张

苦苦思索好久也还没能完整地编出一个程序,所以在这里慢慢整理一下,说不定就能找到正确的思路。

首先先简单介绍一下SVPWM的基本原理

1.什么是SVPWM

SVPWM控制策略是依据变流器空间电压(电流)矢量切换来控制变流器的一种新颖思路的控制策略,采用逆变器空间电压切换以获得准圆形的旋转磁场,从而再不高的开关频率下使得交流电机获得较SPWM算法更好的控制性能。

SVPWM算法实际上是对应于交流电机中的三相电压源逆变器功率器件的一种特殊的开关触发顺序和脉宽大小的组合,这种开关触发顺序和组合将在定子线圈中产生三相互差120度的电角度,失真较小的正弦波电流波形

SVPWM主要的优点有:

(1)优化谐波程度高,消除谐波效果比SPWM好,实现容易,同时能够提高电压的利用率。

(2)提高了电压源逆变器的直流电压利用率和电机动态响应速度,同时减小了电机的转矩脉动等缺点。

(3)SVPWM比较适合于数字化控制系统。

2.变换的一些简单推导

首先设三相的3个标量为xa,xb,xc, 同时满足xa+xb+xc=0,那么可以引入变换

Xout=xa+axb+a^2xc

其中 a=cos(2pi/3)+jsin(2pi/3)

a^2=cos(-2pi/3)+jsin(-2pi/3)

Xout的实部和虚部分别可以表示为:

ReXout=xa+xbcos(2pi/3)+xccos(-2pi/3)

ImXout=xbsin(2pi/3)+xcsin(-2pi/3)

今年电子大赛的时候做过一个,不过是基于XILINX公司的FPGA的,我给你介绍一下思路吧。

还有就是不知道你的信号发生器要求频率和精度是多少

一般有两种实现方式:一种是控制AD输出模拟量,另一种是通过SPWM和低通整流而来

本程序是第二种

工作机理有两部分组成:PWM的产生和表

产生部分由两个寄存器和一个计数器组成,计数器不听累加同时与两个寄存器作比较,两个寄存器一个控制置底一个控制拉高,一般把一个固定就行了(有的地方说是一个控制周期一个控制高电平时间,其实是一样的)

表里放的是一个正弦数组(产生正弦波),之后有一个寄存器控制读取表的速度(间隔),把读取出的表值存入上面那个没固定的寄存器就行了

http://blog.sina.com.cn/s/blog_6e22b1da0100n52r.html

我的博客里有一篇关于SPWM模式的DDS的文章

你可以看一看

不懂得话可以给我留言

A/D转换的方法要比SPWM的方法简单,首先你要新建一个存储空间,里面存上A/D的电压控制量的一维数组,数组中存在的数值对应的电压从前到后呈正弦波形排列,每个周期从数组中每隔n个元素依次读取数组付给A/D转换器,这样A/D就可以输出正弦波了,而里面的n步进是由一个寄存器控制的,n的大小决定了你的频率。

至于你说的液晶显示,按键等。我建议你用SOPC实现,Alter公司有Nois2的ip核。它相当于把FPGA当单片机用,你将液晶控制、按键控制、波形生成分别变成自定义IP核集成于系统,之后在顶层用C语言实现目的即可。

如果你不会HDL语言的话,必须先把它学了。如果你不了解SOPC的话,给你介绍一个很好的资料,估计你按这个一步一步来,1周就能学会。

http://wenku.baidu.com/view/dd7ade360b4c2e3f57276360.html

这是百度文库的链接,一共是五章,你可以自己搜索。

今年的电子大赛FPGA组的比赛有不少省市都和你这道题有关,虽然是XILINX公司的,但是大同小异。

这得看你SPWM的最大占空比与最小占空比,假设SPWM的最大占空比与最小占空比为M,N,则经过低通滤波后输出幅度为(V+ - V-)*(M-N)/2,V+、V-分别为SPWM的高电平电压与低电平电压,比如说SPWM最大占空比为90%,最小占空比为10%,高电平电压为12V,低电平电压为0V,经过低通虑波后正弦波幅度约为4.8V。实际情况可能会稍小一点,因为接上负载后幅度会稍有下降。最好的解决方法是让SPWM的最大占空比与最小占空比固定,这样子经过LP滤波后幅度即固定,然后再用个可变增益放大器或街乘法器之类的来调节幅度。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8010492.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存