电机调速控制设计.doc

上传人:苏美尔 文档编号:6059841 上传时间:2020-09-02 格式:DOC 页数:25 大小:2.11MB
返回 下载 相关 举报
电机调速控制设计.doc_第1页
第1页 / 共25页
电机调速控制设计.doc_第2页
第2页 / 共25页
电机调速控制设计.doc_第3页
第3页 / 共25页
电机调速控制设计.doc_第4页
第4页 / 共25页
电机调速控制设计.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《电机调速控制设计.doc》由会员分享,可在线阅读,更多相关《电机调速控制设计.doc(25页珍藏版)》请在三一文库上搜索。

1、系统设计专题之电机调速控制设计 学院: 自动化与电气工程学院 班级: * 姓名: * 学号: * 日期: * 1CPLD系统简介1.1CPLD简介CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。1.2CPLD系统的基本构架主要包括有处理器、外围

2、电路及接口和外部设备三大部分其中外围电路一般包括有时钟、复位电路、。程序存储器、数据存储器和电源模块等部件组成。外部设备一般应配有USB、显示器、键盘和其他等设备及接口电路。在一片CPLD微处理器基础上增加电源电路、时钟电路和存储器电路,就构成了一个CPLD核心控制模块。其中操作系统和应用程序都可以固化在ROM中。1.3CPLD系统的特点采用32位EPM3032A微处理器和实时操作系统组成的CPLD控制系统,与传统基于单片机的控制系统和基于PC的控制方式相比,具有以下突出优点:性能方面:采用32位RISC结构微处理器,主频从30MHz到1200MHz以上,接近PC机的水平,但体积更小,能够真正

3、地“嵌入”到设备中。实时性方面:CPLD机控制器内嵌实时操作系统(RTOS),能够完全保证控制系统的强实时性。人机交互方面:CPLD控制器可支持大屏幕的液晶显示器,提供功能强大的图形用户界面,这些方面的性能也接近于PC,优于单片机。系统升级方面:CPLD控制器可为控制系统专门设计,其功能专一,成本较低,而且开放的用户程序接口(API)保证了系统能够快速升级和更新。1.4CPLD技术的应用领域CPLD技术可应用在:工业控制;交通管理;信息家电;家庭智能管理;网络及电子商务;环境监测;机器人等领域。在工业和服务领域中,大量CPLD技术也已经应用于工业控制、数控机床、智能工具、工业机器人、服务机器人

4、等各个行业,正在逐渐改变着传统的工业生产和服务方式。例如,飞机的电子设备、城市地铁购票系统等都可应用CPLD系统来实现。2设计内容2.1任务目标根据所学的CPLD系统的知识,通过硬件和软件想结合,编程控制电机的正转、反转、加速和减速。2.2硬件原理图硬件原理图如图1所示:EPM3032A芯片起到接收PWM信号并实现对电机的控制的作用。图1 硬件原理图2.3 H桥原理图H桥电动机驱动电路包括4个三极管和一个电机。如图2所示。要使电机转动,必须导通对角线上的一对三极管。根据不同三极管的导通情况,电流可能从左至右或从右至左流过电机,从而控制电机的转向。图2 H桥原理图当G1和G4导通时,电机受正向电

5、压,导通一段时间后,令G4截止,由于电机中存在电感,电流不能突变,电流经G1和Q3导通续流,此时电动机两端的变压为零,输出电压的均值为电动机的电压。这样就实现了电机的正转。 在周期不变的情况下,改变变换器输出电压的占空比,就改变了输出电压均值,也就改变了电机的转速。当输出高电平的时间增大,而低电平所占的时间减小时,此时实现的是加速,反之就是减速。当G2和G3导通,电机受负向电压,导通一段时间后,令G2截止,由于电机中存在电感,电流不能突变,电流经G3和Q1导通续流,此时电动机两端的变压为零,与正转类似,这样就实现了电机的反转。反转时也能实现加减速,同正转。2.4直流电机调速直流电机控制驱动芯片

6、:L9110.L9110 是为控制和驱动电机设计的两通道推挽式功率放大专用集成电路器件,将分立电 路集成在单片 IC 之中,使外围器件成本降低,整机可靠性提高。该芯片有两个 TTL/CMOS 兼容电平的输入,具有良好的抗干扰性;两个输出端能直接驱动电机的正反向运动,它具有 较大的电流驱动能力,每通道能通过 800mA 的持续电流,峰值电流能力可达 1.5A;同时它 具有较低的输出饱和压降;内置的钳位二极管能释放感性负载的反向冲击电流,使它在驱动 继电器、直流电机、步进电机或开关功率管的使用上安全可靠。L9110 被广泛应用于玩具汽 车电机驱动、脉冲电磁阀门驱动,步进电机驱动和开关功率管等电路上

7、。图3 L9110管脚定义、参数L9110直流电机控制芯片的管脚波形图:图4 L9110管脚波形图L9110直流电机控制芯片的电路接线图。图5 L9110电路接线图利用脉冲宽度调制(PWM)原理进行调速。PWM是靠改变脉冲宽度来控制输出电压。如图3所示。通过改变周期来控制输出频率,而输出频率的变化可通过改变脉冲的调制周期来实现。图6 脉冲宽度调速原理图平均电压:。为PWM脉冲的占空比,决定平均电压的大小。占空比越大,电路开通时间越长。PWM具有以下优点:(1)无需进行数模转换;(2)抗噪性能强,PWM是数字形式的,噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1,才能对数字信号产生

8、影响,PWM用于通信时极大的延长通信距离; (3)PWM既经济也节约空间。 3 实验一,熟悉编程环境与仿真工具3.1Quartus编程软件 Quartus II 是的综合性PLD/FPGA开发软件,原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware 支持Description Language)等多种设计输入形式,内嵌自有的综合器以及,可以完成从设计输入到硬件配置的完整PCLD设计流程。3.2在系统可编程器件设计步骤 1.创建新设计项目:设计的第一步,它的任务是建立一个项目,包括项目文件和项目标题。 2.选择器件:在器件选择窗口中选择要使用的器件。针对某个可编程

9、器件进行设计时,建立项目后,应首先选择器件。 3.输入和修改源文件:设计过程中最重要的一步。所有的设计思想通过源程序的形式输入计算机。一个项目可能由一个或多个源文件组成。 4.编译与优化:编译用途和其他语言是一样的。若不能通过编译,则需修改源文件。 5.仿真:使用ModelSim软件进行仿真。目的是对设计的正确性进行检验。从功能上对设计的正确性进行检查,它假定信号的传输时间为0,与适配器的时间无关。若仿真结果与设计要求不符,则需修改设计。 6.下载:通过下载电缆,将生成的pof数据文件下载到电路EPM3032ATC44-10器件中。下载又称为编程。一个器件只有经过下载这一步骤,才能将设计成果转

10、化为该器件的功能,在电路板上发挥应有的作用。 3.3建立由原理图源文件组成的设计1.创建一个新的设计项目(1)选择菜单File-New Project,在Create Project Wiszard对话框的Work Director栏中,选择工程保存路径,在Name中键入项目名。(2)按Next按钮,出现添加工程文件的对话框,如下图:这里先不管它,然后按next进行下一步,选择FPGA器件的型号,如下图:(3)在Family下拉框中,选择MAX3000A系列,选择此系列的具体芯片EPM3032ATC44-10。执行next出现选择其它EDA工具对话框,Simulation选项中Tool nam

11、e选择ModelSim-Altera,Format(s)选择SystemVerilog HDL,按next进入工程的信息总概对话框;(4)按Finish按钮即建立一个项目。2.建立一个Verilog文件(1)执行FileNew,弹出新建文件对话框,如下图:选择Verilog HDL File,点击OK,开始程序编写。双击左侧下方Tasks窗口中的Compile Design,对程序进行编译;编译如果出现错误,对程序进行修改,直至完全编译成功。(2) 选择Processing-Start-Start Test Bench Template Writer,生成激励文件.vt。选择Files-ope

12、n,打开工程文件夹下simulation-modelsim中All Files里的.vt文件,对其进行修改,使输入信号初始化,将系统时钟信号进行延时,避免出现仿真时内存不够的情况,修改后点击保存。如下图:(5)为仿真添加激励文件。选择Assignments-setting-EDA Tool Settings-Simulation,在NativeLink settiong下,选择Compile test bench,点击Test Benches。在弹出的Test Benches窗口下点击New,弹出New Test Bench Settings窗口。在Test bench name下命一个名字,

13、在Top level module in test bench中输入.vt文件中带有_vlg_tst的名字。勾选Use test bench to perform VHDL timing Simulation,在Design instance name in test bench中输入i1;点击下方Test bench and simulation files下的File name后的.,选择.vt文件,点击Add。连点OK,直至回到Quartus主界面。如下图3.4建立一个 MSim 的工程,将其放在了D:pro 下,建立完成后样子如图 3.1:图7 软件主界面然后,编译,打开MSim.vt

14、文件,编辑输入模拟量(#2 repeat(3000) #2 GCLK=GCLK;)。如图5所示:图8 编辑输入模拟量配置modelsim仿真设置,打开仿真器,仿真结果如下: 图9 仿真波形4 实验二,电机调速控制编程与调试4.1编程根据任务要求,编写程序如下:程序有5个输入和2个输出。clk为时钟脉冲输入,SW1、SW2、SW3和SW4分别代表控制电机的启动/停止、正/反转、加速和减速。首先检测脉冲新信号的上升沿,设定一个寄存器,记录脉冲个数。然后对按键进行判断。加速和减速控制是通过改变参考值,以实现改变占空比,实现调速。程序1:图10 控制程序4.2调试结果及分析1)连接界面2)下载程序界面

15、。图12 控制程序下载界面4.3仿真结果1. PWM正转仿真波形1)进行仿真输出波形如图所示,能够实现电机正转加速:(speed = 2b11、flag_zhengzhuan=1;)图13 正转加速波形2)进行仿真输出波形如图所示,能够实现电机正转加速:(speed = 2b10、flag_zhengzhuan=1;)3)进行仿真输出波形如图所示,能够实现电机正转加速:(speed = 2b01、flag_zhengzhuan=1;)4)进行仿真输出波形如图所示,能够实现电机正转加速:(speed = 2b00、flag_zhengzhuan=1;)2. PWM反转仿真波形2)进行仿真输出波形

16、如图所示,能够实现电机正转加速:(speed = 2b11、flag_fanzhuan=1;)2)进行仿真输出波形如图所示,能够实现电机正转加速:(speed = 2b10、flag_fanzhuan=1;)2)进行仿真输出波形如图所示,能够实现电机正转加速:(speed = 2b01、flag_fanzhuan=1;)5 总结首先,通过系统设计专题这门课,学习了什么是CPLD系统,对CPLD系统的一些知识(如定义,基本构架,特点,应用及发展前景等)有了一些基本的了解,对CPLD有了更系统的认识。CPLD系统就是将计算机硬件和软件结合起来构成的一个专门的装置,这个装置可以完成一些特定的功能和任

17、务,能够在没有人工干预的情况下独立地进行实时监测和控制。其次,通过亲自动手编写相应的程序来完成实验,锻炼了独自解决问题的能力。同时,在完成目标的过程中,发现了一些问题,比如学习并掌握理论知识并不难,将理论知识应用到实际的工程上就很难了,恰恰我们缺乏的就是这种能力,老师们能够根据学生的情况将该课程设定为为实践课程而不是一味的讲解理论,对学生提高实践能力很有帮助。最后,在龚老师的指导和帮助下,通过自己的努力和同学进行讨论,最终能顺利完成既定的目标。附录一实验一程序:module MSim(GCLK, PWMAH);input GCLK;output PWMAH;reg3:0 q; /reg PWM

18、AH;initialbeginPWMAH = 0;q = 0;endalways (posedge GCLK) /if(q = 1)begin PWMAH = 1; q = q+1;endelse if(q = 9)beginPWMAH = 0;q = q+1;endelse if(q = 15)q = 0;else q = q+1;endmodule附录二实验二程序:module MSim(clk, SW1, SW2, SW3,SW4, pwm1, pwm2); input clk; input SW1;/电机启/停控制按键input SW2;/电机正/反转控制按键input SW3;/电机

19、减速控制按键input SW4; /电机加速控制按键/*吕宪龙*输出控制变量*/output pwm1; /正转output pwm2; /反转/*吕宪龙*定义寄存器锁住信号*/reg pwm1;reg pwm2;reg1:0 speed;reg6:0 cnt;reg flag_zhengzhuan; /正转标志位reg flag_fanzhuan; /反转标志位reg flag; /正反转换挡/防抖设计reg2:0 dout1,dout2,dout3,buff; /消抖寄存器wire2:0 key_edge;/按键消抖输出/*吕宪龙*程序变量初始化*/initialbegin pwm1 =

20、0;pwm2 = 0;speed = 2b00;/dir = 2;flag_zhengzhuan = 0;flag_fanzhuan = 0;flag = 0;end/*吕宪龙*程序循环体部分*/always(posedge clk)beginif(cnt 7d100)cnt = cnt + 7b1;else cnt = 7b0;end always(posedge clk)beginif(!SW1)/电机启动/停止控制按键begin if( flag_fanzhuan = 0 & flag_zhengzhuan = 0 ) /电机正在停止,则运行beginflag_zhengzhuan =

21、1;flag_fanzhuan = 0;speed = 2b10;end else if(speed = 0) /速度为零,则启动speed = 2b10; else if(speed != 0 ) /速度不为零,则停止flag_zhengzhuan = 0;flag_fanzhuan = 0;endif(!SW2) /电机正转/反转控制按键beginif(flag_zhengzhuan = 1) /电机正在正转,则反转beginflag_zhengzhuan = 0;flag_fanzhuan = 1;endelse if(flag_fanzhuan = 1) /电机正在反转,则正转begi

22、nflag_zhengzhuan = 1;flag_fanzhuan = 0;end/speed = 2b10;endif(!SW3) /电机加速控制按键beginspeed = speed + 1;endif(!SW4 ) /电机减速控制按键beginspeed = speed - 1;endif(flag_zhengzhuan=1) /电机正转调速beginpwm2 = 0;if(speed = 2b11) /4档beginif(cnt 7d02)pwm1 = 1b0;elsepwm1 = 1b1;endelse if(speed = 2b10) /3档beginif(cnt 7d30)p

23、wm1 = 1b0;elsepwm1 = 1b1;endelse if(speed != 2b01 ) /档beginif(cnt 7d75) pwm1 = 1b0;elsepwm1 = 1b1;endelse if(speed != 2b00 ) /1档,占空比10%beginif(cnt 7d99) pwm1 = 1b0;elsepwm1 = 1b1;endendif(flag_fanzhuan=1) /电机反转调速beginpwm1 = 0;if(speed = 2b10) /4档 beginif(cnt 7d02)pwm2 = 1b0;elsepwm2 = 1b1;endelse if(speed = 2b10) /3档beginif(cnt 7d30)pwm2 = 1b0;elsepwm2 = 1b1;endelse if(speed != 3b01 ) /2档beginif(cnt 7d80)/70)pwm2 = 1b0;elsepwm2 = 1b1;endelse if(speed != 3b00 ) /1档beginif(cnt 7d99)pwm2 = 1b0;elsepwm2 = 1b1;endendend endmodule

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

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1