课程设计直流电机说明说_第1页
课程设计直流电机说明说_第2页
课程设计直流电机说明说_第3页
课程设计直流电机说明说_第4页
课程设计直流电机说明说_第5页
已阅读5页,还剩18页未读, 继续免费阅读

下载本文档

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

文档简介

1、河南科技大学课 程 设 计 说 明 书课程名称 现代电子系统课程设计 题 目 直流电机控制设计学 院 电子信息工程学院 班 级 电信科081 学生姓名 000 指导教师 齐晶晶 、 张雷鸣 日 期 2011年12月16日 课程设计任务书(指导教师填写)课程设计名称 现代电子系统课程设计 学生姓名 袁伟伟_专业班级 信科081 设计题目 直流电机控制设计 一、 课程设计目的学习直流电机PWM的FPGA控制;掌握PWM控制的工作原理;掌握GW48_SOPC实验箱的使用方法;了解基于FPGA的电子系统的设计方法。二、 设计内容、技术条件和要求利用PWM控制技术实现直流电机的速度控制。(1)基本要求:

2、 a速度调节:4档,数字显示其档位。b能控制电机的旋转方向。c通过红外光电电路测得电机的转速,设计频率计用4位10进制显示电机的转速。(2)发挥部分a设计“去抖动”电路,实现直流电机转速的精确测量。b修改设计,实现直流电机的闭环控制,旋转速度可设置。c其它。三、 时间进度安排布置课题和讲解:1天查阅资料、设计:4天实验:3天撰写报告:2天四、 主要参考文献何小艇 电子系统设计 浙江大学出版社 2008.1潘松 黄继业 EDA技术实用教程 科学出版社 2006.10齐晶晶 现代电子系统设计实验指导书 电工电子实验教学中心 2009.8指导教师签字: 2011年 11月28日摘要电机是指依据电磁感

3、应定律实现电能转换或传递的一种电磁装置。电动机也俗称马达,它的主要作用是产生驱动转矩,作为用电器或各种机械的动力源。21世纪,在工业化集成电路设计中,直流电机得到了广泛的应用,直流电动机是依靠直流工作电压运行的电动机,广泛应用于收录机、录像机、电吹风、电子表、玩具等。所以,多功能、人性化、易操作的电机设计成了一个趋势。本文对于直流电机方面的研究,是基于Quartus2软件,利用FPGA器件,通过VHDL语言编程对直流电机进行基本的自动操作控制。 本次直流电机主要有以下功能:1. 转速调节。转速调节通过档位来实现,档位为一、二、三、四档,每个档位都设定自己的速度,随着档位的的升高速度逐渐增大,速

4、度的改变通过改变PWM信号的占空比来是实现。2. 正反转控制。设置一个按键,调节按键时电机能够改变转动方向。原理为档按下按键时,改变了加在电机两端电压的极性。3. 转速显示。转机转动时会有一个速度,速度能够正确的显示在数码管上,并能用实验仪器正确测出。原理为设计一个频率计,测试电机转速。目录一、任务解析51.1设计要求51.2要求分析5二 、方案论证62.1设计思路62.2 思路实现7三、设计原理及模块83.1 电机驱动原理83.2 频率计计数原理83.3 PWM模块电路原理93.3.1 转速控制模块103.3.2 频率计计数模块113.4 数码管读数模块123.5 消抖电路模块设计123.6

5、 总体电路图及其它13四、结果评估及误差分析16五、心得体会总结17六、参考文献18一、任务解析1.1设计要求本设计利用PWM控制技术实现直流电机的速度控制。要求电机的速度要分为四档,要求有数码管可以档位显示。通过按键可以控制直流电机的正反转,通过红外光可以测得直流电机的转速,并能在数码管上用4位十进制显示电机具体的转动速度。在整个电路中,要有去抖动部分,以求实现直流电机转速的精确测量。在基本功能实现之后,可以尝试修改设计,实现直流电机的闭环控制,这样可以随意设置旋转速度。1.2要求分析根据设计要求,本次电路的实现大概要分为以下几大部分:1. FPGA中PWM模块。2.频率计计数模块。3. 数

6、码管读数模块4.消抖电路模块由此,可以得出整个电路系统的原理框图:二 、方案论证2.1设计思路此次电机设计主要实现的功能是:四档速度;电机正反转;转速显示;四档转速的实现在硬件上通过按键实现,按下一次加一档,档位升高,档速提高,软件方面通过程序来设置不同的档位占空比,占空比不同,转速也就不同。当输入电源的占空比大时,直流电机的转速较快;当输入电源的占空比小时,直流电机的转速较慢。直流电机转动方向的控制,主要是通过一个比较器,一个二选一选择器来实现。通过比较器产生高低电平,然后通过键盘输入的改变来选择通过比较器产生的两个不同电平中的一个,最后把选择的电平加载到直流电机模块上,至此,实现电机转动的

7、正转或反转。直流电机的工作/停止,需要一个二选一选择器来实现。即当通过键盘输入start为1或0时,把二选一选择器选择PWM块所产生的高低电平作为直流电机模块的一个输入端口,作为使能端,从而实现电机的工作/停止。2.2 思路实现 由上所知,本次设计的关键部分是PWM模块的设计。该模块可以详细分为下面几个小模块:速度等级设置模块、数字比较器模块、锯齿波发生器、旋转方向控制模块。PWM模块设计是整个电路设计的基础,只有很好的实现并产生了直流电机的四个不同速度等级,通过比较器所产生的高低电平,进而通过二选一选择器实现了方向控制信号的高低电平选择,后面的频率计计数模块和数码管读数模块才能更好的实现。三

8、、设计原理及模块3.1 电机驱动原理 一台直流电机原则上既可以作为电动机运行,也可以作为发电机运行,这种原理在电机理论中称为可逆原理。当原动机驱动电枢绕组在主磁极N、S之间旋转时,电枢绕组上感生出电动势,经电刷、换向器装置整流为直流后,引向外部负载(或电网),对外供电,此时电机作直流发电机运行。如用外部直流电源,经电刷换向器装置将直流电流引向电枢绕组,则此电流与主磁极N.S.产生的磁场互相作用,产生转矩,驱动转子与连接于其上的机械负载工作,此时电机作直流电动机运行。3.2 频率计计数原理下图所示表达出了数字频率计测频计数的原理。被测频率f1的讯号u(t)自输入通道经过整形、放大和微分形成于u(

9、t)周期个数相同的计数脉冲进入“主控与门”电路,在门控双稳态电路开门讯号的控制下,将计数脉冲送入计数、锁存、译码、驱动与显示电路,有LED(半导体发光数码管)、LCD(液晶显示器)或其它显示器件显示出被测频率f1的值。若主门电路的开门时间T恰好选为1秒,则数字频率计指示的即为f1的频率值。为适应被测频率高低不同的要求,由晶体振荡器发出的时钟讯号频率f0经过分频或倍频,选择的主闸门开启时间可以不是1秒,而是数秒或毫秒,有时读数应计入量程倍率系数,在智能数字频率计中,量程是自动转换的。N=Kf 1f 0=N/KU(t)f 1输入通道主控与门计数译码显示门控双稳分频/倍频晶振f03.3 PWM模块电

10、路原理PWM控制就是对脉冲的宽度进行调制的技术。即通过对一系列脉冲的宽度进行调制来等效地获得所需要的波形。 图二中,设定值计数器设置PWM信号的占空比。当UD=1,输入CLK2,使设定值计数值的输出值增加,PWM的占空比增加,电机转速加快;当UD=,输入CLK2使设定值计算器的输出值减小,PWM的占空比减小,电机转速变慢。在CLK的作用下,锯齿波计数器输出周期性线性增加的锯齿波。当计数值小于设定值时,数字比较器输出低电平; 当计数值大于设定值时,数字比较器输出高电平,由此产生周期性的PWM波形。旋转反向控制电路控制直流电动机转向和启/停,该电路由两个选多路选择器组成,ZF键控制选择PWM波形从

11、正端Z进入H桥,还是从负端进入H桥,以控制电机的旋转方向。START键通过“与”门控制PWM的输出,实现对电机的工作/停止控制。桥电路由大功率晶体管组成,PWM波形通过方向控制电路送到H桥,经功率放大以后驱动电机转动。3.3.1 转速控制模块在用FPGA控制直流电机转速时,其核心是改变每个PWM周期的占空比。此时需要产生一个设定值计数器,一个锯齿波发生器和一个数字比较器。设定值计数器就是根据按键按下时选取的不同档位,输出一个不同的数值。本次设计速度分为四档,档位为0时转速为0,每增加一档,转速相应增加,四档时转速达到最大。据此,首先要设计一个档位调节模块,当输入不同的档位数值时,要输出一个计数

12、值,这个数值规定了设定值计数器的输出数值。当档位增加时,设定值计数器的值相应增加,从而改变PWM信号占空比,使其占空比增大,电机转速加快。设定值计数器的输出加到比较器的一端,和锯齿波发生器的数值进行比较。锯齿波发生器的数值来自对CLK0的分频,它的位数取决于电机能够达到的最大转数。我们实验室的电机大概在70转左右,所以锯齿波发生器的位数不应低于7位,若更低的话,每改变一位数,对应的转数还达不到一转,这样就不能对每一转进行细分,也就无法精确控制电机的转速。3.3.2 频率计计数模块转速显示模块实际上就是设计一个频率计。电机转动时,每转一圈,电机旁边的红外检测电路就会产生一个脉冲。把这个脉冲通过一

13、个消抖电路后作为频率计待测频率的输入端。频率计部分的工作原理是:先设置一个计数器,然后由1Hz的输入时钟经过倍频得到2Hz的时钟信号,当2Hz的时钟信号为高电平时,去检测有无红外电路的脉冲信号到来,每当红外脉冲信号到来,计数器加一。其原理就是检测在一秒时间内红外电路产生的脉冲的个数,即检验在一秒时间内电机转动了多少圈。最后把一秒时间内电机转过的圈数输出到数码管显示。频率计计数模块模块的总体框图: 3.4 数码管读数模块该模块的原理是:当输入端信号lk为高电平且为上升沿时,输出端dout读出输入端din当时的值,并在数码管上显示出来。数码管读数模块的总体框图如下图14所示:数码管读数模块的框图3

14、.5 消抖电路模块设计 红外检测电路产生的脉冲信号在加到频率计输入端时,在开始的一段短暂的时间里,会产生抖动,所以要设计一个消抖电路去除抖动。消抖电路设计原理图如下:消抖电路原理图输入信号开始会有一段抖动,然后频率趋于稳定。很明显,抖动的那一段信号的周期相对于稳定后的信号来说很短。我们就可以通过两个D触发器滤除抖动的那一段信号。假设第一个D触发器的输出为D1,第二个D触发器的输出为D2。当CLK上升沿到来时,若这时的输入信号为高电平,那么输出的D1就为1,D1经过一个非门变成0,D1的非与D2相与,输出是0。第二个CLK上升沿到来时,若输入信号还为高电平,则这时D1为1,D2为1,D1的非与D

15、2相与,输出还是0。只有当CLK上升沿到来,输入信号变成低电平时,这时D1变成0,D2为1,D1的非与D2相与后,输出才为1。由此分析,当CLK频率选取合适时,在一个输入信号高电平到来时,至少需要两个CLK周期才能输出高电平,而抖动的那一段信号由于周期太短,满足不了这个要求,因此抖动信号就不会输出,这样就完成了消抖功能。3.6 总体电路图及其它 电路图:管脚锁定情况:PWM信号的占空比随着档位的不同而改变的原因:由前面所知,已经设计好了一个设定值计数器和一个锯齿波发生器,这两个数值加在数字比较器输入端进行比较;当设定值计数器的值大于锯齿波比较器的值时,比较器输出高电平;当设定值计数器的值小于锯

16、齿波比较器的值时,比较器输出低电平。锯齿波发生器其实就是一个计数器,它的变化范围是0-256,每来一个clk时钟信号,计数器就加1。如果我们现在设定一个计数值128,那么在前128个clk时钟信号内,设定值都是大于计数值,比较器输出高电平,后128个clk时钟信号内,设定值都是小于计数值,比较器输出低电平;由此往复得知,在每一个PWM信号周期内,高电平和低电平各占一半,因此占空比为50%。不同档位对应不同的设定值,由此不同档位下PWM信号的占空比改变,电机转速也会改变。关于clk0:Clk0选取的频率不能过高也不能过低。Clk0频率过高时,相邻两个PWM周期信号之间高电平相距很近,当PWM信号

17、的占空比增大时,由于两个PWM信号周期相距很近,加在电机上的电压可以认为一直是高电平,那么再增大PWM信号的占空比时电机的转速就不会明显的增大了。若CLK0的频率再高,超过了H桥的承受能力的话,电机就不会转了。CLK0频率过低时,输出的相邻两个PWM周期信号高电平相距较远,这样的PWM信号加到电机上,在低占空比的时候,和正常频率,相同占空比的PWM信号相比,频率低的PWM信号高电平维持的时间较长,这样的话,当电机遇到高电平时,就会一直加速,遇到低电平时又一直减速,转速很不稳定。 四、结果评估及误差分析 本次试验用的模式5,完成整个程序仿真,管脚锁定及下载后会有以下结果:按下按键1为电机使能键,

18、实现电机启动/停止;按下按键2一次,档位提高一档,电机转速增加;按下按键3电机转动方向改变。数码管4、3、2、1显示电机的转速。D1和D2用来显示档位,D1为个位显示,D2为十位显示。基本功能实现正常;有所欠缺的是未能实现闭环电路的控制。 在试验中,会发现电机有出现转速不稳,示波器测量频率与数码管显示有一些误差(12),这主要是因为设计电路中消抖电路做的不够完善,VHDL代码没有达到最优化,另外跟实验仪器本身硬件有关,由于红外测速是通过红外传感器结合直流电机码盘上的小孔进行的,码盘摆放不平整或有其它因素出现时会影响红外传感器的正常计数。五、心得体会总结本次课程设计大概用了两天时间,开始的时候一

19、无所知,还好之前准备的有些文档资料,基本上刚去的一上午没有做多少实质性的工作,就是看看资料后才了解自己应该做哪些东西,下午才开始进入正题。在基本功能实现后,遇到的第一个问题是:电机转速在数码管上的显示与示波器测量出来的数据不能保持一致,调节许久后才发现问题在于对于示波器的了解过于肤浅,在操作上有些瑕疵,多次调试后才显示正常。遇到的第二个问题是:电机的转速不稳定时快时慢,通过查资料得知电机之所以不稳定是由于clk0频率选取有问题,经过选调之后电机才开始有所稳定。从最后结果来看本次设计基本功能都能实现,不足的是在发挥部分未能实现闭环控制,这凸显了自己知识能力的不足。每做完一个实验,其实最大的感受就

20、是自己的知识层次欠佳,很多东西都是浅尝辄止,本次两天实验,加深了我对一个完整电子系统设计时应该统筹兼顾的理解,完成了从理论到实践的过度。这让我明白了,只要敢于去做,敢于去理解,问题都能解决。另外在完成一个完整的电子系统时,要善于从整体上把握设计的思路,否则,将很难看清问题的核心关键所在,理论终是理论,实践才是最重要的,只有脚踏实地才能真正提高自己的能力,希望能在以后的历程中多多进步。六、参考文献 1 潘松,黄继业. EDA技术实用教程【M】.北京:科学出版社,20072 侯伯亨,刘凯,顾新. VHDL硬件描述语言与数字逻辑电路设计 【M】.西安:西安电子科技大学出版社,20093 齐晶晶,李娜

21、.现代电子系统设计实验指导书【M】.河南科技大学:电子信息工程学院,2011.附:PWM模块:library ieee ;use ieee.STD_LOGIC_1164.ALL ;use ieee.STD_LOGIC_unsigned.ALL ;ENTITY PWM IS PORT(rst,Level,clk,Z_F : IN STD_LOGIC ;z,f,level_display0,level_display1 ,zkb : OUT STD_LOGIC);end PWM ;architecture zldj of PWM is signal cnt4 : std_logic_vector(

22、1 downto 0) ; signal cnt16 :std_logic_vector(7 downto 0) ; signal agb :std_logic ; signal speed :std_logic_vector(7 downto 0) ; beginprocess(rst,level) -速度等级设置模块beginif rst=1 thencnt40);elsif level=1 and levelevent thencnt4=cnt4+1;end if;end process;process(rst,clk)beginif rst=1 then speed0);elsif c

23、lkevent and clk=1 thencase cnt4 is WHEN 00 = speed speed speed speed NULL ; END CASE ;end if;END PROCESS;process(clk,rst) -数字比较器模块beginif rst=1 thenagbspeed then agb=1; else agb=0; end if;end if;end process;process(rst,clk) -锯齿波模块beginif rst=1 thencnt160);elsif clk=1 and clkevent thencnt16=cnt16+1 ;

24、end if;end process;process(rst,clk) -旋转方向控制模块beginif rst=1 thenz=0;f=0;elsif clkevent and clk=1 then if z_f=1 then z=agb; f=0; else z=0; f=agb; end if;end if;end process;zkb=agb;level_display0 = cnt4(0);level_display1 = cnt4(1);end ;4Hz信号转换成1Hz信号模块:library ieee;use ieee.std_logic_1164.all;use ieee.s

25、td_logic_unsigned.all;entity FTCTRL isport(clkk:in std_logic; cnt_en:out std_logic; rst_cnt:out std_logic; load:out std_logic);end FTCTRL;architecture one of FTCTRL issignal div2clk:std_logic;beginprocess(clkk)beginif clkkevent and clkk=1 thendiv2clk=not div2clk;end if;end process;process(clkk,div2c

26、lk)beginif clkk=0 and div2clk=0 then rst_cnt=1;else rst_cnt=0;end if;end process;load=not div2clk;cnt_en=div2clk;end one;频率计计数模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity CNT32b isPORT(FIN:IN STD_LOGIC;CLR:IN STD_LOGIC;ENABL:IN STD_L

27、OGIC;DOUT:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END;architecture one of CNT32B issignal tmp1,tmp2,tmp3,tmp4:std_logic_vector(3 downto 0);begin process(CLR,ENABL,FIN)beginif CLR=0 then if ENABL=1 thenif FINevent and FIN=1 thenif tmp1=1001 thentmp1=0000;else tmp1=tmp1+1;end if;end if;end if;else tmp1=0000;end if;end process;process(CLR,ENABL,FIN)beginif CL

温馨提示

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

评论

0/150

提交评论