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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于FPGA的步进电机细分控制.docx

1、基于FPGA的步进电机细分控制实习目的(内容): 步进电机细分控制 实习时间: 自 月 日至 月 日 共 天。实习地点: 实习单位: 指导老师: 系主任: 一. 实验目的 学习使用FPGA实现步进电机和细分控制,了解步进电机细分控制的原理。 二. 实验内容 MagicSOPC实验箱上有1个四相步进电机。 本实验的内容是使用PMW方法来控制步进电机细分旋转,实验1/4细分(4.5度/步)控制和不细分控制(18度/步)。用KEYI控制步进电机正/反(由LED1指示状态);KEY2控制电机正常运转/细分运行(LED2指示状态)。利用Quartus2完成设计、仿真等工作,最后在MagicsSOPC实验

2、箱上运行硬件测试。 三. 实验原理 步进电动机是纯粹的数字控制电动机,它将电脉冲信号转变为角位移,即给一个脉冲,步进电机就转一个角度, 可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。 步进电动机有如下特点:1)步进电动机的角位移与输入脉冲数严格成正比。因此,当它转一圈后,没有累计误差,具有良好的跟随性。2步进电动机与驱动电路组成的开环数控系统,既简单、廉价,又非常可靠,同时,它也可以与角度反馈环节组成高

3、性能的闭环数控系统。3)步进电动机的动态响应快,易于启停、正反转及变速。4)速度可在相当宽的范围内平稳调整,低速下仍能获得较大转距,因此一般可以不用减速器而直接驱动负载。5)步进电机只能通过脉冲电源供电才能运行,不能直接使用交流电源和直流电源。6)步进电机存在振荡和失步现象,必须对控制系统和机械负载采取相应措施。 步进电机具有和机械结构简单的优点,图1是四相六线制步进电机原理图,这类步进电机既可作为四相电机使用,也可以做为两相电机使用,使用灵活,因此应用广泛。 步进电机有两种工作方式:整步方式和半步方式。以步进角1.8度四相混合式步进电机为例,在整步方式下,步进电机每接收一个脉冲,旋转1.8度

4、,旋转一周,则需要200个脉冲,在半步方式下,步进电机每接收一个脉冲,旋转0.9度,旋转一周,则需要400个脉冲。控制步进电机旋转必须按一定时序对步进电机引线输入脉冲,以上述四相六线制步进电机为例,其半步工作方式和整步工作方式的控制时序如表1和表2所列。 步进电机在低频工作时,会有振动大、噪声大的缺点。如果使用细分方式,就能很好的解决这个问题,步进电机的细分控制,从本质上讲是通过对步进电机励磁绕组中电流的控制,使步进电机内部的合成磁场为均匀的圆形旋转磁场,从而实现步进电机步距角的细分,一般情况下,合成磁场矢量的幅值决定了步进电机旋转力矩的大小,相邻两合成磁场矢量之间的夹角大小决定了步距角的大小

5、,步进电机半步工作方式就蕴涵了细分的工作原理。(1)四相反应式步进电机的工作方式 1)单四拍工作方式 四相反应式步进电机各相位A、B、C、D。如果换相方式为ABCDA,测试电流切换四次,即将相四次时,磁场就会旋转一周,同时转子转动一个锯齿。所谓“单”是指每次对单相通电;“四拍”是指切换相四次磁场旋转一周,转子转动一个锯齿。 2)双四拍工作方式 在步进电机的不仅控制中,如果每次都是两相通电,控制电流切换四次,磁场旋转一周,转子移动一个锯齿位置,则称为双四拍工作方式,在双四拍工作方式中,每拍通电的相磁极和转换情况如为:ABBCCDAB 3)八拍工作方式 对四相反应步进电机进行控制时,控制电流切换四

6、次,磁场旋转一周,在步进电机的步进控制中,如果每次都是两相通电,控制电流切换四次,磁场旋转一周,转子移动一个锯齿位置,则称为双四拍工作方式。在双四拍工作方式中,每拍通电的相磁极和转换情况为:AABBBCCCDDDAA (2)步进电机细分驱动的工作原理 步进电机细分驱动的工作原理是通过对电机励磁绕组电流进行控制(这里绕组电流是呈阶梯波,电流分成多少个台阶)。使步进电机定子的合成磁场成为按细分步距旋转的磁场,从而带动转子转动实现的。当两相邻绕组同时通过不同大小的电流时,各相产生的转距之和为零的位置为新的平衡位置,所以通过控制各相的电流可以实现细分控制,要使电机按等步距转动,电流合成必须符合两个条件

7、: 1)电流合成矢量旋转时每次变化的角度要均匀 2)电流合成矢量的大小或幅值要保持不变。 如图4.26所示的是四相步进电机4细分驱动的原理,设A相通是磁场方向为零度,如果以A相或B相单独通电时产生的磁场大小为半径(设半径为R)画圆,即可算出位置1时的两分量,A1=Rsina1,B1=Rcosa1,同理可以算出A2=Rsina2,B2=Rcosa;A3=singa3,B3=Rcosa3,一次可以算出各相在某一时刻的电流值,把各细分的电流参数记录下来,电机运行时以查表方式取出数据,即可做到细分控制。如图4.27所示为四相双四拍4细分各绕组电流波形图,由图中也可以看出一般总有两相绕组通电,一相逐渐增

8、大,一相逐渐减小。对应一个步距角,电流可以分为N个台阶,也就是电机位置可以细分为N个小角度,实现N细分,从而可以驱动步进电机平滑运行。本实验是用PWM信号来控制电机的,电机各相电流的大小取决于PMW信号的占空比,所以可通过调节PWM信号的占空比来控制电机的电流。图4.26 步进电机细分驱动原理 图4.27 四相双四拍4细分各绕组电流波形图四. 实验步骤 1)启动Quartus2建立一个空白工程,然后命名为step_moto.qpf。 2)新建VarilogHDL源程序文件step_moto.v,写出程序代码并保存3) 选择目标器件并对相应的引脚进行锁定,在这里所选择的器件为Altera公司 C

9、yclone2系列的EP2C35F672C8芯片,引脚锁定方法如表4.9所列。将未使用的引脚设置为三态输入(一定要设置,否则可能会损坏芯片)。设置方法见3.1节。 表4.9 引脚锁定方法4)对该工程文件进行编译处理,若在编译过程中发现错误,则找出并更正,直至编译成功为止。 5)确保跳线短接帽跳接到JP5(步进电机源)的ON端口,把程序下载到FPGA器件中。按KEY1-KEY2,观察步进电机的运行状态五. 实验参考程序 程序清单4.9 步进电机控制模块 module step_moto(clock,key,led,pwm_out);input clock; /系统输入时钟input1:0 key

10、; /按键输入output1:0led; /LED指示输出output3:0 pwm_out; /PWM输出reg3:0 pwm_out_r; reg3:0 p_out_r; reg 23:0 count; /时钟分频计数器 reg 3:0 pwm_count; /PWM内部计数器reg3:0cnt4; /电机步进时序计数器reg15:0duty_cycle; /PWM占空比控制reg dir; /电机旋转方向控制reg mode; /电机控制模式reg1:0dout1,dout2,dout3,buff; /消抖寄存器 wire1:0key_edge; /按键消抖输出wire pwm_clk;

11、 /PWM计数时钟wire speed_clk; /电机转动速度控制wire div_clk; /消抖动时钟/时钟分频部分always (posedge clock) begin count = count + 1b1; /时钟分频计数器加一endassign pwm_clk = (count6:0 = 7h7f); /PWM进行7分频(2.5us)assign div_clk = (count15:0 = 16hffff); /消抖动时钟16分频(1.3ms)assign speed_clk = (count = 24hffffff); /转速控制24分频(335ms)/按键消抖部分alwa

12、ys (posedge clock)begin if(div_clk) begin dout1 = key; /非阻塞,并行执行 dout2 = dout1; dout3 = dout2; end end/按键边沿检测部分always (posedge clock)begin buff = dout1 | dout2 | dout3;endassign key_edge = (dout1 | dout2 | dout3) & buff;/按键操作部分always (posedge clock) /按键1,控制电机正反转begin if(key_edge0) dir = dir; endalwa

13、ys (posedge clock) /按键2,控制电机正常运转/细分运行begin if(key_edge1) mode = mode;endassign led = mode,dir; /输出LED指示assign pwm_out = mode ? pwm_out_r : p_out_r;/输出模块选择(细分/正常)always (posedge clock) /电机正/反转控制begin if(speed_clk) begin if(dir = 1b1) /按键1未按下,计数器加1,电机正转 cnt4 = cnt4 + 1b1; else /按键1按下,计数器减1,电机反转cnt4 =

14、cnt4 - 1b1; endendalways (posedge clock) /PWM波计数器 begin if(pwm_clk) pwm_count = pwm_count + 1b1; /PWM内部计数器加1endalways (posedge clock) /PWM A通道begin if (pwm_count3:0 duty_cycle15:12) /PWM内部计数器小于占空比的高4位的值 pwm_out_r3 = 1b1; else pwm_out_r3 = 1b0;endalways (posedge clock) /PWM B通道begin if (pwm_count3:0

15、duty_cycle11:8) /PWM内部计数器小于占空比的811位的值 pwm_out_r2 = 1b1; else pwm_out_r2 = 1b0;endalways (posedge clock) /PWM C通道begin if (pwm_count3:0 duty_cycle7:4) /PWM内部计数器小于占空比的47位的值 pwm_out_r1 = 1b1; else pwm_out_r1 = 1b0;endalways (posedge clock) /PWM D通道begin if (pwm_count3:0 duty_cycle3:0) /PWM内部计数器小于占空比的低4

16、位的值 pwm_out_r0 = 1b1; else pwm_out_r0 = 1b0;endalways (posedge clock) /步进电机控制时序begin if(speed_clk) begin case(cnt41:0) 2b00:p_out_r = 4b1100; 2b01:p_out_r = 4b0110; 2b10:p_out_r = 4b0011; 2b11:p_out_r = 4b1001; endcase endendalways (cnt4) /步进电机4细分控制PWM波参数表 begin case(cnt4) 4h0:duty_cycle = 16hf000;

17、4h1:duty_cycle = 16he600; 4h2:duty_cycle = 16hbb00; 4h3:duty_cycle = 16h6e00; 4h4:duty_cycle = 16h0f00; 4h5:duty_cycle = 16h0e60; 4h6:duty_cycle = 16h0bb0; 4h7:duty_cycle = 16h06e0; 4h8:duty_cycle = 16h00f0; 4h9:duty_cycle = 16h00e6; 4ha:duty_cycle = 16h00bb; 4hb:duty_cycle = 16h006e; 4hc:duty_cycle = 16h000f; 4hd:duty_cycle = 16h600e; 4he:duty_cycle = 16hb00b; 4hf:duty_cycle = 16he006; endcaseendendmodule六程序流程图六实验结果1).下载测试仿真KEYI按下时控制步进电机正/反同时LED1变亮;KEY2按下时电机进行正常运转/细分运行同时由LED2指示状态实验结果和实验预期一致,试验成功

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2