单片机课程设计完整版《PWM直流电动机调速控制系统》41535.pdf

上传人:得** 文档编号:79451270 上传时间:2023-03-21 格式:PDF 页数:28 大小:1.50MB
返回 下载 相关 举报
单片机课程设计完整版《PWM直流电动机调速控制系统》41535.pdf_第1页
第1页 / 共28页
单片机课程设计完整版《PWM直流电动机调速控制系统》41535.pdf_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《单片机课程设计完整版《PWM直流电动机调速控制系统》41535.pdf》由会员分享,可在线阅读,更多相关《单片机课程设计完整版《PWM直流电动机调速控制系统》41535.pdf(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 单片机原理及应用课程设计报告 设计题目:学 院:专 业:班 级:学 号:学生:指导教师:年 月 日 目录 设计题目.2 1 设计要求及主要技术指标:.3 1.1 设计要求.3 1.2 主要技术指标.4 2 设计过程.5 2.1 题目分析.8 2.2 整体构思.9 2.3 具体实现.11 3 元件说明及相关计算.13 3.1 元件说明.13 3.2 相关计算.14 4 调试过程.15 4.1 调试过程.15 4.2 遇到问题及解决措施.19 5 心得体会.20 参考文献.21 附录一:电路原理图.22 附录二:程序清单.23 设计题目:PWM 直流电机调速系统 本文设计的 PWM 直流电机调速

2、系统,主要由 51 单片机、电源、H 桥驱动电路、LED 液晶显示器、霍尔测速电路以及独立按键组成的电子产品。电源采用 78系列芯片实现+5V、+15V 对电机的调速采用 PWM 波方式,PWM 是脉冲宽度调制,通过 51 单片机改变占空比实现。通过独立按键实现对电机的启停、调速、转向的人工控制,LED 实现对测量数据(速度)的显示。电机转速利用霍尔传感器检测输出方波,通过 51 单片机对 1 秒的方波脉冲个数进行计数,计算出电机的速度,实现了直流电机的反馈控制。关键词:直流电机调速;定时中断;电动机;PWM 波形;LED 显示器;51 单片机 1 设计要求及主要技术指标:基于 MCS-51

3、系列单片机 AT89C52,设计一个单片机控制的直流电动机 PWM调速控制装置。1.1 设计要求 (1)在系统中扩展直流电动机控制驱动电路L298,驱动直流测速电动机。(2)使用定时器产生可控的PWM 波,通过按键改变 PWM 占空比,控制直流电动机的转速。(3)设计一个 4 个按键的键盘。K1:“启动/停止”。K2:“正转/反转”。K3:“加速”。K4:“减速”。(4)手动控制。在键盘上设置两个按键-直流电动机加速和直流电动机减速键。在手动状态下,每按一次键,电动机的转速按照约定的速率改变。(5)*测量并在 LED 显示器上显示电动机转速(rpm).(6)实现数字 PID 调速功能。1.2

4、主要技术指标(1)参考 L298 说明书,在系统中扩展直流电动机控制驱动电路。(2)使用定时器产生可控PWM 波,定时时间建议为250us。(3)编写键盘控制程序,实现转向控制,并通过调整PWM 波占空比,实现调速;(4)参考 Protuse仿真效果图:图(1)图(1)2 设计过程 本文设计的直流 PWM 调速系统采用的是调压调速。系统主电路采用大功率GTR 为开关器件、H 桥单极式电路为功率放大电路的结构。PWM 调制部分是在单片机开发平台之上,运用汇编语言编程控制。由定时器来产生宽度可调的矩形波。通过调节波形的宽度来控制H 电路中的 GTR 通断时间,以达到调节电机速度的目的。增加了系统的

5、灵活性和精确性,使整个 PWM 脉冲的产生过程得到了大大的简化。本设计以控制驱动电路L298 为核心,L298 是 SGS 公司的产品,部包含 4 通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即含二个 H 桥的高电压大电流双全桥式驱动器,接收标准 TTL 逻辑电平信号,可驱动 46V、2A 以下的电机。可驱动 2 个电机,OUTl、OUT2 和 OUT3、OUT4 之间分别接 2 个电动机。5、7、10、12 脚接输入控制电平,控制电机的正反转,ENA,ENB 接控制使能端,控制电机的停转。本设计以 AT89C52 单片机为核心,如下图(2),AT89C52 是一个低电压,高性能 CM

6、OS 8 位单片机,片含 8k bytes 的可反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器(RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片置通用 8 位中央处理器和 Flash 存储单元,AT89C52 单片机在电子行业中有着广泛的应用。图(2)对直流电机转速的控制即可采用开环控制,也可采用闭环控制。与开环控制相比,速度控制闭环系统的机械特性有以下优越性:闭环系统的机械特性与开环系统机械特性相比,其性能大大提高;理想空载转速相同时,闭环系统的静差(额定负载时电机转速降落与理想空载转速之比)要小得多

7、;当要求的静差率相同时,闭环调速系统的调速围可以大大提高。直流电机的速度控制方案如图(3)所示。+-直流电机速度控制方案 图(3)一、以下是直流电机调速3种控制方式选择:1、电阻网络或数字电位器:采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般电动机的电阻很小,但电流很大;分压不仅会降低效率,而且实现很困难。2、继电器:驱 动调 节直 流测 速转速设定值 偏差 转速输出 采用继电器对电动机的开或关进行控制。这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。

8、3、H 桥组成的高电压大电流双全桥式驱动芯片:L298N 是 SGS 公司的产品,部包含 4 通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即含二个 H 桥的高电压大电流双全桥式驱动器,接收标准TTL 逻辑电平信号,可驱动 46V、2A 以下的电机。桥型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用的PWM 调速技术。兼于上述三种方案调速特性优良、调整平滑、调速围广、过载能力大,因此本设计采用方案三。二、以下是 PWM 脉宽的 3 种调制方式:调脉宽的方式有三种:定频调宽、定宽调频和调宽调频。采用了定频调宽方式,因为采用这种方式,电动机在运转时

9、比较稳定;并且在采用单片机产生 PWM脉冲的软件实现上比较方便。最后再以键盘作为输入达到控制直流电机的启停、速度和方向,完成了基本要求和发挥部分的要求。在设计中,采用了 PWM 技术对电机进行控制,通过对占空比的计算达到精确调速的目的。三、驱动电路设计 单片机输出的电机控制 PWM 信号接在 ENA 端口,IN1 和 IN2 端口控制电机正反转,通过一个非门实现。对应的 OUT1 和 OUT2 输出接在直流电机两端。如图(4)所示。图(4)2.1 题目分析 在进行单片机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设计在控制系统设计中占

10、重要地位。键盘向单片机输入相应控制指令,由单片机通过 P3.7 输出与转速相应的PWM 脉冲,另一口输出高电平,驱动 H 型桥式电动机控制电路,实现电动机转向与转速的控制。电动机所处速度级以速度档级数表示。速度分 4 档,快慢与电动机所处速度级快慢一一对应。在程序过软件产生 PWM,送出预设占空比的 PWM 波形。PWM(脉冲宽度调制)是一系列周期固定、占空比可调的脉冲系列,由于每个脉冲的高电平时间和低电平时间之和必须等于周期数,所以输出电平的维持时间必须由定时器来控制。2.2 整体构思 本系统采用 AT89C51作为控制核心,用按钮来调节电机转速和数码管来显示设定转速和测量转速。由上述提供的

11、方案和最后选择结果,则用 H 桥组成的高电压大电流双全桥式驱动芯片L298 作为本系统的驱动电路和用带有测速计的电机模型来取得电机的实际转速。如图(5)所示。直流电机控制系统总体框图(5)软件主要由 3 部分组成:主程序、键盘扫描程序、中断处理程序。主程序流程如图(6)所示。驱动直 流测速计 按 钮 LED 数码管 显示单元 上位机 AT89C51 单片机 图(6)主程序流程图 2.3 具体实现 定时中断处理程序实现 采用定时方式 1,因为单片机使用 12M 晶振,可产生最高约为 65.5ms 的延时。对定时器置初值 0 xFF9C 可定时 100us。当 100us 定时时间到,定时器溢出则

12、响应该定时中断处理程序,完成对定时器的再次赋值。PWM 脉宽控制实现 一个脉冲周期可以由高电平持续时间系数 c16TimeH 和低电平持续时间系数c16TimeL组 成,本 设 计 中 采 用 的 脉 冲 频 率 为10000Hz,可 得c16TimeH+c16TimeL=65536,占空比为 c16TimeH/(c16TimeH+c16TimeL),因此要实现定频调宽的调速方式,只需通过程序改变全局变量c16TimeH,c16TimeL 的值。其程序流程框如图(7):开始初始化等待键盘按下Pwm调速控制开始键是否按下反向键是否按下减速键是否按下加速键是否按下NPwm调速控制N将速度取反YNY

13、Pwm调速控制YNY 图(7)3 元件说明及相关计算 3.1 元件说明:电动机:选择电动机参数:额定电压:6V 额定转速:6000rpm 减速比:1:46.7 空载转速:128rpm 10ms/转 单片机选择:AT89C52 是美国 ATMEL 公司生产的低电压,高性能 CMOS 8 位单片机,片含8k bytes 的可反复擦写的只读程序存储器(PEROM)和 256 bytes 的随机存取数据存储器(RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,与标准 MCS-51 指令系统及 8052 产品引脚兼容,片置通用 8 位中央处理器(CPU)和 Flash 存储单元,功能强

14、大AT89C52单片机适合于许多较为复杂控制应用场合。主要性能参数:与 MCS-51 产品指令和引脚完全兼容 8k 字节可重擦写 Flash 闪速存储器 1000 次擦写周期 全静态操作:0Hz24MHz 三级加密程序存储器 2568 字节部RAM 32 个可编程 IO 口线 3 个 16 位定时计数器 8 个中断源 可编程串行 UART 通道 低功耗空闲和掉电模式 功能特性概述:AT89C52提供以下标准功能:8k 字节 Flash 闪速存储器,256 字节部 RAM,32 个 IO 口线,3 个 16 位定时计数器,一个 6 向量两级中断结构,一个全双工串行通信口,片振荡器及时钟电路。同时

15、,AT89C52 可降至 0Hz 的静态逻辑操 作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许RAM,定时计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中的容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。L298 电机驱动:L298 是一款单片集成的高电压、高电流、双路全桥式电机驱动,设计用于连接标准 TTL 逻辑电平,驱动电感负载(诸如继电器、线圈、DC 和步进电机)。L298 提供两个使能输入端,可以在不依赖于输入信号的情况下,使能或禁用 L298器件。LED 显示屏 PROTEUS 设计与仿真平台 3.2 相关计算:在程序过软件产生

16、PWM,送出预设占空比的 PWM 波形。PWM(脉冲宽度调制)是一系列周期固定、占空比可调的脉冲系列,由于每个脉冲的高电平时间和低电平时间之和必须等于周期数,所以输出电平的维持时间必须由定时器来控制。设 PWM 周期为 T,高电平时间为 TH,低电平时间为 TL,电压为 VCC,则输出电压的平均值为:UAV=VCC*TH/(TH+TL)=VCC*TH/T=aVCC,当 VCC固定时,其电压值取决于 PWM 波形的占空比 a,而 PWM 的占空比由单片机软件部用于控制 PWM 输出的寄存器值决定。PWM 脉宽控制实现 一个脉冲周期可以由高电平持续时间系数c16TimeH和低电平持续时间系数c16

17、TimeL组 成,本 设 计 中 采 用 的 脉 冲 频 率 为10000Hz,可 得c16TimeH+c16TimeL=65536,占空比为 c16TimeH/(c16TimeH+c16TimeL),因此要实现定频调宽的调速方式,只需通过程序改变全局变量 c16TimeH,c16TimeL的值。4 调试过程 4.1 调试过程:1、初始状态,未调试之前,仿真图如下图(8)。图(8)2、启动仿真后,手动控制。在键盘上设置两个按键-直流电动机加速和直流电动机减速键。在手动状态下,每按一次键,电动机的转速按照约定的速率改变。LED 显示屏上显示电机转速的设定值和电机转速实际值。如下图(9)图(10)

18、图(11)所示。图(9)启动仿真后 图(10)加速调节电机转速 图(11)减速调节电机转速 3、示波器显示 PWM 方波,状态(电机高速挡反转),显示如下图(12)。图(12)4、示波器显示 PWM 方波,状态(电机高速挡反转),显示如下图(13)。图(13)5、电机实际转速获取:在 Proteus 中只有一种直流电机集成了测速传感器,在搜索栏里搜索motor-encoder,即可得到这种电机模型。本设计中设置电机转一圈发出 60 个脉冲。根据实际运转情况及结合所编写程序,确定转速公式为:V=N*15;V:速度 R/min N:每秒采样的脉冲个数 如右图所示,为带测速功能的直流电机模型 4.2

19、 遇到问题及解决措施:问题一:打开仿真软件读取程序时出现如下图所示的黄色条幅?当你在测量时仿真必须停止。也就是说,你想用探针等工具测量参数时,要停止仿真,即,在非仿真状态下,先放好探针等工具,再仿真。问题二:运行程序时,仿真软件底部出现如下图黄色字符?经过上网查阅资料,给出的答案是电路中GND网络中存在逻辑竞争冲突,检查一下每个接地点是否存在接线错误。或者是逻争征用,是程序里边那里赋值有误。问题三:部分源程序不懂,无法进行仿真,直流电机调速 3 种控制方式选择?通过上网查阅资料和图书馆借阅图书得到的资料,程序得到了完善基本上达到了设计目的。实现通过单片机对直流电机的控制,通过合理的设备选型、参

20、数设置和软件设计,提高了直流电机调速运行的可靠性。直流电机调速方式的选择详见 2.1。5 心得体会 经过十天的学习,工作中,通过查阅相关资料了解了PWM 直流电机调速系统,加深了对直流电机调速控制系统的认识,熟悉了单片机在控制系统中的运用。并且在所学知识的基础上,利用已有的直流调速系统设计,尝试了自己的一些研究。并且,使我将原来所学的知识系统化,理论化,实用化。对如何使用已有知识及获取相关资料方面的能力又有了提高。过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获龋最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设

21、计中遇到了很多问题,最后在老师、同学们的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!这次的课程设计给我很多专业知识以及专业技能上的提升,同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计,我掌握了常用元件的识别和测试;熟悉了常用仪器、仪表;了解了(PID 仿真 ISSI)的连线方法;以及如何提高电路的性能等等,掌握部分程序的

22、编写和仿真,通过查询资料,也了解 PWM 直流电机调速了系统。参考文献 1广弟等.单片机基础M.航空航天,2001.2王东峰等.单片机 C 语言应用 100 例M.电子工业,2009.3海宴.51 单片机原理及应用M.航空航天大学,2010.4守义等.单片机技术基础M.电子科技大学,2007.5钟富昭等.8051 单片机典型模块设计与应用M.人民邮电,2007.6平等.单片机入门与开发M.机械工业,2008.7 伯石.电力拖动自动控制系统M.:机械工业,2003.8 钟富昭.8051 单片机典型模块设计与应用M.:人民邮电,2007 9 靖武.单片机系统的 PROTEUS 设计与仿真M.:电子

23、工业,2007 10 恢先.单片机原理及应用M.:人民邮电,2006 11 孟庆涛.图解电子控制电路M.:人民邮电,2006 12 维成.单片机原理与应用及 C51 程序设计M.:清华大学,2006 13 周润景.基于 PROTEUS 的电路及单片机系统设计与仿真M.:航空航天,2006 14 光飞.单片机课程设计实例指导M.:航空航天,2004 15 杜坤梅.电机控制技术M.:工业大学,2002 16 广第.单片机基础(修订版)M.:航空航天大学,2001 17 光东.单片微型计算机原理与接口技术(第二版)M.武昌:华中科技大学,1999 18 何耀三.电气传动的微机控制M.:大学,1997

24、 19 薛钧义.MCS-51/96 系列单片微型计算机及其应用M.:交通大学,1997 20 志强 胡辉.单片机应用系统设计实践指南.自编教材 附录一:电路原理图 附录二:程序清单#include#include#define uchar unsigned char#define uint unsigned int#define THC0 0 xf9#define TLC0 0 x0f /2ms unsigned char code Duan=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x07,0 x7F,0 x6F;/共阴极数码管,0-9 段码表

25、unsigned char Data_Buffer8=0,0,0,0,0,0,0,0;/显示缓冲 uchar i=0;sbit AddSpeed=P11;sbit SubSpeed=P12;sbit PWM_FC=P10;int e,e1,e2;/pid 偏差 float uk,uk1,duk;/pid 输出值 float Kp=10,Ki=12,Kd=1.6;/pid 控制系数 10,12,1.5 int out=0;uint SpeedSet=380;uintt=0;uint Inpluse=0,num=0;/脉冲计数 uint PWMTime=100;/脉冲宽度 unsigned cha

26、r arry;void SendString(uint ch);void PIDControl();void SystemInit();void delay(uchar x);void PWMOUT();void SetSpeed();void SegRefre();/*主函数*/void main()SystemInit();while(1)SetSpeed();/按键设定速度 SegRefre();/数码管显示刷新 PWMOUT();/输出 PWM void PIDControl()/pid 偏差计算 e=SpeedSet-num;/误差=设定值-1s 采集的脉冲值 duk=(Kp*(e-

27、e1)+Ki*e+Kd*(e-2*e1+e2)/50;/增量式 PID 公式 /50 是对 duk 进行缩小处理 uk=uk1+duk;out=(int)uk;/输出为占空比 if(out1000)out=1000;else if(out0;i-)for(j=50;j0;j-);void PWMOUT()/输出 PWM 脉冲 if(cnt1000)t=0;void SystemInit()TMOD=0X21;TH0=THC0;TL0=TLC0;TH1=0 xC0;TL1=0XC0;ET1=1;ET0=1;TR0=1;TR1=1;EX0=1;/中断 0 用来测量转速 IT0=1;EA=1;e=0

28、;/初始化 差值 e1=0;e2=0;void SetSpeed()if(AddSpeed=0)delay(200);/消抖处理 if(AddSpeed=0)SpeedSet+=10;if(SpeedSet1500)SpeedSet=1500;if(SubSpeed=0)delay(200);if(SubSpeed=0)SpeedSet-=10;if(SpeedSet8)Bit=0;P0=0 xff;P2=DuanData_BufferBit;/显示段码 switch(Bit)/数码管位选 case 0:P0=0X7F;break;case 1:P0=0XBF;break;case 2:P0=0XDF;break;case 3:P0=0XEF;break;case 4:P0=0XF7;break;case 5:P0=0XFB;break;case 6:P0=0XFD;break;case 7:P0=0XFE;break;if(time100)time=0;num=Inpluse*5;/算得 1s 采集的脉冲数 Inpluse=0;PIDControl();/调用 PID 算法,输出 PWM void timer_1()interrupt 3 cnt+;/cnt 越大占空比越高 2.5Khz

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁