《2022年步进电机定位控制系统方案 .pdf》由会员分享,可在线阅读,更多相关《2022年步进电机定位控制系统方案 .pdf(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、个人资料整理仅限学习使用学生学号课程设计题目步进电机定位控制系统设计学 院信息工程学院专业班级姓名指导老师20182018 学年6 月20日精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 17 页个人资料整理仅限学习使用课程设计任务书学生姓名:专业班级:指导教师:工作单位:题目:步进电机定位控制系统设计初始条件:1. 具备电子电路的基础知识及查阅资料和手册的能力;2. 熟悉 ISE 仿真软件的操作与运用;3. 掌握步进电机的工作原理。要求完成的主要任务 : 1. 设计一个基于FPGA 的 4 相步进电机定位控制系统,包括步进电机方向设定
2、电路模块、步进电机步进移动与定位控制模块和编码输出模块。2.撰写符合学校要求的课程设计说明书。时间安排:1、2018 年 06 月 11 日,布置课设具体实施计划与课程设计报告格式的要求说明。2、2018 年 06月 12日 至 2018年 06 月 17日,设计说明书撰写。3、2018年 06月 18日,上交课程设计成果及报告,同时进行答辩。指导教师签名:年 月 日系主任 或责任教师)签名:年 月 日精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 17 页个人资料整理仅限学习使用目录摘要. IIAbstract . II1 设计目标及
3、简介 . 111.1设计目标 . 111.2 步进电机简介 . 112 VHDL 语言介绍 . 113 Quartus 介绍 . 114 系统组成 . 224.1 四相步进电机工作原理 . 224.2 系统组成 . 445 模块设计 . 445.1 FPGA模块图及信号说明 . 445.2 系统模块构成 . 555.3 各模块间整体共享的电路内部传递信号. 555.4 电机方向设定电路模块 . 555.5 步进电机步进移动与定位控制模块. 665.6 编码输出模块 . 776 程序设计与仿真 . 777 仿真结果 . 10108 实验总结 . 1212参考文献 . 1212精选学习资料 - -
4、 - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 17 页个人资料整理仅限学习使用摘要在分析了步进电机工作原理的基础上,提出了步进电机定位控制系统的模块划分和实现方法。以步进电机四相四拍工作方式为例,用Verilog 编程在Altera 公司的 FPGA 开发系统中实现了各功能模块和显示程序。在系统仿真的基础上,进行了功能模块的控制实验,实验结果和仿真一致,实现了对步进电机模组的预定控制。关键词:步进电机定位控制 Verilog 硬件描述语言 FPGA Abstract On the basis of analysing stepping motor s o
5、perational principle , we put forward modules division and realizing method of positioning control system which using stepping motor.Giving an example such as stepping motors which work in Four-phase-four-step mode , we use Verilog programming realized every foundational module and display routine i
6、n Altera s FPGA development system.On the basis of system simulation , we conduct a controlling experiment about foundational modules,the results are the same as simulation s results.We carried out the expected control about stepping motor.Keyword:stepping motor positioning control VHDL FPGA精选学习资料 -
7、 - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 17 页个人资料整理仅限学习使用1 设计目标及简介1.1 设计目标设计一个基于 FPGA 的 4 相步进电机定位控制系统。1.2 步进电机简介步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。2 VHDL 语言介绍VHDL的 英 文 全
8、 名 是Very-High-Speed Integrated Circuit Hardware Description Language ,诞生于 1982年。1987 年底, VHDL 被 IEEE 和美国国防部确认为标准硬件描述语言。VHDL 主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL 的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL 的程序结构特点是将一项工程设计,或称设计实体可以是一个元件,一个电路模块或一个系统)分成外部或称可视部分,及端口)和内部 或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体
9、定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL 系统设计的基本点。VHDL 语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来,VHDL 语言主要具有功能强大,设计方式多样;硬件描述能力强大;具有很强的移植能力;设计描述与器件无关程序易于共享和复用等优点。3 Quartus 介绍Quartus II 是 Altera 公司的综合性PLD/FPGA 开发软件,支持原理图、VHDL 、VerilogHDL 以及 AHDLAltera Hardware Description
10、 Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整 PLD 设计流程。Quartus II 可以在 XP、Linux 以及 Unix 上使用,除了可以使用Tcl 脚本完精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 17 页个人资料整理仅限学习使用成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II 提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHD
11、L 、AHDL 和VHDL 完成电路描述,并将其保存为设计实体文件;芯片, 00:自动检测角度输入,决定激磁方式 01:1-相激磁。 10:2.相激磁。 11:1-2.相激磁 . angle:步进角的倍数设定输入键 . baba: 将内部计数器的 count3 downto 0的数值编码输出5.2 系统模块构成系统主要由步进电机方向设定电路模块、步进电机步进移动与定位控制模块和编码输出模块构成。前两个模块完成电机旋转方向设定,激磁方式设定和定位角度的换算等工作,后一个模块用于对换算后的角度量编码输出。5.3 各模块间整体共享的电路内部传递信号count:内部电路计数累加器,用来产生输出所需对应
12、的状态;cntinc:设定累加器所需的累加 /减计数值;sntini:设定累加器所需的计数初值;angledncount :设定步进角所需处理的次数;Angledncntdec:设定步进角所需累减计数值;5.4 电机方向设定电路模块该模块设定了步进电机的旋转方向以及电机在任一方向上所需的初值与累加/减值。dir 为 0时,步进电机工作于逆时针旋转模式,累加值为正数。manner 选择激磁方式 00、01、10、11 分别对应默认激磁方式、 1-相激磁方式、2.相激磁方式和 1-2.相激磁方式。如表5.1。manner cntini cntinc angledncntdec 00 angle=2
13、n+1时 1 angle=2n 时 0 2 2 01 0 2 2 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 17 页个人资料整理仅限学习使用表 5.1 dir 为 0 时dir 为 1时,步进电机工作于顺时针旋转模式,累加值为负数。manner 选择激磁方式00、01、10、11 分别对应默认激磁方式、1-相激磁方式、 2.相激磁方式和 1-2.相激磁方式。如表5.2。manner cntini cntinc angledncntdec 00 angle=2n+1时 1 angle=2n 时 0 -2 2 01 0 -2 2 10
14、 -1 -2 2 11 0 -1 1 表 5.2 dir 为 1 时5.5 步进电机步进移动与定位控制模块该模块的主要功能是利用赋初值ini 将数值传到该模块中并配合输入的clk作为同步控制信号,进行步进电机的步进移动与定位控制。步进电机定位功能通过一个减法器实现:在每个clk 脉冲上升缘,设定步进角倍数angledncount 减去不同激磁方式下设定的累减记数值angledncntdec ,判断差值小于设定的累减记数时,步进电机旋转到预定角度停止输出驱动端口信号,实现步进电机的定位功能。驱动端口信号利用累加器实现。10 -1 2 2 11 0 1 1 精选学习资料 - - - - - - -
15、 - - 名师归纳总结 - - - - - - -第 10 页,共 17 页个人资料整理仅限学习使用5.6 编码输出模块该模块的功能是将count 与 angledncount 产生的数值经过编码,并通过baba3downto0输出到步进电机。6 程序设计与仿真library IEEE。use IEEE.std_logic_1164.all 。use IEEE.std_logic_arith.all。use IEEE.std_logic_unsigned.all 。entity step_motor is port (reset:in STD_LOGIC。 -系统复位信号 dir: in ST
16、D_LOGIC 。 -方向控制信号 clk: in STD_LOGIC 。 -系统时钟信号 ini: in STD_LOGIC 。 -初始化使能信号 manner: in STD_LOGIC_VECTOR (1 downto 0。 -激磁方式的选择开关 angle: in INTEGER range 255 downto 0 。 -步进角的倍数设定输入 baBA: out STD_LOGIC_VECTOR (3 downto 0 。 -步进电机状态输出end step_motor 。architecture stepmotor_arch of step_motor is signal coun
17、t: INTEGER range 0 to 7 。 -计数器signal cntInc: INTEGER range -2 to 2 。 -设定累加器所需的累 -, ini begin -if ini=1 then 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 17 页个人资料整理仅限学习使用 cc 。 if dir=0 then case cc is when 1 = - 1- -count=0。 cntIni=0。 cntInc=2。 angleDnCntDec - 2- -count=7。 cntIni=-1。 cntInc=
18、2。 angleDnCntDec - 1-2 -count=0。 cntIni=0。 cntInc=1。 angleDnCntDec -manner=00 autodetect if (angle rem 2 =1 then - 2- -count=7。 cntIni=-1。 cntInc=2。 angleDnCntDec=2 。-10。 else - 1- -count=0。 cntIni=0。 cntInc=2。 angleDnCntDec - 1- -count=0。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 17 页个人资
19、料整理仅限学习使用 cntIni=0。 cntInc=-2。 angleDnCntDec - 2- -count=7。 cntIni=-1。 cntInc=-2。 angleDnCntDec - 1-2 -count=0。 cntIni=0。 cntInc=-1。 angleDnCntDec -manner=00 autodetect if (angle rem 2 = 1 then - 2- cntIni=-1。 cntInc=-2。 angleDnCntDec=2 。-10。 else - 1- cntIni=0。 cntInc=-2。 angleDnCntDec begin if res
20、et=1 then count=0。 angleDnCount=0 。 elsif clkevent and clk=1 then if ini=0 then 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 17 页个人资料整理仅限学习使用 count=0+cntIni。 angleDnCount=angle 。 else count angleDnCntDec then angleDnCount = angleDnCount-angleDnCntDec 。 else angleDnCount = 0 。 end if。 end if
21、。 end if。 end process 。 baBA =7。end stepmotor_arch 。7 仿真结果精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 17 页个人资料整理仅限学习使用图 7.1 编译结果图 7.2 时序仿真部分结果精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 17 页个人资料整理仅限学习使用图 7.3 时序仿真结果8 实验总结本文所设计的步进电机控制系统实现简单,编程容易,所设计系统实现了对电机模组的预定控制,较好的完成了设计要求。采用Veri
22、log 和 FPGA 设计,能够缩短设计周期,并使设计易于调试、实现。在系统需升级时,仅需对FPGA 模块再设计,成本较低。从仿真结果来看,利用FPGA 芯片严谨的基于硬件的编程语言和精确的时间控制特点,准确地实现了精确定位功能,并利用直接频率合成理论中的相位累加器的原理同时实现了对步进电机的运行速度的精确控制。实践证明,这种方法定位准确,控制速度精确,是一种行之有效的方案。参考文献1 通信原理樊昌信张甫翊徐炳祥吴成柯著国防工业出版社 2009.1 2 EDA 技术使用教程 VHDL 版潘松黄继业编著科学出版社 2018.6 精选学习资料 - - - - - - - - - 名师归纳总结 -
23、- - - - - -第 16 页,共 17 页个人资料整理仅限学习使用本科生课程设计成绩评定表姓名性别专业、班级课程设计题目:步进电机定位控制系统设计课程设计答辩或质疑记录:1、步进电机的拍数是指什么?答:拍数指完成一个磁场周期性变化所需脉冲数或导电状态用n 表示,或指电机转过一个齿距角所需脉冲数。以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB ,四相八拍运行方式即 A-AB-B-BC-C-CD-D-DA-A。2、各个输入信号的作用是什么?答:reset: 系统内部复位信号, 1时有效;dir:步进电机正反转的方向控制开关,0:逆时针, 1:顺时针;clk:由 FPGA 内部提供的 4MHz 的时钟信号;ini:赋初值的使能开关, 0时有效;manner:激磁方式的选择开关(两位 , 00:自动检测角度输入,决定激磁方式01:1-相激磁。 10:2.相激磁。 11:1-2.相激磁 . angle:步进角的倍数设定输入键 . 成绩评定依据:最终评定成绩 以优、良、中、及格、不及格评定)指导教师签字:年月日精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 17 页,共 17 页
限制150内