基于51系列单片机控制步进电机调速闭环系统设计_第1页
基于51系列单片机控制步进电机调速闭环系统设计_第2页
基于51系列单片机控制步进电机调速闭环系统设计_第3页
基于51系列单片机控制步进电机调速闭环系统设计_第4页
基于51系列单片机控制步进电机调速闭环系统设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于 51 系列单片机控制步进电机调速闭环系统设计摘要 :步进电动机是一种将脉冲信号变换成相应的角位移( 或线位移 ) 的电磁装置, 是一种特殊的电动机。由于其精确性以及其良好的性能在实际当中得到了广泛的应用。本文介绍了以51系列单片机AT89S52为控制核心所设计的步进电 机(型号42BYG016控制系统,从系统的硬件电路以及软件的设计方面实现了 对步进电机的控制。并且由传感器 EE-EX672采集转速数据进而进行关于速度的 闭环控制,经过实际应用电路证明,该仿真控制系统的随动性能好,抗干扰能力强,稳定性好。关键词:单片机、步进电机、光电开关、PID算法、闭环控制1基于51系列单片机控制步进

2、电机调速闭环系统设计一、步进电机1.1 步进电机的工作原理步进电机是将电脉冲信号转变为角位移或线位移的执行机构。 在非超载的情 况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数, 而不受负载 变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系 的存在,加上步进电机只有周期性的误差而无累积误差等特点, 使得在速度、位 置等控制领域用步进电机来控制变的非常的简单。1.2 步进电机的特点本实验所用的步进电机为感应子式步进电机(型号为42BYG016)。感应子式步进电机与传统的反应式步进电机相比, 结构上转子加有永磁体,以提供软磁 材料的工作点,而定子激磁只需提供变化的磁

3、场而不必提供磁材料工作点的耗 能,因此该电机效率高,电流小,发热低。因永磁体的存在,该电机具有较强的 反电势,其自身阻尼作用比较好,使其在运转过程中比较平稳、噪音低、低频振 动小。感应子式步进电机某种程度上可以看作是低速同步电机。 一个四相电机可以 作四相运行,也可以作二相运行。(必须采用双极电压驱动),而反应式电机则不 能如此。例如:四相八拍运行(A-AB-B-BC-C-CD-D-DA-A )完全可以采用二相 八拍运行方式.不难发现其条件为 C=A ,D=B . 一个二相电机的内部绕组与四相电机完全一致,小功率电机一般直接接为二相,而功率大一点的电机,为了方便 使用,灵活改变电机的动态特点,

4、往往将其外部接线为八根引线(四相) ,这样 使用时,既可以作四相电机使用,可以作二相电机绕组串联或并联使用。(本实验采用两相四拍)1.3 步进电机的静态指标相数:产生不同对极N、S磁场的激磁线圈对数。常用 m表示。拍数:完成一个磁场周期性变化所需脉冲数或导电状态用 n表示,或指电机转过 一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即 AB-BC-CD-DA-AB ,四相八拍运行方式即 A-AB-B-BC-C-CD-D-DA-A.步距角:对应一个脉冲信号,电机转子转过的角位移用8表示。8 =36政(转子齿数J*运行拍数),以常规二、四相,转子齿为 50齿电机为例。四拍运行时步 距角为

5、9 =36(®/ (50*4) =1.8度(俗称整步),八拍运行时步距角为 9 =36(®/(50*8) =0.9度(俗称半步)。1.4 步进电机的动态指标1)步距角精度:步进电机每转过一个步距角的实际值与理论值的误差。 用百分比表示:误差 步距角*100%。不同运行拍数其值不同,四拍运行时应在 5%之内,八拍运行时 应在15%以内。2)失步:电机运转时运转的步数,不等于理论上的步数。称之为失步。3)失调角:转子齿轴线偏移定子齿轴线的角度,电机运转必存在失调角,由失调角产生 的误差,采用细分驱动是不能解决的。4)最大空载起动频率:电机在某种驱动形式、电压及额定电流下,在不加

6、负载的情况下,能够直接 起动的最大频率。5)最大空载的运行频率:电机在某种驱动形式,电压及额定电流下,电机不带负载的最高转速频率。6)运行矩频特性:电机在某种测试条件下测得运行中输出力矩与频率关系的曲线称为运行矩频特性,这是电机诸多动态曲线中最重要的,也是电机选择的根本依据。1.5 步进电机的驱动控制系统控制系统的组成方框图如下:脉冲信号信号分配功率放大步进电机负载101)脉冲信号的产生脉冲信号由单片机 AT89S52的I/O 口产生,一般的脉冲信号的占空比为 0.3-0.4左右,电机转速越高,占空比则越大。本实验采用的占空比为0.5。2)信号分配感应子式不仅以二、四相电机为主,二相电机工作方

7、式有二相四拍和二相八 拍两种,具体分配如下:二相四拍为AB-AB-AB-AB,步距角为1.8度;二相八 JO AB-B-MAB-B-ABAAB ,步距角为0.9度。本设计采用步距角为1.8度。 3)功率放大功率放大是驱动系统最为重要的部分。步进电机在一定转速下的转矩取决于 它的动态平均电流而非静态电流(而样本上的电流均为静态电流)。平均电流越大电机力矩越大,要达到平均电流大这就需要驱动系统尽量克服电机的反电势。 因而不同的场合采取不同的的驱动方式,到目前为止,驱动方式一般有以下几种: 恒压、恒压用电阻、高低压驱动、恒流、细分数等。步进电机一经定型,其性能取决于电机的驱动电源。 步进电机转速越高

8、,力 距越大则要求电机的电流越大,驱动电源的电压越高。电压对力矩影响如下:4)功率放大细分驱动器在步进电机步距角不能满足使用的条件下, 可采用细分驱动器来驱动步进电 机,细分驱动器的原理是通过改变相邻(A, B)电流的大小,以改变合成磁场的夹角来控制步进电机运转的合成磁场日相翩场、驱动器由于单片机的I/O不具有直接驱动步进电机的能力,故在本系统中需要步进 电机驱动器,我们选择驱动器为KD-221,该驱动器具有输入电压范围广,控制信号输入方式多样等特点。其具体接法如下:2.1 、电源接线:、E高:当驱动电压大于10V时,正极接此座,使用时最大不能大于40V, 以防损坏模块。、E低:当驱动电压小于

9、10V时,正极接此座。、地:驱动电压E高、E低的的负极接此座。、A ,:接电机A相线圈的二根引线。、B,:接电机B相线圈的二根引线。2.2 、控制信号接线:、CP:接控制器发给步进电机的走步脉冲信号线。、CW接控制器发给步进电机的走步方向信号线。、VP:接CP和CW®号的负极,即逻辑电路电源的负极。、本驱动器内部设计接收信号为 RTTL电平,即5V电平,如其它逻辑电 平信号需要接限流电阻,否则可能损坏光耦元件。三、光电开关本系统中所用传感器为EE-EX672关电开关,该传感器为开关型传感器,四 个接线脚分别为“ + , L,OUT,-"其输入电压范围广为直流5-24V,L为

10、控制指示端, 当“L”与“+”相连时,传感器未检测到物体时 LED灯发光,当“ L”悬空时则 相反,其特点为:1 .动作模式备有遮光时ON火光时ON切换型)2 .应答频率为1KHZ的高速响应3 .入光显示灯明显,容易进行动作确认.4 .电源电压为DC-24V的广范围5 .备有遮光时入光显示灯灯亮型其连接电路如下图所示:L”与“+”相连时,传感器未检测到物体时 LED灯发光L”悬空传感器才测到物体时LED灯发光四、硬件设计电路图下图中为单片机的最小系统,其P0.0-P0.7 口分别连接到LCD1602的D0-D7引脚,与P2.5,P2.6 , P2.7相连的按键开关分别控制步进电机的正反转,加速

11、,减速,P2.0,P2.1,P2.2分别接LCD1602的RS,RW曰唧。例器需错窗需钳然 留隔下图中为电机驱动部分。驱动电压为 +12V,用单片机的P1.0与电机驱动器 的CW1连控制单片机的转向,pi.i与电机驱动器的cp相连,给驱动器输入脉冲。 a,b,c,d分别接入步进电机。SX-672为检测转速的传感器外接+5V驱动电压,输 出接入单片机的T1脚。LCDlffBE |二 二-!> = _zl2五、软件设计5.1 控制算法比较:PID控制原理PID调节器由比例调节器(P),积分调节器(I)和微分调节器(D) 构成,它通过对偏差值的比例积分和微分运算后,用计算所得的控制量来控制被O

12、比例微分控对象.图1所示为PID控制系统框图图1 PID控制系统框图5.1.1 比例调节(P)比例调节是数字控制中最简单的一种调节方法。其特点是调节器的输出与控 制偏差e成线性比例关系,控制规律为:y = kp*e 0(1)式中:kp-比例系数,y°-偏差e为零时调节器的输出值.当输出值St设定的期望值R间产生偏差时,比例调节器会自动调节控制变量 y(如为控制阀门的开度)的大小。控制变量y的大小会朝着减小偏差e的方向变 化.比例系数kp的大小决定了比例调节器调节的快慢程度,kp大调节器调节的速度快,但kp过大会使控制系统出现超调或振荡现象。kp小调节器调节的速度慢,p p但kp过小又

13、起不到调节作用。另外,虽然比例调节器控制规律简单,控制参数易于整定,但缺点是它只能在一种负载情况下实现无静差值的调节,当负载变化时,除非重新调整相应的),值的大小,否则控制系统将会产生无法消除的静差 值。5.1.2 比例微分调节(PI)比例调节器的主要缺点是存在无法消除的静差值, 影响了调节精度.为了消 除静差值,在比例调节器的基础上并人一个积分调节器构成比例积分调节器, 其 调节规律可用下列(2)式表示.,1 t .一y =kp(e+r10edt)+ y。(2)Ti式中:Ti为积分常数,它的物理意义是当调节器积分调节作用与比例调节作用的输出相等时所需的调节时间称为积分常数。积分常数Ti的大小

14、决定了积分作用强弱程度,T选择的越小,积分的调节作用越强,但系统振荡的衰减速度越慢。当Ti过小时,甚至会造成系统的持续振荡,使调节器的输出波动不定,给生产过程带来严重的危害。相反地当Ti选择的越大,积分的调节作用越弱,虽然过渡过程中不容易出现振荡现象,但消除偏差e的时间却很长。积分调节对偏差有累积作 用,所以,只要有偏差e存在积分的调节作用就会不断地增强,直至消除比例调 节器无法消除的静差值。5.1.3 比例积分微分调节(PID)加入积分调节后,虽可消除静差,使控制系统静态特性得以改善,但由于积 分调节器输出值的大小是与偏差值e的持续时间成正比的,这样就会使系统消除静差的调节过程变慢,由此带来

15、的是系统的动态性能变差. 尤其是当积分常数T很大时,情况更为严重。另外,当系统受到冲激式偏差冲击时,由于偏差的变化 率很大,而PI调节器的调节速度又很慢,这样势必会造成系统的振荡,给生产过 程带来很大的危害.改善的方法是在比例积分调节的基础上再加人微分调节,构成比例积分微分调节器(PID)。其调节规律可用(3)式表示。1 tday = kp(e/0edt +Td ) + yo(3)Tidt式中:Td为微分常数,它的物理意义是当调节器微分调节作用与比例调节作用的输出相等时所需的调节时间称为微分常数.5.2 PID控制算法单片机控制系统通过A/ D电路检测输出值s,并计算偏差e和控制变量y,再 经

16、D/ A转换后输出给执行机构,从而实现缩小或消除输出偏差的目的, 使系统输 出值s稳定在给定值区域内。在计算机控制过程中,整个计算过程采用的是数值 计算方法,当采样周期足够小时,这种数值近似计算相当谁确,使离散的被控过 程与连续过程相当接近。图2为单片机闭环控制系统框图J。PID算法是将描述连 续过程的微分方程转化为差分方程, 然后,根据差分方程编制计算程序来进行控 制计算的。另外在PID控制中,由于PID算式选择的不同,最终所得到的控制效果 是不同的。下面进行PID控制算法的研究。图5单片机闭环控制系统框图5.2.1 位置式PID的控制算法如前所述PID调节的微分方程为:1 tdey =kp

17、(eedt Td ) yoTi 0dt将此微分方程写成对应的差分方程形式.Vn= kp©g eJ +Td (en &)+ y0(4)T k田T式中:en-第n次采样周期内所获得的偏差信号;en-第n-1次采样周期内所获得的偏差信号;T-采样周期;yn-调节器第rt次控制变量的输出;为了编写计算机程序的方便,现将算式(4)写成下列形式nyn=kpen+kaZ,+kb(en en/)+ y0(5)k -0式中:kakp*Tkp*Td因为采样周期T,积分常数Ti和微分常数Td选定后皆为常数,因此ka及kb必为常 当调整参数改善控制性能时,也只须调整 kp、ka和kb的大小即可。5.

18、2.2增量式PID的控制算法在位置式PID控制算法中,每次的输出与控制偏差e过去整个变化过程相关, 这样由于偏差的累加作用很容易产生较大的累积偏差, 使控制系统出现不良的超 调现象。由算式可得:ynN =kpB/ +1 9ej +Td (":"/) + y0(6)T k=oT用(4)式减去(6)式,可得增量式PID的算式:.、T , Td .一一一yn =kp(en en)+ *en + (en -2en +en/)(7)TiT其中,yn=yn-yn为了编写程序方便,将(7)式改写成下列形式:yn =A*en +B*en+C*en/(8)式中:A = kp(1+T + Td

19、) , B = kp(1+2Td) , C=kp*Td从增量式PID的算式中可知,只要知道了现时以前的三次采样周期内的偏差 信号4, 4,G立即可计算出本次采样周期内的控制变量y的增量Ayn。综合以上分析,我们采用增量式PID算法,本系统的软件控制算法主要采用了增量式PID控制算法。其控制算法的流程图为:5.3步进电机控制流程图如下:六、数据处理和分析1、PWMJ设定我们通过设定PWMH空制步进电机的转速。当 T=6S时,我们通过试凑的方 法了解到,当PWM=1/300寸,所给步进电机刚好启动,当 PWM=1/17寸,步进电 机速度达到最大。2、步进电机的测速我们通过用软件设定一个转速,然后与

20、用光电开关采集回来的速度相比较, 采用闭环的PID控制来达到步进电机稳定调速的目的。我们在程序中设定转速为 72 rpm,通过与P3.2采集回来的数据相比较,当采集回来的数据小于72rpm时,我们通过改变PID的相应的参数(kp=1.2, Ti=1.1 , Td=0.9)来调节电机的转速, 让步进电机的转速加起来,使之与 72 rpm相吻合。同样,当采集回来的数据大 于72rpm时,也改变PID的相应的参数来调节电机的转速, 让步进电机的转速加 起来,使之与72 rpm相吻合。基于 51 系列单片机控制步进电机调速闭环系统设计七、实验心得及体会通过本次课程设计我们学习到了许多书本上没有的知识,

21、通过自己查资料和互相讨论,对系统进行整体设计后基本达到了要求,实现步进电机速度闭环控制并通过对系统控制算法的比较,综合考虑,选用了闭环的PID 控制,使我们对PID 的控制有了更深刻的认识,使自己将理论与实际相结合起来同时对51 系列的单片机的设计及编程有了更深的了解,学会了很多。同时衷心感谢老师的指导。19附录1.显示及测速程序#include < reg51.h >#include < intrins.h >#define uchar unsigned char#define uint unsigned intfloat f=0;bit F_in=0,truer;s

22、bit P10=P3A0 ;sbit P12=P3A2;/sbit P14=P1A4;sbit LCD_RS = P2A0;sbit LCD_RW = P2A1;sbit LCD_EN = P2A2;/sbit BEEP = P3A7;uchar code cdis1 = "motorspeed:"uchar code cdis2 = " number:"#define delayNOP(); _nop_();_nop_();_nop_();_nop_();uchar key_buf;/显示缓存uchar temp;uchar key,key_num=0

23、;uchar LCD0_data,LCD1_data,LCD2_data,LCD3_data;/键顺序吗uchar data testdata = 0x00,0x00,0x00,0x00;uchar data in_data = 0x01,0x02;uchar shift ;uint i;uint q;uint j;/*/void initime()TMOD=0x51; /T1 计数器,T0 定时器,方式1TL0=(65536-10000)%256;TH0=(65536-10000)/256;TL1=0;TH1=0;ET0=1;/定时10000us0.01sEA=1;void delay(ui

24、nt ms)uchar t;while(ms-)for(t = 0; t < 120; t+);void mydelay()for(i=0;i<100;i+)for(j=0;j<1000;j+);/*/*/*/*/*/* 延时 x*0.14ms/* /*/ void delay0(uchar x)unsigned char i;while(x-)for (i = 0; i<13; i+) bit lcd_busy()bit result;LCD_RS = 0;LCD_RW = 1;LCD_EN = 1; delayNOP();result = (bit)(P0&

25、0x80);LCD_EN = 0; return(result);void lcd_wdat(uchar dat)while(lcd_busy();LCD_RS = 1;LCD_RW = 0;LCD_EN = 0;P0 = dat;delayNOP();LCD_EN = 1;delayNOP();LCD_EN = 0;void lcd_wcmd(uchar cmd)while(lcd_busy();LCD_RS = 0;LCD_RW = 0;LCD_EN = 0;_nop_();_nop_();P0 = cmd;delayNOP();LCD_EN = 1;delayNOP();LCD_EN =

26、 0;void lcd_pos(uchar pos)lcd_wcmd(pos | 0x80);/数据指针=80+地址变量void dectobit(int dec)LCD3_data=dec/1000+0x30;dec=dec % 1000;LCD2_data=dec/100;dec=dec % 100;LCD1_data=dec/10+0x30;dec=dec % 10+0x30;LCD0_data=dec;void display1()lcd_pos(0x0b);lcd_wdat(LCD3_data);lcd_pos(0x0c);lcd_wdat(LCD2_data);lcd_pos(0x

27、0d);lcd_wdat(LCD1_data);lcd_pos(0x0e);lcd_wdat(LCD0_data);lcd_pos(0x4b);lcd_wdat(0x31);void lcd_init()/16*2 显示, 5*7 点阵, 8 位数据/显示开,关光标/移动光标/清除LCD 的显示内容delay(15);lcd_wcmd(0x38);delay(5);lcd_wcmd(0x38);delay(5);lcd_wcmd(0x38);delay(5);lcd_wcmd(0x0c);delay(5);lcd_wcmd(0x06);delay(5);lcd_wcmd(0x01);delay

28、(5); /*/Void main() uchar m;lcd_init();initime();TR0=1;TR1=1;/初始化 LCDP10=1;P12=0;lcd_pos(0x00);/设置显示位置为第一行for(m=0;m<16;m+) lcd_wdat(cdis1m);lcd_pos(0x40);/设置显示位置为第二行for(m=0;m<16;m+) lcd_wdat(cdis2m);/TMOD=0x21;/ TH1=175;/TL1=175;/ TR1=1;/将 T1 设置为 8 位自动重装工作方式。/对T1 定时常数进行预置。/启动 T1 。while(1)dectobit(f);/ key_buf=key_buf+0x30;timer()interrupt 1 using 2i=i+1;if(i=600) i=0;f=TH1*256+TL1;TL1=0;TH1=0;TL0=(65536-10000)%256;TH0=(65536-10000)/256;2.电机驱动程序#include <reg52.h>#include <intrins.h>#define uchar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论