基于VHDL控制的直流电机PWM控制器的设计.docx
课程设计姓名:学号:学院:电气与信息工程学院专业:设计题目:基于VHDL控制的直流电机PWM控制器的设计指导教师:2023年1月安徽工业大学摘要本文主要介绍利用可编程芯片及VHDL语言实现对直流电机PWM控制器的设计。该直流电机PWM控制器由速度控制器模块、计数器模块、数字比拟模块、分频器模块组成,为了使该直流电机更完善,本系统还添加了正转反转模块。该系统无须外接D/A转换器及模拟比拟器,结构简单,控制精度高,有广泛的应用前景。关键词:直流电机:脉宽调制;VHDL语言ABSTRACTThispaperdescribestheuseofprogrammablechipsandVHDLlanguagerealizePWMDCmotorcontrollerdesign.ThePWMcontrollerconsistsofaDCmotorspeedcontrollermodules,countermodules,digitalcomparatormoduledividermodules,inordertomakebettertheDCmotor,thesystemalsoaddsaTrueStoryreversalmodule.ThesystemisnoexternalD/Aconvertersandanalogcomparators,simplestructure,highcontrolaccuracy,awiderangeofapplications.Keywords:DCmotor;PWM;VHDL目录摘要1ABSTRACT!1引言22直流电机控制电路构成及工作原理33各模块程序的编写、顶层模块与顶层模块的仿真波形图33.1 分频器模块程序与仿真图33.2 标准计数器模块与仿真图43.3 加速器程序与仿真图53.4 比拟器程序与仿真图63.5 顶层模块图73.6 顶层模块仿真波形74结束语7参考文献71引言随着电气化、自动化、智能化的开展,直流电机在工业中的应用越来越广泛,市场上也有各种直流电机,在传统的PWM调速系统中一般采用硬件作为脉冲发生器的方式,应用的元器件较多,同样会增加电路的复杂程度,随着电子技术和大规模可编程逻辑器件的开展.PWM采用软件的方法来实现调速过程,具有更大的灵活性,实现了硬件设计软件化.早前产生PWM信号波形是采用微机或单片机通过模拟比拟器实现,比拟器的一端接给定的参考电压,另一端接周期性线性增加的锯齿电压。当锯齿波电压小于参考电压时输出低电平,大于参考电压时输出高电平。改变参考电压就可以改变PWM波形中的高电平的宽度。此时锯齿波电压和设置参考电压均须由微机或单片机通过D/A转换器产生,再经过外接的模拟比拟器输出PWM的波形,因此外围电路比拟复杂。数字PWM控制只需FPGA中的内部资源就可以实现。用数字比拟器代替模拟比拟器,数字比拟器的一端接设定值计数器的输出,另一端接线性递增计数器输出。当线性计数器计数值小于设定值时输出低电平,大于设定值时输出高电平。与模拟控制相比,省去了外接的D/A转换器和模拟比拟器,FPGA外部连线很少,电路更加简单。而且可以在系统调整脉宽细分电路位数及数字比拟器的设定值,从而实现对电机转速等参数的灵活控制2直流电机控制电路构成及工作原理如图1所示,直流电机控制电路主要由三局部组成:FPGA中PWM脉宽调制信号产生电路;工作/停止控制和正/反转方向控制电路;片外功率放大电路和H桥正/反转功率驱动电路。在CLKO的作用下,锯齿波计数器输出周期性线性增加的锯齿波。当计数值小于设定值时1数字比拟器输出低电平,当计数值大于设定值时,数字比拟器输出高电平,由此产生周期性的PWM波形。分频模块和Cntb模块共同控制输出频率。旋转方向控制电路控制直流电动机转向及启动/停止,该电路由两个2选1选择器组成Z/F键控制选择PWM波形从正端Z进入H桥,还是从负端F进入H桥,以控制电机的转动方向。START键通过"与"门控制PWM的输出实现对电机的工作/停止控制。H桥电路由大功率晶体管组成,PWM波形通过方向控制送到H桥,经功率放大以后驱动电机转动。图1直流电机控制电路框图3各模块程序的编写、顶层模块与顶层模块的仿真波形图3.1 分频器模块程序与仿真图该系统要求输出频率为IOKhz,首先通过该分频模块由公式fl=20000/(c+l)*2,其中c=31,使频率为320khz,该频率作为计数模块的输入频率。程序及仿真图3如下:libraryieee;useieee.stdogic_1164.all;useieee.std_logic_unsigned.all;entityfenpinisport(clk:insldOgic;clock:outsldOgiC);endfenpin;architectureartoffenpinissignalcount:integerrange0to31;signalclk_data:std_logic;beginprocess(clk)beginifclk,eventandelk-thenifcount=31thencount<=0;clk_data<=notclk_data;elsecount<=count-1;endif;endif;CloCkV=Clk_data;endprocess;endart;图3.分频模块仿真图3. 2标准计数器模块该模块既是计数模块,计数时最大计数值为31,又与分频模块共同控制输出频率。该模块的输入频率来源于分频模块的320khz,有公式f=fl32,从而使直流电机的输出频率等于IOkh外程序与仿真图4如下:libraryieee;useieee.std_logic_l164.all;useieee.std_logic_unsigned.all;entitycntbisPOrt(ClkO,m:inStdJogic;q:outstd_logic_vector(4downto0);endcntb;architecturebehav1ofcntbissignalq1:std_logic_vector(4downto0);beginrocess(clkO)beginifclk,eventandclk-thenifm='thenifql=31thenQK=mOOOOO''elseql<=ql+l;endif;endif;endif;endprocess;q<=ql;endbehavl;图4.计数模块仿真图4. 3加速器程序设定值计数器Cnta设置PWM信号的占空比。当U/D:1,输入CLK2使设定值计数器的输出值增加,PWM占空比增加,电机转速加快。当U/D=0,输入CLK2,使设定值计数器的输出值减小,PWM占空比减小,电机转速变慢。程序及仿真图2如下:libraryieee;useieee.std_logic_unsigned.all;useieee.std_logic_1164.all;entitycntaisport(clk,u_d»en:inStdJogic;m:outstd_logic;cq:outstd_logic_vector(4downto0);endcnta;architecturebehavofcntaissignalcq1:std_logic_vector(4downto0);beginrocess(clk)beginifclk,eventandclk=,thenifen-thenifu.d=fthenifcql=31thencql<=,llll,;elsecql<=cql+l;endif;elsifcql=0thencql<=,OOO;elsecql<=cql-l;endif;elsifen=l0'thenm<=1;endif;endif;endprocess;cq<=cql;endbehav;图2.加速器模块仿真图3.4比拟器当计数值小于设定值时数字比拟器输出低电平,当计数值大于设定值时,数字比拟器输出高电平,由此产生周期性的PWM波形。程序及仿真图6如下:libraryieee;useieee.std_logic_l164.all;entitycompare!isport(dataa,datab:instd_logic_vector(4downto0);m:inStdJogic;agb:outStdJogic);endcomparel;architecturebehav2ofcomparelisbeginprocess(dataa,datab)beginifm='thenifdataa>databthenagb<=T;elseagb<=,O'endif;elseagb<=,O'endif;endprocess;endbehav2;图6比拟模块仿真图3,5顶层模块图3.6顶层模块仿真波形4结束语该控制模块在EDA的仿真符合设计要求,输出频率是IOkhz,其占空比可调,在0.10.9之间。在实际应用中,可根据直流电机的转速、负载等参数合理选择晶振频率及驱动电路的输出功率等,以取得最正确控制效果。参考文献口潘松,黄继业.EDA技术实用教程M.北京:科学出版社,2005,302-3082张晓青.直流电动机数字PWM调速系统设计J.北京机械工业学院学报,2000.(4).3宋万杰.FPGA技术及其应用M西安:西安电子科技大学出版社,2000,171-185黄智伟全国大学生电子设计竞赛训练教程M.北京:电子工业出版社,2005