《基于VHDL控制的直流电机PWM控制器的设计.docx》由会员分享,可在线阅读,更多相关《基于VHDL控制的直流电机PWM控制器的设计.docx(8页珍藏版)》请在优知文库上搜索。
1、课程设计姓名:学号:学院:电气与信息工程学院专业:设计题目:基于VHDL控制的直流电机PWM控制器的设计指导教师:2023年1月安徽工业大学摘要本文主要介绍利用可编程芯片及VHDL语言实现对直流电机PWM控制器的设计。该直流电机PWM控制器由速度控制器模块、计数器模块、数字比拟模块、分频器模块组成,为了使该直流电机更完善,本系统还添加了正转反转模块。该系统无须外接D/A转换器及模拟比拟器,结构简单,控制精度高,有广泛的应用前景。关键词:直流电机:脉宽调制;VHDL语言ABSTRACTThispaperdescribestheuseofprogrammablechipsandVHDLlangua
2、gerealizePWMDCmotorcontrollerdesign.ThePWMcontrollerconsistsofaDCmotorspeedcontrollermodules,countermodules,digitalcomparatormoduledividermodules,inordertomakebettertheDCmotor,thesystemalsoaddsaTrueStoryreversalmodule.ThesystemisnoexternalD/Aconvertersandanalogcomparators,simplestructure,highcontrol
3、accuracy,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调速系统中一般采用硬件作为脉冲发生器的方式,应用的元器件较多,
4、同样会增加电路的复杂程度,随着电子技术和大规模可编程逻辑器件的开展.PWM采用软件的方法来实现调速过程,具有更大的灵活性,实现了硬件设计软件化.早前产生PWM信号波形是采用微机或单片机通过模拟比拟器实现,比拟器的一端接给定的参考电压,另一端接周期性线性增加的锯齿电压。当锯齿波电压小于参考电压时输出低电平,大于参考电压时输出高电平。改变参考电压就可以改变PWM波形中的高电平的宽度。此时锯齿波电压和设置参考电压均须由微机或单片机通过D/A转换器产生,再经过外接的模拟比拟器输出PWM的波形,因此外围电路比拟复杂。数字PWM控制只需FPGA中的内部资源就可以实现。用数字比拟器代替模拟比拟器,数字比拟器
5、的一端接设定值计数器的输出,另一端接线性递增计数器输出。当线性计数器计数值小于设定值时输出低电平,大于设定值时输出高电平。与模拟控制相比,省去了外接的D/A转换器和模拟比拟器,FPGA外部连线很少,电路更加简单。而且可以在系统调整脉宽细分电路位数及数字比拟器的设定值,从而实现对电机转速等参数的灵活控制2直流电机控制电路构成及工作原理如图1所示,直流电机控制电路主要由三局部组成:FPGA中PWM脉宽调制信号产生电路;工作/停止控制和正/反转方向控制电路;片外功率放大电路和H桥正/反转功率驱动电路。在CLKO的作用下,锯齿波计数器输出周期性线性增加的锯齿波。当计数值小于设定值时1数字比拟器输出低电
6、平,当计数值大于设定值时,数字比拟器输出高电平,由此产生周期性的PWM波形。分频模块和Cntb模块共同控制输出频率。旋转方向控制电路控制直流电动机转向及启动/停止,该电路由两个2选1选择器组成Z/F键控制选择PWM波形从正端Z进入H桥,还是从负端F进入H桥,以控制电机的转动方向。START键通过与门控制PWM的输出实现对电机的工作/停止控制。H桥电路由大功率晶体管组成,PWM波形通过方向控制送到H桥,经功率放大以后驱动电机转动。图1直流电机控制电路框图3各模块程序的编写、顶层模块与顶层模块的仿真波形图3.1 分频器模块程序与仿真图该系统要求输出频率为IOKhz,首先通过该分频模块由公式fl=2
7、0000/(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,eventan
8、delk-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_unsigne
9、d.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加速器程序设定值计数器Cnt
10、a设置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_den:inStdJogic;m:outstd_logic;cq:outstd_logic_vector(4downto0);endcnta;architecturebehavofcntaiss
11、ignalcq1: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=l0thenm=1;endif;endif;endprocess;cqdatabthenagb=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