兰州工业学院 电子信息工程学院毕业设计通信122 康建明.docx
《兰州工业学院 电子信息工程学院毕业设计通信122 康建明.docx》由会员分享,可在线阅读,更多相关《兰州工业学院 电子信息工程学院毕业设计通信122 康建明.docx(41页珍藏版)》请在冰点文库上搜索。
兰州工业学院电子信息工程学院毕业设计通信122康建明
毕业设计(论文)
题目:
基于FPGA的直流电机的PWM控制系统设计
学院:
电子信息工程学院
专业:
通信技术
班级:
通信12-2班
姓名:
康建明
学号:
201210602214
指导教师(副教授)周彬
日期:
2015年3月15日
摘要
利用FPGA可编程芯片及VHDL语言实现了对直流电机PWM控制器的设计,熟悉直流电机的工作原理及特性,对直流电机启动停止、正转反转以及速度的测量进行控制。
介绍了用VHDL语言编程实现直流电机PWM控制器的PWM产生模块、串口通信模块、转向调节模块等功能,该系统无须外接D/A转换器及模拟比较器结构简单,控制精度高,有广泛的应用前景。
同时,控制系统中引入上位机控制功能,可方便对电机进行远程控制。
关键词:
FPGA可编程门阵列;QuartusII;PWM;直流电机
Abstract
AnewdesignofDCmotorPWMcontrollerbasedonFPGAandUnderstandtheworkingprincipleandcharacteristicsofdcmotor,Startstopforwardinversionandthespeedofadcmotormeasurementcontrol,ThePWMcreatemodule,theserialcommunicationmoduleandthesteeringunithavebeenimplementedinandchip.WiththecharacteristicsofsimplestructureprecisecontrolandnoexteriorDAC.Thenewcontrolsystemcallbewidelyused.Andthecomputerstationcontrolisintro-duced.
KeyWords:
Fieldprogrammableablegatearray;QuartusII;PWM;DCmotor
1.绪论
1.1课题的来源
电机是电动机和发电机的统称,是一实现机电能转换的电磁装置。
拖动生产机械,将电能转换为机械能的电机称为电动机,作为电源,将机械能转化为电能的电机称为发电机。
由于电流有交直流之分,所以电机也就有交流电机和直流电机两大类,在各类机电系统中,由于直流电机具有良好的启动,停止和速度控制测速等良好性能,直流电机技术已广泛运用于各个行业。
本课题研究的基于FPGA的小容量的直流电动机的PWM制动控制系统中的应用,传统的方法产生PWM信号电路比较复杂,数字PWM控制只需一个FPGA中的内部资源就可以实现,而本次设计介绍了一种用单片大规模FPGA实现的PWM发生的直流电机控制器,其中产生的PWM波具有脉冲中心对称、PWM周期和死区时间可编程等特点,且性能优异,灵活性和可靠性高。
当线性计数器计数值小于设定值时输出低电平,大于设定值时输出高电平,而且通过总线数据或按键控制在系统调整脉宽数及数字比较器的设定值,从而实现对电机转速、波动性等参数的灵活控制。
直流电动机是一种能量转换的装置,具有良好的启动停止、正转反转以及便于测速等特性,在国民经济中起着重要作用。
在日常生活中的家用电器,随处可见各种各样的电机,如汽车、电视机、电风扇、空调等等家用电器。
同时,在越来越多的应用场合,普通的电机己无法满足要求,而是要求能够实现快速启停或反转以及准确测速等功能。
因此我们必须寻找新的电机控制器来适应时代的发展。
随着电子技术的发展,用基于现场可编程门阵列FPGA的数字电子系统对电机进行控制,为实现电动机数字控制提供了一种新的有效方法。
现场可编程门阵列(FPGA)器件集成度高、体积小、速度快,以硬件电路实现算法程序,将原来的电路板级产品集成为芯片级产品,从而降低了功耗,提高了可靠性。
尤其是硬件描述语言的出现,解决了传统电路原理图设计系统工程的诸多不便。
针对以上情况,本课题提出基于现场可编程门阵列(FPGA)的直流电机PWM控制系统设计。
1.2本课题的目的及意义
随着现代化步伐的迈进,人们对自动化的需求越来越高,使电动机控制向更复杂的方向发展。
而直流电动机具有良好的起动、制动性能,宜于在大范围内平滑调速,在许多需要调速或快速正反向的电力拖动领域中得到了广泛的应用。
它过载能力大,能承受频繁的冲击负载,可实现频繁的无级快速起动、制动、反转和测速能满足生产过程自动化系统各种不同的特殊运行要求。
最近几年来,由于直流电机的优秀性能,人们采用FPGA等各种可编程硬件为基础,可以大幅度提高逻辑系统的精确度和系统可靠性。
1.3本课题国内外的研究现状
从80年代中后期起,世界各大电气公司都在竞相开发直流电机装置,当直流电机的控制发展到一个很高的技术水平,使数字式直流调速装置具有很高的精度、优良的控制性能和强大的抗干扰能力,在国内外得到广泛的应用。
直流电机控制装置作为最新控制水平的传动方式更显示了强大优势。
直流电机控制系统不断推陈出新,为工程应用提供了优越的条件。
采用这种控制系统后,整个电机控制系统实现向数字化方向发展,结构简单,可靠性高,操作维护方便,电机稳态运行时转速精度可达到较高水平。
制动和反转,能满足生产过程自动化系统各种不同的特殊运行要求。
由于直流电机具有较佳的性能价格比,所以在工业过程及设备控制中得到日益广泛的应用。
在国内,从20世纪60年代初初步实现直流电机在工业中的使用。
这使直流电机控制系统也得到迅速的发展和广泛的应用。
目前,直流电机控制系统在我国国民经济各部门得到广泛的应用。
随着现在科技的迅速发展,直流电机控制的科技装置具有便于启动、停止、正转反转和测速等优点,使的直流电机在人们生活中的应用越来越广泛。
又因为我国直流电机控制也正向着脉宽调制(pulse width modulation,简称PWM)方向发展。
我国现在大部分数字化控制直流电机控制装置依靠进口。
但由于进口设备价格昂贵,也给出了国产数字控制直流电机装置的发展空间。
1.4论文章节安排
根据直流电机在国内外研究现状,对直流电机控制的研究已经逐渐成熟,对其结构也已逐步掌握,因此我们在基于现场可编程芯片来完成对直流电机控制,也符合我们本次选题的要求。
本文共包括六章内容。
第一章绪论,分析了研究意义,提出了设计基于FPGA的直流电机控制,并且对研究的内容进行分析。
第二章首先阐述直流电机的基本知识。
第三章介绍了本次主要系统整体结构及模块设计。
第四章设系统电路设计。
第五章介绍系统软件设计及其仿真。
2.直流电机的基本知识
2.1直流电机的基本情况
直流电动机与交流电动机相比较,具有良好的调速性能和启动性能。
直流电动机具有宽广的调速范围,平滑的无级调速特性,可实现频繁的无级快速启动、制动和反转;能满足自动化生产系统中各种特殊运行的要求。
而直流发电机则能提供无脉动的大功率的直流电源,且输出的电压可以精确地调节和控制。
但直流电机也有它显著的缺点:
一是制造工艺复杂,消耗有色金属较多,生产成本高;二是运行的时候由于电刷与换向器之间容易产生火花,所以可靠性比较差,维护比较困难。
所以在一些对调速性能要求不高的领域中己被交流变频调速系统所取代。
但是在某些要求调速范围大、快速性高、精密度好、控制性能优异的场合,直流电动机的应用目前仍然占有较大的比重。
2.2直流电动机的工作原理
电流产生磁场原理的变形(电流产生磁场),一个通电线圈相当于一个具有NS极的磁体,形成电磁力。
载流导体在磁场中将会受到力的作用,若磁场与载流导体互相垂直,作用在导体上的电磁力大小为:
f=B·l·i 。
力的方向用左手定则确定,如图1所示:
图1电动机工作原理图
从图上可以看出,电刷A是正电位,B是负电位,在N极范围内的导体ab中的电流是从a流向b,在S极范围内的导体cd中的电流是从c流向d。
前面已经说过,载流导体在磁场中要受到电磁力的作用,因此,ab和cd两导体都要受到电磁力Fde的作用。
根据磁场方向和导体中的电流方向,利用电动机左手定则判断,ab边受力的方向是向左,而cd边则是向右。
由于磁场是均匀的,导体中流过的又是相同的电流,所以,ab边和cd边所受电磁力的大小相等。
这样,线圈上就受到了电磁力的作用而按逆时针方向转动了。
当线圈转到磁极的中性面上时,线圈中的电流等于零,电磁力等于零,但是由于惯性的作用,线圈继续转动。
线圈转过半州之后,虽然ab与cd的位置调换了,ab边转到S极范围内,cd边转到N极范围内,但是,由于换向片和电刷的作用,转到N极下的cd边中电流方向也变了,是从d流向c,在S极下的ab边中的电流则是从b流向a。
因此,电磁力Fdc的方向仍然不变,线圈仍然受力按逆时针方向转动。
可见,分别处在N、S极范围内的导体中的电流方向总是不变的,因此,线圈两个边的受力方向也不变,这样,线圈就可以按照受力方向不停的旋转了,通过齿轮或皮带等机构的传动,便可以带动其它工作机械。
从以上的分析可以看到,要使线圈按照一定的方向旋转,关键问题是当导体从一个磁极范围内转到另一个异性磁极范围内时(也就是导体经过中性面后),导体中电流的方向也要同时改变。
换向器和电刷就是完成这个任务的装置。
在直流发电机中,换向器和电刷的任务是把线圈中的交流电变为直流电向外输出;而在直流电动机中,则用换向器和电刷把输入的直流电变为线圈中的交流电。
可见,换向器和电刷是直流电机中不可缺少的关键性部件。
当然,在实际的直流电动机中,也不只有一个线圈,而是有许多个线圈牢固地嵌在转子铁芯槽中,当导体中通过电流、在磁场中因受力而转动,就带动整个转子旋转。
这就是直流电动机的基本工作原理。
比较直流发电机和直流电动机的工作原理可以看出,它们的输入和输出的能量形式不同的。
正如前面已经说过,直流发电机由原动机拖动,输入的是机械能,输出的是电能;直流电动机则是由直流电源供电,输入的是电能,输出的是机械能。
直流电机工作原理图:
图2直流电动机工作原理
小结
本章简单介绍了直流电机的基本结构和工作原理,对直流电机有了一定的了解,在下面对直流电机PWM控制设计中起到铺垫作用。
3.系统整体结构
3.1系统的结构
FPGA芯片为控制核心,通过按键或上位机设定电机速度和PWM占空比,由FPGA的I/O口控制直流电机驱动芯片驱动直流电机的转动。
转速的测量由码盘完成,速度显示数码管来实现。
本系统是基于实现电机的恒速调节而进行设计的。
如图3所示,系统分以下几个模块:
转速控制模块,PWM信号产生模块,速度检测模块,电机正反转模块、电机转速采集模块
图3基于FPGA直流电机控制系统框图
3.1.1 串口通信
本设计中采取异步串行通信。
以一个字符为单位传送,需要CPU与上位机之间事先必须约定字符格式和波特率。
设计采用固定的字符传输格式:
一位起始位,8位数据,一位停止位。
如图4所示。
图4串行通信
传送顺序是低位在前,高位在后,依次传送。
用4倍波特率作为接收采样时钟,并把第8个采样值作为接收数据。
在用FPGA实现的异步串行通信电路中采用FIFO进行缓存,并在划分为接收模块、发送模块和接口模块三个功能模块,其中接收模块实现遥测数据的接收、缓存,发送模块实现遥控数据的缓存、发送,接口模块则实现和外部的连接。
发送模块要实现对遥控数据缓存,同时按照设计的异步串行通信字符格式将数据串行发送。
发送模块包含移位寄存器、实现遥测数据计数的计数器和发送状态机电路等。
FPGA模块接收从RS-485发送过来的串行数据,25位为一个字符。
该模块分别实现提取八位数据和串行数据发送的功能。
当din连续输出16个1后,下一个din为0时,开始提取后面的8位有效的数据00101010,然后加上起始位1,停止位0。
程序中,波特率可以根据需要通过分频程序进行改动。
3.1.2直流电机的转向控制
本次直流电机驱动电路使用就是H型全桥式驱动电路,这种驱动电路可以很方便实现直流电机的四象限运行,分别对应正转、正转制动、反转、反转制动。
它的基本原理图如图5所示。
图5H型桥式驱动电路
H型全桥式驱动电路的4只三极管都工作在斩波状态,V1、V4为一组,V2、V3为另一组,两组的状态互补,一组导通则另一组必须关断。
当V1、V4导通时,V2、V3关断,电机两端加正向电压,可以实现电机的正转或反转制动;当V2、V3导通时,V1、V4关断,电机两端为反向电压,电机反转或正转制动。
在直流电机运转的过程中,我们要不断地使电机在四个象限之间切换,即在正转和反转之间切换,也就是在V1、V4导通且V2、V3关断,到V1、V4关断且V2、V3导通,这两种状态之间转换。
在这种情况下,理论上要求两组控制信号完全互补,但是,由于实际的开关器件都存在开通和关断时间,绝对的互补控制逻辑必然导致上下桥臂直通短路,比如在上桥臂关断的过程中,下桥臂导通了。
为了避免直通短路且保证各个开关管动作之间的同步性,两组控制信号在理论上要求互为倒相的逻辑关系,而实际上却必须相差一个足够的死区时间,这个矫正过程既可以通过硬件实现,即在上下桥臂的两组控制信号之间增加延时。
驱动电流不仅可以通过主开关管流通,而且还可以通过续流二极管流通。
当电机处于制动状态时,电机便工作在发电状态,转子电流必须通过续流二极管流通,否则电机就会发热,严重时烧毁。
开关管的选择对驱动电路的影响很大,开关管的选择宜遵循以下原则:
a)由于驱动电路是功率输出,要求开关管输出功率较大。
开关管的开通和关断时间应尽可能小。
b)直流电机使用的电源电压不高,因此开关管的饱和压降应该尽量低
在实际制作中,我们可选用大功率达林顿管TIP122或场效应管IRF530效果都还不错。
现在为了取材方便,我们选用三极管作为驱动电路的开关管。
从前面的分析可知,H型全桥式驱动电路中,由于开关管有开通和关断时间,因此存在上下桥臂直通短路的问题。
直通短路的存在,容易使开关管发热,严重时烧毁开关管,同时也增加了开关管的能量损耗。
由于现在的许多集成驱动芯片内部已经内置了死区保护(如LMD18200),这里主要介绍的是利用开关管等分立元件以及没有死区保护的集成芯片制作驱动电路时增加死区的方法。
死区时间的问题,只有在正转变为反转或者反转变为正转的时候才存在,而在正转启动或反转启动的时候并没有,因此不需要修正。
如果开关管的开通和关断时间非常小,或者在硬件电路中增加延时环节,都可以降低开关管的损耗和发热。
当然,通过软件避免直通短路是最好的办法,它的操作简单,控制灵活。
通过软件实现死区时间,就是在突然换向的时候,插入一个延时的环节,待开关管关断之后,再开通应该开通的开关管。
在开关管每次换向的时候,不立即进行方向的切换,而是先使开关管关断一段时间,使其完全关断后再换向打开另外的开关管。
这个关断时间由软件延时实现。
以上主要分析了电机的全桥式驱动电路,这是直流电机调速使用最多的调速方法。
目前市场上有很多种电机驱动的集成电路,效率高,电路简单,使用也比较广泛但是其驱动方法大多与全桥式驱动一样。
PWM控制方法配合桥式驱动电路,是目前直流电机调速最普遍的方法。
转向调节原理即为有两个方向信号和一个使能信号。
如果DIR-Z信号为0,DIR-F信号·24·为1,并且使能信号是1,那么三极管Q1和Q4导通,电流从左至右流经电机,电机正转;如果DIR-Z信号变为1,而DIR-F信号变为0,那么Q2和Q3将导通,电流则反向流过电机,电机反转。
其中H1,L1,H2,L2是由PWM模块产生的一定占空比的PWM波,用来控制电机转速。
直流电机因其具有速度容易控制,启动制动特性良好的特点而得到广泛应用。
它的控制经历了传统的模拟控制方式到数字控制方式的发展。
目前国内常用的数字控制方式是以单片微机和DSP作为微处理器的直流电机控制系统。
由于传统的单片机执行速度相对较慢,烧写入单片机的程序容易受外界干扰,特别是强磁干扰,在恶劣环境下工作会发生意想不到的结果。
而用DSP控制电机所占用的资源较多,所需的外围元件也较多,影响了系统的可靠性。
随着电子技术的发展,可编程门阵列器件FPGA的出现,给直流电机的数字控制提供了新的手段和方法。
由于FPGA集成上千万个逻辑门阵列,不仅功能强大,速度快开发简单,还易于改造升级。
用FPGA控制电机可以提高电机的测速精度,强化电机系统的控制功能,使得电机控制系统具有灵活的控制性能,控制保护响应快接口设计灵活方便。
系统的组成和原理简单,便于对直流电机进行测速.控制器为控制系统的核心,还包括电机驱动电路直流电机测速系统框图。
电机反馈电路(包括转速反馈与电流反馈)显示电路和键盘。
本系统的FPGA芯片采用ALTERA公司的Cyclone系列的EP1C3T144。
它共有2910逻辑单元,59904RAMbits,约8万逻辑门,最多有104个用户I/O口,可以说这款FPGA的资源非常丰富,足够满足本控制系统的需要。
各模块的设计及工作原理测速控制系统以FPGA为控制核心,采用PWM控制。
PWM是脉冲宽度调制(PulseWidthModulation)的简称,它在自动控制和计算机技术等领域中得到了广泛的应用,也是本系统的技术核心。
3.1.3直流电机PWM调速原理
在电机数字控制方式中,PWM是一种常用的调速方法。
本系统是通过PI调节器来调节PWM占空比实现转速控制,如图所示。
PI调节器中P(比例)代表了当前的信息,起校正动态偏差的作用,使过程反应迅速,增大KP可以加快系统的响应速度及减少稳态误差,但过大的KP有可能加大系统超调,产生振荡,以至于系统不稳定。
I(积分)代表了过去积累的信息,它能消除系统静差,改善系统静态特性,积分作用的强弱取决于积分时间常数Ti,Ti越小,积分作用就越强。
其模拟控制规律为:
(3-1)
采用矩阵法进行数值积分,即以求和代替积分得到:
(3-2)
由公式(3-2)可得
(3-3)
将公式(3-2)减公式(3-3)得:
(3-4)
由上可知控制量的确定仅与本次和前一次误差采样值有关,采用VHDL语言编程实现PI算法。
占空比的调整理论上可以从0~1,本系统PWM输出的位数为11位,因此占空比调整的最小步长为211分之一。
PI算法硬件接口模块如图6所示,其中Clk是系统时钟,内部经过分频后作为PI模块的时钟。
EnSpd是按键判读,当EnSpd=”11”时PI模块开始工作。
SetSpdIn是转速设定输入;TstSpdIn是实测转速输入。
由ToPWM输出PWM占空比控制信号。
图6速度调节环框图
图7PI算法模块
PWM是直接作为控制信号输给电机驱动模块的。
PWM调速的精度与输出信号的位数有关,本系统采用11bit的位宽,其分辩率可达到1/2048。
PWM产生的方法很多,本系统采用简单的计数法,采用VHDL语言设计一个0~2048计数器,将PI调节器输出存入锁存器,锁存器的数与计数器的值不断进行比较,当前者大于后者时输出为高电平,否则为低电平。
实现模块如图7所示,clk是系统时钟输入,作为内部计算时钟;EnSpd是按键判读,当EnSpd=”11”时模块开始工作。
SetSpdin是设定速度的输入;PIValue是PI调节器输入的占空比控制信号;Curroverflow是过流保护输入。
当电流未超过设定最大值时,MotorP输出占空比由PI调节器控制的PWM信号驱动电机。
3.1.4直流电机测速电路
系统用霍尔传感器进行速度检测,在电机的转轴上固定一圆盘,在转盘的同心圆上固定若干个磁钢,并将如图8所示的霍尔传感器测速电路固定在附近,有磁钢经过时霍尔传感器输出低电平,没有磁钢经过时霍尔传感器输出高电平。
这样通过测量一分钟之内的脉冲个数来计算转速。
假设磁钢的个数为x个,一分钟测量到的脉冲个数为y个,则电机的转速为:
y/x,这些计算可通过程序实现图9为模块化后的霍尔传感器测速接口硬件图,Clk是系统时钟;霍尔传感器输出的信号由SpeedInP端口输入FPGA;程序进行计数,每分钟实际转速值为14位二进制数,由SpeedOut输出。
图8霍尔传感器测速电路
图9霍尔传感器测速模块
直流电机的转速可以通过内嵌的霍尔传感器测量得到,在电机的转动过程中,每一相霍尔传感器的输出周期波形如图10所示:
图10输出周期波形
如上图所示,电机每转一圈产生2个周期的占空比为50%的方波,那么我们只要测量出一个方波的高电平时间t,便可由公式V=60/4×t(rad/min)算出。
如果只用1相霍尔传感器测速的话,当电机速度较慢时,周期比较长,可能会影响到电机实时控制。
可以采用如上图所示增加霍尔传感器的方法解决,传感器1和传感器2以角度a固定,将‘与’波形作为输出波形,输出波形脉冲宽度与原来波形脉冲宽度的比N=2a/,这样就使得电机转速的测量比原来快了N倍,可以取a为能被整除的角度,有利于计算。
不过这要求霍尔传感器在角度固定时要相当准确,否则会造成误差。
3.2系统模块设计
3.2.1PWM信号产生器设计
FPGA中的基准计数器用来产生类似模拟电路的三角波基准,是一个最小计数值为0,最大计数值为周期寄存器中保存的数值。
PWM的任务逻辑由输入时钟CLK,输出信号pwm_out,使能位,5位计数器以及一个32位比较器组成。
输入时钟作为5位计数器的时钟信号,5位计数器的当前值与占空比设定寄存器中的值经过比较器后来决定pwm_out的输出为高或为低。
当前计数器中的值小于或等于占空比寄存器中的值时,pwmout输出低电平,否则输出高电平。
PWM的周期设定寄存器来设置pwm_out的信号周期.当前计数器的值等于周期设定寄存器中设定的值时产生一个复位信号来清除计数器中的值。
使能控制寄存器能使时钟信号有效或无效,从而控制计数器是否工作,进而控制pwm_out是否保持当前状态不变。
PWM生成原理图和框图如图所示:
图11PWM生成框图
图12PWM生成原理图
3.2.2转速控制模块
通过按键将直流电机的转速分为4档,即0档为不运转,1~3档转速依次增加,并用数码管显示当前的转速档位。
模块DECD的VHDL程序如下:
LIBRARYIEEE;
LIBRARYIEEE;
USEIEEE.STD-LOGIC-1164.ALL;
USEIEEE.STD-LOGIC-UNSIGNED.ALL;
ENTITYdecdIS
PORT(clk:
INSTD-LOGIC;
Dspy:
OUTSYD_LOGIC-VECTOR(1DOWNTO0);
D:
OUTSYD_LOGIC-VECTOR(3DOWNTO0);
END;
ARCHITECTUREoneOFdecdIS
Signalcq:
SYD_LOGIC-VECTOR(1DOWNTO0);
BEGIN
PROCESS(cq)
BEGIN
Casecqis
When”00”=>d<=”0100”;
When”01”=>d<=”0111”;
When”10”=>d<=”1011”;
When”11”=>d<=”1111”;
Whenothers=>null
ENDcase;
ENDPROCESS;
PROCESS(clk)
Begin
If