版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、. . . . - 1 - / 22科技大学科技大学课课 程程 设设 计计 说说 明明 书书课程名称课程名称 EDA 技术 题题 目目 步进电机控制 学学 院院 车辆与动力工程学院 班班 级级 学生学生 指导教师指导教师 日日 期期 EDAEDA 技术课程设计任务书技术课程设计任务书班级:学号:设计题目:步进电机控制一、一、设计目的设计目的. . . . - 2 - / 22进一步巩固理论知识,培养所学理论知识在实际中的应用能力;掌握 EDA 设计的一般方法;熟悉一种 EDA 软件,掌握一般 EDA 系统的调试方法;利用 EDA 软件设计一个电子技术综合问题,培养 VHDL 编程、书写技术报告
2、的能力。为以后进行工程实际问题的研究打下设计基础。二、二、设计任务设计任务(1)控制步进电机的启动和停止;(2)控制步进电机的正转和反转;(3)电机速度可调并显示转速;三、设计要求三、设计要求(1)通过对相应文献的收集、分析以与总结,给出相应课题的背景、意义与现状研究分析。(2)通过课题设计,掌握计算机组成原理的分析方法和设计方法。(3)学习按要求编写课程设计报告书,能正确阐述设计和实验结果。(4)学生应抱着严谨认真的态度积极投入到课程设计过程中,认真查阅相应文献以与实现,给出个人分析、设计以与实现。四、设计时间安排四、设计时间安排查找相关资料(1 天)、设计并绘制系统原理图(2 天)、编写
3、VHDL 程序(2 天)、调试(2 天)、编写设计报告(2 天)和答辩(1 天)。1.江国强编著. EDA 技术与实用(第三版). :电子工业,2011.2 .昕燕,周凤臣.EDA 技术实验与课程设计.:清华大学,2006.53.阎石主编.数字电子技术基础.:高等教育,2003.4.Mark Zwolinski. Digital System Design with VHDL.:电子工业,20085.Alan B. Marcovitz Introduction to logic Design.:电子工业,2003指导教师签字:年月日步进电机控制摘要随着电子技术的发展,现场可编程门阵列 FPGA
4、 和复杂可编程逻辑器件. . . . - 3 - / 22CPLD 的出现,使得电子系统的设计者利用与器件相应的电子设计软件,在实验室里就可以设计自己的专用集成电路 ASIC 器件。其中电子设计自动化(EDA)的关键技术之一就是可以用硬件描述语言(HDL)来描述硬件电路。VHDL 是用来描述从抽象到具体级别硬件的工业标准语言,它是由美国国防部在 80 年代开发的 HDL,现在已成为 IEEE 承认的标准硬件描述语言。VHDL 支持硬件的设计、验证、综合和测试,以与硬件设计数据的交换、维护、修改和硬件的实现,具有描述能力强、生命周期长、支持大规模设计的分解和已有设计的再利用等优点。利用 VHDL
5、 这些优点和先进的 EDA 工具,根据具体的实际要求,将设计一个步进电机控制器电路。步进电机是一种将电脉冲转化为角位移的执行机构。也就是当步进驱动器接收到一个脉冲信号时,它就驱动步进电机按设定的方向转动一个固定的角度,它的旋转是以固定的角度一步一步运行的。现场可编程门阵列(FPGA)是对步进电机实现一体化控制的理想选择。目前,步进电机在控制系统中的应用越来越广泛,由此凸现了步进电机控制的重要性。本文简单介绍了步进电机的原理和特点,并根据步进电机的特性设计了基于 FPGA 的控制电路:以 PWM 变频来控制步进电机的转速。关键字:步进电机 电机控制 EDA 技术 目录目录第一章绪论- 4 -1.
6、1 步进电机简介- 4 -. . . . - 4 - / 221.2 步进电机控制- 4 -1.2.1.步进电机的起动:- 4 -1.2.2.步进电机的换向:- 5 -1.2.3.步进电机的转速控制:- 6 -第二章总体设计- 6 -2.1 步进电机驱动电路:- 6 -2.2 控制模块的设计:- 6 -2.3 程序流程图:- 7 -2.4 步进电机控制模块的设计:- 8 -第三章系统程序与仿真- 9 -3.1 总体设计电路- 9 -3.2 程序与仿真波形- 9 -第四章设计结论- 20 -第五章参考文献:- 20 -第一章 绪论1.1 步进电机简介步进电机是将电脉冲信号转变为角位移或线位移的开
7、环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这. . . . - 5 - / 22一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。不过步进电机在控制的精度、速度变化围、低速性能方面都不如传统的闭环控制的直流伺服电动机,在精度不是需要特别高的场合就可以使用步进电机.1.2 步进电机控制步进电机能够直接将数字脉冲信号转化成为角位移,不需要A/D 转换,所以被认为是理想的数控执行元件。1.2.1.步进电机的起动:步进电
8、动机的最高起动频率(空载起动频率)一般为0.1KHz到3-4KHz,而最高运行频率则可以达到6KHz。以超过最高起动频率的频率直接起动,将出现失步现象,甚至无法起动。因此驱动步进电机时,应当先计算出电机不失步起动的最大频率,但其计算过程涉与参量复杂,鉴于我们对其具体理论了解有限,故不能精确计算出空载起动频率,实际应用对起动段的处理是采用按直线拟合的方法,即阶梯升速法。可按两种情 图1.2.1 阶梯升速起动况处理,已知突跳频率则按突跳频率分段起动,分段数n=f/fq。未知突跳频率,则按段拟合至给定的起动频率,每段频率的递增量(后称阶梯频率)f=f/8,即采用8段拟合。在运行控制过程中,将起始的速
9、度(频率)分为n分作为阶梯频率,采用阶梯升速法将速度连续升到所需要的速度,然后锁定,按预置的曲线运行。如图所示。速度从V1V2如果是线性增加,则按给定的斜率升/降速;如果是突变,则按阶梯升速法处理。在此过程中要处理好两个问题: 速度转换时间应尽量短;为了缩短速度转换的时间,可以采用建立数据表的方法,结合各曲线段的频率和各段间的阶梯频率便可以建立一个连续的数据表,并通过转换程序将其转换为脉冲速率。通过在不同的阶段调用相应的脉冲速率,控制电机的运行。保证控制速度的精确性;要从一个速度准确达到另外一个速度,就要建. . . . - 6 - / 22立一个校验机制,以防超过或未达到所需速度。1.2.2
10、.步进电机的换向:步进电机通电换相这一过程称为脉冲分配。例如:四相步进电机的八拍工作方式,其各相通电顺序为A-AB-B-BC-C-CD-D-DA-A,通电控制脉冲必须严格按照这一顺序分别控制A、B、C、D相的通断。如果按给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。步进电机换向时,一定要在电机降速停止或降到突跳频率围之再换向,以免产生较大的冲击而损坏电机。换向信号一定要在前一个方向的最后一个CP脉冲结束后以与下一个方向的第一个CP脉冲前发出。如图所示。对于CP脉冲的设计主要要求其有一定的脉冲宽度(一般不小于5s)、脉冲序列的均匀度与高低电平方式.图1.2.2 换向信
11、号起作用的时刻1.2.3.步进电机的转速控制:步进电机的加/减速控制,实际上就是控制触发脉冲的频率,两个脉冲的间隔长短,决定了步进电机的转速。升速时,使脉冲频率增高,减速时,使脉冲频率降低。调整触发脉冲频率,就可以对步进电机进行调速。第二章 总体设计2.1 步进电机驱动电路:步进电机的驱动电路如图所示,其驱动电路原理很简单。从 FPGA 出来的脉冲信图2.1 步进电机驱动电路号从 J1 接入按一定的顺序分别接到晶体管 Q7Q10 的基极,输出端则有四. . . . - 7 - / 22个相应的信号输出,并接到电机的 1、4、3、6 脚(注意:电机引出了六根线,只有 1、4、3、6 才是真正接电
12、机的四相输入,且分别接电机的 A、B、C、D 相) 。设脉冲信号 Step1 的输入信号是低电平,则输出就为高电平,相应的电机 A 相导通;反之,则 A 相不导通。以此类推,其余各相亦是如此。则电机在脉冲序列信号的作用下按预定方向转动,通过改变脉冲序列信号的快慢即频率来控制步进电机转速。2.2 控制模块的设计:总控制模块用VHDL语言对FPGA编程实现。总控制模块其实质是一个按键控制程序,共有reset复位键、add累加键、sub递减键、start/stop启动/停止键、shift电机正反转控制键五个按键。系统启动时,首先运行系统初始化程序,程序先转到步进电机控制模块,送复位信号使步进电机处于
13、初始状态。其间主控程序不断检测按键,只要有键被按下则启动相应的子模块实现实时控制。具体程序代码见附录程序清单。2.3 程序流程图:控制模块的程序流程图如图所示。. . . . - 8 - / 22开开始始系系统统初初始始化化检检测测按按键键是是否否按按键键?判判断断按按键键步步进进电电机机调调整整按按键键步步进进进进程程?步步进进电电机机控控制制进进程程步步进进电电机机驱驱动动电电路路步步进进电电机机步步进进电电机机转转换换按按键键显显示示模模块块步步进进电电机机转转速速Y YY YY YN NN N图2.3 控制模块程序流程图2.4 步进电机控制模块的设计:步进电机控制模块其程序设计共分按键
14、去抖、变频、测频、步进、换向五. . . . - 9 - / 22个部分。模块一接收到按键信号,则按键去抖部分先对按键信号进行处理,得到稳定的控制信号;如果是变频信号则变频部分动作,通过相位累加模型,改变步进电机脉冲频率,并送给步进部分;如果是换向信号,则换向部分动作,为了使电机降速停止或降到突跳频率围之再换向,先停送驱动脉冲一秒,再送反向脉冲给步进部分,驱动电机换向;步进部分则是按照送来的脉冲频率和步进顺序信号驱动电机按预定的转速和转向转动;测频部分通过测定所送脉冲频率,再利用四相电机八拍运行时步距角为=360度/(50*8)=0.9度的尺度则可以计算出步进电机的每分钟转速数据,再送给显示模
15、块显示。第三章 系统程序与仿真3.1 总体设计电路图 3.1 总体设计电路接线图3.2 程序、程序块与仿真波形-/*ZTSD.VHD*/-换向模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ztsd IS PORT (clk,key,rst:in STD_LOGIC; -系统时钟/换向按键/复位信号 y:out STD_LOGIC ; -输出sel:out STD_LOGIC);END ztsd;. . . . - 10
16、- / 22ARCHITECTURE Behavioral OF ztsd ISSIGNAL sel1:STD_LOGIC;BEGINPROCESS(key,clk,rst) -产生换向延时秒脉冲VARIABLEt:integer range 0 to 32000000;BEGINIF rst=0 THENt:=0;ELSIF key=1 THENt:=0;ELSE IF rising_edge(clk) THENIFt32000000 THENt:=cnt+1;y=0;ELSEt:=32000000;y=1;END IF;END IF;END IF;END PROCESS;PROCESS(k
17、ey,sel1,rst)BEGINIF rst=0 THEN sel1=1;ELSIF rising_edge(key) THEN sel1=not sel1;END IF;sel=7 THEN clkk=not clkk;cnt:=0;ELSEt:=cnt+1;END IF;END IF;END PROCESS;clkkk=clkk;PROCESS(clkk,sel,rst) -控制脉冲产生模块VARIABLE index:integer range 0 to 7:=0;VARIABLE eight_step:step;BEGINeight_step(0):= 0001; eight_ste
18、p(1):= 0011;eight_step(2):= 0010; eight_step(3):= 0110;eight_step(4):= 0100; eight_step(5):= 1100;eight_step(6):= 1000; eight_step(7):= 1001;IF rst=0 THEN index:=0; ELSIF rising_edge(clkk) THEN IF sel=1 THENIF index=1 THENindex:=index-1;ELSE index:=7;END IF;END IF;control0);SIGNAL clkkk:STD_LOGIC;SI
19、GNAL clkk:STD_LOGIC:=0;SIGNAL data_ledin:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINcepin:block-测频模块BEGINPROCESS(clk,rst)VARIABLEt:integer range 1 to 32000000;BEGINIF rst=0 THENt:=1;ELSIF rising_edge(clk) THEN IFt=32000000 THEN clkk0);VARIABLEt1:integer range 0 to 399;BEGINIF rst=0 THENt:=(others=0);cnt1:=0;
20、ELSIF rising_edge(clk1) THENIF clkk=1 THENIFt1399 THENt1:=cnt1+1;ELSEt1:=0; IFt(3 DOWNTO 0)9 THENcnt(3 DOWNTO 0):=cnt(3 DOWNTO 0)+1;ELSEt(3 DOWNTO 0):=0000;IFt(7 DOWNTO 4)9 THEN cnt(7 DOWNTO 4):=cnt(7 DOWNTO 4)+1;ELSEt(7 DOWNTO 4):=0000;IFt(11 DOWNTO 8)9 THEN cnt(11 DOWNTO 8):=cnt(11 DOWNTO 8)+1;ELS
21、Et(11 DOWNTO 8):=0000;IFt(15 DOWNTO 12)0) ;END IF;END IF;count=cnt;END PROCESS;END block;PROCESS(clkk)BEGINIF clkkEVENT AND clkk=0 THEN d2=count;. . . . - 14 - / 22END IF;END PROCESS;PROCESS(clk,rst)VARIABLEt:integer range 0 to 79999:=0;BEGINIF rst=0 THENt:=0;ELSIF rising_edge(clk) THEN IFt=79999 TH
22、EN clkkk=not clkkk;cnt:=0;ELSEt:=cnt+1;END IF;END IF;END PROCESS;disp:block -转速显示模块BEGINPROCESS(clkkk,d2,rst)VARIABLEt:STD_LOGIC_VECTOR(1 DOWNTO 0):=00;BEGINIF rst=0 THENt:=00;shift=1111;data_ledinshift=1110; data_ledinshift=1101; data_ledinshift=1011; data_ledinshift=0111; data_ledinshiftdata_ledda
23、ta_leddata_leddata_leddata_leddata_leddata_leddata_leddata_leddata_leddata_led=11111111;-No SIGNAL; END case;END PROCESS;END block;END Behavioral;图 3.2.5图 3.2.6-/*BIANPIN.VHD*/-变频模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY bianpin IS
24、 PORT (rst,clk,sub,add:in STD_LOGIC; -复位信号/系统时钟/减速输入/加速输入. . . . - 16 - / 22 count:out STD_LOGIC ); -已变频率输出END bianpin;ARCHITECTURE Behavioral OF bianpin ISSIGNAL con:integer range 1 to 100:=50;SIGNAL clkk:STD_LOGIC:=0;SIGNALt1:integer range 0 to 1100;BEGINPROCESS(clkk,add,sub,rst) -加减键处理模块VARIABLE
25、con1:integer range 1 to 100:=50;BEGINIF rst=0 THEN con1:=1;ELSIF clkkEVENT AND clkk=1 THEN IF add=0 THEN IF con1=2 THEN con1:=con1-1;END IF;END IF;END IF;con=1499999THEN clkk=not clkk;cnt:=0;ELSEt:=cnt+1;END IF;END IF;END PROCESS;PROCESS(clk,con,cnt1,rst)-变频模块BEGINIF rst=0 THENt1=1000 THENt1=0;count
26、=0; ELSIFt1=con THEN count=1;cnt1=cnt1+con;. . . . - 17 - / 22 ELSE count=0;cnt1=2 THENt:=1; clkk=1;ELSEt:=cnt+1;clkk=0;END IF;. . . . - 18 - / 22END IF;END PROCESS;debunce:blockSIGNAL d0,d1,s,r:STD_LOGIC;BEGINPROCESS(clk)BEGINIF clkEVENT AND clk=1 THEN IF clkk=1 THEN d1=d0;d0=key;s=d0 and d1;r=not
27、d0 and not d1;END IF;END IF;END PROCESS;dly=r nor ndly;ndly=s nor dly;END block;differetial:blockSIGNAL d1,d0:STD_LOGIC;BEGINPROCESS(clk)BEGINIF clkEVENT AND clk=1 THEN d1=d0;d0=dly;END IF;END PROCESS;diff=d0 and not d1;END block;keyoclk,key=sel,keyo=sel1);u2:bianpinPORTMAP(clk=clk,sub=sub,add=add,count=count1,rst=rst);u3:step_motorPORTMAP(clk=count1,sel=sel2,clkkk=y2,control=step1,rst=rst);u4:ztsd PORT MAP (clk=clk,key=sel1,y=y1,sel=sel2,rst=rst);u5:cepinPORTMAP(clk=clk,clk1=y2,shift=shift,data_led=data_led,rst=rst);u6:anjianqd PORT M
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年广西建设职业技术学院单招职业技能测试题库参考答案详解
- 2026年山东城市建设职业学院单招职业技能测试题库及参考答案详解
- 2026年安徽职业技术学院单招职业倾向性考试题库带答案详解
- 2026年河南工业职业技术学院单招职业倾向性测试题库及答案详解1套
- 2026年浙江师范大学行知学院单招职业倾向性考试题库及参考答案详解1套
- 2026年郑州卫生健康职业学院单招职业适应性测试题库及答案详解1套
- 2026年郑州电子信息职业技术学院单招职业适应性考试题库附答案详解
- 2026年皖西卫生职业学院单招职业技能测试题库及参考答案详解一套
- 2026年成都航空职业技术学院单招职业技能考试题库及答案详解一套
- 2026年陕西国防工业职业技术学院单招职业倾向性考试题库及参考答案详解一套
- DB33∕T 2320-2021 工业集聚区社区化管理和服务规范
- 英文科技论文写作与学术报告慕课答案云堂在线
- 学堂在线 雨课堂 学堂云 人工智能原理 章节测试答案
- qPCR实时荧光定量PCR课件
- 企业数字化转型发言稿
- GB/T 3089-2020不锈钢极薄壁无缝钢管
- GB/T 2878.2-2011液压传动连接带米制螺纹和O形圈密封的油口和螺柱端第2部分:重型螺柱端(S系列)
- GB/T 23331-2020能源管理体系要求及使用指南
- GB/T 21238-2016玻璃纤维增强塑料夹砂管
- 化学品安全技术说明书氩气MSDS
- 斯坦福手术室应急手册中文版
评论
0/150
提交评论