版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一设计目的本设计是要利用89C52单片机PWM调速电路实现小功率直流电机的转速调节。 本系统必须符合以下几点要求:(1)在(1000-5500)转/分内对直流电机进行任意调速,最小调速级差为1转/ 分。(2)电机能再所设速度下稳定运转,运转速度与设定速度之差小于土 20转/分。(3)电机启动和加减80%额定负载时,其转速能迅速回到设定值,转速超调土 5% 内。下面,本文将从硬件和软件两方面按系统功能要求进行设计。二方案设计2.1单片机部分器件接口电路图1单片机接口电路本设计采用的是STC的89C52单片机,选用STC的单片机是因为它是宽电压供电, 工作电压范围为5.5V-3.4V,比起一般51
2、系列单片机的更能有效的避免 电源抖动所带来的问题。晶振选用石英晶振,频率为20MHz,比起传统的12MHz能更 快的处理速度。在第九脚RST,复位脚为,加了一个复位按键和违法电路,复位原理为:第一次上到是,+5V通过给电容充电,于是此时电容相当于短路,+5V直接加到RST上,单片机自动复位。过了极短的时间,电容充电完毕,此时电容则相当于开路, 于是RST脚被电阻R113拉为低,单片机开始正常工作。当RESET键按下时,+5V通过按键加到RST脚,单片机复位,RESET键弹起之后,RST脚重新被R113拉为低,单片机开始正常工作。单片机供电方面,采用的是12V直流通过7805三端稳压器稳压到5V
3、,给单片机 和显示部分供电。2.2按键输入电路图2按键输入电路本设计中,按键输入比较简单,就是在按键信号输入I/O 口与地线间串接一按键。 在按键没有按下的情况下,I/O 口悬空,所以为高;当按键按下后,地线的把I/O 口 的店铺拉低,单片机便可识别有键按下。2.3 PWM驱动电路首先简单介绍一下PWM工作原理:如图所示,R21为P1.1 口的上拉电阻,R20为限流电阻。当P1.1 口为低时,8050基极电压被拉低,此时8050截止,所以9012基极为高, 9012截止,电机两端没有电压。当P1.1 口为高时,8050基极电压也为高,于是8050导通,8050集电极电压为 低,此时9012基极
4、也为低,9012导通,+12V加到电机两端,电机开始转动。所以,当P1.1 口为高时,电机两端电压也为高;P1.1 口为低时,电机两端电压 也为低。于是当P1.1 口产生PWM信号输出时,电机两端会产生同样的PWM波形,从 而达到调节电机转速的目的。关于上拉电阻的喧嚣,上拉电阻的选取取决于两方面,一方面是否能保护单片机 I/O 口过流,第二方面就是能否提供给负载所需大小电流。首先分析保护I/O 口方面, P1-P3 口能承受的灌电流(输入电流)最大能达到6mA,所以上拉电阻的阻值必须大 于5V/6mA=0.8K,故选用10K电阻,远大于0.8K,所以能有效的保护单片机I/O 口; 再来看看10
5、K电阻的上拉电阻能否提供所需要的电流呢?假设电机工作电流为100mA (事实上远小于),9012的放大倍数按60倍计算的话,那么9012的基极,也就是8050 的集电极最少得提供1.6mA的电流才能使9012达到饱和。如果按8050能放大100倍 的话,也就是说8050的基极至少得提供16uA的电流才能使8050饱和,事实上,10K 的上拉电阻,加上I/O 口的限流电阻,能提供(5-0.7) V/13.3K=350uA,远大于所需 要的16uA,所以完全能提供足够的电流。再看看串接在9012的基极和8050的集电极间的电阻R19。它的作用是限流,假 如不加这个电阻,那么当单片机口为高时,805
6、0,,912均饱和,此时可以认为12V 之间对地短路(虽然有9012的BE结,会产生零点几伏的压降,但是它们没有限流的 作用,还是可以认为电源之间对地短路),所以加上次电阻很有必要。图中D3二级管的作用:在这个PWM电路中,此二极管为续流二极管,作用是续流和消除反电动势。电机 内部的转子是由线圈绕成的,所以可以看成是一个电感元件,在突然断电时,反电动 势很大,将近12V的两倍以上,如果不加续流二极管的话,9012很可能被击穿,由于 负的反电压的产生,使电机两端的直流平均电压接近0V,电机不会转动,只会不停的 颤动并发出呜呜的声音,器本身也会有危险。而加了续流二极管后,反向电势通过二 极管和电机
7、重新形成回路,消除了反电动势,且能是电机上电流不中断,维持正常运 转。2.4测速电路先介绍光电开关,如图,光电开关分为两个部分,一部分用来发送,另一部分负 责接收。发生部分V2是一个发光二级管,而接收部分V1是一个光敏NPN三极管。当 光路通畅是,V1的基极能接收到V2发出的光,于是V1的BE上就会有电流的产生, V1导通,集电极输出为低,当光路被阻隔时,V1截止,所以集电极输出为高。从图中可以看出,为配合软件编程的需要,本系统加了一个起反向作用的三极管, 也就是说,V1集电极输出为高时,V3导通,于是V3的集电极输出为低;反正,V1 集电极输出为低,V3集电极输出为高。这里要注意的就是几个大
8、字阻值的选取:R25: 一般发光二极管的正向压降2V,驱动电流5mA左右,而电流最大不能超过 20mA,所以选取510的电阻作为其限流电阻,一来保证不会过流烧坏发光管,二来 也不会因电流太小而使光电开关不能正常工作。R22:此电阻串接在电源与三极管V1的集电极,它的选取之间影响到三极管是否 能达到饱和状态,我们知道,因光照所产生的光电电流很小,大概只有几微安的样子, 所以集电极电流不能太大,否则管子不能达到饱和。假设发光二极管正常工作需要的电流为5uA,那么三极管的放大倍数为100倍的 话,集电极电流就不能超过0.5mA,所以R22大小选取为10K,此时若基极有光照时, 集电极能正常拉低到地。
9、R24:为V3的集电极电阻,调速也为单片机INT1 口的上拉电阻。作用为保证V3 和单片机I/O 口不会过流,所以选用10K就能达到要求。图4测速电路三软件设计3.1编程环境由于汇编语言程序可读性和可移植性都较差,采用汇编语言编写单片机应用程序 不但周期长,而且调试和排错也比较困难。为了提高编制单片机应用程序的效率,改 善程序的可读性、可移植性,采用高级语言无疑是移植更好的选择。C语言是一种同 样的计算机程序设计语言,既具有一般高级语言的特点,又能直接对计算机的硬件进 行操作,表达和运算能力也比较强,许多以往只能采用汇编语言来解决的问题现在都 可以改用C语言解决。所以,本设计采用的是C语言编程
10、,利用KEILuvision4进行编译和仿真,使用 专用下载板将HEX文件烧录到89C52单片机中。3.2系统基本参数及流程本设计采用的是20M晶振,12分频,所以每个指令周期为T=0.6us,中断方面,本程序一共用了 3个中断源:定时器0,定时器2及外部中断1,它 们的优先级为:定时器0、外部中断1为高优先级,定时器2为低优先级。另外还用 了计数器1,用作计算脉冲宽度,与外部中断1 一起构成测速系统。3.3按键程序按键程序方面,主要是一个消抖动程序。消抖动程序是非常必要的,因为在平时 没有按下键的时候,有可能会从电源或者其他地方突然产生一个尖峰电压,打在单片 机检测按键的I/O 口上,令单片
11、机误以为有键按下了;或者是当人按下按键时候,如 果手抖动,就会引起按键的接触不良,从而可能在很短时间内通断多次,而导致单片 机的处理错误。消抖动程序就是针对这方面来设计的,具体是:当单片机检测到某一个按键按下 了,就延时100ms,在这100ms里不停的检测,如果中间检测到按键弹起了,则判为 干扰,不进行处理,如果100ms之后还是按下的话,那么就可以确定此键确实是被按 下了,然后就进行相应的处理。一般人按一下按键都有个200ms,所以延时100ms已 经足够了。程序流程图如下:3.4PWM程序因为电机调速是本次设计的最主要的任务,所以PWM程序也是程序中最重要的一 环。PWM的调速原理是通过
12、调节一个斩波周期中的脉冲占空比来调节电机功率而达到 调速目的。本设计中,PWM的斩波周期为1ms,那也就是说斩波频率为1KHz,在理论 上能达到1%。线性可调,也就是能以0.1%的调节精度来调节PWM占空比。PWM调速子程序是放在定时器0中断中进行的。可以看出,T0的中断级别为高, 因为PWM的脉冲宽度就是在中断程序里设定,如果此时被其他更高级别的中断打断, 那么脉冲宽度将不准确,从而导致控制转速失败。所以将其设为高的话,就不存在被 打断的问题了。下面是PWM的中断子程序:程序中,cut为PWM信号输出口,也就是P1.1 口,每进入一次中断,cut 口就反 向一次,而每次中断计时都有time0
13、_set确定,time0_set也就是脉冲宽度,有外部 赋给,范围从150-970,其值没增加1,电机转速就增加6圈/分,所以可以算出精度 1%。而实际上,我们选用的误差范围为20圈/分,精度为3%。但比起一般单片机自 带的PWM输出口的1%线性可调精度高多了。图5 PWM输出波形图1中为PWM输出波形图,A为占空比为95%时的波形,B为50%时的,C为5%时 的波形。从图中可以得出,当PWM输出A的波形时,电机将以全速运转;而输出B时, 电机则以50%的速度运转;而当输出C时,电机转动速度将非常慢,而且伴随着很大 的噪音和震动,可以感觉出电机内部的运转不连续。3.5测速系统程序测速是本设计的
14、另外一个重点。本设计中调速系统的工作原理为:利用电机轴上 带的圆盘的缺口,引起光电开关产生高电平脉冲,单片机就采集次脉冲的宽度,加以 计算,得出其实时速度。具体实现如下:平时缺口不在光电开关时,光电开关处于断开状态,输入到单片机电平为低,当 圆盘的缺口的其中一边刚运转到令光电开关接通时,单片机INT1 口电平跳变为高, 此时计数器1以内部时钟信号为周期开始计数,然后当圆盘转到缺口的另一边刚好令 光电开关断开时,单片机INT1 口此时一个下降沿信号,计数停止,并进入INT1中断 子程序,在中断里把脉冲宽度转存出来并经过运算,就可得出实时速度值。所以,测速程序得用到一个外部中断INT1,以及一个计
15、数器1。TOMD=10010001,前四位用于控制盒确定定时器/计数器1的功能和工作模式:第八位为门控位CATE,当GATE=1时,定时器/计数器1的启动要有外部中断引脚 和TP1位共同控制。只有当中断引脚INT1为高时,且TR1置1才能计数器工作。第 四位和第五位为01,则说明计数器1工作在方式1:全16位计数器,总共能计数65536 个时钟脉冲,也就是最多能计时39ms。外部中断1中断服务子程序如下:函数中,TH1_1, TL1_1就是存放计数器1的计数值的缓冲区,当它们从TH1和 TL1中取得数值之后,TH1和TL1随即被清零,为下一次计数做好准备。这段函数的意思就是,将测得的连续6个不
16、为零的脉冲宽度取平均值,以消除偶 然的稳定因素,使转速显示更加稳定。3.6 PID调节程序PID调节计算公式如下:YK二KP*EK+K1*EK2YK:要输出的数据增量EK :设定值和实测值的差值EK1:上次的EK值EK2: EK-EK1 的差值KP:比例系数(本程序中设KP=1.6)KI:积分系数(本程序中设KI=1.5)由于在本电机调速系统中,仅使用PI调节便足以达到理想的精度和超调量,所 以就不必加上微分项。凑试的经过就是先将KI项设为0,然后将KP设为1,如果系统稳定,就按每次 +0.1往上加,结果表明,在KP=1.7的时候,调速系统失控,电机一直保持全速运转, 所以为了使调节速度达到最
17、大,就将KP设为1.6,但是此时系统非常不稳定,速度值 一直在土 1000转上下跳动,于是将KI设为2,系统马上稳定下来,在按每次-0.1的 差值往下减,经过多次尝试,得出KI=1.5为最佳积分值。此时,系统处于最佳运行状态,实验中表现为:电机原来速度为2000,当设置为 4500转时,可以在2秒之内迅速上升并稳定于4500土 20,而超调量也仅为+300转/ 分,出现在第一次上升的时候,下来之后便趋于稳定了。四参数测试及性能分析本系统拥有测试的方法是策略缺口所引起的脉冲宽度值,由于使用计数器,所以 必然存在一个溢出问题,单片机的晶振频率为20MHz,所以一个机器周期为0.6us, 一个16位
18、计数器最多能计数2”16个机器周期,所以最初能计数2”16*0.6us的时间, 也就是39.3ms,就是说,当缺口的一边触发了计数器,但是在39.3ms的时间内还不 能转到另外一边是计数器停止,那么计数器将溢出,单片机就自动识别速度为0,那么此时的速度就将无法识别。PWM的斩波控制精度:PWM频率为1KHz,电机最大速度为6000转/分,此时对应PWM占空比为100%。当转速稳定时,在PI调节的作用下,真实转速和设定转速的差值控制在 20rad/min,也就是说误差范围在土 3%以内。下面是速度变化时的超调量的表格和其对应的超调曲线图:表1:速度变化时的峰值序号初始转速设定转速峰值L峰值2总用
19、时八115003000310QC+100)2970 (-30)22200040004120(+120)3980 (-20)2. 23150050005100( + 100)4960 Kb2. 34400020001862(-138)2030 (+3。)2. 45500015001315(-185)1523 (+23)2. 76双030002300(-700)3100 4-100?2. 9转速Rd/MIN转速Rd/MIN50C06000-时间/S05控制超调量,是由程序中的PI()函数控制的,从表中和图中我们能看出,速度 处于上升时候的稳定性明显比下降时的要好,尤其是速度从5000下降到3000
20、的时候, 超调量竟然达到700。分析原因的话,可能是由于惯性作用所导致的这种情况:由于 电机的转子和外接轮盘具有很大的惯性,特别是再速度很快的时候,而下降的时候, 控制器是让其速度自由滑落,所以当速度达到设定值得时候,还具有很大惯性,所以 就会引起比较大的超调量。五总结在设计中,使用89C52单片机输出PWM信号实现对小功率直流电机进行调速,系 统有按键设定转速,通过光电开关测速,将测得的速度反馈给单片机,经PI运算后 输出PWM信号确定斩波调压电路,然后控制电机形成闭环控制。本本还对本系统的超 调量、控制精度、控制速度等方面做了详细的分析。通过这次设计,对单片机的指令结构,接口电路,C语言的
21、编程技巧,以及和电 机控制相关的知识都有了更深的理解。同时也深刻体会到了基础知识的重要性,比如 电路基础里面的L,C电路及暂态构成,电子技术里的三极管放大,高等数学里的微积 分等等。掌握固定的基础知识,是对学习新技术的保障,更是开发的前提。参考文献【1】电动机的单片机控制王晓明 北京航空航天大学出版社【2】MCS-51系列单片机原理与接口技术李玉峰、倪虹霞 人民邮电出版社【3】80C51系列单片机C语言设计完全手册求是科技 人民邮电出版社【4】51单片机C语言应用程序设计实例精讲戴佳、戴卫恒 电子工业出版社程序清单#include#indludevoid clear_shake()if(nn=
22、0)n=0;if(nn1=0)nn=1;if(shake=0&n=100)/shake 就是被按下的键 shake=1;nn1=1;nn=0;Void time0_int(void) interrupt 1TH0=(time0_tmp/256);TLO=(time0_tmp%256);if(cut=1)time0_tmp=65536-time0_set*20/12;cut=0;elsetime0_tmp=65536-(time0_set)*20/12;cut=1;void out1_int(void) interrupt 2IE1=0;EX1=0;TR1=0;TH1_1=TH1;TL1_1=T
23、L1;TH1=0TL1=0;M=1;void getwidth_1()TH1=0;TL1=0;Int n=0;Int n1=n;while(INT1=1&(n-n1)30)/n 为每 1ms+2if(INT1=0)TR1=1;/计数器1打开Elsegoto out;/IE1=0;/中断请求标志EX1=1;/外部中断1启动n=0;n1=n;while(m=0&(n-n1)30)if(m=0)/m=1,则已经进入out_int1中断,若等于0,则说明30ms延时已过TH1_1=0;TL1_1=0;out:IE1=0;/中断请求标志M=0;EX1=0;/外部中断允许位TR1=0;width_1= (
24、 TH1_1*256+TL1_1);/timepr=M 冲宽度/usvoid getwidth()int gw,gw1;width=0;gw1=0;for(gw=0;gw6;gw+)GG:getwidth_1();If(width_1!=0)Widthbufgw=width_1;elsegoto GG;Width=(widthbuf0+widthbuf1+widthbuf 2 +widthbuf3+widthbuf4+widthbuf5)/6;void PI()EK1=EK;EK=speed_set-speed;EK2=EK-EK1;if(PIn=0)EK2=1000;PIn+;YK=KP*EK+KI*EK2;Void main()int time0_set,time0_tmp;/T0T0用作斩波ET0=1;/中断允许位time0_set=300;time0_tmp=65536-(time0_set)*fosc/12;TH0=(time0_tmp/256);TL0=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026河南空港数字城市开发公司招聘20人笔试历年难易错考点试卷带答案解析
- 2026榆林府谷县属国企选聘(35人)笔试历年备考题库附带答案详解
- 2026年福建省五建建设集团有限公司招聘项目制工作人员30人笔试历年常考点试题专练附带答案详解
- 2026年安徽青硕建设有限公司招聘工作人员9人笔试历年常考点试题专练附带答案详解
- 2026山东菏泽市人民政府国有资产监督管理委员会招聘市属企业工作人员60人笔试历年难易错考点试卷带答案解析
- 2026四川乐山市市中区国有企业招聘员工47人笔试历年备考题库附带答案详解
- 2026云南保山永昌教育发展有限公司招聘12人笔试历年备考题库附带答案详解
- 2026中国中车西安车辆有限公司招聘(151人)笔试历年常考点试题专练附带答案详解
- 2026年浙江省平湖市高二化学下册期末考试模拟试卷及完整答案(网校专用)
- 2026及未来5年中国电动恒温培养箱市场数据分析及竞争策略研究报告
- 2026年内蒙古自治区专业技术人员继续教育【公需课】考试及答案
- 护理领导力:引领护理团队的方向
- 2026年师德师风教育《筑牢师德师风根基培育铸魂育人之师》(课件+文字稿)
- 燃气有限公司安全生产风险分级管控制度
- 江西中考:地理高频考点
- IT系统服务器硬件维护操作手册
- 发电厂巡视检查工作制度
- 2026年高校辅导员招聘考试题库及答案
- 2026年腹腔术后引流管的护理课件
- 2024云南特岗生物考前突击必做模拟题及踩分点详解答案
- 部编版六年级语文上册基础知识默写单(1-8单元)含答案
评论
0/150
提交评论