电机调速控制设计.docx

上传人:b****1 文档编号:14768021 上传时间:2023-06-27 格式:DOCX 页数:28 大小:1.83MB
下载 相关 举报
电机调速控制设计.docx_第1页
第1页 / 共28页
电机调速控制设计.docx_第2页
第2页 / 共28页
电机调速控制设计.docx_第3页
第3页 / 共28页
电机调速控制设计.docx_第4页
第4页 / 共28页
电机调速控制设计.docx_第5页
第5页 / 共28页
电机调速控制设计.docx_第6页
第6页 / 共28页
电机调速控制设计.docx_第7页
第7页 / 共28页
电机调速控制设计.docx_第8页
第8页 / 共28页
电机调速控制设计.docx_第9页
第9页 / 共28页
电机调速控制设计.docx_第10页
第10页 / 共28页
电机调速控制设计.docx_第11页
第11页 / 共28页
电机调速控制设计.docx_第12页
第12页 / 共28页
电机调速控制设计.docx_第13页
第13页 / 共28页
电机调速控制设计.docx_第14页
第14页 / 共28页
电机调速控制设计.docx_第15页
第15页 / 共28页
电机调速控制设计.docx_第16页
第16页 / 共28页
电机调速控制设计.docx_第17页
第17页 / 共28页
电机调速控制设计.docx_第18页
第18页 / 共28页
电机调速控制设计.docx_第19页
第19页 / 共28页
电机调速控制设计.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

电机调速控制设计.docx

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

电机调速控制设计.docx

电机调速控制设计

 

系统设计专题之电机调速控制设计

 

学院:

自动化与电气工程学院

班级:

********

姓名:

*****

学号:

*******

日期:

*******

1CPLD系统简介

1.1CPLD简介

CPLD(ComplexProgrammableLogicDevice)复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。

是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。

其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。

1.2CPLD系统的基本构架

主要包括有处理器、外围电路及接口和外部设备三大部分其中外围电路一般包括有时钟、复位电路、。

程序存储器、数据存储器和电源模块等部件组成。

外部设备一般应配有USB、显示器、键盘和其他等设备及接口电路。

在一片CPLD微处理器基础上增加电源电路、时钟电路和存储器电路,就构成了一个CPLD核心控制模块。

其中操作系统和应用程序都可以固化在ROM中。

1.3CPLD系统的特点

采用32位EPM3032A微处理器和实时操作系统组成的CPLD控制系统,与传统基于单片机的控制系统和基于PC的控制方式相比,具有以下突出优点:

性能方面:

采用32位RISC结构微处理器,主频从30MHz到1200MHz以上,接近PC机的水平,但体积更小,能够真正地“嵌入”到设备中。

实时性方面:

CPLD机控制器内嵌实时操作系统(RTOS),能够完全保证控制系统的强实时性。

人机交互方面:

CPLD控制器可支持大屏幕的液晶显示器,提供功能强大的图形用户界面,这些方面的性能也接近于PC,优于单片机。

系统升级方面:

CPLD控制器可为控制系统专门设计,其功能专一,成本较低,而且开放的用户程序接口(API)保证了系统能够快速升级和更新。

1.4CPLD技术的应用领域

CPLD技术可应用在:

工业控制;交通管理;信息家电;家庭智能管理;网络及电子商务;环境监测;机器人等领域。

在工业和服务领域中,大量CPLD技术也已经应用于工业控制、数控机床、智能工具、工业机器人、服务机器人等各个行业,正在逐渐改变着传统的工业生产和服务方式。

例如,飞机的电子设备、城市地铁购票系统等都可应用CPLD系统来实现。

 

2设计内容

2.1任务目标

根据所学的CPLD系统的知识,通过硬件和软件想结合,编程控制电机的正转、反转、加速和减速。

2.2硬件原理图

硬件原理图如图1所示:

EPM3032A芯片起到接收PWM信号并实现对电机的控制的作用。

图1硬件原理图

2.3H桥原理图

H桥电动机驱动电路包括4个三极管和一个电机。

如图2所示。

要使电机转动,必须导通对角线上的一对三极管。

根据不同三极管的导通情况,电流可能从左至右或从右至左流过电机,从而控制电机的转向。

图2H桥原理图

当G1和G4导通时,电机受正向电压,导通一段时间后,令G4截止,由于电机中存在电感,电流不能突变,电流经G1和Q3导通续流,此时电动机两端的变压为零,输出电压的均值为电动机的电压。

这样就实现了电机的正转。

在周期不变的情况下,改变变换器输出电压的占空比,就改变了输出电压均值,也就改变了电机的转速。

当输出高电平的时间增大,而低电平所占的时间减小时,此时实现的是加速,反之就是减速。

当G2和G3导通,电机受负向电压,导通一段时间后,令G2截止,由于电机中存在电感,电流不能突变,电流经G3和Q1导通续流,此时电动机两端的变压为零,与正转类似,这样就实现了电机的反转。

反转时也能实现加减速,同正转。

2.4直流电机调速

直流电机控制驱动芯片:

L9110.

L9110是为控制和驱动电机设计的两通道推挽式功率放大专用集成电路器件,将分立电路集成在单片IC之中,使外围器件成本降低,整机可靠性提高。

该芯片有两个TTL/CMOS兼容电平的输入,具有良好的抗干扰性;两个输出端能直接驱动电机的正反向运动,它具有较大的电流驱动能力,每通道能通过800mA的持续电流,峰值电流能力可达1.5A;同时它具有较低的输出饱和压降;内置的钳位二极管能释放感性负载的反向冲击电流,使它在驱动继电器、直流电机、步进电机或开关功率管的使用上安全可靠。

L9110被广泛应用于玩具汽车电机驱动、脉冲电磁阀门驱动,步进电机驱动和开关功率管等电路上。

图3L9110管脚定义、参数

L9110直流电机控制芯片的管脚波形图:

图4L9110管脚波形图

L9110直流电机控制芯片的电路接线图。

图5L9110电路接线图

利用脉冲宽度调制(PWM)原理进行调速。

PWM是靠改变脉冲宽度来控制输出电压。

如图3所示。

通过改变周期来控制输出频率,而输出频率的变化可通过改变脉冲的调制周期来实现。

图6脉冲宽度调速原理图

平均电压:

为PWM脉冲的占空比,决定平均电压的大小。

占空比越大,电路开通时间越长。

PWM具有以下优点:

(1)无需进行数模转换;

(2)抗噪性能强,PWM是数字形式的,噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1,才能对数字信号产生影响,PWM用于通信时极大的延长通信距离;

(3)PWM既经济也节约空间。

3实验一,熟悉编程环境与仿真工具

3.1QuartusⅡ编程软件

QuartusII是Altera公司的综合性PLD/FPGA开发软件,原理图、VHDL、VerilogHDL以及AHDL(AlteraHardware支持DescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PCLD设计流程。

3.2在系统可编程器件设计步骤

1.创建新设计项目:

设计的第一步,它的任务是建立一个项目,包括项目文件和项目标题。

2.选择器件:

在器件选择窗口中选择要使用的器件。

针对某个可编程器件进行设计时,建立项目后,应首先选择器件。

3.输入和修改源文件:

设计过程中最重要的一步。

所有的设计思想通过源程序的形式输入计算机。

一个项目可能由一个或多个源文件组成。

4.编译与优化:

编译用途和其他语言是一样的。

若不能通过编译,则需修改源文件。

5.仿真:

使用ModelSim软件进行仿真。

目的是对设计的正确性进行检验。

从功能上对设计的正确性进行检查,它假定信号的传输时间为0,与适配器的时间无关。

若仿真结果与设计要求不符,则需修改设计。

 

6.下载:

通过下载电缆,将生成的pof数据文件下载到电路EPM3032ATC44-10器件中。

下载又称为编程。

一个器件只有经过下载这一步骤,才能将设计成果转化为该器件的功能,在电路板上发挥应有的作用。

3.3建立由原理图源文件组成的设计

1.创建一个新的设计项目

(1)选择菜单File->NewProject,在CreateProjectWiszard对话框的WorkDirector栏中,选择工程保存路径,在Name中键入项目名。

(2)按Next按钮,出现添加工程文件的对话框,如下图:

这里先不管它,然后按next进行下一步,选择FPGA器件的型号,如下图:

(3)在Family下拉框中,选择MAX3000A系列,选择此系列的具体芯片EPM3032ATC44-10。

执行next出现选择其它EDA工具对话框,Simulation选项中Toolname选择ModelSim-Altera,Format(s)选择SystemVerilogHDL,按next进入工程的信息总概对话框;

(4)按Finish按钮即建立一个项目。

2.建立一个Verilog文件

(1)执行File

New,弹出新建文件对话框,如下图:

选择VerilogHDLFile,点击OK,开始程序编写。

双击左侧下方Tasks窗口中的CompileDesign,对程序进行编译;编译如果出现错误,对程序进行修改,直至完全编译成功。

(2)选择Processing->Start->StartTestBenchTemplateWriter,生成激励文件.vt。

选择Files->open,打开工程文件夹下simulation->modelsim中AllFiles里的.vt文件,对其进行修改,使输入信号初始化,将系统时钟信号进行延时,避免出现仿真时内存不够的情况,修改后点击保存。

如下图:

(5)为仿真添加激励文件。

选择Assignments->setting->EDAToolSettings->Simulation,在NativeLinksettiong下,选择Compiletestbench,

点击TestBenches。

在弹出的TestBenches窗口下点击New,弹出NewTestBenchSettings窗口。

在Testbenchname下命一个名字,在Toplevelmoduleintestbench中输入.vt文件中带有_vlg_tst的名字。

勾选UsetestbenchtoperformVHDLtimingSimulation,在Designinstancenameintestbench中输入i1;点击下方Testbenchandsimulationfiles下的Filename后的...,选择.vt文件,点击Add。

连点OK,直至回到QuartusⅡ主界面。

如下图

3.4建立一个MSim的工程,将其放在了D:

\pro下,建立完成后样子如图3.1:

图7软件主界面

然后,编译,打开MSim.vt文件,编辑输入模拟量(#2repeat(3000)#2GCLK<=~GCLK;)。

如图5所示:

图8编辑输入模拟量

配置modelsim仿真设置,打开仿真器,仿真结果如下:

图9仿真波形

4实验二,电机调速控制编程与调试

4.1编程

根据任务要求,编写程序如下:

程序有5个输入和2个输出。

clk为时钟脉冲输入,SW1、SW2、SW3和SW4分别代表控制电机的启动/停止、正/反转、加速和减速。

首先检测脉冲新信号的上升沿,设定一个寄存器,记录脉冲个数。

然后对按键进行判断。

加速和减速控制是通过改变参考值,以实现改变占空比,实现调速。

程序1:

图10控制程序

4.2调试结果及分析

1)连接界面

2)下载程序界面。

图12控制程序下载界面

4.3仿真结果

1.PWM正转仿真波形

1)进行仿真输出波形如图所示,能够实现电机正转加速:

(speed=2'b11、flag_zhengzhuan==1;)

图13正转加速波形

2)进行仿真输出波形如图所示,能够实现电机正转加速:

(speed=2'b10、flag_zhengzhuan==1;)

 

 

3)进行仿真输出波形如图所示,能够实现电机正转加速:

(speed<=2'b01、flag_zhengzhuan==1;)

 

4)进行仿真输出波形如图所示,能够实现电机正转加速:

(speed=2'b00、flag_zhengzhuan==1;)

2.PWM反转仿真波形

2)进行仿真输出波形如图所示,能够实现电机正转加速:

(speed=2'b11、flag_fanzhuan==1;)

2)进行仿真输出波形如图所示,能够实现电机正转加速:

(speed=2'b10、flag_fanzhuan==1;)

2)进行仿真输出波形如图所示,能够实现电机正转加速:

(speed=2'b01、flag_fanzhuan==1;)

 

5总结

首先,通过系统设计专题这门课,学习了什么是CPLD系统,对CPLD系统的一些知识(如定义,基本构架,特点,应用及发展前景等)有了一些基本的了解,对CPLD有了更系统的认识。

CPLD系统就是将计算机硬件和软件结合起来构成的一个专门的装置,这个装置可以完成一些特定的功能和任务,能够在没有人工干预的情况下独立地进行实时监测和控制。

其次,通过亲自动手编写相应的程序来完成实验,锻炼了独自解决问题的能力。

同时,在完成目标的过程中,发现了一些问题,比如学习并掌握理论知识并不难,将理论知识应用到实际的工程上就很难了,恰恰我们缺乏的就是这种能力,老师们能够根据学生的情况将该课程设定为为实践课程而不是一味的讲解理论,对学生提高实践能力很有帮助。

最后,在龚老师的指导和帮助下,通过自己的努力和同学进行讨论,最终能顺利完成既定的目标。

 

附录一

实验一程序:

moduleMSim(GCLK,PWMAH);

inputGCLK;

outputPWMAH;

reg[3:

0]q;//

regPWMAH;

initial

begin

PWMAH<=0;

q=0;

end

always@(posedgeGCLK)//

if(q==1)

begin

PWMAH<=1;

q=q+1;

end

elseif(q==9)

begin

PWMAH<=0;

q=q+1;

end

elseif(q==15)

q=0;

elseq=q+1;

endmodule

附录二

实验二程序:

moduleMSim(clk,SW1,SW2,SW3,SW4,pwm1,pwm2);

inputclk;

inputSW1;//电机启/停控制按键

inputSW2;//电机正/反转控制按键

inputSW3;//电机减速控制按键

inputSW4;//电机加速控制按键

/**

*@吕宪龙

*输出控制变量

*

*/

outputpwm1;//正转

outputpwm2;//反转

/**

*@吕宪龙

*定义寄存器锁住信号

*

*/

regpwm1;

regpwm2;

reg[1:

0]speed;

reg[6:

0]cnt;

regflag_zhengzhuan;//正转标志位

regflag_fanzhuan;//反转标志位

regflag;//正反转换挡

//防抖设计

reg[2:

0]dout1,dout2,dout3,buff;//消抖寄存器

wire[2:

0]key_edge;//按键消抖输出

/**

*@吕宪龙

*程序变量初始化

*

*/

initial

begin

pwm1=0;

pwm2=0;

speed=2'b00;

//dir=2;

flag_zhengzhuan=0;

flag_fanzhuan=0;

flag=0;

end

/**

*@吕宪龙

*程序循环体部分

*

*/

always@(posedgeclk)

begin

if(cnt<7'd100)

cnt<=cnt+7'b1;

else

cnt<=7'b0;

end

always@(posedgeclk)

begin

if(!

SW1)//电机启动/停止控制按键

begin

if(flag_fanzhuan==0&&flag_zhengzhuan==0)//电机正在停止,则运行

begin

flag_zhengzhuan=1;

flag_fanzhuan=0;

speed<=2'b10;

end

elseif(speed==0)//速度为零,则启动

speed<=2'b10;

elseif(speed!

=0)//速度不为零,则停止

flag_zhengzhuan=0;

flag_fanzhuan=0;

end

if(!

SW2)//电机正转/反转控制按键

begin

if(flag_zhengzhuan==1)//电机正在正转,则反转

begin

flag_zhengzhuan=0;

flag_fanzhuan=1;

end

elseif(flag_fanzhuan==1)//电机正在反转,则正转

begin

flag_zhengzhuan=1;

flag_fanzhuan=0;

end

//speed<=2'b10;

end

if(!

SW3)//电机加速控制按键

begin

speed<=speed+1;

end

if(!

SW4)//电机减速控制按键

begin

speed<=speed-1;

end

if(flag_zhengzhuan==1)//电机正转调速

begin

pwm2=0;

if(speed==2'b11)//4档

begin

if(cnt<7'd02)

pwm1<=1'b0;

else

pwm1<=1'b1;

end

elseif(speed==2'b10)//3档

begin

if(cnt<7'd30)

pwm1<=1'b0;

else

pwm1<=1'b1;

end

elseif(speed!

=2'b01)//档

begin

if(cnt<7'd75)

pwm1<=1'b0;

else

pwm1<=1'b1;

end

elseif(speed!

=2'b00)//1档,占空比10%

begin

if(cnt<7'd99)

pwm1<=1'b0;

else

pwm1<=1'b1;

end

end

if(flag_fanzhuan==1)//电机反转调速

begin

pwm1<=0;

if(speed==2'b10)//4档

begin

if(cnt<7'd02)

pwm2<=1'b0;

else

pwm2<=1'b1;

end

elseif(speed==2'b10)//3档

begin

if(cnt<7'd30)

pwm2<=1'b0;

else

pwm2<=1'b1;

end

elseif(speed!

=3'b01)//2档

begin

if(cnt<7'd80)//70)

pwm2<=1'b0;

else

pwm2<=1'b1;

end

elseif(speed!

=3'b00)//1档

begin

if(cnt<7'd99)

pwm2<=1'b0;

else

pwm2<=1'b1;

end

end

end

endmodule

 

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2