EDA步进电机控制_第1页
EDA步进电机控制_第2页
EDA步进电机控制_第3页
EDA步进电机控制_第4页
EDA步进电机控制_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.EDA技术设计报告直流电机的PWM控制电子信息工程学院 通信2班 顾问 20122144851、 EDA技术概述EDA(Electronic Design Automation)技术作为现代电子设计技术的核心,它依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动地完成逻辑化简、逻辑分割、逻辑综合、结构综合(布局布线),以及逻辑优化和仿真测试等项功能,直至实现既定性能的电子综合系统功能。EDA技术使得设计者的工作几乎仅限于利用软件的方式,即利用硬件描述语言HDL和EDA软件来完

2、成对系统硬件功能的实现。2、 硬件描述语言与所用软件简介2.1、Verilog HDL硬件描述语言功能介绍Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设

3、计外部访问设计,包括模拟的具体控制和运行。Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。Verilog HDL提供了扩展的建模能力,其中许多扩展最初很难理解。但是,Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。2.2、Quartus II软件综述Quartus II是Altera公司在21世纪初推出的FPGA/CPLD开发环境,是Alt

4、era前一代FPGA/CPLD开发环境MAX+PLUSII的更新换代产品,其优点是功能强大、界面友好、使用便捷。Quartus II软件集成了Altera的FPGA/CPLD开发流程中所涉及的所有工具和第三方软件接口。通过此开发工具,设计者可以创建、组织和管理自己的设计。2.3、第三方仿真工具ModelSimModelSim仿真工具是由Model技术开发公司开发的目前业界最通用的仿真器之一,它支持Verilog和VHDL混合仿真,仿真精度高,仿真速度快。其仿真版本繁多,与Altera相关的主要有ModelSim-Altera(即AE版本)、ModelSim SE和ModelSim PE版本等。

5、三、设计原理3.1、直流电机PWM调速原理脉冲宽度调制(PWM)是一种模拟控制方式,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。PWM控制技术以其控制简单,灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号任然是数字的,因为在给定的任何时刻,满幅值的直流

6、供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,短的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。3.2、直流电机的PWM控制PWM信号可以由CPU产生,也可以油FPGA产生。由CPU产生PWM信号时,是通过模拟比较器产生的,比较器的一端接一个给定的参考电压,另一端接周期线性增加的锯齿波电压。当锯齿波电压小于参考电压时输出低电平,当锯齿波电压大于参考电压时就输出高电平。所以改变参考电压就可以改变PWM波形的高电平的宽度,也就是改变PWM波形的占空比

7、。CPU产生PWM信号,需要D/A转换器产生锯齿波电压和设置参考电压,通过外接模拟比较器输出PWM,因此外围电路很复杂。而用FPGA的数字PWM控制产生PWM信号,只需要FPGA内部资源就可以实现,运用可编程逻辑器件,采用VerilogHDL硬件描述语言编程。数字比较器的一端接设定值计数器输出,另一端接线性递增计数器输出。如果线性计数器的技术值小于设定值就输出低电平,如果线性计数器的技术值大于设定值时输出高电平。FPGA的数字PWM控制与模拟PWM控制相比,省去了外接的D/A转换器和模拟比较器,FPGA外部连线很少、电路简单、便于控制。四、基本功能介绍4.1、功能简介 本次设计制作了一个PWM

8、信号电机控制系统,共有两个按键,其中,一个按键可以控制产生的PWM的宽度(即数字1的时间长度),按下该按键,PWM的宽度增加4096个主时钟宽度,从而达到电机加速的目的,共有16个档速,PWM的宽度从0-4096*15个主时钟的宽度。另外一个按键控制PWM波的输出与否,按下,如果PWM在输出,则停止输出,如果不在输出,则开始运行,从而实现对电机的开关控制。同时,本系统内部自行设定了一个5s定时器,可以实现每5S钟电机转向的反转。4.2、设计原理框图 电机控制系统Key_in1Key_in0Pwm_en指示信号Motoa电机a端Motob电机b端按键消抖及检测5s定时实现反转转速控制电机开关4.

9、3、顶层图4.4、引脚说明 输入: Clock:系统总时钟输入 Rst_n:系统复位按键 Key1:0:系统功能按键。Key1控制PWM波从输出与否 Key0控制电机转速,可加速 输出: motoa,motob:电机的两个输入引脚 pwm_en:pwm波指示:1-输出(即电机开启) 0-停止(即无PWM输出)五、代码各部分模块介绍5.1、系统模块RTL视图5.2、系统各模块简介: 5.2.1、pwm_logic模块简介引脚说明:输入:clk:总时钟信号 rst_n:复位信号 pwm_en: pwm使能信号 duty_cycle: 控制PWM宽度 输出: pwm_out:PWM输出 PWM_lo

10、gic模块顶层视图5.2.2、pwm_logic模块原理介绍程序通过一个计数器来实现PWM的输出,通过duty_cycle来控制输出的PWM波的占空比,PWM_en来实现PWM的输出与否。 核心程序如下: always (posedge clk) /计数器计数,pwm_en为使能信号begin if(!rst_n) counter = 0; else if(pwm_en) counter = counter + 1b1;endalways (posedge clk) /PWM_out输出,程序根据判断计数器begin /counter【15:12】跟duty_cycle比较来实现 if(!rs

11、t_n) /PWM的输出,则输出1大于则输/0. pwm_out = 1b0; else if (pwm_en & (counter15:12 = duty_cycle) pwm_out = 1b1; else pwm_out = 1b0;end 5.2.3、moto模块简介引脚说明:输入:clk:总时钟信号 rst_n:复位信号 Key1:0:按键输入 PWM_in:PWM输入信号输出: duty_cycle:转速控制 pwm_en: pwm使能信号 Motoa:电机a端口。 Motob:电机b端口。 moto模块顶层视图5.3、moto模块原理介绍 模块内部原理: 5.3.1、按键消抖及检

12、测部分 核心程序如下: /按键消抖部分always (posedge clock)begin if(!rst_n) begin dout1 = 0; dout2 = 0; dout3 = 0; end else if(div_clk) /div_clk是主时钟分频之后的时钟, Begin / 用于使能按键检测 dout1 = key; dout2 = dout1; dout3 = dout2; endend/按键边沿检测部分 always (posedge clock) begin if(!rst_n) buff = 0; else /按键检测,通过assign 语句对key_edge buf

13、f = dout1 | dout2 | dout3; /赋值,保证了按键的消抖 endassign key_edge = (dout1 | dout2 | dout3) & buff;5.3.2、时钟分频部分核心程序如下:always (posedge clock)begin if(!rst_n) begin count = 0; div_clk = 0; end /else if (count 17d120000) /else if (count 17d4000) else if (count 17d4) Begin /counter 计数器计数,通过判断 count = count + 1

14、b1; /counter的大小来决定输出的频率 div_clk = 1b0; end else begin count = 17d0; div_clk = 1b1; endend 5.3.3、5s定时及反转部分通过对计数器进行计数,计到5s,大约计数器等于30h2FAF080时执行下列语句,来实现输出motoa,motob的反转。moto_dir = moto_dir;assign motoa = moto_dir ? pwm_in : 1b0;assign motob = moto_dir ? 1b0 : pwm_in;5.3.4、按键控制部分本程序共有两个按键,按键一通过控制duty_cy

15、cle的长度来控制PWM波的占空比,从而实现电机转速的控制。按键二通过控制PWM_EN来实现PWM输出与否,从而实现电机的开关。 核心程序如下always (posedge clock)/按键1,控制电动机速度begin if(!rst_n) duty_cycle = 0; else if(key_edge0) duty_cycle = duty_cycle + 1b1;/按键按下,则PWM占空比加一endalways (posedge clock) /按键2,控制电动机启动、停止begin if(!rst_n) pwm_en = 1b0; else if(key_edge1) /按键二按下,

16、PWM输出使能取反 pwm_en 时,S1导通S4关断,当时,S4导通S1关断,b相和c相类似。下图为载波比p=3时的三相SPWM逆变电路基本波形 输出电压的谐波集中分布在处,其中n=1,3,5,时,k=3(2m-1)1,m=1,2,3,n=2,4,6,时,k=6m+1,m=0,1,2,或k=6m-1,m=1,2,3,所以,在载波频率的整数倍处的高次谐波不再存在。SPWM的谐波分布一组一组集中分布于载波频率的整数倍频率两侧,且在每一组谐波中,随着k的增大,谐波值通常逐渐减小。3、 三相SPWM半桥逆变电路的仿真 在仿真在Simpowersystems的“Electrical Sources”库

17、中选择电压源模块,直流电压设置为530V,选择“Universal Bridge”模块,在对话框中选择桥臂数为3,构成三相半桥电路,开关器件选择带反并联二极管的IGBT,三相串联RLC负载模块选择Y型连接,设定额定电压为413V,额定功率为50Hz,有功为1kW,感性无功为500Var,SPWM控制信号由Simpowersystems中的“Discrete PWM Generator”产生,选择三桥臂六脉冲模式。仿真模型如下:设置调制深度m为1,输出基波频率设为50Hz,载波频率设为基频的30倍,即1500Hz,仿真时间设为0.06s,在powergui中设置为离散仿真模式,sample ti

18、me为5*10s,运行后结果图如下:三相SPWM逆变器m=1时的仿真波形由上至下分别为直流电流波形,交流相电压波形,相电流波形,线电压波形;输出电压谐波分析如下图:三相SPWM逆变器m=1时的谐波分析图所以当m=1时,输出线电压的幅值为0.866U,谐波的分析符合之前分析结果,主要在开关频率的整数倍附近。经分析,相电流的THD仅为3.56%,若进一步提高开关频率,则电流更加近似于正弦波。4、 死区时间(dead time)对其影响众所周知,桥式电路是很多逆变电路的基本结构,在理想情况下,每个桥臂的上下开关管严格轮流导通和断开。但实际情况并非如此,每个开关管的通断都需要一定时间,关断时间比导通时

19、间长,所以为了防止桥臂短路,通常会让触发信号推迟一段时间,称为死区时间。在此时间内桥臂上下开关都没有触发信号,桥臂的工作状态将取决于两个续流二极管和该相电流的方向。在下图中,和分别是无死区时a相桥臂上下开关管的互补驱动信号,和分别是将理想互补信号的各个上升沿均推迟了死区时间的实际SPWM驱动脉冲。当电流为负值时,电流由桥臂上管的反并联二极管和下管承载,因此在上下脉冲都不存在的死区时间里工作,输出电压为正;当电流为正值时,电流由桥臂下管的反并联二极管和上管承载,因此在上下脉冲都不存在的死区时间里工作,输出电压为负。综上所述,下图中画出了有死区时的实际输出电压波形、对照无死区时的理想输出电压。定义

20、死区对输出电压的影响为死区畸变电压 =-如下图所示,为宽度为、高度为的窄脉冲,其周期与调制波相同,其符号与电流相反,正电流时为负,负电流时为正。桥臂逆变的实际输出电压即为无死区时的理想输出电压再叠加上死区畸变电压,因此只需对进行分析,再结合理想电压的分析结果,便可确定死区时间对逆变器输出电压的影响。死区时间对逆变桥臂输出的影响 死区畸变电压的窄脉冲可以用调制波周期的矩形脉冲等效,对其进行傅里叶分析知其包含3、5、7次奇次谐波,因此死区将低次谐波引入逆变器,降低了逆变器的谐波性能。5、 通过仿真研究死区时间的影响 仿真模型的建立以之前的为基础,使用Simpowersystems/Extra Libray/Discrete Control Blocks 中的“Discrete On/Off Delay”来模拟死区时间。在PWM发生器与三相桥的驱动信号输入端之间插入此模块,选择上升

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论