《2022年课程设计方案直流电机说明说》由会员分享,可在线阅读,更多相关《2022年课程设计方案直流电机说明说(24页珍藏版)》请在金锄头文库上搜索。
1、1 / 24 河南科技大学课 程 设 计 说 明 书课程名称现代电子系统课程设计题目直流电机控制设计 学院电子信息工程学院班级电信科 081 学生姓名 000 指导教师 齐晶晶、 张雷鸣 日期 2018 年 12 月 16 日课程设计任务书指导教师填写)精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 24 页2 / 24 课程设计名称 现代电子系统课程设计学生姓名 袁伟伟 _专业班级 信科 081 设计题目直流电机控制设计一、课程设计目的学习直流电机PWM 的 FPGA 控制;掌握 PWM 控制的工作原理;掌握 GW48_SOPC 实验
2、箱的使用方法;了解基于FPGA 的电子系统的设计方法。二、设计内容、技术条件和要求利用 PWM 控制技术实现直流电机的速度控制。1)基本要求:a速度调节: 4 档,数字显示其档位。b能控制电机的旋转方向。c通过红外光电电路测得电机的转速,设计频率计用4 位 10 进制显示电机的转速。2)发挥部分a设计“去抖动”电路,实现直流电机转速的精确测量。b修改设计,实现直流电机的闭环控制,旋转速度可设置。c其它。三、时间进度安排布置课题和讲解:1 天查阅资料、设计:4 天实验: 3 天撰写报告: 2天四、主要参考文献何小艇 电子系统设计浙江大学出版社 2008.1 潘松 黄继业 EDA 技术实用教程科学
3、出版社 2006.10 齐晶晶 现代电子系统设计实验指导书电工电子实验教案中心 2009.8 指导教师签字: 2018年 11月 28日摘要精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 24 页3 / 24 电机是指依据电磁感应定律实现电能转换或传递的一种电磁装置。电动机也俗称马达,它的主要作用是产生驱动转矩,作为用电器或各种机械的动力源。21世纪,在工业化集成电路设计中,直流电机得到了广泛的应用,直流电动机是依靠直流工作电压运行的电动机,广泛应用于收录机、录像机、电吹风、电子表、玩具等。所以,多功能、人性化、易操作的电机设计成了一个
4、趋势。本文对于直流电机方面的研究,是基于Quartus2软件,利用 FPGA 器件,通过 VHDL 语言编程对直流电机进行基本的自动操作控制。本次直流电机主要有以下功能:1.转速调节。转速调节通过档位来实现,档位为一、二、三、四档,每个档位都设定自己的速度,随着档位的的升高速度逐渐增大,速度的改变通过改变PWM 信号的占空比来是实现。2.正反转控制。设置一个按键,调节按键时电机能够改变转动方向。原理为档按下按键时,改变了加在电机两端电压的极性。3.转速显示。转机转动时会有一个速度,速度能够正确的显示在数码管上,并能用实验仪器正确测出。原理为设计一个频率计,测试电机转速。目录精选学习资料 - -
5、 - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 24 页4 / 24 一、任务解读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 总体电路图及其它13四、结果评估及误差分析16五、心得体会总结17六、参考文献18精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - -
6、 -第 4 页,共 24 页5 / 24 一、任务解读1.1 设计要求本设计利用 PWM 控制技术实现直流电机的速度控制。要求电机的速度要分为四档,要求有数码管可以档位显示。通过按键可以控制直流电机的正反转,通过红外光可以测得直流电机的转速,并能在数码管上用4 位十进制显示电机具体的转动速度。在整个电路中,要有去抖动部分,以求实现直流电机转速的精确测量。在基本功能实现之后,可以尝试修改设计,实现直流电机的闭环控制,这样可以随意设置旋转速度。1.2 要求分析根据设计要求,本次电路的实现大概要分为以下几大部分:1. FPGA中 PWM 模块。2.频率计计数模块。3. 数码管读数模块4.消抖电路模块
7、由此,可以得出整个电路系统的原理框图:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 24 页6 / 24 PWM模块电机转速预置PWM 参考频率电机速度级别显示GND22MUXABSY1Y2电机正转电机反转电机方向控制去抖动电路参考频率电机转速脉冲信号频率计1Hz电机转速显示电机速度控制模块二 、方案论证2.1 设计思路此次电机设计主要实现的功能是:四档速度;电机正反转;转速显示;四档转速 的实现在硬件上通过按键实现,按下一次加一档,档位升高,档速提高,软件方面通过程序来设置不同的档位占空比,占空比不同,转速也就不同。当输入电源的占空
8、比大时,直流电机的转速较快;当输入电源的占空比小时,直流电机的转速较慢。直流电机转动方向的控制,主要是通过一个比较精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 24 页7 / 24 器,一个二选一选择器来实现。通过比较器产生高低电平,然后通过键盘输入的改变来选择通过比较器产生的两个不同电平中的一个,最后把选择的电平加载到直流电机模块上,至此,实现电机转动的正转或反转。直流电机的工作 /停止,需要一个二选一选择器来实现。即当通过键盘输入start 为 1 或 0 时,把二选一选择器选择PWM 块所产生的高低电平作为直流电机模块的一个输入
9、端口,作为使能端,从而实现电机的工作/停止。2.2 思路实现由上所知,本次设计的关键部分是PWM 模块的设计。该模块可以详细分为下面几个小模块:速度等级设置模块、数字比较器模块、锯齿波发生器、旋转方向控制模块。PWM 模块设计是整个电路设计的基础,只有很好的实现并产生了直流电机的四个不同速度等级,通过比较器所产生的高低电平,进而通过二选一选择器实现了方向控制信号的高低电平选择,后面的频率计计数模块和数码管读数模块才能更好的实现。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 24 页8 / 24 三、设计原理及模块3.1 电机驱动原理一
10、台直流电机原则上既可以作为电动机运行,也可以作为发电机运行,这种原理在电机理论中称为可逆原理。当原动机驱动电枢绕组在主磁极 N、S 之间旋转时,电枢绕组上感生出电动势,经电刷、换向器装置整流为直流后,引向外部负载 自输入通道经过整形、放大和微分形成于u(t 周期个数相同的计数脉冲进入“主控与门”电路,在门控双稳态电路开门讯号的控制下,将计数脉冲送入计数、锁存、译码、驱动与显示电路,有 LED 半导体发光数码管)、LCD f 1 输入通道主控与门计数译码显示门控双稳分频 /倍频晶振 f0 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 2
11、4 页10 / 24 列脉冲的宽度进行调制来等效地获得所需要的波形。图二中,设定值计数器设置PWM 信号的占空比。当 UD=1,输入CLK2 ,使设定值计数值的输出值增加,PWM 的占空比增加,电机转速加快;当 UD=,输入CLK2 使设定值计算器的输出值减小,PWM 的占空比减小,电机转速变慢。在 CLK的作用下,锯齿波计数器输出周期性线性增加的锯齿波。当计数值小于设定值时,数字比较器输出低电平;当计数值大于设定值时,数字比较器输出高电平,由此产生周期性的 PWM 波形。旋转反向控制电路控制直流电动机转向和启/停,该电路由两个选多路选择器组成,ZF 键控制选择PWM 波形从正端Z进入 H 桥
12、,还是从负端进入H 桥,以控制电机的旋转方向。START键通过“与”门控制PWM 的输出,实现对电机的工作/停止控制。桥电路由大功率晶体管组成,PWM 波形通过方向控制电路送到 H 桥,经功率放大以后驱动电机转动。3.3.1 转速控制模块在用 FPGA 控制直流电机转速时,其核心是改变每个PWM 周期的占空比。此时需要产生一个设定值计数器,一个锯齿波发生器和一个数字比较器。设定值计数器 就是根据按键按下时选取的不同档位,输出一个不精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 24 页11 / 24 同的数值。本次设计速度分为四档,档
13、位为0 时转速为0,每增加一档,转速相应增加,四档时转速达到最大。据此,首先要设计一个档位调节模块,当输入不同的档位数值时,要输出一个计数值,这个数值规定了设定值计数器的输出数值。当档位增加时,设定值计数器的值相应增加,从而改变PWM 信号占空比,使其占空比增大,电机转速加快。设定值计数器的输出加到比较器的一端,和锯齿波发生器的数值进行比较。锯齿波发生器 的数值来自对CLK0 的分频,它的位数取决于电机能够达到的最大转数。我们实验室的电机大概在70 转左右,所以锯齿波发生器的位数不应低于7 位,若更低的话,每改变一位数,对应的转数还达不到一转,这样就不能对每一转进行细分,也就无法精确控制电机的
14、转速。3.3.2 频率计计数模块转速显示模块实际上就是设计一个频率计。电机转动时,每转一圈,电机旁边的红外检测电路就会产生一个脉冲。把这个脉冲通过一个消抖电路后作为频率计待测频率的输入端。频率计部分的工作原理是:先设置一个计数器,然后由1Hz 的输入时钟经过倍频得到2Hz 的时钟信号,当2Hz 的时钟信号为高电平时,去检测有无红外电路的脉冲信号到来,每当红外脉冲信号到来,计数器加一。其原理就是检测在一秒时间内红外电路产生的脉冲的个数,即检验在一秒时间内电机转动了多少圈。最后把一秒时间内电机转过的圈数输精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第
15、11 页,共 24 页12 / 24 出到数码管显示。频率计计数模块模块的总体框图:3.4 数码管读数模块该模块的原理是:当输入端信号lk 为高电平且为上升沿时,输出端 dout读出输入端 din 当时的值,并在数码管上显示出来。数码管读数模块的总体框图如下图14所示:数码管读数模块的框图3.5 消抖电路模块设计红外检测电路产生的脉冲信号在加到频率计输入端时,在开始的一段短暂的时间里,会产生抖动,所以要设计一个消抖电路去除抖动。消抖电路设计原理图如下:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 24 页13 / 24 消抖电路原理
16、图输入信号开始会有一段抖动,然后频率趋于稳定。很明显,抖动的那一段信号的周期相对于稳定后的信号来说很短。我们就可以通过两个 D 触发器滤除抖动的那一段信号。假设第一个D 触发器的输出为 D1,第二个 D触发器的输出为 D2。当 CLK上升沿到来时,若这时的输入信号为高电平,那么输出的D1就为 1,D1经过一个非门变成 0,D1的非与 D2相与,输出是0。第二个 CLK上升沿到来时,若输入信号还为高电平,则这时D1为 1,D2为 1,D1的非与 D2相与,输出还是0。只有当CLK 上升沿到来,输入信号变成低电平时,这时 D1变成 0,D2为 1,D1的非与 D2相与后,输出才为1。由此分析,当C
17、LK 频率选取合适时,在一个输入信号高电平到来时,至少需要两个CLK周期才能输出高电平,而抖动的那一段信号由于周期太短,满足不了这个要求,因此抖动信号就不会输出,这样就完成了消抖功能。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 24 页14 / 24 3.6 总体电路图及其它电路图:管脚锁定情况:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 24 页15 / 24 PWM 信号的占空比 随着档位的不同而改变的原因:由前面所知,已经设计好了一个设定值计数器和一个锯齿波发生
18、器,这两个数值加在数字比较器输入端进行比较;当设定值计数器的值大于锯齿波比较器的值时,比较器输出高电平;当设定值计数器的值小于锯齿波比较器的值时,比较器输出低电平。锯齿波发生器其实就是一个计数器,它的变化范围是0-256,每来一个clk时钟信号,计数器就加1。如果我们现在设定一个计数值128,那么在前 128 个 clk时钟信号内,设定值都是大于计数值,比较器输出高电平,后 128 个 clk时钟信号内,设定值都是小于计数值,比较器输出低电平;由此往复得知,在每一个PWM 信号周期内,高电平和精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页
19、,共 24 页16 / 24 低电平各占一半,因此占空比为50% 。不同档位对应不同的设定值,由此不同档位下PWM 信号的占空比改变,电机转速也会改变。关于 clk0 :Clk0 选取的频率不能过高也不能过低。Clk0 频率过高时,相邻两个PWM 周期信号之间高电平相距很近,当PWM 信号的占空比增大时,由于两个PWM 信号周期相距很近,加在电机上的电压可以认为一直是高电平,那么再增大PWM 信号的占空比时电机的转速就不会明显的增大了。若CLK0的频率再高,超过了 H桥的承受能力的话,电机就不会转了。CLK0频率过低时,输出的相邻两个PWM 周期信号高电平相距较远,这样的PWM 信号加到电机上
20、,在低占空比的时候,和正常频率,相同占空比的PWM 信号相比,频率低的PWM 信号高电平维持的时间较长,这样的话,当电机遇到高电平时,就会一直加速,遇到低电平时又一直减速,转速很不稳定。四、结果评估及误差分析本次实验用的模式5,完成整个程序仿真,管脚锁定及下载后会有以下结果:按下按键1 为电机使能键,实现电机启动/ 停止;按下按键 2 一次,档位提高一档,电机转速增加;按下按键3 电机转动方向改变。数码管4、3、2、1 显示电机的转速。 D1和 D2用来显示档位,D1为个位显示, D2为十位显示。基本功能实现正常;有所欠缺精选学习资料 - - - - - - - - - 名师归纳总结 - -
21、- - - - -第 16 页,共 24 页17 / 24 的是未能实现闭环电路的控制。在实验中,会发现电机有出现转速不稳,示波器测量频率与数码管显示有一些误差。end PWM 。architecture zldj of PWM is signal cnt4 : std_logic_vector(1 downto 0 。 signal cnt16 :std_logic_vector(7 downto 0 。 signal agb :std_logic 。 signal speed :std_logic_vector(7 downto 0 。begin process(rst,level - 速
22、度等级设置模块begin if rst=1 then cnt40。elsif level=1 and levelevent then cnt4 begin if rst=1 then speed0 。elsif clkevent and clk=1 then case cnt4 is WHEN 00 = speed speed speed speed NULL 。 END CASE 。end if。END PROCESS。process(clk,rst - 数字比较器模块begin if rst=1 then agbspeed then agb=1。 else agb - 锯齿波模块begin
23、 if rst=1 then cnt160。elsif clk=1 and clkevent then cnt16 - 旋转方向控制模块begin if rst=1 then z=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 。level_display1 。end 。4Hz 信号转换成1Hz 信号模块:library ieee。use ieee.std_logic_1164.all
24、。use ieee.std_logic_unsigned.all 。entity FTCTRL is port(clkk:in std_logic 。 cnt_en:out std_logic 。 rst_cnt:out std_logic。 load:out std_logic。end FTCTRL。architecture one of FTCTRL is signal div2clk:std_logic。begin process(clkk 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 20 页,共 24 页21 / 24 begin if
25、 clkkevent and clkk=1 then div2clk begin if clkk=0 and div2clk=0 then rst_cnt=1。else rst_cnt=0 。end if。end process 。load=not div2clk。cnt_en 。END。architecture one of CNT32B is signal tmp1,tmp2,tmp3,tmp4:std_logic_vector(3 downto 0 。begin process(CLR,ENABL,FIN begin if CLR=0 then if ENABL=1 then if FI
26、Nevent and FIN=1 then if tmp1=1001 then tmp1=0000。else tmp1=tmp1+1。end if。end if。end if。else tmp1 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 21 页,共 24 页22 / 24 begin if CLR=0 then if rising_edge(FINthen if tmp2=1001 then tmp2=0000。elsif tmp1=1001 then tmp2=tmp2+1。end if。end if。else tmp2 begin if
27、 CLR=0 then if rising_edge(FINthen if tmp3=1001 then tmp3=0000。elsif tmp2=1001 then tmp3=tmp3+1。end if。end if。else tmp3 begin if CLR=0 then if rising_edge(FINthen if tmp4=1001 then tmp4=0000。elsif tmp3=1001 then tmp4=tmp4+1。end if。end if。else tmp4。 dout:out std_logic_vector(15 downto 0 。end REG32B。architecture one of REG32B is begin process(lk,din begin if lkevent and lk=1 then dout=din。end if。end process 。end one 。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 23 页,共 24 页24 / 24 评语成绩:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 24 页,共 24 页