步进电机的计算机控制系统设计.docx

上传人:b****1 文档编号:1931757 上传时间:2023-05-02 格式:DOCX 页数:17 大小:134.35KB
下载 相关 举报
步进电机的计算机控制系统设计.docx_第1页
第1页 / 共17页
步进电机的计算机控制系统设计.docx_第2页
第2页 / 共17页
步进电机的计算机控制系统设计.docx_第3页
第3页 / 共17页
步进电机的计算机控制系统设计.docx_第4页
第4页 / 共17页
步进电机的计算机控制系统设计.docx_第5页
第5页 / 共17页
步进电机的计算机控制系统设计.docx_第6页
第6页 / 共17页
步进电机的计算机控制系统设计.docx_第7页
第7页 / 共17页
步进电机的计算机控制系统设计.docx_第8页
第8页 / 共17页
步进电机的计算机控制系统设计.docx_第9页
第9页 / 共17页
步进电机的计算机控制系统设计.docx_第10页
第10页 / 共17页
步进电机的计算机控制系统设计.docx_第11页
第11页 / 共17页
步进电机的计算机控制系统设计.docx_第12页
第12页 / 共17页
步进电机的计算机控制系统设计.docx_第13页
第13页 / 共17页
步进电机的计算机控制系统设计.docx_第14页
第14页 / 共17页
步进电机的计算机控制系统设计.docx_第15页
第15页 / 共17页
步进电机的计算机控制系统设计.docx_第16页
第16页 / 共17页
步进电机的计算机控制系统设计.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

步进电机的计算机控制系统设计.docx

《步进电机的计算机控制系统设计.docx》由会员分享,可在线阅读,更多相关《步进电机的计算机控制系统设计.docx(17页珍藏版)》请在冰点文库上搜索。

步进电机的计算机控制系统设计.docx

步进电机的计算机控制系统设计

步进电机的计算机控制系统设计

摘要

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。

这一线性关系的存在,加上步进电机只有周期性的误差而不积累误差登特点。

使得在转速、位置等控制领域用步进电机来控制变得非常的简单。

微电子学的迅速发展和微型计算机的普及和应用,为步进电动机的应用开辟了广阔前景,使得以往用硬件电路构成的庞大复杂的控制器得以用软件实现,既降低了硬件成本有提高了控制的灵活性,可靠性及多功能性。

在当今社会的各个领域步进电机无处不在,应用领域涉及机器人、工业电子自动化设备、医疗器件、广告器材、舞台灯光设备、印刷设备、计算及外部应用设备等等。

1.1步进电机的现状

1.2电机原理及控制技术

1.3步进电机的特点

1.4元器件介绍

1.4.1步进电机

1.4.2四相步进电机的工作原理

1.4.3步进电机的静态指标及术语

1.4.4四相步进电机的脉冲分配规律

第二章硬件设计

2.189C51单片机

2.2方案论证

2.3硬件设计

2.3.1控制电路

2.3.2ULN2803

2.3.3驱动电路

2.3.4显示电路

2.3.5总体电路图

第三章软件设计

3.1主程序设计

3.1.1定时中断设计

3.1.2外部中断设计

参考文献

总结

附录

第一章步进电机

1.1步进电机的现状

步进电动机已成为除直流电动机和交流电动机以外的第三类电动机。

传统电动机作为机电能量转换装置,在人类的生产和生活进入电气化过程中起着关键的作用。

可是在人类社会进入自动化时代的今天,传统电动机的功能已不能满足工厂自动化和办公自动化等各种运动控制系统的要求。

为适应这些要求,发展了一系列新的具备控制功能的电动机系统,其中较有自己特点,且应用十分广泛的一类便是步进电动机。

  步进电动机的发展与计算机工业密切相关。

自从步进电动机在计算机外围设备中取代小型直流电动机以后,使其设备的性能提高,很快地促进了步进电动机的发展。

另一方面,微型计算机和数字控制技术的发展,又将作为数控系统执行部件的步进电动机推广应用到其他领域,如电加工机床、小功率机械加工机床、测量仪器、光学和医疗仪器以及包装机械等。

  任何一种产品成熟的过程,基本上都是规格品种逐步统一和简化的过程。

现在,步进电动机的发展已归结为单段式结构的磁阻式、混合式和爪极结构的永磁式三类。

爪极电机价格便宜,性能指标不高,混合式和磁阻式主要作为高分辨率电动机,由于混合式步进电动机具有控制功率小,运行平稳性较好而逐步处于主导地位。

最典型的产品是二相8极50齿的电动机,步距角1.8°/0.9°(全步/半步);还有五相10极50齿和一些转子100齿的二相和五相步进电动机,五相电动机主要用于运行性能较高的场合。

到目前,工业发达国家的磁阻式步进电动机已极少见。

1.2步进电机原理及控制技术

由于步进电机是一种将电脉冲信号转换成直线或角位移的执行元件,它不能直接接到交直流电源上,而必须使用专业设备。

步进电机制驱动器,典型步进电机控制系统的控制器可以发出脉冲频率从几赫兹到几千赫兹可以连续变化的脉冲信号,它为环形分配器提供脉冲序列,环形分配器的主要功能是把来自控制环节的脉冲序列按一定的规律分配后,经过功率放大器的放大加到步进电机驱动电源的各项输入端,以驱动步进电机的转动,环形分配器主要有两大类:

一类是用计算机软件设计的方法实现环形分配器要求的功能,通常称软环形分配器。

另一类是用硬件构成的环形分配器,通常称硬环形分配器。

功率放大器主要对环形分配器的较小输出信号进行放大,以达到驱动步进电机的目的,步进电机的基本控制包括转向控制和速度控制两个方面。

从结构上看,步进电机分为三相单三拍、三相双三拍和三相六拍3种,其基本原理如下:

(1)换相顺序的控制

通电换相这一过程称为脉冲分配。

例如,三相步进电机在单三拍的工作方式下,其各相通电顺序为A→B→C→A,通电控制脉冲必须严格按照这一顺序分别控制A、B、C相的通断。

三相双三拍的通电顺序为AB→BC→CA→AB,三相六拍的通电顺序为A→AB→B→BC→C→CA→A。

(2)步进电机的换向控制

如果给定工作方式正序换相通电,步进电机正转。

若步进电机的励磁方式为三相六拍,即A→AB→B→BC→C→CA→A。

如果按反序通电换相,A→AC→C→CB→B→BA→A,则电机就反转。

其他方式情况类似。

(3)步进电机的速度控制

如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。

两个脉冲的间隔越短,步进电机就转得越快。

调整送给步进电机的脉冲频率,就可以对步进电机进行调试。

(4)步进电机的起停控制

步进电机由于其电气特性,运转时会有步进感。

为了使电机转动平滑,减小振动,可在步进电机控制脉冲的上升沿和下降沿采用细分的梯形波,可以减小步进电机的步进角,跳过电机运行的平稳性。

在步进电机停转时,为了防止因惯性而使电机轴产生顺滑,则需采用合适的锁定波形,产生锁定磁力矩,锁定步进电机的转轴,使步进电机转轴不能自由转动。

(5)步进电机的加减速控制

在步进电机的控制系统中,通过实验发现,如果信号变化太快,步进电机由于惯性跟不上电信号的变化,这时就会产生堵转和失步现象。

所有步进电机在启动时,必须有加速过程,在停止时波形有减速过程。

理想的加速曲线一般为指数曲线,步进电机整个降速过程频率变化规律是整个加速过程频率变化规律的逆过程。

选定的曲线比较符合步进电机升降过程的运行规律,能充分利用步进电机的有效转矩,快速响应性好,缩短了升降速的时间,并可防止失步和过冲现象。

在一个实际的控制系统中,要根据负载的情况来选择步进电机。

步进电机能响应而不失步的最高步进频率称为“启动频率”,于此类似“停止频率”是指系统控制信号突然关断,步进电机不冲过目标位置的最高步进频率。

电机的启动频率、停止频率和输出转矩都要和负载的转动惯量相适应,有了这些数据,才能有效地对电机进行加减速控制。

加速过程有突然施加的脉冲启动频率f0。

步进电机的最高启动频率(突跳频率)一般为0.1KHz到3~4KHz,而最高运行频率则可以达到N*102KHz,以超过最高启动频率的频率直接启动,会产生堵转和失步的现象。

(6)步进电机的换向控制

步进电机换向时,一定要在电机降速停止或降到突跳频率范围之内在换向,以免产生较大的冲击而损坏电机。

换向信号一定要在前一个方向的最后一个脉冲结束后以及下一个方向的第一个脉冲前发出。

对于脉冲的设计主要要求其有一定的脉冲宽度、脉冲序列的均匀度及高低电平方式。

在某一高速下的正、反向切换实质包含了降速→换向→加速3个过程。

1.3步进电机的特点:

①步进电机的角位移与输入脉冲数严格成正比,因此当它转一转后,没有累计误差,具有良好的跟随性。

②由步进电机与驱动电路组成的开环数控系统,既非常方便、廉价,也非常可靠。

同时,它也可以有角度反馈环节组成高性能的闭环数控系统。

③步进电机的动态响应快,易于启停、正反转及变速。

④速度可在相当宽的范围内平滑调节,低速下仍能保证获得很大的转矩,因此一般可以不用减速器而直接驱动负载。

⑤步进电机只能通过脉冲电源供电才能运行,它不能直接用交流电源或直流电源。

⑥步进电机自身的噪声和振动比较大,带惯性负载的能力强。

1.4元器件介绍

1.4.1步进电机

步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。

步进电机区别于其他控制电机的最大特点是:

它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。

步进电机分三种:

永磁式(PM),反应式(VR)和混合式(HB),步进电机又称为脉冲电机,是工业过程控制和仪表中一种能够快速启动,反转和制动的执行元件。

其功用是将电脉冲转换为相应的角位移或直线位移,由于开环下就能实现精确定位的特点,使其在工业控制领域获得了广泛应用。

步进电机的运转是由电脉冲信号控制的,其角位移量或线位移量与脉冲数成正比,每个一个脉冲,步进电机就转动一个角度(步距角)或前进、倒退一步。

步进电机旋转的角度由输入的电脉冲数确定,所以,也有人称步进电机为数字/角度转换器。

1.4.2四相步进电机的工作原理

该设计采用了20BY-0型步进电机,该电机为四相步进电机,采用单极性直流电源供电。

只要对步进电机的各相绕组按合适的时序通电,就能使步进电机转动。

当某一相绕组通电时,对应的磁极产生磁场,并与转子形成磁路,这时,如果定子和转子的小齿没有对齐,在磁场的作用下,由于磁通具有力图走磁阻最小路径的特点,则转子将转动一定的角度,使转子与定子的齿相互对齐,由此可见,错齿是促使电机旋转的原因。

1.4.3步进电机的静态指标及术语

相数:

产生不同队N、S磁场的激磁线圈对数,常用m表示。

拍数:

完成一个磁场周期性变化所需脉冲用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB→BC→CD→DA→AB,四相八拍运行方式即A→AB→B→BC→C→CD→D→DA→A。

步距角:

对应一个脉冲信号,电机转子转过的角位移用θ表示。

50齿角电机为例,四相运行时步距角为:

θ=360度/(50*4)=1.8度;

八拍运行时步距角为:

θ=360度/(50*8)=0.9度。

定位转矩:

电机在不通电的状态下,电机转子自身的锁定力矩(由磁场齿形的谐波以及机械误差造成的)。

静转矩:

电机在额定静态作业下,电机不做旋转运动时,电机转轴的锁定力矩。

此力矩是衡量电机体积的标准,与驱动电压及驱动电源等无关。

虽然静态转矩与电磁激磁匝数成正比,与定子和转子间的气隙有关。

但过分采用减小气隙,增加励磁匝数来提高静转矩是不可取的,这样会造成电机的发热及机械噪音。

1.4.4四相步进电机的脉冲分配规律

目前,对步进电机的控制主要有分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。

本设计利用单片机进行控制,主要是利用软件进行环形脉冲分配。

四相步进电机的工作方式为四相单四拍,双四拍和四相八拍工作的方式。

各种工作方式在电源通电时的时序与波形分别如图a、b、c所示。

本设计的电机工作方式为四相单四拍,根据步进电机的工作的时序和波形图,总结出其工作方式为四相单四拍时的脉冲分配规律,四相双四拍的脉冲分配规律,在每一种工作方式中,脉冲的频率越高,其转速就越快,但脉冲频率高到一定程度,步进电机跟不上频率的变化后电机会出现失步现象,所以脉冲频率一定要控制在步进电机允许的范围内。

 

 

第二章硬件设计

2.189C51单片机

Atmel公司生产的89C51单片机是一种低功耗/低电压‘高性能的8位单片机,它采用CMOS和高密度非易失性存储技术,而且其输出引脚和指令系统都与MCS-51兼容;片内的FlashROM允许在系统内改编程序或用常规的非易失性编程器来编程,内部除CPU外,还包括256字节RAM,4个8位并行I/O口,5个中断源,2个中断优先级,2个16位可编程定时计数器,89C51单片机是一种功能强、灵活性高且价格合理的单片机。

2.2方案论证

该系统的输入量为速度和方向,速度应该有增减变化,通常用加减按钮控制速度,这样只要2根口线,再加上一根方向线盒,一根启动信号线共需要4根输入线。

系统的输出线与步进电机的绕组数有关。

这里选四相步进电机。

该电机共有四相绕组,工作电压为+5V,可以个单片机共用一个电源。

步进电机的四相绕组用P1口的P1.0~P1.3控制,由于P1口驱动能力不够,因而用一片2803增加驱动能力。

用P0口控制第一数码管用于显示正反转,用P2口控制第二个数码管用于显示转速等级。

数码管采用共阳极。

2.3硬件设计

本设计的硬件电路只要包括控制电路、最小系统、驱动电路、显示电路四大部分。

最小系统只要是为了使单片机正常工作。

控制电路只要由开关和按键组成,由操作者根据相应的工作需要进行操作。

显示电路主要是为了显示电机的工作状态和转速。

驱动电路主要是对单片机输出的脉冲进行功率放大,从而驱动电机转动。

2.3.1控制电路

根据系统的控制要求,控制输入部分设置了启动控制,换向控制,加速控制和减速控制按钮,分别是K1、K2、S2、S3,控制电路如附录所示。

通过K1、K2状态变化来实现电机的启动和换向功能。

当K1、K2的状态变化时,内部程序检测P1.0和P1.1的状态来调用相应的启动和换向程序,发现系统的电机的启动和正反转控制。

根据步进电机的工作原理可以知道,步进电机转速的控制主要是通过控制通入电机的脉冲频率,从而控制电机的转速。

对于单片机而言,主要的方法有:

软件延时和定时中断在此电路中电机的转速控制主要是通过定时器的中断来实现的,该电路控制电机加速度主要是通过S2、S3的断开和闭合,从而控制外部中断根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,从而改变了电机的转速。

2.3.2ULN2803

ULN2803:

采用AP=DIP16,AFW=SOL16封装方式八路NPN达林顿连接晶体管阵系列特别适用于低逻辑电平数字电路(诸如TTL,CMOS或PMOS/NMOS)和较高的电流/电压要求之间的接口,广泛应用于计算机,工业用和消费类产品中的灯、继电器、打印锤或其他类似负载中。

所有器件具有集电极开路输出和续流箱位二极管,用于抑制跃变。

ULN2803的设计与标准TTL系列兼容,而ULN2804最适于6至15伏高电平CMOS或PMOS。

2.3.3驱动电路

通过ULN2803构成比较多的驱动电路,电路图如附录所示。

通过单片机的P1.0~P1.3输出脉冲到ULN2803的1B~4B口,经信号放大后从1C~4C口分别输出到电机的A、B、C、D相。

2.3.4显示电路

在该步进电机的控制器中,电机可以正反转,可以加速、减速,其中电机转速的等级分为七级,为了方便知道电机的运行状态和电机的转速的等级,这里设计了电机转速和电机的工作状态的显示电路。

在显示电路中,主要是利用了单片机的P0口和P2口。

采用两个共阳数码管作显示。

第一个数码管接的a、b、c、d、e、f、g、h分别接P0.0~P0.7口,用于显示电机正反转状态,正转时显示“1”,反转时显示“一”,不转时显示“0”。

第二个数码管的a、b、c、d、e、f、g、h分别接P2.0~P2.7口,用于显示电机的转速级别,共七级,即从1~7转速依次递增,“0”表示转速为零。

2.3.5总体电路图

把各个部分的电路图组合成总电路图,如附录所示。

第三章软件设计

通过分析可以看出,实现系统功能可以采用多种方法,由于随时有可能输入加速、加速信号和方向信号,因而采用中断方式效率最高,这样总共要完成4个部分的工作才能满足课题要求,即主程序部分、定时器中断部分、外部中断0和外部中断1部分,其中主程序的主要功能是系统初始参数的设置及启动开关的检测,若启动开关合上则系统开始工作,反之系统停止工作;定时器部分控制脉冲频率,它决定了步进电机转速的快慢;两个外部中断程序要做的工作都是为了完成改变速度这一功能。

下面分析主程序与定时器中断程序及外部中断程序。

3.1主程序设计

主程序中要完成的工作主要有系统初始值的设置、系统状态的显示以及各种开关状态的检测判断等。

其中系统初始状态的设置内容较多,该系统中,需要初始化定时器、外部中断;对P1口送初值以决定脉冲分配方式,速度值存储区送值决定步进电机的启动速度,对方向值存储区送初值决定步进电机旋转方向等内容。

若初始化P1=11H、速度和方向初始值均设为0,就意味着步进电机按四相单四拍运行,系统上电后在没有操作的情况下,步进电机不旋转,方向值显示“0”,速度值显示“0”,主程序流程图如图所示。

3.1.1定时中断设计

步进电机的转动主要是给电机各绕组按一定的时间间隔连续不断地按规律通入电流,步进电机才会旋转,时间间隔越短,速度就越快。

在这个系统中,这个时间间隔是用定时器重复中断一定次数产生的,即调节时间间隔就是调节定时器的中断次数,因而在定时器中断程序中,要做的工作主要是判断电机的运行方向、发下一个脉冲,以及保存当前的各种状态。

3.1.2外部中断设计

外部中断所要完成的工作是根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,也就是改变了电机的转速。

速度增加按钮S2为INT0中断,其程序流程为原数据,当值等于7时,不改变原数值返回,小于7时,数据加1后返回;速度减少按钮S3,当原数据不为0,减1保存数据,原数据为0则保持不变。

参考文献

[1]陈隆昌等:

《控制电机(第三版)》西安电子科技大学出版社,2000

[2]谭建成:

《电机控制专用集成电路》机械工业出版社,1997

[3]许爱均:

《智能测量控制仪表原理与设计》北京航空航天大学出版社,1995

[4]王晓明:

《电动机的单片机控制》.北京航空航天大学出版社,2002.5

[5]李仁定:

《电机的微机控制》机械工业出版社,1999.10

[6]《电气传动》天津电气传动研究所2003年第6期

[7]何立民:

《MCS-51系列单片机应用系统设计》北京航空航天大学出版社,1990

[8]陈理璧.:

《步进电动机及其应用》上海科学技术出版社,1985

[9]谢剑英:

《微型计算机控制技术》北京:

国防工业出版社,1991

[10]张宇河等:

《计算机控制技术》北京理工大学出版社,1996

[11]松井信行:

《控制用电机入门》科学技术出版社,2000.1

总结

至此,本次设计已经基本介绍完毕。

步进电机和普通电机的区别主要就在于其脉冲驱动的形式,正是这个特点,步进电机可以和现代的数字控制技术相结合。

步进电机具有步距值不受诸如电压和温度变化的影响、误差不长期累积以及控制性能好等优点,所以步进电机在仪器仪表、数控机床、纺织、轻工、石油、邮电、冶金和化工等行业得到了越来越广泛的应用,各种步进电机控制系统相继问世,它们均有各自的优点及局限性。

我们设计的基于AT89c51单片机的步进电机控制系统,具有线路简洁、性能良好、成本低、可靠性高等特点;步进电机的启动、停车、反转以及其他地方任何方式的改变,都在少数脉冲内完成,在一定频率范围内运行时,运行平稳,不丢步。

不过本篇步进电机控制系统的设计一定程度上在精度、速度变化范围、低速性能方面不如传统的闭环控制的直流伺服电动机,在精度不是需要特别高的场合可以使用本篇设计。

我深知自己做的工作还很不够,由于软件和硬件的各方面原因,系统的应用讨论不够,精度还有待于进一步提高。

由于时间的原因,设备的原因,实验做的不好不够,相关验证性的数据、信息不够丰富。

可以肯定,随着技术的不断发展,步进电机的控制应用前景将越来越宽阔,而其控制系统也将向着智能化和网络化的方向发展。

我们要在现在的基础上,不断吸取新的技术和方法,并将它们应用于本课题的研究上来,进一步深化我们的研究深度,争取有更多的收获。

 

附录

 

控制电路原理图

 

 

步进电机驱动电路

 

 

总体电路图(含显示电路)

源程序代码

#include

#defineuintunsignedint

sbitk1=P3^4;//启动开关sbitk2=P3^5;//换向开关

sbits2=P3^2;//加速按钮sbits3=P3^3;//减速按钮

voidisr_int0(void);//外部中断0中断服务函数声明voidisr_int1(void);

voidzd_t0ist(void);uintspeed,count,r1,i,t,k;

main(){

k=0;t=0;r1=0x11;speed=0;count=1;TMOD=0x01;ET0=1;EA=1;EX0=1;EX1=1;TH0=0xcf;TL0=0x2c;

for(;;){

if(k1==0){P0=0xff;P2=0xff;speed=0;TR0=0;}

else{if(k2==0)P0=0xbf;

elseP0=0xf9;if(speed==0){

P2=0xc0;

TR0=0;

}elseTR0=1;}}}

voidisr_int0(void)interrupt0{

if(speed<7)

speed=speed+1;

while(s2==0)

{for(i=0;i<10;i++);}}

voidisr_int1(void)interrupt2

{if(speed>0)

speed=speed-1;

while(s3==0){

for(i=0;i<10;i++);}}

voidzd_t0ist(void)interrupt1{

TH0=0xd8;TL0=0xf0;

switch(speed){

case0:

P2=0xc0;count=0;break;case1:

P2=0xf9;count=60;break;case2:

P2=0xa4;count=40;break;case3:

P2=0xb0;count=35;break;case4:

P2=0x99;count=30;break;case5:

P2=0x92;count=28;break;case6:

P2=0x82;count=25;break;case7:

P2=0xf8;count=21;break;default:

break;}

if(t==0)t=count;

if(t>0)t=t-1;

if(k2==0){

if(t==0){

switch(k){

case0:

P1=0x01;break;case1:

P1=0x02;break;case2:

P1=0x04;break;case3:

P1=0x08;break;

default:

break;}

k=k+1;if(k==4)

k=0;}}

else{

if(t==0){

switch(k){

case0:

P1=0x08;break;case1:

P1=0x04;break;case2:

P1=0x02;break;case3:

P1=0x01;break;default:

break;}

k=k+1;if(k==4)k=0;

}}}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

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

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