基于FPGA的PWM控制器设计.doc

上传人:灯火****19 文档编号:138003172 上传时间:2020-07-13 格式:DOC 页数:5 大小:32KB
返回 下载 相关 举报
基于FPGA的PWM控制器设计.doc_第1页
第1页 / 共5页
基于FPGA的PWM控制器设计.doc_第2页
第2页 / 共5页
基于FPGA的PWM控制器设计.doc_第3页
第3页 / 共5页
基于FPGA的PWM控制器设计.doc_第4页
第4页 / 共5页
基于FPGA的PWM控制器设计.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于FPGA的PWM控制器设计.doc》由会员分享,可在线阅读,更多相关《基于FPGA的PWM控制器设计.doc(5页珍藏版)》请在金锄头文库上搜索。

1、FPGA实验报告 基于FPGA的PWM控制器设计1设计任务与要求1.1掌握PWM技术原理;了解PWM控制方法及应用;完成基于FPGA的PWM控制器设计。1.2通过课程设计的实践,进一步理解和掌握硬件描述语言(VHDL或Verilog)和TOP-DOWN的设计流程,提高对实际项目的分析和设计能力,体会FPGA项目的过程,熟悉实验报告的编写规范。2设计原理分析 2.1利用FPGA语言编写程序实现对50MHZ的硬件晶振进行分频和调节占空比。对硬件晶振的上升沿就行计数,当2nHZ频率利用高低电平进行分频时,当计数到n-1是对原电平进行反向就可以实现分频。占空比是对上升沿的计数是两个不同的数值时进行反向

2、。2.2脉宽调制(PWM)基本原理:控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次谐波少。按一定的规则对各脉冲的宽度进行调制,即可改变逆变电路输出电压的大小,也可改变输出频率。例如,把正弦半波波形分成N等份,就可把正弦半波看成由N个彼此相连的脉冲所组成的波形。这些脉冲宽度相等,都等于 /n ,但幅值不等,且脉冲顶部不是水平直线,而是曲线,各脉冲的幅值按正弦规律变化。如果把上述脉冲序列用同样数量的等幅而不等宽的矩形脉冲序列代替,使矩

3、形脉冲的中点和相应正弦等分的中点重合,且使矩形脉冲和相应正弦部分面积(即冲量)相等,就得到一组脉冲序列,这就是PWM波形。可以看出,各脉冲宽度是按正弦规律变化的。根据冲量相等效果相同的原理,PWM波形和正弦半波是等效的。对于正弦的负半周,也可以用同样的方法得到PWM波形。在PWM波形中,各脉冲的幅值是相等的,要改变等效输出正弦波的幅值时,只要按同一比例系数改变各脉冲的宽度即可,因此在交直交变频器中,PWM逆变电路输出的脉冲电压就是直流侧电压的幅值。根据上述原理,在给出了正弦波频率,幅值和半个周期内的脉冲数后,PWM波形各脉冲的宽度和间隔就可以准确计算出来。按照计算结果控制电路中各开关器件的通断

4、,就可以得到所需要的PWM波形。2.3原理图:3设计方案先设计分频器,以2分频为基础在器外部做循环可以实现2n倍分频。后面进行占空比调节使用计数器和比较器。根据精度不同分频倍数以及占空比精确度都都会不同。该电路使用的是5位计数器,故设置频率时要考虑占空比调节过程中已相当分频25倍。即m-25/2就是所应设置到分频器上的数值(注:并非分频倍率)。4设计步骤4.1自行编写分频器代码,通过编译等步骤生成分频器。4.2调用软件自带比较器和计数器并搭建后续电路。4.3仿真调试。4.4下载到试验箱进行测试。5设计程序代码Library IEEE;Use ieee.std_logic_1164.all;Us

5、e ieee.std_logic_arith.all;Use ieee.std_logic_unsigned.all;Entity CPLD is Generic (pulse_width:integer:=1);Port(clock_in:in std_logic;Clock_out:out std_logic);End entity;Architecture pwm_architecture of CPLD isSignal counter:std_logic _vector(4 downto 0):=”00000”;Signal clock_1:std_logic:=0;Signal c

6、ounter_1:std_logic _vector(5 downto 0):=”000000”; Begin Process(clock_in) Begin If clock_inevent and clock_in=1 then If pulse_widthcounter_1 then If counter=”00001” then Counter=”00000”; Else Counter=counter+1; End if; Counter_1=counter_1+1;Else Counter_1=”000000”; Clock_1=not clock_1;End if;End if;End process;Clock_out=clock_1;End architecture;5仿真波形6调试结果说明 由于比较器的位数有限因此所设置的占空比也是一个相对值并非特别精确。在仿真波形固定周期位置中出现了一个毛刺,老师指导可以通过滤波电路进行滤波。最后通过同学帮助通过修改比较器端口得到了解决。把输入端口的大于等于修改为大于号。消除了仿真过程中的毛刺。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 管理论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号