基于单片机的直流电机调速系统设计.docx

上传人:b****8 文档编号:30384181 上传时间:2023-08-14 格式:DOCX 页数:21 大小:465.08KB
下载 相关 举报
基于单片机的直流电机调速系统设计.docx_第1页
第1页 / 共21页
基于单片机的直流电机调速系统设计.docx_第2页
第2页 / 共21页
基于单片机的直流电机调速系统设计.docx_第3页
第3页 / 共21页
基于单片机的直流电机调速系统设计.docx_第4页
第4页 / 共21页
基于单片机的直流电机调速系统设计.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

基于单片机的直流电机调速系统设计.docx

《基于单片机的直流电机调速系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的直流电机调速系统设计.docx(21页珍藏版)》请在冰豆网上搜索。

基于单片机的直流电机调速系统设计.docx

基于单片机的直流电机调速系统设计

指导教师评定成绩:

 

审定成绩:

 

重庆邮电大学

自动化学院

课程设计报告

设计题目:

基于单片机的直流电机调速系统设计

 

单位(二级学院):

学生姓名:

专业:

班级:

学号:

指导教师:

 

设计时间:

2011年10月

重庆邮电大学自动化学院制

 

08级自动化专业综合设计题目

第二组题目:

单片机直流电机调速装置的设计与制作

要求:

①设计与制作单片机最小系统,具有键盘输入0~9数字和功能键;LED数码管或LCD1602显示。

主要显示实际速度值和设定速度值以及参数修改的值。

②设计速度检测电路与数据处理,速度测量采用数字测量的方式,采用光电式和电磁式测量方法。

实现速度信号的检测、整形等实现。

③输出驱动采用PWM脉宽调制。

调节周期可以设定。

默认值为0.5s。

驱动芯片采用L298

④直流电机由实验室提供。

直流电机的输入电压24V。

功率50瓦。

控制算法采用常用PID算法。

⑤进度要求:

第一周方案设计设计,原理图设计等。

元器件清单提交到指导老师处。

第二周至第五周系统软件设计以及调试相关准备。

第六周系统调试和撰写综合设计报告。

进行答辩。

 

摘要

本文介绍了基于STC12C5412AD单片机作为微控制芯片,利用红外传感器或霍尔传感器测直流电机的转速,采用了芯片L298N作为直流伺服电机的驱动芯片,完成了在主电路中对直流电机的控制,利用PWM调速方式控制直流电机转动的速度,同时可以通过矩阵键盘随意设定电机的转速值,并由LCD显示速度的变化值,采用PID算法实现自动调节速度至预先设定的速度,整个系统的电路逻辑结构简单,可靠性高,实现功能强。

关键词:

单片机红外传感器霍尔传感器PWM调速直流电机

 

1引言

最基本的电力传动自动控制系统是调速系统:

即通过控制电机的转速来控制生产机械的运动。

测速装置在控制系统中占有非常重要的地位。

对测速装置的要求是分辨能力强、高精度和尽可能短的检测时间(采样周期)。

电机转速的检测方案可分成两类:

用测速发电机检测或用脉冲发生器检测。

测速发电机的工作原理是将转速转变为电压信号,它运行可靠,但体积大、精度低,且由于测量值是模拟量,必须经过A/D转换后读入计算机。

脉冲发生器的工作原理是按电机转速高低,每转发出相应数目的脉冲信号。

按要求选择或设计脉冲发生器,能够实现高性能检测。

如选用旋转编码器做脉冲发生器,使用简单,但价格较贵。

所设计的基于霍尔元件和光电传感器的脉冲发生器成本低、构造容易、性能好。

它成功地嵌入目前在国内大学中普遍采用的DCS-1型直流调速系统实验装置中,已可靠运作两年以上。

而且有关用测速发电机测速的系统实验可以照常进行,硬件上无须做任何改动。

若采用旋转编码器则只能与测速发电机替换使用,反复卸下一个、装上另一个,才能进行相应的系统实验。

2总体方案设计

2.1硬件方案论证

要控制直流电机转速,硬件电路要求比较高,它决定直流电机调速的精度。

采用PID控制器,因此需要设计一个闭环直流电机控制系统。

该系统采用脉宽调速,使电机速度等于设定值,并且实时显示电机的转速值。

通过对设计功能分解,设计方案论证可以分为:

系统结构方案论证,速度测量方案论证,电机驱动方案论证,键盘显示方案论证,PWM软件实现方案论证。

2.1.1微处理器的选择

方案一:

采用一片单片机(AT89S52)完成系统所有测量、控制运算,并输出PWM控制信号,但是其造成CPU资源紧张,程序的多任务处理难度增大,不利与提高和扩展系统性能,也不利于向其他系统移植。

方案二:

采用两片单片机(AT89S52),其中一片做成PID控制器,专门进行PID运算和PWM控制信号输出;另一片则系统主芯片,完成电机速度的键盘设定、测量、显示,并向PID控制器提供设定值和测量值,设定PID控制器的控制速度等,但硬件比较复杂。

方案三:

采用STC12C5412AD单片机。

它是高速低功耗超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快10倍左右,内部集成MAX810专用复位电路,4路PWM,8路高速10位A/D转换,针对电机控制,强干扰场合,同时PID控制算法的实现可以精益求精,对程序算法或参数稍加改动即可移植到其他PID控制系统中。

综上所述采用方案三

2.1.2测速传感器的选择

方案一:

使用测速发电机,输出电动势E和转速n成线性关系,即E=kn,其中k是常数。

改变旋转方向时,输出电动势的极性即相应改变,安装不方便且不常用。

方案二:

采用霍尔传感器,霍尔元件是磁敏元件,在被测的旋转体上装一磁体,旋转时,每当磁体经过霍尔元件,霍尔元件就发出一个信号,经放大整形得到脉冲信号,送运算。

不需A/D转换,直接可以被单片机接收

方案三:

采用光电传感器,在电机的转轴端安装一个自制码盘(32个黑白相间的扇形弧度),经过红外发射接收管,发射的红外光一直发射,当码盘转到白色的条纹时反射回来被接受管接收,每输出16个脉冲就转过一圈。

在本设计方案中采用两种方法,因此采用方案二和方案三

2.1.3电机驱动方案论证

方案一:

采用专用小型直流电机驱动芯片L298。

这个方案的优点是驱动电路简单,几乎不添加其它外围元件就可以实现稳定的控制,使得驱动电路功耗相对较小,而且目前市场上此类芯片种类齐全,价格也比较便宜。

方案二:

采用继电器对电动机的开或关进行控制,通过开关的切换对电机的速度进行调整。

这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。

方案三:

采用由达林顿管组成的H型PWM电路。

用单片机控制达林顿管使之工作在占空比可调的开关状态,精确调整电动机转速。

这种电路由于工作在管子的饱和截止模式下,效率非常高;H型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用的PWM调速技术。

通过比较和对市场因素的考虑,本设计采用方案一,使系统的设计核心在PID控制上。

2.2系统原理框图设计

系统原理框图如图2.1所示,是一个带矩阵键盘输入和LCD12864显示的闭环测量控制系统。

主体思想是通过系统设定信息和测量反馈信息计算输出控制信息。

图2.1系统原理框图

2.3.系统单元电路的设计

2.3.1速度测量电路设计一

理论上,是先将转速转化为某一种可测电量来测量,如电压,电流等。

设计中将转速测量转化为电脉冲频率的测量。

本系统采用光电传感器ST188来检测码盘转过的圈数以此来测速度。

主要原理是:

当码盘转到白色的条纹时,装在码盘旁边的红外发射管发射红外线信号,经白色反射后,被接收管接收,一旦接收管接收到信号,那么图中光敏三极管将导通,收红外线比较器输出为低电平;当码盘转到黑色的条纹时,红外线信号被黑色吸收后,光敏三极管截止,比较器输出高电平,从而实现了通过红外线检测信号的功能。

将检测到的信号送到单片机I/O口,当I/O口检测到的信号为高电平时,表明红外光被码盘上的黑色线条吸收了,同理,当I/O口检测到的信号为低电平时,表明在白色的条纹上,并使用电压比较器LM339将I/O口输出的电平转换为标准的TTL电平。

每检测到一个信号码盘转过22.5°,当检测到16次信号时,电机转动一圈,电路如图2.2所示

 

图2.2转速/频率转化电路

2.3.2速度测量电路设计二

速度检测电路是由开关型霍尔传感器和磁钢组成,其电路图如图2.3所示。

测量电机转速的第一步就是要将电机的转速表示为单片机可以识别的脉冲信号,从而进行脉冲计数。

霍尔器件作为一种转速测量系统的传感器,具有结构牢固、体积小、重量轻、寿命长、安装方便等优点。

当电机转动时,带动传感器,产生对应频率的脉冲信号,经过信号处理后输出到计数器或其他的脉冲计数装置,进行转速的测量。

在本次使用中,我们将霍尔传感器3314固定在离反射式黑白码盘很近的洞洞板上,码盘上固定有微型磁钢,当码盘转动一圈时,霍尔传感器就输出电平信号,经电压比较器lm339放大后输入单片机处理。

所谓磁钢,就是磁钢就是一种有磁性的钢铁。

在传感检测电路中将磁钢安装在电机的转轴上,而霍尔传感器则放在转轴的旁边,霍尔传感器连接在电路中,当磁钢随转轴经过霍尔传感器时,由开关型霍尔传感器的工作原理知,此时将输出一个低电平信号;而当磁钢离开霍尔传感器后,又将输出一个高电平。

这样通过高低电平的转换,将其送入单片机后就可以测量它的转速。

图2.3霍尔传感器部分

2.3.3串行通信接口电路

单片机的串行口是非常有用的,通过它我们可以把单片机系统的数据传回电脑处理或者接受电脑传过来的数据而进行相应的动作。

微控制器有许多标准的通信方法,但在主/从嵌入

式系统中,最常用的是RS232串行接口、SPI和I2C。

单片机有一个全双工的串行通信口。

图2.4串行通信接口电路

本次课程设计,采用的是RS232出行接口方式。

电路中串行端口的本质功能是作为单片机和电脑端的通信,完成51单片机ISP程序下载的功能。

当数据从单片机经过串行端口发送出去时,字节数据转换为串行的位。

在接收数据时,串行的位被转换为字节数据。

在Windows环境(WindowsNT、Win98、Windows2000)下,串口是系统资源的一部分。

应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。

本次课程设计串行通信接口,电路如图2.4所示。

2.3.4电机驱动电路的设计

本设计采用目前市场上较容易买到的L298N直流或步进电机驱动芯片,它采用单片集成塑装,是一个高电压、大电流全双桥驱动器,由标准的TTL电平控制。

L298N支持50V以内的电机控制电压,在直流运转条件下,可以通过高达2A的电流,因此它满足了一般小型电机的控制要求。

图中二极管的作用是消除电机的反向电动势,保护电路,因此采用整流二极管比较合适。

PWM控制信号由in1、in2输入。

如果in1为高电平,in2为低电平时电机为正向转速,反之in1为低电平,in2为高电平时,电机为反向转速。

本设计将in2直接接地,即采用单向制动的方式。

电路图如图2.5所示。

图2.5电机驱动电路

2.3.5LCD显示电路与单片机的接口设计

本次设计中采用的LCD12864是一种内置8192个16*16点汉字库和128个16*8点ASCII字符集图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×32全点阵液晶显示器组成。

可完成图形显示,也可以显示7.5×2个(16×16点阵)汉字,与外部CPU接口采用并行或串行方式控制。

本设计采用并行方式控制,LCD与单片机的通讯接口电路如图2.6所示,采用直连的方法,这样设计的优点是在不影响性能的条件下还不用添加其它硬件,简化了电路,降低了成本。

图2.6LCD显示电路与单片机的接口

2.3.6.矩阵键盘电路

本设计采用4*3矩阵键盘,它们分别与P1口相连,作为设定速度的输入。

12个按键功能描述:

0~9的10个数字键,next和ok两个功能键。

连接在P1端口进行扫描,ok键就是确认键,功能是将设置好参数后退出设置模式,next键按下后就是将光标切换到下一个要设置的位值。

其电路如图2.7所示。

图2.7键盘电路

2.3.7电源模块

线性三端稳压器件7805由于内部电流的限制,以及过热保护和安全工作区的保护,使得它基本上不会损坏。

提供足够的散热片,能够保证输出最大电流为1.5A,电路简单,稳定.调试方便,价格便宜,适合于对成本要求苛刻的产品,电路中几乎没有产生高频或者低频辐射信号的元件,工作频率低,EMI等方面易于控制.并采用磁珠对模拟地与数字地进行隔离,电路如图2.8所示。

图2.8电源模块

3.系统软件设计

3.1系统总程序框图设计

系统程序框图如图3.1所示。

图3.1系统主单片机总程序框图

当系统被启动后,主从单片机初始化。

主单片机检测是否有键按下,再执行按键子程序,将输入的值传送到PID控制器,PID控制器经PID计算处理,再计算出PWM的定时值,PID再送出相应的PWM信号,驱动电机转动,主单片机将传感器输入的信号进行计算,再将得出的值输出到PID控制器,PID控制器经计算输出相应的PWM信号控制电机转速趋于设定的转速。

依次循环使电机趋于稳定值。

3.2电机转速测量程序设计

设计中考虑到电机的工作环境一般比较恶劣,因此除了硬件外,从程序上除了要更高的精确度也需要进行更多的抗干扰设计,从而实现软件的大范围检错、纠错或丢弃错误等。

在程序的设计过程中,对严重不符合要求的测量数据进行了丢弃处理,而对于正常范围内的数据错误采用了采5取3求平均的算法(即采集5个数据,去掉一个最大值一个最小值,然后将剩余3个数据求平均)。

实验表明,此方法降低了系统采集转速中出现的错误。

对于转速的测量方法,是通过速度脉冲信号下降沿触发单片机的外中断,中断服务子程序在某一个脉冲的下降沿开启定时器记时,然后在下一个下降沿关闭定时器,通过对定时器数据进行运算处理可以得到信号周期进而得到速度值。

其程序框图如图3.2。

可以看出,此方法下的采样周期是随转速变化的,转速越高采样越快。

通过这种非均匀的速度采样方式可以使电机在高速情况下,实现高速度高精度的控制。

图3.2外中断程序框图

3.3键盘程序设计

键盘程序设计的任务是赋予各按键相应的功能,完成速度设定值的输入和向STC12C5412AD的PWM控制器控制频率的设定。

4*3矩阵键盘的12个按键两个为功能键,十个为0~9的数值键。

其中功能键NEXT用来位循环选择所要设置的数值位,切换单片机要调整的是设定值的个位、还是十位;功能按键OK用来在设置完成后退出设定状态;数值键0~9用作改变当前参数的作用,仅当在参数设定模式下才会起作用,未在参数设定模式下不会引起误触发;参数设定是实时更新的,每次设定后就反馈到单片机处理,可迅速观察到运行情况,从而实现设定控制。

按键驱动子程序框图如图3.3。

图3.3键盘程序框图

3.4LCD显示子程序的设计

LCD使用的关键是根据显示需要正确地对其进行初始化设置,而我们必须清楚那些初始化设置之间的关系,以及它是如何利用设置读取、显示数据字符的,不然就会发生一些不可预料的错误。

LCD128X64点阵LCD的显示原理:

模块的用户指令集分为基本指令集(RE=0)和扩充指令集(RE=1)两种,分别可以实现清除显示、地址归位、进入点设定等基本功能及待命模式、反白选择、睡眠模式等扩充功能。

具体指令码及说明可参照详细用户手册上的用户指令表。

在具体调用指令时应注意以下事项:

1、当模块在接受指令前,微处理顺必须先确认模块内部处于非忙碌状态,即读取BF标志时BF需为0,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延迟一段较长的时间,即是等待前一个指令确实执行完成。

2、“RE”为基本指令集与扩充指令集的选择控制位元,当变更“RE”位元后,往后的指令集将维持在最后的状态,除非再次变更“RE”位元,否则使用相同指令集时,不需每次重设“RE”位元。

3、模块提供硬体游标及闪烁控制电路,由地址计数器(addresscounter)的值来指定DDRAM中的游标或闪烁位置。

4数字PID算法

4.1.PID基本原理

PID全称比例-积分-微分控制器,是自动控制设计中最经典应用最广泛的一种算法。

为了达到最佳的控制效果,我们在闭环控制系统的中间加入PID控制器,改造系统的结构特性,并且调整比例系数、积分时间和微分时间的大小达到最佳控制效果,实现稳快准的控制特点。

根据改变P可提高响应速度,减小静态误差,但太大会增大超调量和稳定时间。

使用积分可以消除静态误差,提高无差度。

积分D与P,I的作用相反,主要是为了减小超调,减小稳定时间。

调试时,三个参数综合考虑,首先将I,D设0,调好P,达到基本的响应速度和误差,再加上I,使误差为0,这时再加上D,三个参数要反复调试,最终达到较好的结果。

当执行机构需要的不是控制量的绝对值,而是控制量的增量时,需要用PID增量算法。

图4.1增量式PID控制算法的简化示意图

由位置算法求出:

再求出:

两式相减,得出控制量的增量算法:

式···称为增量式PID算法。

对增量式PID算法···归并后,得:

其中

由此可以看出各次误差量对控作用的影响。

数字增量式PID算法,只要贮存最近的三个误差采样值e(k)、e(k-1)、e(k-2)就足够了。

4.2PID控制算法的单片机程序实现

要编写一个已知算法的单片机程序,首先要考虑的就是数据的结构和存储方式了。

因为它直接影响到系统的控制精度,以及PID算法的实现质量。

本系统之所以专门采用一片单片来实现PID算法,就是因为从一开始的设计思路就是尽可能高的提高系统的控制精度。

要提高系统的控制精度,在计算过程中仅取整数或定点小数是不够的,所以本设计采用三字节浮点数运算。

对于AT89S52单片机而言,有足够的内存去存储和处理这些数据。

另外,为了使程序的参数修改方便,更易于应用到其他PID控制系统中去,在一开始的参数赋值程序中,参数是以十进制BCD码浮点数存储的,参数赋值完成后,紧接着就是对参数进行二进制浮点数的归一化处理,以及复合参数q0,q1,q2等的计算。

这些工作在系统启动后迅速就完成了,之后PID控制器只进行PID核心控制算法的计算。

PID算法的程序框图如图5.2所示算法。

由于本系统采用的是单级单向调速,所以当PID控制算法的输出结果u(k)为负数时就将其清另零了,当大于系统饱和值时,赋值u(k)为饱和值。

5.总结

本次课程设计是基于STC12C5412单片机作为微控制芯片,在这次设计中我们将书中的理论知识付之实践,具体情况如下:

利用红外传感器测直流电机的转速,采用了芯片L298作为直流伺服电机的驱动芯片,完成了在主电路中对直流电机的控制,利用PWM调速方式控制直流电机转动的速度,同时可以通过矩阵键盘随意设定电机的转速值,并由LCD显示速度的变化值,采用PID算法实现自动调节速度至预先设定的速度,

我负责的是键盘输入的程序编写,算是本次设计中较容易的模块,基本思路就是根据电路图编写程序,使用的是矩阵式键盘,在程序的编写过去中遇到的最大的问题应该就属于输入消抖的问题,当时未能够理解到输入的信号的不规则性,导致了调试中出现一定的问题,但是在赵同学的提醒下,找到了问题的关键,终于完成了这一环节的基本过程。

本次设计最大的收获,首先是团队意识的提高,在设计中我们遇到的问题都能够及时的得到处理,其次是对整个系统的全面了解,在此之前也有很多类似的设计,但是有感觉到颇有生疏,本次能够系统全面的理解了整个设计的过程,有了个宏观的视野,也算是收获颇丰了。

第三就是,还是那句话,纸上得来终觉浅,方知此事要恭行,很多器件的使用,理论的理解在之前都是停留在书本理解上,而这次在动手实际中,不但加深了理解,还有提高了动手能力,解决问题的能力,我相信这些收获是本次最大的收获。

也应该是本次设计的目的所在。

参考文献

【1】徐薇莉曹柱中.控制理论与设计[M]上海交大出版社,2003.74-82

【2】L298N芯片手册,2006.05

【3】吴守箴,戚英杰.电气传的脉宽调制控制技术.北京:

机械工业出版社.

【4】贾玉瑛,王臣.基于单片机控制的PWM直流调速系统.包头钢铁学院学报,2005年.

【5】康华光,邹寿彬.电子技术基础(数字部分第四版).北京:

高等教育出版社,2004年.

【6】浦龙梅,李私.单片机控制的直流PWM调速装置的研究.变频器世界,2006年3月

 

附录1原理图:

附录2程序设计:

(键盘扫描)

#include"C51_public.h"

#definekey_padP1

voidKEY_delay(void)

{

unsignedcharj;

for(j=0;j<250;j++);

}

uintKEYSCAN()

{

uinttemp=0,num=0xff;

P1=0xef;

temp=P1;

temp=temp&0xe0;

if(temp!

=0xe0)

{

KEY_delay();

P1=0xef;

temp=P1;

temp=temp&0xe0;

if(temp!

=0xe0)

{

temp=P1;

switch(temp)

{

case0xcf:

num=0;break;

case0xaf:

num=11;break;

case0x6f:

num=12;break;

//case0xef:

num=4;break;

}

}

}

while(temp!

=0xe0)

{

temp=P1;

temp=temp&0xe0;

}

P1=0xfd;

temp=P1;

temp=temp&0xf0;

if(temp!

=0xf0)

{

KEY_delay();

P1=0xfd;

temp=P1;

temp=temp&0xf0;

if(temp!

=0xf0)

{

temp=P1;

switch(temp)

{

case0x7d:

num=9;break;

case0xbd:

num=6;break;

case0xdd:

num=3;break;

//case0xed:

num=8;break;

}

}

}

while(temp!

=0xf0)

{

temp=P1;

temp=temp&0xf0;

}

P1=0xfb;

temp=P1;

temp=temp&0xf0;

if(temp!

=0xf0)

{

KEY_delay();

P1=0xfb;

temp=P1;

temp=temp&0xf0;

if(temp!

=0xf0)

{

temp=P1;

switch(temp)

{

case0x7b:

num=8;break;

case0xbb:

num=5;break;

case0xdb:

num=2;break;

//case0xeb:

num=12;break;

}

}

}

while(temp!

=0xf0)

{

temp=P1;

temp=temp&0xf0;

}

P1=0xf7;

temp=P1;

temp=temp&0xf0;

if(temp!

=0xf0)

{

KEY_delay();

P1=0xf7;

temp=P1;

temp=temp&0xf0;

if(temp!

=0xf0)

{

temp=P1;

switch(temp)

{

case0x77:

nu

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

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1