直流电机测速系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告书
题目直流电机测速系统学院自动化学院
班级自动0702
姓名XX
目录
摘要 (03)
关键字 (03)
1 前言 (04)
2 系统设计 (05)
2.1直流电机调速原理................................(05 2.2电动机测速原理.. (07)
2.3电机转速控制系统软件设计.... . (09)
2.4 系统软件仿真图 (10)
3 心得体会 (11)
参考文献 (15)
·摘要
在电气时代的今天,电动机在工农业生产与人们日常生活中都起着十分重要的作用。直流电机作为最常见的一种电机,具有非常优秀的线性机械特性、较宽的调速范围、良好的起动性以及简单的控制电路等优点,因此在社会的各个领域中都得到了十分广泛的应用。
本文设计了直流电机测速系统的基本方案,阐述了该系统的基本结构、工作原理、运行特性及其设计方法。本系统采用PWM 测量电动机的转速,用MCS-51单片机对直流电机的转速进行控制。本设计主要研究直流电机的控制和测量方法,从而对电机的控制精度、响应速度以及节约能源等都具有重要意义。
·关键词:直流电机单片机 PWM 转速控制
1.前言
一.题目要求
设计题目:直流电动机测速系统设计
描述:利用单片机设计直流电机测速系统
具体要求:8051单片机作为主控制器、利用红外光传感器设计转速测量、检测直流电机速度,并显示。
元件:STC89C52、晶振(12MHz)、小按键、ST151、数码管以及电阻电容等
二.组内分工
(1)负责软件编写设计:主要由完成
(2)负责软件仿真及调试:主要由完成
(3)负责电路焊接:主要由完成
(4)撰写报告:主要由完成
2. 系统设计
(1) 直流电机调速原理
本设计的主要思想为利用PWM 控制占空比从而达到改变电机速度。下面为PWM 控制原理;
图1为PWM 降压斩波器的原理电路及输出电压波形。在图1a 中,假定晶体 管V 1先导通T 1,秒(忽略V 1的管压降,这期间电源电压Ud 全部加到电枢上),然
后关断T 2秒(这期间电枢端电压为零)。如此反复,则电枢端电压波形如图1b 中
所示。电动机电枢端电压Ua 为其平均值。
图1 PWM 降压斩波器原理电路及输出电压波形
a) 原理图 b)输出电压波形
1112a d d d T T U U U U T T T
α===+ (3) 式(3)中
1112T T T T T
α==+ (4)
α为一个周期T 中,晶体管V1导通时间的比率,称为负载率或占空比。使用下面三种方法中的任何一种,都可以改变α的值,从而达到调压的目的:
(1)定宽调频法:T1保持一定,使T2在0~∞范围内变化;
(2)调宽调频法:T2保持一定,使T1在0~∞范围内变化
(3)定频调宽法:T1+T2=T 保持一定,使T ,在0~T 范围内变化。
不管哪种方法,α的变化范围均为0≤α≤l ,因而电枢电压平均值Ua 的调节范围为0~Ud ,均为正值,即电动机只能在某一方向调速,称为不可逆调速。当需要电动机在正、反向两个方向调速运转,即可逆调速时,就要使用图1—2a 所示的桥式(或称H 型)降压斩波电路。
在图2a 中,晶体管V 1、V 4是同时导通同时关断的,V 2、V 3也是同时导通
同时关断的,但V 1与V 2、V 3与V 4都不允许同时导通,否则电源Ud 直通短路。设
V 1、V 4先同时导通T1秒后同时关断,间隔一定时间(为避免电源直通短路。该间
隔时间称为死区时问)之后,再使V 2、V 3同时导通T2秒后同时关断,如此反复,
则电动机电枢端电压波形如图2b 所示。
图2 桥式PWM 降压斩波器原理电路及输出电压波形
a)原理图 b)输出电压波形
电动机电枢端电压的平均值为
12112(21)(21)a d d d T T T U U U U T T T
α-==-=-+ (4) 由于0≤α≤1,Ua 值的范围是 -Ud ~+Ud ,因而电动机可以在正、反两个方向调速运转。
图3给出了两种PWM 斩波电路的电枢电压平均值的特性曲线()a U f α=。
图3两种斩波器的输出电压特性
(2)直流电动机测速原理
电机的叶轮置于红外对射管之间,叶轮转过,挡住传感器,产生中断,给单片机,从而实现计数,进而计算出电机的速度。
(3)电机转速控制系统软件设计
程序用C语言编写如下:
#include
unsigned char code TABLE[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void display();
#define uint unsigned int
#define uchar unsigned char
sbit output = P3^7; //P3^7接ULN2003
sbit key1 = P3^3;
int frq,speed;
char pwm;
int i=100;
uchar a;
uint frq1,c;
void display();
/*系统初始化*/
void initial(void)
{
TMOD = 0x20; //设置定时器0在工作方式2下EA = 1; //开中断
EX0 = 1; //外部中断0使能
ET1 = 1; //定时器1使能
IT0 = 1; //外部中断0下降沿触发
IT1 = 1; //外部中断1下降沿触发
TH0 = 56; //装载计数值
TL0 = 56;
TH1 = 56; //装载计数值
TL1 = 56;
TR1=1;
}
/*延时程序*/
void delay(unsigned int k)
{
unsigned int i,j;
for(i=0;i { for(j=0;j<121;j++){;} } } void display() { uchar qian,bai,shi,ge; qian=0; bai=0; shi=0; ge=0; c=frq1; qian=c/1000; bai=c/100%10; shi=c/10%10; ge=c%10; P1=0X01; P2=TABLE[qian]; delay(5);