ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:347.38KB ,
资源ID:11109387      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11109387.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于FPGA的步进电机的PWM控制细分驱动的实现.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于FPGA的步进电机的PWM控制细分驱动的实现.docx

1、基于FPGA的步进电机的PWM控制细分驱动的实现山东大学威 海 分 校课 程 设 计 报 告设计题目: _基于FPGA的步进电机的PWM控制_ _ 细分驱动的实现_ 姓 名_秦正运_ _ _ _学 号 20059002029 院 系_ _信息工程学院 _ 专 业_ 电子信息科学与技术 年 级_05_ _2009年 5 月 3 日目 录目 录 2摘 要 3关 键 词 3Abstract 3Keywords 3一、引言 4二、步进电机细分驱动的基本原理 4三、Quartus II概述 5四、课题设计 6(一)总体设计 6(二)细分电流的实现 6(三)细分驱动性能的改善 6(四)程序设计 7六、仿真

2、与测试结果分析 10七、结论 12参考文献 13注 释 14附 录 15谢 辞 21摘 要在对步进电机细分驱动原理进行分析研究的基础上,提出一种基于FPGA控制的步进电机细分驱动器。利用FPGA中的嵌入式EAB构成LPM-ROM,存放步进电机各相细分电流所需的PWM控制波形数据表,并通过FPGA设计的数字比较器,同时产生多路PWM电流波形,实现对步进电机转角进行均匀细分控制。实验证明,所研制的步进电机驱动器不仅体积小,简化了系统的设计,减少了延迟,改善了低频特性,有良好的适应性和自保护能力,提高了驱动器的稳定性和可靠性。关 键 词步进电机;细分驱动;脉宽调制;FPGAAbstractIn th

3、is paper, a divided driving circuit for stepping motor controlled by FPGA is put forward, based on the analysis of the principle of stepping motor divided driving. Using embedded EAB in FPGA to compose LPM-ROM, store PWM control wave form data which stepping motor each phase subdivided driving curre

4、nt is neededThe magnitude comparator designed with FPGA generates several PWM current waveform synchronously, to realize the step angles even division control for threephase stepping motor.Experimments have proved that the developed subdivision driver is not only smaller,sampler in system, can short

5、en the delay time,improve the stability in low frequency ,but has good self-adaptation and self-protection ability,and its stability and relibility are higher.Keywords stepping motor; divided driving;PWM; FPGA一、引言步进电机是把脉冲信号转换成角位移或直线位移的执行元件,是一种输出与输入数字脉冲相对应的增量驱动元件。具有定位精度高、惯性小、无积累误差、启动性能好、易于控制、价格低廉及与计算

6、机接口方便等优点,被广泛应用于数控系统中。但由于脉冲的不连续性又使步进电机的运行存在许多的不足之处,如低频震荡,噪声大,分辨率不高及驱动系统的可靠性差等,严重制约了其应用范围。步进电机的细分控制有效的解决了这一问题,步进电机细分驱动技术可以减小步进电机的步距角,提高电机运行的平稳性,增加控制的灵活性等。但是传统的步进电机驱动大多数采用的是用单片机作为控制芯片,外加分立的数字逻辑电路和模拟电路构成。受单片机工作频率的限制,细分数不是很高,因此控制器的精度较低,控制性能不是很理想。近年来随着可编程逻辑器件的飞速发展,似的可编程逻辑器件功能越来越强大从而促使高集成化高精度的驱动器的出现。本系统是以F

7、PGA为核心的控制器件,将驱动逻辑功能模块和控制器成功地集成在FPGA上。利用FPGA中的嵌入式EAB可以构成存放电机各相电流所需的控制波形表,再利用数字比较器同步产生多路FPGA电流波形,对多相步进电机进行控制。若改变控制波形表的数据、增加计数器和比较器的位数,提高计数精度,就可以提高PWM波形的细分精度,进而对步进电机的步进转角进行任意级细分,实现转角的精确控制。二、步进电机细分驱动的基本原理步进电机的驱动是靠给步进电机的各相励磁绕组轮流通以电流,实现步进电机内部磁场合成方向的变化来使步进电机转动的。设矢量Ta、Tb、Tc、Td为步进电机A、B、C、D四项励磁绕组分别通电时产生的磁场矢量;

8、Tab、Tbc、Tcd、Tda为步进电机中AB,BC,CD,DA两相同时通电产生的合成磁场矢量。当步进电机的A、B、C、D四相轮流通电时,步进电机内部磁场从TATBTCTD,即磁场产生了旋转。一般的,当步进电机的内部磁场变化一周时,电机的转子转过一个齿距,即改变一次通电状态,转子转过一个步距角。该步距角的计算公式为: 其中:代表接入绕组的线路状态数,m代表电动机的相数,Z x代表转子齿数。由此可见,步进电机一旦制造出来,其相数与转子齿数将为定值,要想减小步距角,以达到细分的目的,用户能改变的只有。在无细分的步进电机驱动系统中,通过各相绕组的电流幅值是不变化的,仅在各相通电状态变化时,值才相应地

9、变化。如对于四相步进电机来说,单四拍或双四拍运行时, = l ;当电机以四相八拍运行时,=2,实现了步距角的二细分。由于各相绕组的电流是个开关量,即绕组中的电流只有零和某一额定值两种状态,相应的各相绕组产生的磁场也是个开关量,只能通过各相电流的通电组合来改变步距角。所以要想增大,必须使绕组中的电流按阶梯上升和下降,即在零与最大相电流之间有多个稳定的中间电流状态,相应的磁场矢量幅值也存在多个中间状态,这样,相邻两相或多相的合成磁场的方向也将有多个稳定的中间状态。图1所示为四相步进电机八细分时各相电流波形,各相电流均以最大电流值的1/4上升和下降。与单四拍方式相比,值从2增加到8,步距角b为单四拍

10、运行方式时的1/8。所以步进电机细分驱动的关键在于控制电机各相励磁绕组中的电流大小及其稳定性。C相 图 1 三相步进电机八细分各相电流状态图改变步进电机相电流通常采用电流矢量恒幅均匀旋转的细分方法来实现,即同时改变两相电流iA和iB的大小,使电流合成矢量等幅均匀旋转。iA和iB的变化曲线可描述为:iA = Imcosx iB = Imsinx三相步进电机八细分时的各相电流是以1/4的步距上升或下降的,在两相稳定的中间状态,原来一步所转过的角度将由八步完成,实现了步距角的八细分。三、Quartus II概述Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、Ve

11、rilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流

12、程的各个阶段使用熟悉的第三放EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如Signal

13、Tap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。四、课题设计(一)总体设计从图1中可以看出,一般情况下总有二相绕组同时通电。一相电流逐渐增大,另一相逐渐减小。对应于一个步距角,电流可以变化N个台阶,也就是电机位置可以细分为N个小角度,这就是电机的一个步距角被N细分的工作原理。也可以说,步距角的细分就是电机绕组电流的细分,从而可驱动步进电机平滑运行。 图2为步进电机细分驱动系统结构图。步距细分电路是由PWM计数器、ROM地址发生器、PWM波形存储器、比较器、功放电路

14、所组成。其中,PWM计数器在时钟脉冲作用下递增计数,产生阶梯形上升的周期性锯齿波,同时加载到三相步进电机各相数字比较器的一端;波形ROM输出的数据q8.6、q5.3、q2.0分别加载到比较器的另一端。当PWM计数器的计数值小于波形ROM输出数值时,比较器输出高电平;而当大于波形ROM输出值时,比较器输出低电平。由此可输出周期性的PWM波形。根据图1步进电机八细分电流波形的要求,将各个时刻细分电流波形所对应的数值存放于波形ROM中,波形ROM的地址由地址计数器产生,地址计数器有3个控制端,可用于改变步进电机的旋转方向、转动速度、工作/停止状态。FPGA以产生的PWM信号控制驱动电路的导通和关断。

15、PWM信号随ROM数据而变化,改变ROM中的数据就可以改变输出信号的占空比,实现限流及细分控制,最终使电机绕组电流呈现阶梯形变化,从而达到步距细分的目的。 图2 步进电机细分驱动系统结构图 (二)细分电流的实现从LPM_ROM输出的数据加在比较器的A端,PWM计数器的计数值加在比较器的B端,当计数值小于ROM数据时,比较器输出低电平;当计数值大于ROM数据时,比较器输出高电平。如果改变ROM中的数据,就可以改变一个技术周期中高低电平的比例。(三)细分驱动性能的改善在线性电流的驱动下,步进电机的微步进是不均匀的,呈现出明显的周期性波动。磁场的边界条件按齿槽情况呈周期性重复是导致微步距周期性变化的

16、原因。同时,不可避免的摩擦负载(摩擦力矩是不恒定的,或者说在一定范围内也是不确定的)以及其他负载力矩的波动导致失调角出现不规则的小变动或小跳跃,也使微步距角曲线在周期性波动上出现不光滑的小锯齿形。步进电机的电流矩角特性并非线性函数,而是近似于正弦函数。若电流呈线性上升或者下降,必然会造成每一细分步的步距角不均匀,从而影响步距精度。为此,要在设计中提高LPM_ROM的数据精度,将数据提高到16位,使输出的步进细分电流近似为正弦电流,这样不仅提高了步距精度,而且可以改善低频震荡。(四)程序设计图3为步进电机PWM控制电路。CNT8是十六进制计数器,构成PWM计数器,将整个PWM周期分成4等份,产生

17、阶梯形上升的周期性锯齿波,同时加载到四相步进电机各相数字比较器的一端;CNT32是三十二进制计数器构成ROM地址发生器,计数器的u_d为方向控制,EN为使能控制,clk_d为速度控制,可以通过u_d、EN和clk_d控制步进电机的旋转方向、工作/停止和旋转速度;s为模式选择控制,可以选择正常运转模式或者是细分驱动模式。ROM是宽度为16位,深度为32位的存储器,存放了各个时刻细分电流波形所对应的数值;CMP为数字比较器,用于ROM输出的数据和PWM计数器计数值的比较。输出细分电流信号采用FPGA中ROM查表法,它是通过在不同地址单元内写入不同的PWM数据,用地址选择来实现不同通电方式下的可变步

18、距细分。从ROM输出的数据加在比较器的“a”端,PWM计数器的计数值加在比较器的“b”端,当计数值小于ROM数据时,比较器输出高电平;当计数值大于ROM数据时,比较器则输出低电平。如果改变ROM中的数据,就可以改变一个计数周期中高低电平的比例。图3 步进电机PWM控制电路下面具体来阐述一下各个元件的设计:图5为十六进制计数器的RTL图,通过不断输出十六进制数与ROM中的数据作比较。计数器的VHDL语言程序见附录2. 图4 十六进制计数器 图6为三十二进制计数器RTL图,可以输出五位二进制的地址,以便可以查询ROM表。程序见附录3。 图5 三十二进制计数器图六为四个比较器的RTL图,当计数值小于

19、ROM数据时,比较器输出高电平;当计数值大于ROM数据时,比较器则输出低电平。比较器的输出为步进的四相输入端提供PWM波形,从而达到PWM控制。程序见附录4 图6 比较器图7为多路选择器,利用s端可以选择控制步进电机的运转方式,s=0时,步进电机为PWM控制,s=1是步进电机的普通运转方式。程序见附录5. 图7 多路选择器图9的功能是从三十二进制计数器的输出端引入数据并把它转化成步进电机的普通四相驱动方式。程序见附录6 图8 计数转换器 PWM波形ROM表是通过Quartus II中的宏功能模块定制而成,利用FPGA中的嵌入式EAB构成LPM-ROM,存放步进电机各相细分电流所需的PWM控制波

20、形数据表。ROM数据和程序见附录7和附录8.六、仿真与测试结果分析图9是四相步进电机PWM仿真波形图,图中展示了FPGA控制步进电机的情况。ROM输出的16位数据q15.0,作为步进电机各相电流的参考值,每4位二进制(l位八进制)数值控制一个相,分别用于控制步进电机A、B、C三相的工作电流。对于每一相来说,当输出数据为0时,该相电流为0;输出数据为1时,脉宽高电平占一个PWM周期的1 / 4; 当输出数据为2时,脉宽高电平占一个PWM周期的2/4;当输出数据为4时,整个PWM周期均输出高电平。PWM输出电流的平均值与旋转角度成正比。图9中也给出了步进电机从A-AB-B-BC-C-CD-D-DA

21、四相八拍工作过程的仿真波形。首先,步进电机A相导通,B、C、D相截止,q15.0输出数据为F000;A相的数据为F,其他相的数据为0。然后逐渐过度到AB相导通,q16.0输出数据为F600-F900-FC00-FF00, B相的数据逐渐增大,从1增大到4。电机中的磁场经过4拍,从A相转到了AB相。再经过4拍,从AB相转到B相;q15.0输出数据为CF00-9F00-6F00-0F00, A相的数据逐渐减小,从4变为0。从A到AB到B共经过了8拍,实现了步距角的8级细分。此外由于步进电机是电感性负载,对输出的PWM电流具有平滑滤波作用,对电机线圈起作用的是PWM的平均电流,因此在效果上将图中的细

22、小毛刺电流滤除。 图9 仿真波形1图10是在clk_d的频率比较高的情况下的仿真图。和图9比较可以看出,clk_d的频率越大,PWM波形比较密集,步进电机的转速越高,即clk_d是速度控制信号。 图10 仿真波形2图11和图9对比,可以看出,当u_d为高电平时,ROM表中输出的数据和图9顺序相反,输出的PWM波形也和图9相反。因此,步进电机的内部磁场从DDCCBCBABADA,电机反转。 图11 仿真波形3图12是在s为高电平时的仿真图,当s=1时,步进电机为单四拍常规运转方式,内部磁场从ABBCCDDA。实测结果表明,要是步进电机细分后获得均匀的步进转角,其PWM驱动电流应近似于正弦电流,而

23、非线性递增的电流,因此ROM文件中的数据进行适当选择,使每一步的电流增加量近似正弦波,并根据实际转角做了适当调整。由于PWM的输入时钟频率较高,因此可以获得均匀的平均电流,并且每一步的时间间隔相等,转角近似均匀。七、结论 通过利用FPGA中嵌入式EAB构成的LPM-ROM存放电机转角细分电流所需的数据表,由数字比较器同步产生多路PWM电流波形,对多相步进电机的转角进行均匀细分,有效地控制步进电机。若提高波形表数据的位数,增加计数器和比较器的位数,就可以提高PWM波形的细分精度,对步进电机的步进转角进行任意细分,实现步进转角的精确控制。此实现方法比目前单片机加D/A的控制方案更加高效。试验证明,

24、此系统功能满足设计要求,控制灵活,集成度高。驱动器在减少体积、降低开发成本的同时,又增加了稳定性和可靠性,具有较好的动态和静态驱动特性,有效地提高步进电机的运行效果。参考文献1 李华德等,交流调速控制系统.北京:电子工业出版社,2003.3:22-272 潘松等,EDA技术实用教程M.北京: 科学出版社20053 雷凯等,步进电机细分驱动中绕组电流的修正J.苏州大学学报2003.1:38-404 杨忠宝,林海波,基于80C196MC的步进电机斩波恒流均匀细分电路的实现J.微计算机信息2003.7:51-525 袁丽肖,王健等,直接转矩控制系统的自适应模糊控制方法的研究J.微电机 2006.33

25、(9):26-296 翁良科,伊仕.基于Verilog HDL描述的多用途步进电机控制芯片的设计J.电子技术应用,20027程浩.三相混合步进电机细分驱动的研制D.浙江:浙江大学.20018李恩光.机电伺服控制技术.东华大学出版社,2003注 释PWM技术:脉宽调制(PWM:(Pulse Width Modulation)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。简而言之,PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字

26、的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。让信号保持为数字形式可将噪声影响降到最小。噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。 对噪声抵抗能力的增强是PWM相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM用于通信的主要原因。从

27、模拟信号转向PWM可以极大地延长通信距离。在接收端,通过适当的RC或LC网络可以滤除调制高频方波并将信号还原为模拟形式。附 录附录1:顶层程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity djxf is port(clk,clk_d,u_d,s,en:in std_logic; y:out std_logic_vector(3 downto 0);end entity djxf;architecture behav of djxf is component cnt8 port(cl

28、k:in std_logic; cq:out std_logic_vector(3 downto 0); end component; component dec2 port(clk: in std_logic; a: in std_logic_vector(1 downto 0); d: out std_logic_vector(3 downto 0); end component; component cnt32 port(clk,en,u_d:in std_logic; cq:out std_logic_vector(4 downto 0); end component; compone

29、nt pwm_rom PORT ( address : IN STD_LOGIC_VECTOR (4 DOWNTO 0); inclock : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR (15 DOWNTO 0) ); end component; component cmp port (a,b:in std_logic_vector(3 downto 0); agb:out std_logic); end component; component mux port(a,b: in std_logic_vector(3 downto 0); s: in s

30、td_logic; y:out std_logic_vector(3 downto 0); end component;signal sgn1:std_logic_vector(3 downto 0);signal sgn2:std_logic_vector(4 downto 0);signal sgn3:std_logic_vector(15 downto 0);signal sgn4,f:std_logic_vector(3 downto 0);beginu1:cnt8 port map(clk=clk,cq=sgn1);u2:cnt32 port map(clk=clk_d,en=en,

31、u_d=u_d,cq=sgn2);u3:pwm_rom port map(inclock=clk_d,address=sgn2,q=sgn3);cmp1:cmp port map(a=sgn3(15 downto 12),b=sgn1,agb=f(3);cmp2:cmp port map(a=sgn3(11 downto 8),b=sgn1,agb=f(2);cmp3:cmp port map(a=sgn3(7 downto 4),b=sgn1,agb=f(1);cmp4:cmp port map(a=sgn3(3 downto 0),b=sgn1,agb=f(0);u4:dec2 port map(clk=clk,a=sgn2(1 downto 0),d=sgn4);m:mux port map(a=f,b=sgn4,s=s,y=y);end architecture behav;附录2:十六进制计数器libra

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1