单片机AT9S直流电机PWM调速控制系统.docx
- 文档编号:4708288
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:15
- 大小:257.17KB
单片机AT9S直流电机PWM调速控制系统.docx
《单片机AT9S直流电机PWM调速控制系统.docx》由会员分享,可在线阅读,更多相关《单片机AT9S直流电机PWM调速控制系统.docx(15页珍藏版)》请在冰豆网上搜索。
单片机AT9S直流电机PWM调速控制系统
单片机课程设计
题目:
直流电机调速系统的设计
学院:
电气与电子项目
专业:
自动化
班级:
100304
组长:
徐鹏20180883
组员:
徐洋20180885
许佩东20180886
于思雨20180888
韩振帅
指导教师:
白文峰
2018年6月7日
第一章:
摘要
1.1摘要:
直流电机的定义:
将直流电能转换成机械能(直流电动机>或将机械能转换成直流电能(直流发电机>的旋转电机。
近年来,随着科技的进步,直流电机得到了越来越广泛的应用,直流具有优良的调速特性,调速平滑,方便,调速范围广,过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速起动、制动和反转,需要满足生产过程自动化系统各种不同的特殊要求,从而对直流电机提出了较高的要求,改变电枢回路电阻调速、改变电压调速等技术已远远不能满足现代科技的要求,这是通过PWM方式控制直流电机调速的方法就应运而生。
采取传统的调速系统主要有以下的缺陷:
模拟电路容易随时间飘移,会产生一些不必要的热损耗,以及对噪声敏感等。
而用PWM技术后,避免上述的缺点,实现了数字式控制模拟信号,可以大幅度减低成本和功耗。
并且PWM调速系统开关频率较高,仅靠电枢电感的滤波作用就可以获得平滑的直流电流,低速特性好;同时,开关频率高,快响应特性好,动态抗干扰能力强,可获很宽的频带;开关元件只需工作在开关状态,主电路损耗小,装置的效率高,具有节约空间、经济好等特点。
随着我国经济和文化事业的发展,在很多场合,都要求有直流电机PWM调速系统来进行调速,诸如汽车行业中的各种风扇、刮水器、喷水泵、熄火器、反视镜、宾馆中的自动门、自动门锁、自动窗帘、自动给水系统、柔巾机、导弹、火炮、人造卫星、宇宙飞船、舰艇、飞机、坦克、火箭、雷达、战车等场合。
直流电机工作原理
直流电机电路模型如图3.1所示,磁极N、S间装着一个可以转动的铁磁圆柱体,圆柱体的表面上固定着一个线圈abcd。
当线圈中流过电流时,线圈受到电磁力作用,从而产生旋转。
根据左手定则可知,当流过线圈中电流改变方向时,线圈的受方向也将改变,因此通过改变线圈电路的方向实现改变电机的方向。
图3.1直流电动机电路模型
直流电机PWM调速原理
<1)直流电机转速
直流电机的数学模型可用图3.2表示,由图可见电机的电枢电动势Ea的正方向与电枢电流Ia的方向相反,Ea为反电动势;电磁转矩T的正方向与转速n的方向相同,是拖动转矩;轴上的机械负载转矩T2及空载转矩T0均与n相反,是制动转矩。
图3.2直流电机的数学模型
根据基尔霍夫第二定律,得到电枢电压电动势平衡方程式1.1:
U=Ea-Ia 式1.1中,Ra为电枢回路电阻,电枢回路串联保绕阻与电刷接触电阻的总和; Rc是外接在电枢回路中的调节电阻。 由此可得到直流电机的转速公式为: n=Ua-IR/CeΦ……………………………………………式1.2 式1.2中,Ce为电动势常数,Φ是磁通量。 由1.1式和1.2式得 n=Ea/CeΦ………………………………………………式1.3 由式1.3中可以看出,对于一个已经制造好的电机,当励磁电压和负载转矩恒定时,它的转速由回在电枢两端的电压Ea决定,电枢电压越高,电机转速就越快,电枢电压降低到0V时,电机就停止转动;改变电枢电压的极性,电机就反转。 <2)PWM电机调速原理 对于直流电机来说,如果加在电枢两端的电压脉动电流压<要求脉动电压的周期远小于电机的惯性常数),可以看出,在T不变的情况下,改变T1和T2宽度,得到的电压将发生变化。 图3.3为施加不同占空比时实测的数据绘制所得占空比与转速的关系图。 图3.3占空比与电机转速的关系 由图看出转速与占空比D并不是完全速的线性关系<图中实线),原因是电枢本身有电阻,不过一般直流电机的内阻较小,可以近视为线性关系。 由此可见,改变施加在电枢两端电压就能改变电机的转速成,这就是直流电机PWM调速原理。 1.2本设计任务: 任务: 单片机为控制核心的直流电机PWM调速控制系统 设计的主要内容以及技术参数: 功能主要包括: 1)直流电机的正转; 2)直流电机的反转; 3)直流电机的加速; 4)直流电机的减速; 5)直流电机的转速在数码管上显示; 6)直流电机的启动; 7)直流电机的停止; 第二章: 总体设计方案 总体设计方案的硬件部分详细框图如图一所示。 键盘向单片机输入相应控制指令,由单片机通过P1.0与P1.1其中一口输出与转速相应的PWM脉冲,另一口输出低电平,经过信号放大、光耦传递,驱动H型桥式电动机控制电路,实现电动机转向与转速的控制。 电动机的运转状态通过数码管显示出来。 电动机所处速度级以速度档级数显示。 正转时最高位显示“三”,其它三位为电机转速;反转时最高位显示“F”,其它三位为电机转速。 每次电动机启动后开始显示,停止时数码管显示出“0000”。 1、系统的硬件电路设计与分析 电动机PWM驱动模块的电路设计与实现具体电路见下图。 本电路采用的是基于PWM原理的H型桥式驱动电路。 PWM电路由复合体管组成H型桥式电路构成,四部分晶体管以对角组合分为两组: 根据两个输入端的高低电平决定晶体管的导通和截止。 4个二极管在电路中起防止晶体管产生反向电压的保护作用,防止电动机两端的电流和晶体管上的电流过大的保护作用。 在实验中的控制系统电压统一为5v电源,因此若复合管基极由控制系统直接控制,则控制电压最高为5V,再加上三极管本身压降,加到电动机两端的电压就只有4V左右,严重减弱了电动机的驱动力。 基于上述考虑,我们运用了TLP521-2光耦集成块,将控制部分与电动机的驱动部分隔离开来。 输入端各通过一个三极管增大光耦的驱动电流;电动机驱动部分通过外接12V电源驱动。 这样不仅增加了各系统模块之间的隔离度,也使驱动电流得到了大大的增强。 在电动机驱动信号方面,我们采用了占空比可调的周期矩形信号控制。 脉冲频率对电动机转速有影响,脉冲频率高连续性好,但带带负载能力差脉冲频率低则反之。 经实验发现,当电动机转动平稳,但加负载后,速度下降明显,低速时甚至会停转;脉冲频率在10Hz以下,电动机转动有明显跳动现象。 而具体采用的频率可根据个别电动机性能在此范围内调节。 通过P10输入高电平信号,P11输入低电平,电机正转;通过P10输入低电平信号,P11输入高电平,电机反转;P10、P11同时为高电平或低电平时,电机不转。 通过对信号占空比的调整来对电机转速进行调节。 2、系统的软件设计 本系统编程部分工作采用KELI-C51语言完成,采用模块化的设计方法,与各子程序做为实现各部分功能和过程的入口,完成键盘输入、按键识别和功能、PWM脉宽控制和数码管显示等部分的设计。 单片机资源分配如下表: P0 显示模块接口 键盘中断 P1 键盘模块接口 P1.0/P1.1 PWM电机驱动接口 系统时钟 ①PWM脉宽控制: 本设计中采用软件延时方式对脉冲宽度进行控制,延时程序函数如下: /*****************延时函数*************************/ delays(> { uchari。 for(i=5000。 i>0。 i-->。 } ②键盘中断处理子程序: 采用中断方式,按下键,完成延时去抖动、键码识别、按键功能执行。 要实现按住加/减速键不放时恒加或恒减速直到放开停止,就需在判断是否松开该按键时,每进行一次增加/减少一定的占空比。 ③显示子程序: 利用数组方式定义显示缓存区,缓存区有8位,分别存放各个数码管要显示的值。 ④定时中断处理程序: 采用定时方式1,因为单片机使用12M晶振,可产生最高约为65.5ms的延时。 对定时器置初值B1E0H可定时20ms,即系统时钟精度可达0.02s。 当20ms定时时间到,定时器溢出则响应该定时中断处理程序,完成对定时器的再次赋值,并对全局变量time加1,这样,通过变量time可计算出系统的运行时间。 3、软件设计中的特点: 对于电机的启停,在PWM控制上使用渐变的脉宽调整,即开启后由停止匀加速到默认速度,停止则因为当前速度逐渐降至零。 这样有利于保护电机。 键盘处理上采用中断方式,不必使程序对键盘反复扫描,提高了程序的效率。 第三章: 系统硬件电路设计 整体框图如下: 第四章: 系统功能调试 仿真整体图如下: 直流电机的调试功能仿真如下图: 1、正转时,电机正转,数码管最高位显示“三”,其它三位先所给定频率,如下图: 2、反转时,电机反转,数码管最高位显示“F”,其它三位先所给定频率, 第五章: 程序 见附件1 见附件2 第六章: 元件清单 见附件3 第七章: 心得体会 略 附件1 /***************基于单片机AT89C51的直流电机PWM调速控制系统*************/ #include #include #include /**************************/ /********自定义变量********/ #defineuintunsignedint//自定义变量 #defineucharunsignedchar chargw,sw,bw,qw。 ucharj。 //定时次数,每次20ms ucharf=5。 //计数的次数 sbitP10=P1^0。 //PWM输出波形1 sbitP11=P1^1。 //PWM输出波形2 sbitP12=P1^2。 //正反转 sbitP13=P1^3。 //加速 sbitP14=P1^4。 //减速 sbitP15=P1^5。 //停止 sbitP16=P1^6。 //启动 uchark。 uchart。 //脉冲加减 /**************************/* /*********控制位定义********************/ ucharcodesmg[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x73,0x71}。 //程序存储区定义字型码表 chardataled[4]={0x08,0x04,0x02,0x01}。 //位码 uintx。 //数码管显示的数值 display(>。 //数码管显示 delays(>。 //延时函数 key(>。 displays(>。 /*****************************************/ /***************主函数********************/ main(void> { TMOD=0x51。 //T0方式1定时计数T1方式1计数 TH0=0xb1。 //装入初值20MS TL0=0xe0。 TH1=0x00。 //计数567 TL1=0x00。 TR0=1。 //启动t0 TR1=1。 //启动t1 gw=sw=bw=qw=0。 //数码管初始化 P0=0xc0。 P2=1。 while(1>//无限循环 { display(>。 //数码管显示 key(>。 } } /*****************************************/ /***************数码管显示****************/ display(> { uchari。 gw=x%10。 //求速度个位值,送到个位显示缓冲区 sw=(x/10>%10。 //求速度十位值,送到十位显示缓冲区 bw=(x/100>%10。 //求速度百位值,送到百位显示缓冲区 qw=x/1000。 //求速度千位值,送到千位显示缓冲区 for(i=0。 i<4。 > { P2=led[i]。 if(i==0>//显示个位 { P0=smg[gw]。 delays(>。 } elseif(i==1>//显示十位 { P0=smg[sw]。 delays(>。 } elseif(i==2>//显示百位 { P0=smg[bw]。 delays(>。 } elseif(i==3>//显示千位 { if(k==0>//正转时显示"三" { P0=0x49。 delays(>。 } else { P0=0x71。 //反转时显示"F" } } i++。 } } /*******************************************************/ /*****************延时函数*************************/ delays(> { uchari。 for(i=5000。 i>0。 i-->。 } /************************************************/ /*********t0定时*中断函数*************/ voidt0(>interrupt1using2 { TH0=0xb1。 //重装t0 TL0=0xe0。 f--。 if(k==0> { if(f P10=1。 else P10=0。 P11=0。 } else { if(f P11=1。 else P11=0。 P10=0。 } if(f==0> { f=5。 } j++。 if(j==50> { j=0。 x=TH1*256+TL1。 //t1方式1计数,读入计数值 TH1=0x00。 TL1=0x00。 x++。 display(>。 } } /****************按键扫描**************/ key(> { if(P12==0>//如果按下, { while(! P12>//去抖动 display(>。 k=~k。 } if(P16==0>//启动 { while(P16==0>。 IE=0x8a。 } if(P13==0>//加速 { while(P13==0>。 t++。 } if(t>=5> t=5。 if(P14==0>//减速 { while(P14==0>。 t--。 } if(t<1> t=1。 if(P15==0>//停止 { while(P15==0>。 EA=0。 P10=0。 P11=0。 } } /******************************************************/ 附件2: 元件 数量<个) 元件 数量<个) 光电耦合器: TLP521-2 1 三极管8550 4 按键 5 三极管8050 5 自锁按键 1 1N4007 4 At89s52 1 四位一体数码管 1 12M晶振 1 电容104 1 Led 1 直流电机 1 电阻1K 3 电容22P 2 电阻10K 1 电解电容47P/16V 2 74LS04 1 下载口 1 参考文献 [1]王兆安等.电力电子技术[M].北京.机械工业出版社.2000年. [2]周渊深.交直流调速系统与MATLAB仿真[M].北京.中国电力出版社,2007年. [3]陈伯时.运动控制系统[M].北京.机械工业出版社.2003年. [4]黄家善等.电力电子技术[M].北京.机械工业出版社.2007年. [5]孙立志.PWM与数字化电动机控制技术应用[M].北京.中国电力出版社.2008年. [6]杨素行.模拟电子技术基础[M].高等教育出版社.2003年. [7]陈明荧.8051单片机基础教程[M].科学出版社.2003年. [8]康华光.电子技术基础数字部分[M].高等教育出版社.2004年. [9]李广第.单片机基础[M].北京航空航天大学出版社.1999年.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 AT9S 直流电机 PWM 调速 控制系统