《电机与拖动系统课程设计报告.doc》由会员分享,可在线阅读,更多相关《电机与拖动系统课程设计报告.doc(19页珍藏版)》请在课桌文档上搜索。
1、一、一、设计题目设计题目微型直流电动机的数字控制器设计二、二、主要容和具体要求主要容和具体要求1、设置有正转、反转、加速、减速按键;2、显示马达的运行状态正反转、停顿 ,显示转速;3、测量马达的反电动势系数;4、测量马达的力矩系数;5、创立马达的数学模型;6、实现比例控制;7、实现比例积分控制。三、三、进度安排进度安排6 月 1617 号:了解任务要求,确定具体方案6 月 1819 号:电机控制程序设计6 月 2021 号:键盘电路、lcd12864 液晶屏子程序设计6 月 2224 号:上位机通信程序设计6 月 2526 号:电机 PI 控制设计四、四、完成后应上交的材料完成后应上交的材料直
2、流电机数字控制器论文五、五、总评成绩总评成绩指导教师签名日期年月日指导教师签名日期年月日系系 主主 任审核日期年月日任审核日期年月日摘要摘要本文主要设计一个基于 STC12C5A60S2 单片机的直流电机 PWM 控制系统。PWM 控制提高了调速围,提高了调速精度,改善了快速性能、功率和功率因数。系统在设计中被控对象采用 5V 的直流电机,以 MCS-51 单片机为控制核心,采用 LCD12864 液晶作为显示元件,进展软硬件的设计。硬件电路由 protel 设计制作,主要设计了液晶显示电路、键盘控制电路、复位电路、测速电路、驱动电路和测压电路。软件设计在 Keil 开发平台用 C 语言编写,
3、程序采用模块化设计方案,包括液初始化程序、晶显示程序、键盘控制程序。本系统 PWM 控制直流电机采用调压调速的方法,整体设计包括软件和硬件两个局部。通过利用单片机产生 PWM 控制信号控制直流电机,详细介绍脉宽调制 ( PWM) 控 制原理,直流电机的工作原理和数学模型以及用 H 型桥电路根本原理设计的驱动电路。 通过硬件电路的模拟情况,说明系统运行正常,各个功能模块实现是可行的,控制精度比拟高,能够满足系统的根本要求。关键词:关键词:单片机 PWM 脉宽调制控制 直流电机 L298N 驱动一、 设计任务分析 .1二、 总体方案设计 .12.1 系统控制方案选择.12.2 电机驱动模块.62.
4、3 显示模块.82.4 测压模块.102.5 按键模块.112.6 测速模块.12三、 系统软件设计 .143.1 系统流程.143.2 显示模块软件设计.153.3 按键驱动程序设计.153.4 测压程序设计.173.5 测速模块程序设计.173.6 上位机数字 PI 控制设计.173.7 马达的反电动势系数和力矩系数.183.8 马达数学模型.18四、 心得体会 .19五、 参考文献 .201 1、设计任务分析设计任务分析本课题设计主要的目的是为了能够准确及时的控制直流电动机的正转、反转、停顿、加速和减速功能可以准确调节控制直流电机的转速。设计要求中央控制芯片具有定时计数的功能,一定的程序
5、存储空间,还要有足够的 IO 外接端口。由于本设计以LCD12864 作为人机交流的显示界面,所以要求中央控制芯片具有一定的电流驱动能力。LCD、电机控制信号、LED 指示灯、独立按钮,电压采集这些都需要占用大量 IO 接口,所以要求中央控制芯片要有足够多的外部接口以满足需要。本设计要求能准确控制电机的转向以及转速,所以要求电机的控制芯片就有较强的调速控制功能以及转向控制功能。本设计要求所采用的的直流电机转速具有一定的可调空间以及足够的灵敏度。2 2、总体方案设计总体方案设计2.1 2.1 系统控制方案选择系统控制方案选择方案 1:采用 STC 公司的 STC89C52RC。此单片机价格低,资
6、源多,高性价比,应用广泛,无论是从部构造,还是编程方面,51 系列单片机都相对简单容易掌握和使用。 方案 2:STC12C5A60S2 不但和 8051 指令、管脚完全兼容,而且速度快 8-12 倍。部集成 MA*810 专用复位电路,2 路 PWM,8路高速 10 位 A/D 转换(250K/S)。STC 系列单片机支持串口程序烧写,对开发设备的要求很低,开发时间也大大缩短。由于本设计需要检测电机电路的电流,而且要与上位机通信,方案 2 的 stc12C5A60S2 芯片具有 2 个串口,部集成 8 路高速 10位 A/D 转换(250K/S),能更好地实现我们需要的功能,所以我们选取方案
7、2,即 STC12C5A60S2 芯片作为我们的控制芯片。以下是 STC12C5A60S2 芯片的功能1.增强型 8051CPU,1T,单时钟/机器周期,指令代码完全兼容传统 8051;2.工作电压:STC12C5A60S2 系列工作电压:5.5V-3.3V5V 单片机STC12LE5A60S2 系列工作电压:3.6V-2.2V3V单片机 ;3.工作频率围:0-35MHz,相当于普通 8051 的 0420MHz;4.用户应用程序空间 8K/16K/20K/32K/40K/48K/52K/60K/62K 字节;5.片上集成 1280 字节 RAM;6.通用 I/O 口36/40/44 个 ,复
8、位后为:准双向口/弱上拉普通 8051 传统 I/O 口 ,可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏,每个 I/O 口驱动能力均可到达 20mA,但整个芯片最大不要超过 55Ma;7.ISP在系统可编程/IAP在应用可编程 ,无需专用编程器,无需专用仿真器可通过串口P3.0/P3.1直接下载用户程序,数秒即可完成一片;8.有 EEPROM 功能(STC12C5A62S2/AD/PWM 无部 EEPROM);9.看门狗;10.部集成 MA*810 专用复位电路外部晶体 12M 以下时,复位脚可直接 1K 电阻到地 ;11.外部掉电检测电路:在 P4.6 口有一个低压
9、门槛比拟器,5V单片机为 1.32V,误差为+/-5%,3.3V 单片机为 1.30V,误差为+/-3%;12.时钟源:外部高精度晶体/时钟,部 R/C 振荡器(温漂为+/-5%到+/-10%以)1 用户在下载用户程序时,可选择是使用部 R/C振荡器还是外部晶体/时钟,常温下部 R/C 振荡器频率为:5.0V单片机为:11MHz15.5MHz,3.3V 单片机为:8MHz12MHz,精度要求不高时,可选择使用部时钟,但因为有制造误差和温漂,以实际测试为准;13.共 4 个 16 位定时器两个与传统 8051 兼容的定时器/计数器,16 位定时器 T0 和 T1,没有定时器 2,但有独立波特率发
10、生器做串行通讯的波特率发生器,再加上 2 路 PCA 模块可再实现 2个 16 位定时器;14.2 个时钟输出口,可由 T0 的溢出在 P3.4/T0 输出时钟,可由 T1 的溢出在 P3.5/T1 输出时钟;15.外部中断 I/O 口 7 路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的 PCA 模块,INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,R*D/P3.0,CCP0/P1.3(也可通过存放器设置到 P4.2),CCP1/P1.4(也可通过存放器设置到 P4.3);16.PWM(2 路/PCA可编程计数器阵列,2 路也可用来当 2 路 D/A 使用
11、 也可用来再实现 2 个定时器 也可用来再实现 2 个外部中断(上升沿中断/下降沿中断均可分别或同时支持); 17.A/D 转换, 10 位精度 ADC,共 8 路,转换速度可达250K/S(每秒钟 25 万次)18.通用全双工异步串行口(UART),由 STC12 系列是高速的 8051,可再用定时器或 PCA 软件实现多 串口; 19. STC12C5A60S2 系列有双串口,后缀有 S2 标志 的才有双串口,R*D2/P1.2(可通过存放器设置到 P4.2), T*D2/P1.3(可通过存放器设置到 P4.3); 20.工作温度围:-40 - +85(工业级) / 0 - 75 (商 业
12、级)21.封装:PDIP-40,LQFP-44,LQFP-48 I/O 口不够时,可用 2 到 3 根普通 I/O 口线外接 74HC164/165/595均可级联来扩展 I/O 口, 还可用 A/D做按键扫描来节省 I/O 口,或用双 CPU,三线通信, 还多了串口。 STC12C5A60S2 的引脚如图 2-1 所示图 2-1最小系统包括系统时钟电路,复位电路、单片机芯片引脚借口,保证了单片机能够正常的工作。如图 2-2 所示图 2-22.2 2.2 电机驱动模块电机驱动模块用普通直流电机。直流电机运转平稳精度有一定的保证。直流电机控制的准确度虽然没有步进电机那样高但完全可以满足此题目的要
13、求。通过单片机的 PWM 输出同样可以控制直流电机的旋转速度实现电动车的速度控制。并且直流电机相对于步进电机价格经济。采用电机驱动芯片 L298N。L298N 为单块集成电路高电压、高电流、四通道驱动,可直接的对电机进展控制,无须隔离电路。通过单片机的 I/O 输入改变芯片控制端的电平即可以对电机进展正反转、停顿的操作,非常方便,亦能满足直流减速电机的大电流要求。调试时在依照芯片手册,用程序输入对应的码值,能够实现对应的动作。图 2-3图 2-4本工程驱动直流电机,实现电机的正反转与测速和遥控。输入输出逻辑表真值表 2-5通道 1通道 2输入输出控制电机 1输入输出控制电机 2EnAIn1In
14、2OUT1OUT2转向EnBIn3In4OUT3OUT4转向0000停顿0000停顿0101反传0101反传1010正转1010正转11100停顿11111停顿0*00停顿0*00停顿其中“0为低电平;“1 为高电平;“* 为任何状态。表 2-5 L298N 输入输出逻辑真值表2.3 2.3 显示模块显示模块显示模块我使用了 lcd12864 液晶屏。带中文字库的 12864 是一种具有 4 位/8 位并行、2 线或 3 线串行多种界面方式,部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为 12864,置 8192 个 16*16 点汉字,和 128 个 16*8 点AS
15、CII 字符集.利用该模块灵活的界面方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示 84 行 1616 点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不管硬件电路构造或显示程序都要简洁得多,且该模块的价格也略低于一样点阵的图形液晶模块。图 2-6 LCD12864 与单片机连线图2.3.1 上位机通信另外,我们也使用 VB 软件做了上位机与单片机通信。通过上位机界面更好地实现人机沟通。Visual Basic 是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB 都是世界上
16、使用人数最多的语言不仅是盛赞 VB 的开发者还是抱怨 VB 的开发者的数量。它源自于 BASIC 编程语言。VB 拥有图形用户界面GUI和快速应用程序开发RAD系统,可以轻易的使用 DAO、RDO、ADO 连接数据库,或者轻松的创立 Active*控件。程序员可以轻松的使用 VB 提供的组件快速建立一个应用程序。 图 2-7 上位机界面2.4 2.4 测压模块测压模块由于我们采用的系统芯片部集成 AD 转换功能,所以我们直接通过在与驱动模块 moto 串联电阻,由 P1.7 口来检测电机的电压。图 2-8 测压电路2.5 2.5 按键模块按键模块键盘模块中,我采用独立式按键电路。特点:1每个键
17、独立地接入一根数据输入线。2平时所有的数据输入线都连接成高电平;3当任何一个按键压下时,与之相连的数据输入线被拉成低电平。4要判断是否有键按下,只要位处理指令即可。独立连接式键盘优点是构造简单、使用方便,但随着键数的增多,所占用的 IO 口线也增加。该系统的键盘由 4 个独立键盘构成。键盘的一脚接在单片机的 P1.0 至 P1.4 脚上,另外一脚接在电源地上,当有键盘按下时对应的键盘就会有一低电平送到单片机部。为消除触点式按键开关的机械抖动,单片机部有程序进展消抖处理,然后确定那一个键盘被按下后来执行 程序完成该系统的指定工作。按键键盘原理图如下图:图 2-9 按键图2.6 2.6 测速模块测
18、速模块我们使用光电编码器来检测电机的转速。光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。这是目前应用最多的传感器,光电编码器是由光栅盘和光电检测装置组成。光栅盘是在一定直径的圆板上等分地开通假设干个长方形孔。由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转,经发光二极管等电子元件组成的检测装置检测输出假设干脉冲信号,通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。图 2-10 测速模块3 3、系统软件设计系统软件设计3.13.1 系统流程系统流程图 3-1 3.23.2 显示模块软件设计显示模块软件设计3.2.13.2.1 LC
19、D12864LCD12864 显示程序设计显示程序设计void lcd_init() LCD_PSB = 1; /并口方式 write_(0*30); /根本指令操作 write_(0*0C); /显示开,关光标 write_(0*01); /去除 LCD 的显示容通过初始化程序使 lcd12864 开场工作3.2.23.2.2 上位机通信显示上位机通信显示下面是 VB*段程序:图 3-23.33.3 按键驱动程序设计按键驱动程序设计void work() /电机工作状态 if(zz=0)/正转 delay(10); if(zz=0) t=1;t2=1; if(fz=0) /反转 delay(
20、10);if(fz=0) t=2;t2=2; if(jias=0) /加速 delay(10);if(jias=0)t=3;if(jians=0) /减速delay(10);if(jians=0) t=4; if(tz=0) /停delay(10);if(tz=0) t=5;switch(t)case 1:zhengzhuan();break;case 2:fanzhuan();break;case 3:jiasu();break;case 4:jiansu();break;case 5:stop();break;default:t=0;3.43.4 测压程序设计测压程序设计我们采用系统芯片部
21、 AD 转换模块,在单片机 P1.7 口检测电机电压,然后通过计算得出电机电枢电流。程序计算公式: VAL=ADC_RES*4+ADC_RESL; /AD 转换值 VOL=(VAL*4.78)/1024; /AD 转换的测得值3.53.5 测速模块程序设计测速模块程序设计通过外部中断 0 检测光电编码器的上下电平变化,从而计算出转速脉冲,通过公式得出转速。每秒计数一次脉冲数 w2,电机每转一圈就有 10 个脉冲,所以转速N=w2*60/10=w2*6/转速 r/min3.63.6 上位机数字上位机数字 PIPI 控制设计控制设计使用逼近算法,每隔一秒比拟一次测得转速值与输入转速值的大小,然后发
22、出加速或减速指令给单片机,让单片机控制电机的转速追随输入值。3.73.7 马达的反电动势系数和力矩系数马达的反电动势系数和力矩系数数据:图 3-3反电动势系数Ce=3.4-2.4/400-250+4.6-1.6/720-100/2=0.0058 V/rpm电压/V4.63.42.41.6转速/R/MIN720400250100力矩系数 CM=9.55*Ce=9.55*0.0058=0.055 V/rpm3.83.8 马达数学模型马达数学模型电机动态构造图如下图 3-4其开环传递函数是 3-1) 1()()()(2sTsTTKsUsUsWmlSnn设 =0,从给定输入作用上看,闭环传递函数是d0
23、I3-111)(1T)1 (ssns23p*nclsKTTsKTTTsKTTKCKKUWsmslmslmes)()()(24 4、心得体会心得体会经过两周的课程设计,有很多新的感受和体会。这次采用的STC12C5A60S2 单片机,是我不熟悉的芯片,我一边翻阅芯片资料一边设计电机系统,虽然开场有点痛苦,可是其中的乐趣确实让我很享受。这次液晶显示屏采用了 LCD12864,并且使用了上位机通信,让我在更加深入了解单片机工作原理的同时,也学到了一点 VB 软件程序设计的知识。 当然,在这次课程设计中也出现了不少问题。我们采取了模块化编程解决了多文件系统问题,在变量用于多个文件的问题上,我们采取了头文件声明全局变量的方法。这次课程设计,既是对以往所学的单片机编程知识和电力拖动自动控制系统的一次总结,也是一次考验!5 5、参考文献参考文献1 庆亮. C 语言程序设计实用教程. 机械工业2 王新颖. 单片机原理及应用设计. 大学3 伯时. 电力拖动自动控制系统运动控制系统机械工业4 王兆安. 电力电子技术. 机械工业5 胡学钢. 数据构造算法设计指导. :清华大学