电力拖动自动控制系统设计 精品.docx
- 文档编号:5076352
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:22
- 大小:350.11KB
电力拖动自动控制系统设计 精品.docx
《电力拖动自动控制系统设计 精品.docx》由会员分享,可在线阅读,更多相关《电力拖动自动控制系统设计 精品.docx(22页珍藏版)》请在冰豆网上搜索。
电力拖动自动控制系统设计精品
1.直流电机调速系统总体设计
1.1系统总体设计框图设计
方案说明:
直流电机PWM调速系统以STC89C52单片机为控制核心,由命令输入模块、测速模块、LCD显示模块及电机驱动模块组成。
采用带中断的独立键盘作为命令的输入,单片机在程序控制下,定时不断给L298直流电机驱动芯片发送PWM波形,测速系统把反馈数据给单片机,完成电机正、反转和急停控制;同时单片机不停的将测得的转速送到LCD完成显示。
直流电机调速系统总体框图见图1-1
图1-1系统总体框图
1.2PWM调速原理
所谓脉冲宽度调制是指用改变电机电枢电压接通与断开的时间的占空比来控制电机转速的方法,称为脉冲宽度调制(PWM)。
对于直流电机调速系统,使用FPGA进行调速是极为方便的。
其方法是通过改变电机电枢电压导通时间与通电时间的比值,即占空比,来控制电机速度。
PWM调速原理如图1-2所示:
图1-2PWM调速原理
在脉冲作用下,当电机通电时,速度增加,电机断电时,速度逐渐减少。
只要按一定规律,改变通、断电时间,即可让电机转速得到控制。
设电机永远接通电源时,其转速最大为,设占空比为,则电机的平均速度为
(1-1)
式中:
—电机的平均速度
—电机全通时间的速度(最大)
—占空
平均速度
与占空比
的函数曲线,如图1-3(a)所示:
图1-3平均速度与占空比的关系
由图1-3(b)所示可以看出,
与占空比
并不是完全线性关系(图中实线),当系统4允许时,可以将其近似的看成线性关系(途中虚线)。
因此也就可以看成电机电枢电压
与占空比
成正比,改变占空比的大小即可控制电机的速度。
由以上叙述可知:
电机的转速电枢电压成比例,而电机电枢电压与控制波形的占空比成正比,因此电机的速度与占空比成比例,占空比越大,电机转得越快,当占空比
时,电机转速最大。
占空比D表示了在一个周期T里开关管导通的时间与周期的比值。
D的变化范围为0≤D≤1。
当电源电压U不变的情况下,输出电压的平均值U取决于占空比D的大小,改变D值也就改变了输出电压的平均值,从而达到控制电动机转速的目的,即实现PWM调速。
在PWM调速时,占空比D是一个重要参数。
改变占空比的方法有定宽调频法、调宽调频法和定频调宽法等。
常用的定频调宽法,同时改变t1和t2,但周期T(或频率)保持不变。
1.3PWM调速方法
采用定时器做为脉宽调制的定时方法。
如果采用软件延时方法,在精度上不及定时器,特别是在引入中断后,将有一定的误差。
图1-4PWM脉宽调制流程
图1-4PWM脉冲调制的控制流程图
2.硬件设计
2.1硬件列表
表2-1硬件列表
元件
数量
STC89C52控制模块
1
L298电机驱动模块
1
LCD1602液晶显示模块
1
独立键盘控制模块
4
测速系统模块
1
杜邦线
若干
2.2单片机系统的设计
图2.1直流电机调速系统
2.2.1STC89C52的简介
在常用的89系列的单片机中,51系列只有4K字节的系统可编程Flash存储器,128字节RAM。
STC89C52是一种低功耗,高性能CMOS8位控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,它是一种低功耗,高性能CMOS8位微控制器,操作方便,引脚也充足,而且STC89C52,支持ISP串口下载,使得STC89C52在众多嵌入式控制应用系统中得到广泛应用。
图2-2STC89C52管脚图
图2-2单片机引脚图
STC89C52主要功能特性如下:
1.兼容MCS51指令系统;
2.8K可反复擦写(大于1000次)FlashROM;
3.32个双向I/O口;
4.256x8bit内部RAM;
5.3个16位可编程定时器、计数器中断;
6.时钟频率0-24MHz
7.2个串行中断,可编程UART串行通道;
8.2个外部中断源,共8个中断源;
9.低功耗空闲和掉电模式;
2.3单机驱动模块
2.3.1H型全桥式驱动电路和L298N简绍
直流电机驱动电路使用最广泛的就是H型全桥式驱动电路,这种驱动电路可以很方便实现直流电机的四象限运行,分别对应正转、正转制动、反转、反转制动。
它的基本原理图如图所示。
图2-3H型桥式驱动电路
H型全桥式驱动电路的4只三极管都工作在斩波状态,V1、V4为一组,V2、V3为另一组,两组的状态互补,一组导通则另一组必须关断。
当V1、V4导通时,V2、V3关断,电机两端加正向电压,可以实现电机的正转或反转制动;当V2、V3导通时,V1、V4关断,电机两端为反向电压,电机反转或正转制动。
在直流电机运转的过程中,我们要不断地使电机在四个象限之间切换,即在正转和反转之间切换,也就是在V1、V4导通且V2、V3关断,到V1、V4关断且V2、V3导通,这两种状态之间转换。
在这种情况下,理论上要求两组控制信号完全互补,但是,由于实际的开关器件都存在开通和关断时间,绝对的互补控制逻辑必然导致上下桥臂直通短路,比如在上桥臂关断的过程中,下桥臂导通了。
为了避免直通短路且保证各个开关管动作之间的同步性,两组控制信号在理论上要求互为倒相的逻辑关系,而实际上却必须相差一个足够的死区时间,这个矫正过程既可以通过硬件实现,即在上下桥臂的两组控制信号之间增加延时。
L298的逻辑功能
当使能端为高电平时,输入端IN1为PWM信号,IN2为低电平信号,电机正转;输入端IN1为低电平信号,IN2为PWM信号时,电机反转;IN1与IN2相同时,电机快速停止。
当使能端为低电平时,电动机停止转动。
详细逻辑表如下:
表2-2L298的逻辑功能
IN1
IN2
ENA
电机状态
X
X
0
停止
1
0
1
正转
0
1
1
反转
0
0
0
停止
1
1
0
停止
2.4液晶显示模块
显示模块采用的是LCD1602
(1)LCD1602液晶的结构图如下。
图2-4LCD1602液晶的结构图
LCD1602主要技术参数:
显示容量:
16X2个字符芯片工作电压:
4.5-5.5V工作电流:
2.0mA(5.0V)模块最佳工作电压:
5.0V1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:
阿拉伯数字,英文字母的大小写,常用的符号等。
(2)LCD1602液晶主要接口
第1脚:
VSS为地电源
第2脚:
VDD接5V正电源
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高会残生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器悬着,高电平时玄正数据寄存器,低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7-14脚:
D0-D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极。
(3)单片机与LCD的连接
(E,RW,RS)控制引脚接P3口,8个数据信号接P1口。
VSS接单片机地,VCC接单片机的电源VCC。
单片机与LCD连接图如下:
图2-5单片机与LCD连接图
2.5独立式键盘控制模块
独立式键盘的按键相互独立,每个按键接一根I/O口线,一根I/O口线上的按键工作状态不会影响其他I/O口线的工作状态。
因此,通过检测I/O口线的电平状态,即可判断键盘上哪个键被按下,独立式键盘如下图:
图2-6独立式键盘
3.系统软件程序设计
3.1主程序流程图:
主程序描述:
首先运行主程序函数main;进行LCD1602液晶显示屏初始化,并显示静态部分;定时器的初始化,设置定时器工作方式1,开启T1中断,定时50ms;然后进行按键扫描,有正、反转、急停按键,加速,减速按键,如果按键按下则相应调节PWM波的占空比,调节转速并在LCD1602液晶显示屏上输出显示。
图3-1主程序流程图
3.2定时器中断程序流程图
定时器1设置为工作方式1,定时初值为50ms,每50ms产生一次中断,程序处理PWM的延时占空比及转速显示。
图3-2定时器中断程序流程图
3.3独立键盘控制流程图
按键输入模块共有3个按键,K1的功能是正转、反转、急停一键多功能,K2是控制PWM波的占空比,使电机转速上升,K3使电机转速下降。
图3-3独立键盘控制流程图
4.系统功能设计和实现
(1)按键设置 因学习板只有4个按键,为了实现直流电机的多功能设置,所以将K1按键设置为正转,反转,停止按键,通过判断K1按下的次数来实现电机的状态改变。
(2)状态显示及测速因考虑到LCD1602显示容量较小,所以将显示状态设置为1个字符,即正转对应C,反转对应R,停止对应S。
而测速时,则是利用T2计数器计数1S内接收到的带测速码盘的直流电机发出的脉冲。
(3)测量马达的反电动势系数直流力矩电动机无论空载或负载运行时,它的电枢电压平衡方程式为:
V=E(反)+IR式中V-外施电枢电压I—电枢电流R—电枢电阻E(反)—反电势可见,当直流力矩电动机运转时,无论它空载或负载,只要知道它的电枢电阻、电枢电压、电枢电流、转速,就可计算出它的反电势系数,其计算公式为:
Ke= (U-IR)/n
式中Ke-反电势系数
IR-电枢电阻压降
n-转速根据测量
得到数据记录如表4-1所示:
表4-1电机反电动势系数数据记录表
空载电压U/V
电枢电压U/V
电枢电流I/mA
电枢电阻R
电机转速r/min
反电动势系数Ke
5
1.64
29
11
490
0.00268
5
1.79
29.5
11
528
0.002695
5
2.26
30
11
720
0.002605
根据上述数据可得,电机反电动势系数:
Ke=(0.00268+0.002695+0.002605)/3=0.00266
测量电机的力矩系数根据下列公式:
可知
KT=9.55*Ke=9.55*0.00266=0.025403
5.系统仿真调试
系统采用protus仿真,电机的驱动和速度的采集由单片机完成,并将单片机的硬件电路在Proteus中仿真实现,再通过虚拟串口实现单片机与上位机的通信。
P0口与LCD1602液晶相连,用于显示转速。
6.心得体会:
本学期的课程设计是一单片机控制电动机启停正反转,学生组队完成(包括设计总体方案、硬件电路、软件设计、调试、测量参数等)。
我认为,在这学期的实验中,在收获知识的同时,还收获了成熟,在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考,动手操作的能力,在各种其他能力上也都有了提高。
更重要的是,我们学会了很多学习的方法。
而这是日后最实用的。
要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
与队友的合作是一件快乐的事情,只有彼此都付出,彼此都努力才能将作品做的更完美。
而团队合作也是当今社会提倡的。
以后不管有多苦,我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。
就像我们在课程设计之后变的更加成熟,会面对需要面对。
附录1:
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitled=P2^6;
sbitlcden=P2^2;
sbitlcdrs=P2^0;
sbitlcdrw=P2^1;
sbitENA=P1^3;
sbitIN1=P1^1;
sbitIN2=P1^2;
sbitkey1=P3^2;//正转,反转,急停(一键多功能)
sbitkey2=P3^3;//加速按键
sbitkey3=P3^4;//减速按键
bitflag;
ucharcodetable[]={"0123456789"};
ucharcodetable1[]={"Speed:
"};
ucharcodetable2[]={"Star:
"};
ucharcodetable3[]={"r/min"};
uintnum,count,times=0,cycle=10,c=0;
floatrpm,v;
/*******************************
延时函数(1ms)
*******************************/
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/******************************
LCD写命令函数
*******************************/
voidwrite_(uchar)
{
lcdrs=0;
lcdrw=0;
P0=;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
/******************************
LCD写数据函数
*******************************/
voidwrite_data(uchardate)
{
lcdrs=1;
lcdrw=0;
P0=date;
delay
(1);
lcden=1;
delay
(1);
lcden=0;
}
/******************************
LCD初始化函数
*******************************/
voidinit1602()
{
lcden=0;
led=1;
write_(0x38);
write_(0x0c);
write_(0x06);
write_(0x01);
}
/******************************
LCD静态显示函数
*******************************/
voiddisplay1()
{
write_(0x80);
for(num=0;num<6;num++)
{
write_data(table1[num]);
}
write_(0x80+0x0a);
for(num=0;num<5;num++)
{
write_data(table3[num]);
}
write_(0x80+0x40);
for(num=0;num<5;num++)
{
write_data(table2[num]);
}
}
/******************************
LCD动态显示函数(显示转速)
*******************************/
voiddisplay(uintzhuansu)
{
write_(0x80+0x06);
write_data(table[zhuansu/1000]);
write_data(table[zhuansu%1000/100]);
write_data(table[zhuansu%1000%100/10]);
write_data(table[zhuansu%10]);
}
/******************************
定时器的初始化函数
*******************************/
voidtime_init()
{
TMOD=0x12;//定时器T1工作计时模式1,定时器T0工作于计时模式2,自动重装
C_T2=1;//定时器T2工作在计数模式
TH0=0;//200us
TL0=0x38;//200us
TH2=0;//定时器T2高8位赋初值0
TL2=0;//定时器T2低8位赋初值0
TH1=(65536-46083)/256;//定时器T1,每50ms产生一次中断
TL1=(65536-46083)%256;//定时器T1,每50ms产生一次中断
EA=1;//开总中断
ET0=1;//定时器T0中断允许
ET1=1;//定时器T1中断允许
TR0=1;//定时器T0启动
TR1=1;//定时器T1启动
TR2=1;//定时器T2启动
}
/******************************
按键扫描
*******************************/
voidkeyscan()
{
if(key1==0)
{
delay(10);
if(key1==0)
{
while(!
key1);
c++;
if(c>2)
{
c=0;
}
}
}
}
/******************************
加速(改变PWM波的占空比)
*******************************/
voidadd()
{
if(key2==0)
{
delay(10);
if(key2==0)
{
while(!
key2);
cycle+=2;
if(cycle>=48)
{
cycle=50;
}
}
}
}
/******************************
减速(改变PWM波的占空比)
*******************************/
voiddec()
{
if(key3==0)
{
delay(10);
if(key3==0)
{
while(!
key3);
cycle-=2;
if(cycle<=2)//防止减到0
{
cycle=2;
}
}
}
}
/******************************
主函数
*******************************/
voidmain()
{
init1602();
display1();
time_init();
ENA=0;
while
(1)
{
keyscan();
if(c==0)
{
IN1=0;
IN2=0;
write_(0x80+0x45);
write_data('0');
}
if(c==1)
{
IN1=0;
IN2=1;
write_(0x80+0x45);
write_data('+');
}
if(c==2)
{
IN1=1;
IN2=0;
write_(0x80+0x45);
write_data('-');
}
add();
dec();
display(zhuansu);
}
}
/******************************
定时器0的中断函数
*******************************/
voidtimer0()interrupt1using1
{
times++;
if(times<=cycle)
ENA=1;
else
ENA=0;
if(times>=50)times=0;
}
/******************************
定时器1的中断函数
*******************************/
voidtimer1()interrupt3using1
{
count++;
if(count==20)
{
flag=1;
count=0;
zhuansu=(TH2*256+TL2)*0.17964;
TL2=0;
TH2=0;
}
TH1=(65536-46083)/256;//重装
TL1=(65536-46083)%256;//重装
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电力拖动自动控制系统设计 精品 电力 拖动 自动控制系统 设计