基于FPGA的SPWM论文.docx

上传人:b****5 文档编号:3347562 上传时间:2022-11-22 格式:DOCX 页数:22 大小:1.11MB
下载 相关 举报
基于FPGA的SPWM论文.docx_第1页
第1页 / 共22页
基于FPGA的SPWM论文.docx_第2页
第2页 / 共22页
基于FPGA的SPWM论文.docx_第3页
第3页 / 共22页
基于FPGA的SPWM论文.docx_第4页
第4页 / 共22页
基于FPGA的SPWM论文.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

基于FPGA的SPWM论文.docx

《基于FPGA的SPWM论文.docx》由会员分享,可在线阅读,更多相关《基于FPGA的SPWM论文.docx(22页珍藏版)》请在冰豆网上搜索。

基于FPGA的SPWM论文.docx

基于FPGA的SPWM论文

 

本科课题论文(设计)

题目:

基于FPGA的SPWM设计

专业:

电子信息工程

*******

学生学号:

*********

院系:

物理与电子工程学院

年级、班:

12级4班

*******

 

年月日

摘要

SPWM(SinusoidalPWM),即正弦脉宽调制法是一种比较成熟的,目前使用较广泛的PWM法。

本文是基于FPGA的来产生频率,相位可调的SPWM发生器。

首先简述SPWM的产生原理,并对现今产生SPWM几种方法进行论证分析,说明FPGA实现的优势。

然后在原理的基础上用VHDL编写实现的各功能模块,最后整合成一个频率,相位可调的SPWM发生器。

在实现过程中对各个模块用ModelSim进行RTL仿真。

来验证设计的正确性。

最后,对整体进行最后确认。

通过ModelSim仿真观察可得,基于FPGA的SPWM发生器可以正确的产生指定频率和相位的SPWM波。

关键词正弦脉宽调制;FPGA;频率可调;相位可调;ModelSim

Abstract

SPWM(SinusoidalPWM),namelythesinusoidalpulsewidthmodulationisarelativelymature,theuseofPWMmethodwidely.ThisdesignisabasedonFPGA,frequencyandphaseadjustableSPWMgenerator.

First,givetheprincipleoftheSPWM,andnowproducesseveralmethodsofSPWMandanalyzestheadvantageofFPGAimplementation.ThenusetheVHDLcompileeachfunctionmoduleintheprinciplefoundation,finallyintegratedintoafrequencyandphaseadjustableSPWMgenerator.IntheprocessofimplementationofeachmodulewithModelSimRTLsimulation.Toverifythecorrectnessofthedesign.

Finally,thefinalconfirmationoftheoverall.ThroughthesimulationofModelSimobservation,SPWMgeneratorbasedonFPGAcangenerateSPWMwavespecifiedfrequencyandphasecorrect.

KeywordsSPWMFPGAfrequencyandphaseadjustableModelSim

 

第1章 绪论

1.1SPWM介绍

PWM的全称是PulseWidthModulation(脉冲宽度调制)。

,它是通过改变输出方波的占空比来改变等效的输出电压。

广泛地用于电动机调速和阀门控制,比如电动车电机调速就是使用这种方式

SPWM,即正弦脉冲宽度调制(SinusoidalPulseWidthModulation),就是在PWM的基础上改变了调制脉冲方式,脉冲宽度时间占空比按正弦规律排列,用SPWM波形控制逆变电路中开关器件的通断,使其输出的脉冲电压的面积与所希望输出的正弦波在相应区间内的面积相等,通过改变调制波的频率和幅值则可调节逆变电路输出电压的频率和幅值,这样输出波形经过适当的滤波可以做到正弦波输出。

它广泛地用于直流交流逆变器等.

1.2SPWM原理实现方案

1.2.1等面积法

该方案实际上就是SPWM法原理的直接阐释,用同样数量的等幅而不等宽的矩形脉冲序列代替正弦波,然后计算各脉冲的宽度和间隔,并把这些数据存于微机中,通过查表的方式生成PWM信号控制开关器件的通断,以达到预期的目的.由于此方法是以SPWM控制的基本原理为出发点,可以准确地计算出各开关器件的通断时刻,其所得的的波形很接近正弦波,但其存在计算繁琐,数据占用内存大,不能实时控制的缺点.

1.2.2硬件调制法

硬件调制法是为解决等面积法计算繁琐的缺点而提出的,其原理就是把所希望的波形作为调制信号,把接受调制的信号作为载波,通过对载波的调制得到所期望的PWM波形。

通常采用等腰三角波作为载波,当调制信号波为正弦波时,所得到的就是SPWM波形。

其实方法简单,可以用模拟电路构成三角波载波和正弦调制波发生电路,用比较器来确定它们的交点,在交点时刻对开关器件的通断进行控制,就可以生成SPWM波。

但是,这种模拟电路结构复杂,难以实现精确的控制。

1.2.3软件生成法

由于微机技术的发展使得用软件生成SPWM波形变得比较容易,因此,软件生成法也就应运而生。

软件生成法其实就是用软件来实现调制的方法,其有两种基本算法:

即自然采样法和规则采样法.

1.2.3.1自然采样法

以正弦波为调制波,等腰三角波为载波进行比较,在两个波形的自然交点时刻控制开关器件的通断,这就是自然采样法.其优点是所得SPWM波形最接近正弦波,但由于三角波与正弦波交点有任意性,脉冲中心在一个周期内不等距,从而脉宽表达式是一个超越方程,计算繁琐,难以实时控制。

1.2.3.2规则采样法

规则采样法是一种应用较广的工程实用方法,一般采用三角波作为载波。

其原理就是用三角波对正弦波进行采样得到阶梯波,再以阶梯波与三角波的交点时刻控制开关器件的通断,从而实现SPWM法.当三角波只在其顶点(或底点)位置对正弦波进行采样时,由阶梯波与三角波的交点所确定的脉宽,在一个载波周期(即采样周期)内的位置是对称的,这种方法称为对称规则采样。

当三角波既在其顶点又在底点时刻对正弦波进行采样时,由阶梯波与三角波的交点所确定的脉宽,在一个载波周期(此时为采样周期的两倍)内的位置一般并不对称,这种方法称为非对称规则采样。

规则采样法是对自然采样法的改进,其主要优点就是是计算简单,便于在线实时运算,其中非对称规则采样法因阶数多而更接近正弦.其缺点是直流电压利用率较低,线性控制范围较小。

以上两种方法均只适用于同步调制方式中。

1.2.4低次谐波消去法

低次谐波消去法是以消去PWM波形中某些主要的低次谐波为目的的方法。

其原理是对输出电压波形按傅氏级数展开,表示为u(ωt)=ansinnωt,首先确定基波分量a1的值,再令两个不同的an=0,就可以建立三个方程,联立求解得a1,a2及a3,这样就可以消去两个频率的谐波。

该方法虽然可以很好地消除所指定的低次谐波,但是,剩余未消去的较低次谐波的幅值可能会相当大,而且同样存在计算复杂的缺点。

该方法同样只适用于同步调制方式中。

1.2.5梯形波与三角波比较法

前面所介绍的各种方法主要是以输出波形尽量接近正弦波为目的,从而忽视了直流电压的利用率,如SPWM法,其直流电压利用率仅为86.6%。

因此,为了提高直流电压利用率,提出了一种新的方法--梯形波与三角波比较法.该方法是采用梯形波作为调制信号,三角波为载波,且使两波幅值相等,以两波的交点时刻控制开关器件的通断实现PWM控制。

由于当梯形波幅值和三角波幅值相等时,其所含的基波分量幅值已超过了三角波幅值,从而可以有效地提高直流电压利用率。

但由于梯形波本身含有低次谐波。

所以输出波形中含有5次,7次等低次谐波。

1.2.6.1单极性法

如图1.2.6.1调制波和载波:

曲线①是正弦调制波,其周期决定于需要的调频比kf,振幅值决定于ku,曲线②是采用等腰三角波的载波,其周期决定于载波频率,振幅不变,等于ku=1时正弦调制波的振幅值,每半周期内所有三角波的极性均相同(即单极性)。

调制波和载波的交点,决定了SPWM脉冲系列的宽度和脉冲音的间隔宽度,每半周期内的脉冲系列也是单极性的。

 

(2)单极性调制的工作特点:

每半个周期内,逆变桥同一桥臂的两个逆变器件中,只有一个器件按脉冲系列的规律时通时断地工作,另一个完全截止;而在另半个周期内,两个器件的工况正好相反,流经负载ZL的便是正、负交替的交变电流。

图1.2.6.1单极性SPWM

1.2.6.2双极性法

如图1.2.6.2调制波和载波:

调制波仍为正弦波,其周期决定于kf,振幅决定于ku,中曲线①,载波为双极性的等腰三角波,其周期决定于载波频率,振幅不变,与ku=1时正弦波的振幅值相等。

 调制波与载波的交点决定了逆变桥输出相电压的脉冲系列,此脉冲系列也是双极性的,但是,由相电压合成为线电压(uab=ua-ub;ubc=ub-uc;uca=uc-ua)时,所得到的线电压脉冲系列却是单极性的。

 

(2)双极性调制的工作特点:

逆变桥在工作时,同一桥臂的两个逆变器件总是按相电压脉冲系列的规律交替地导通和关断,毫不停息,而流过负载ZL的是按线电压规律变化的交变电流。

图1.2.6.2双极性SPWM

 

1.3SPWM硬件实现方案

一、采用单片机来产生SPWM的方法,只须采用单片单片机,控制灵活,但SPWM信号的产生需占用CPU大量的工作时间,通用性差。

二、基于DSP控制的单相逆变电源设计方案,运算速度快,但合成频率较低且不可调。

三、采用单片机和FPGA协同设计,实现了对SPWM信号的调频控制,但系统实现比较复杂,成本较高。

四、基于FPGA的SPWM控制器实现方案,通过控制相位累加器和输入频率来控制。

1.4本设计方案选择

通过以上分析,FPGA具有丰富的存储资源,完全可以存储足够的相位字来生成三角波和正弦波。

FPGA是硬件级别的设计,可以快速实现查表等操作。

所以可以生成较高频率的波形。

综上,本设计采用FPGA,通过双极性的三角波,正弦波比较法来设计SPWM发生器。

1.5本章小结

产生SWPM的方法很多。

应该根据需要选择合适的方法,否则可能造成资源的浪费或无法实现指标。

虽然随着现在集成电路的发展,已经有和多成熟的SPWM专用芯片,比如SA8281,但基于FPGA的SPWM可以做到高速,稳定,还可以同其他数字电路一起设计在一块FPGA上。

从而减小电路的复杂性。

因此基于FPGA的SPWM设计有它自己的优势。

 

第2章 VHDL设计

2.1总体框图

 

2.2模块设计

2.2.1可调分频器

频率控制可以通过控制相位增量来控制。

但由于本设计采样值较少。

容易造成波形的不连续。

所以选择控制输入频率。

详细程序见附录1。

分频器有计数器,比较器,和触发器等组成,频率字被高电平使能锁存进寄存器后,计数器对时钟脉冲进行计数,当计数器等于频率字寄存器后,对输出取反,从而实现分频。

分频后频率

分频器RTL原理图如图2.2.1.1

图2.2.1.1可调分频器原理图

分频器RTL仿真如图

图2.2.1.2分频器RTL仿真

图2.2.1.2为fre_word为4,16,8时的时序图。

可以看到当频率字fre_word送的数据线上后,然后使能,输出clk_out的频率就会相应改变

2.2.2时钟发生器

为了得到较准确的SPWM波。

选取三角波的频率为为正弦波的16倍,且两者应该同步,所以设计了时钟发生器。

详细程序见附录。

时钟发生器由一个二进制计数器,比较器和触发器组成,触发器可以同步两时钟的相位。

时钟发生器有时钟输入,复位,和三角时钟输出,正弦时钟输出。

RTL原理图如图2.2.2.1。

从RTL仿真可以看出,两者的上升沿是同步的。

 

图2.2.2.1时钟发生器RTL原理图

RTL仿真如图2.2.2.2

图2.2.2.2时钟发生器RTL仿真

2.2.3地址发生器

地址发生器由于产生LUT的地址。

可以同步产生三角波LUT和正弦波LUT的地址。

地址发生器的地址宽度为8位,地址为线性递增。

当达到最大值是从0重新开始。

地址发生器主要由加法器组成。

详细程序见附录。

地址发生器有三角,正弦时钟输入,和三角,正弦地址输出,复位。

RTL原理图如图2.2.3.1.

图2.2.3.1.地址发生器RTL原理图

地址发生器RTL仿真如图2.2.3.2

图2.2.3.2地址发生器RTL仿真

2.2.4相位调节器器

为了能够精确的控制输出SPWM,所以通过相位累加器精确调节正弦波的相位,从而控制SPWM的相位。

相位累加器用来实现输入地址和相位控制字的相加,从而改变正弦输入的相位。

详细程序见附录。

相位累加器有8位相位输入,相位字使能,复位。

如果想正弦波后移,根据三角公式,当相位字超过周期的一半即可实现相位的后移。

原理图如图2.2.4.1

图2.2.4.1相位累加器RTL原理图

RTL仿真如图2.2.4.2.

图2.2.4.2相位累加器RTL仿真

从图中可以看出,当使能相位输入以后,输出地址(上方)相对输入(下方)有明显的超前。

2.2.5LUT

L两种波形LUT实际由ROM组成,ROM根据输入的地址输出相应的数据,即可完成查表操作。

由于ROM的mif文件计算比较麻烦,所以使用C语言编程,由计算机生产,程序见附录2.

由于现今的FPGA都带有足够的RAM,所以ROM的设计是用芯片本身的RAM改变而成。

RTL原理图如图2.2.5.3

部分mif文件值如下表。

表2.2.5.1表2.2.5.2

2.2.6比较器

比较器用来实现正弦数据和三角波数据的比较。

当正弦波输入大于三角波输入,输出1,其余输出0,。

从而产生需要的SPWM波。

比较器的比较操作有三角波时钟进行同步。

详细程序见附录。

比较器有两个输入,一个输出,和时钟输入。

RTL原理图如图2.2.6.1

图2.2.6.1比较器原理图

RTL仿真如图2.2.6.2

图2.2.6.2比较器RTL仿真

图中,当IN1>IN2时,输出Q即为1,。

2.3顶层设计

为了直观的进行各信号之间的连接,顶层实体采用原理图符号的形式进行设计。

先将个模块转换成符号文件,然后再顶层进行设计。

顶层设计如图2.3.1

图2.3.1顶层设计

顶层的RTL仿真如图2.3.2

图2.3.2顶层RTL仿真

图中fre_word为00000011,pha_word为00000000。

2.4本章小结

VHDL部分的设计选择的工具是Altera的QuartusII13.0。

软件可以根据FPGA设计的不同流程选择不同的工具和选择不同的设计文件。

极大的方便了FPGA的开发。

RTL仿真部分采用的是MentorGrath的ModelSim。

该软件时现如今比较成熟,仿真效果较好的第三方VHDL仿真器。

同时,由于现在开发需要的数据越来越来,如何熟练的使用C语言让计算机帮组计算也是非常重要的。

由于本章主要是在RTL级进行设计,可能会与实际硬件有出入。

所以下一章将进行硬件仿真。

 

第3章 FPGA硬件调试

3.1硬件搭建

硬件由两部分组成。

波形生成器和控制时序生成器。

控制时序由MSP430单片机生成。

FPGA采用的是Alterat公司的CycloneII系列的EP2C5T144。

整个设计的实物连接如图3.1。

图3.1

3.2波形调试

为了减小调试的复杂程度。

对于正弦波和三角波两内部信号使用的是Altera的片内逻辑分析仪SignalTapIILogicalAnalyser。

可以设置好时钟和触发信号后将内部信号通过JTAG上传给电脑显示出来。

经过调试。

示波器显示如图3.2.1

图3.2.1示波器显示

可以看出信号具有比较明显的SPWM信号特征。

SignalTapIILogicalAnalyser内部分析结果如下。

图3.2为正弦波信

号。

由于器件内部RAM有限,导致采样深度不够,无法显示出完整周期的信号。

图3.3为内部三角波信号。

信号良好。

两者上部分均为内部的SPWM信号。

图3.2内部正弦信号

图3.3内部三角波信号

3.3本章小结

经过计算,理论SPWM的的频率为22.3khz,实测为21.1khz,考虑硬件延迟和外部干扰。

信号基本正确。

由于没有进行信号调理,导致波形有明显的尖脉冲。

同时由于器件限制,也未能获得完整的正弦信号。

考虑这些因素,调试比较陈功。

 

第4章 总结

此设计从原理到实现,都以尽可能简单的方式来实现SPWM。

内部地址线采用的是8位,而不是通过较高的32位最后进行总线转换而成。

在分频环节,采用了前级分频的方法,而不是通过调节相位累加器,这样能尽可能保证比较数据的数量。

获得较精确的波形。

最后,通过比较简单的硬件,实现了SPWM。

此次设计最后比较成功。

能够获得较好SPWM信号。

但从中还是能看到此方法的不足之处。

比如频率较低,频率计算麻烦。

信号失真较大。

从原理上,如果要获得平滑的正弦信号,必然需要增加LUT里的值,这样一来,就会降低输出频率,同时由于调频采用的是分频器原理,进一步降低了系统的频率。

最后导致50M的时钟却只输出了20几k的频率。

同时由于没有对输出信号进行调整,导致波形并不完美。

这可以通过后记得调理电路加以改善。

最后,进过此次设计,可以看出还有很多可以改进的地方。

比如原理实现,软件设计。

硬件选择。

所以,实现SPWM方法很多,在合适的地方用合适的方案才是最佳的选择,高精度不一定就是最合适的。

 

参考文献

1张文爱.EDA技术与FPGA引用.电子工业出版社,2012:

1-200

2高迹象.大学生电子设计模拟设计部分.电子工业出版社,2010:

56-89

3毛惠丰.SPWM等效采样原理与实现.西安交通大学论文,2006:

1-40

4MentorGraphCompany.ModelSimUserGuid,2010:

100-109

5Altera,QuartusII13.0usermanual,2013:

455-500

6TICompany,MSP430x1xxuserguid,2010:

56-79

7阎石,数字电子技术基础,高等教育出本社,2010:

466-500

8谭浩强,C程序设计,清华出版社,2012:

102-120

9佚名,数字系统设计与VHDL,电子工业出版社,2010:

10—20

10文良化,计数器的设计,宜宾学院课程,2014:

 

致谢

在此次设计过程,有很多人给予了我力所能及的帮助。

首先,是EDA指导老师,文良话,在此次设计中,帮助我解决了很多自己想不通的问题,对设计中的缺陷用进行了纠正。

帮助我完善了设计。

在此深表感谢。

其次是设计中通力合作的室友,有吴庆文,侯杰等。

他们帮助我查找资料,完善设计等。

最后是实验室管理员张朝阳老师。

为此次设计提供了必要的调试场地和调试仪器。

 

附录

可调分频器VHDL代码

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

useieee.std_logic_arith.all;

entityfre_adjis

port(fre_word:

instd_logic_vector(7downto0);

fre_en:

instd_logic;

clk_in:

instd_logic;

clk_out:

outstd_logic;

rst:

instd_logic);

endentityfre_adj;

architecturearchi_freadjoffre_adjis

signalfre_cnt:

std_logic_vector(7downto0);

signalfre_cnt_word:

std_logic_vector(7downto0);

signaltmp:

std_logic;

begin

process(clk_in,fre_en,rst)

begin

ifclk_in'eventandclk_in='1'then

ifrst='0'then

tmp<='1';

fre_cnt<="00000000";

elsiffre_en='1'then

fre_cnt_word<=fre_word;

else

fre_cnt<=fre_cnt+1;

endif;

iffre_cnt=fre_cnt_wordthen

tmp<=nottmp;

fre_cnt<="00000000";

endif;

endif;

endprocess;

clk_out<=tmp;

endarchitecturearchi_freadj;

时钟发生器VHDL代码

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

useieee.std_logic_arith.all;

entityclock_genis

port(

clk:

instd_logic;

rst:

instd_logic;

Q_SIN:

bufferstd_logic;

Q_TRI:

bufferstd_logic

);

endclock_gen;

architecturearchiofclock_genis

signalQ_SIN_CNT:

std_logic_vector(3downto0);

begin

process(clk)

begin

ifclk'eventandclk='1'then

ifrst='0'then

Q_SIN<='1';

Q_SIN_CNT<="0000";

Q_TRI<='1';

else

Q_SIN_CNT<=Q_SIN_CNT+1;

Q_TRI<=notQ_TRI;

endif;

ifQ_SIN_CNT="1111"then

Q_SIN<=notQ_SIN;

endif;

endif;

endprocess;

endarchitecturearchi;

地址发生器VHDL代码

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

useieee.std_logic_arith.all;

entityaddress_genis

port(

clk_sin:

instd_logic;

clk_tri:

instd_logic;

rst:

instd_logic;

out_sin:

outstd_logic_vector(7downto0);

out_tri:

outstd_logic_vector(7downto0)

);

endentityaddress_gen;

architecturearchi_add_genofaddress_genis

signalout_sin_tem

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1