单片机直流电机调速系统.docx
- 文档编号:20108129
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:24
- 大小:281.39KB
单片机直流电机调速系统.docx
《单片机直流电机调速系统.docx》由会员分享,可在线阅读,更多相关《单片机直流电机调速系统.docx(24页珍藏版)》请在冰豆网上搜索。
单片机直流电机调速系统
基于8051单片机直流电机调速系统
2.1总体硬件电路设计
2.1.1系统总体设计框图
本系统采用89C51控制输出数据,由PWM信号发生电路产生PWM信号,送到直流电机,直流电机通过测速电路,滤波电路,和A/D转换电路交数据重新送回单片机,进行PI运算,从而实现对电机速度和转向的控制,达到直流电机调速的目的。
图2-1系统总体设计图
2.1.28051单片机简介
1.8051单片机的基本组成
8051单片机由CPU和8个部件组成,它们都通过片内单一总线连接,其基本结构依然是通用CPU加上外围芯片的结构模式,但在功能单元的控制上采用了特殊功能寄存器的集中控制方法。
其基本组成如下图所示:
图2-28051基本结构图
2.CPU及部分部件的作用功能介绍如下
中央处理器CPU:
它是单片机的核心,完成运算和控制功能。
内部数据存储器:
8051芯片中共有256个RAM单元,能作为存储器使用的只是前128个单元,其地址为00H—7FH。
通常说的内部数据存储器就是指这前128个单元,简称内部RAM。
内部程序存储器:
8051芯片内部共有4K个单元,用于存储程序、原始数据或表格,简称内部ROM。
定时器:
8051片内有2个16位的定时器,用来实现定时或者计数功能,并且以其定时或计数结果对计算机进行控制。
中断控制系统:
该芯片共有5个中断源,即外部中断2个,定时/计数中断2个和串行中断1个。
3.8051单片机引脚图
图2-38051单片机引脚图
2.1.3单片机系统中所用其他芯片选型
1.地址锁存器
地址锁存器可以选择多种,有地址锁存功能的器件有74LS373、8282、74LS273等,8282是地址锁存器,功能与74LS373类似,但本系统选用74LS373作为地址锁存器,考虑到其应用的广泛性以及具有良好的性价比,成为目前在单片机系统中应该较广泛的地址锁存器。
74LS373片内是8个输出带三态门的D锁存器。
当使能端呈高电平时,锁存器中的内容可以更新,而在返回低电平的瞬间实现锁存。
如果此时芯片的输出控制端为低,也即是输出三态门打开,锁存器中的地址信息便可以通过三态门输出。
其引脚图如图2-4所示:
图2-474L373引脚图
2.程序存储器
存储器是单片机的又一个重要组成部分,其中程序存储器是单片机中非常重要的存储器,但由于其存储空间不足,常常需要对单片机的存储器空间进行扩展,扩展程序存储器常用芯片有EPROM(紫外线可擦除型),如2716(2KB)、2732(4KB)、2764(8KB)、27128(16KB)、27256(32KB)等,另外还有+5V电擦除E2PROM,如2816(2KB)、2864(8KB)等等。
考虑到系统功能的可扩展性以及程序功能的扩展,本系统采用16KB的27128作为程序存储器扩展芯片,在满足系统要求的前提下还存有一定的扩展空间,是本系统最合适的程序存储器扩展芯片。
27128的引脚图如图2-5所示:
图2-527128结构图
3.数据存储器
8051单片机有128BRAM,当数据量超过128B也需要把数据存储区进一步扩展。
常用RAM芯片分静态和动态两种。
静态RAM有6116(2KB)、6264(8KB)等,动态DRAM2164(8KB)等,另外还有集成IRAM和E2PROM。
使用E2PROM作数据存储器有断电保护数据的优点。
数据存储器扩展常使用随机存储器芯片,用的较多的是Intel公司的6116容量为2KB和6264容量为8KB。
本系统采用容量8KB的6264作为数据存储器扩展芯片。
其引脚图如图2-6所示:
图2-66264引脚图
2.1.48051单片机扩展电路及分析
图2-78051单片机扩展电路及分析
接线分析:
P0.7---P0.0:
这8个引脚共有两种不同的功能,分别使用于两种不同的情况。
第一种情况是8051不带片外存储器,P0口可以作为通用I/O口使用,P0.7---P0.0用于传送CPU的I/O数据。
第二种情况是8051带片外存储器,P0.7---P0.0在CPU访问片外存储器时先是用于传送片外存储器的低8位地址,然后传送CPU对片外存储器的读写数据。
P2.7---P2.0:
这组引脚的第一功能可以作为通用的I/O使用。
它的第二功能和P0口引脚的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但是并不能像P0口那样还可以传送存储器的读写数据。
P3.7---P3.0:
这组引脚的第一功能为传送用户的输入/输出数据。
它的第二功能作为控制用,每个引脚不尽相同。
VCC为+5V电源线,VSS为接地线。
ALE/
:
地址锁存允许/编程线,配合P0口引脚的第二功能使用,在访问片外存储器时,8051CPU在P0.7---P0.0引脚线上输出片外存储器低8位地址的同时还在ALE/
线上输出一个高电位脉冲,其下降沿用于把这个片外存储器低8位地址锁存到外部专用地址锁存器,以便空出P0.7---P0.0引脚线去传送随后而来的片外存储器的读写数据。
/VPP:
允许访问片外存储器/编程电源线,可以控制8051使用片内ROM还是片外ROM。
如果
=1,那么允许使用片内ROM;如果
=0,那么允许使用片外ROM。
XTAL1和XTAL2:
片内振荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接8051片内OSC的定时反馈电路。
石英晶振起振后,应能在XTAL2线上输出一个3V左右的正弦波,以便于8051片内的OSC电路按石英晶振相同频率自激振荡,电容C1、C2可以帮助起振,调节它们可以达到微调fOSC的目的。
2.2PWM信号发生电路设计
2.2.1PWM的基本原理
PWM(脉冲宽度调制)是通过控制固定电压的直流电源开关频率,改变负载两端的电压,从而达到控制要求的一种电压调整方法。
PWM可以应用在许多方面,比如:
电机调速、温度控制、压力控制等等。
在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并且根据需要改变一个周期内“接通”和“断开”时间的长短。
通过改变直流电机电枢上电压的“占空比”来达到改变平均电压大小的目的,从而来控制电动机的转速。
也正因为如此,PWM又被称为“开关驱动装置”。
如图2-8所示:
图2-8PWM方波
设电机始终接通电源时,电机转速最大为Vmax,设占空比为D=t1/T,则电机的平均速度为Va=Vmax*D,其中Va指的是电机的平均速度;Vmax是指电机在全通电时的最大速度;D=t1/T是指占空比。
由上面的公式可见,当我们改变占空比D=t1/T时,就可以得到不同的电机平均速度Vd,从而达到调速的目的。
严格来说,平均速度Vd与占空比D并非严格的线性关系,但是在一般的应用中,我们可以将其近似地看成是线性关系。
2.2.2PWM信号发生电路设计
图2-9PWM信号发生电路
PWM波可以由具有PWM输出的单片机通过编程来得以产生,也可以采用PWM专用芯片来实现。
当PWM波的频率太高时,它对直流电机驱动的功率管要求太高,而当它的频率太低时,其产生的电磁噪声就比较大,在实际应用中,当PWM波的频率在18KHz左右时,效果最好。
在本系统内,采用了两片4位数值比较器4585和一片12位串行计数器4040组成了PWM信号发生电路。
两片数值比较器4585,即图上U2、U3的A组接12位串行4040计数输出端Q2—Q9,而U2、U3的B组接到单片机的P1端口。
只要改变P1端口的输出值,那么就可以使得PWM信号的占空比发生变化,从而进行调速控制。
12位串行计数器4040的计数输入端CLK接到单片机C51晶振的振荡输出XTAL2。
计数器4040每来8个脉冲,其输出Q2—Q9加1,当计数值小于或者等于单片机P1端口输出值X时,图中U2的(A>B)输出端保持为低电平,而当计数值大于单片机P1端口输出值X时,图中U2的(A>B)输出端为高电平。
随着计数值的增加,Q2—Q9由全“1”变为全“0”时,图中U2的(A>B)输出端又变为低电平,这样就在U2的(A>B)端得到了PWM的信号,它的占空比为(255-X/255)*100%,那么只要改变X的数值,就可以相应的改变PWM信号的占空比,从而进行直流电机的转速控制。
使用这个方法时,单片机只需要根据调整量输出X的值,而PWM信号由三片通用数字电路生成,这样可以使得软件大大简化,同时也有利于单片机系统的正常工作。
由于单片机上电复位时P1端口输出全为“1”,使用数值比较器4585的B组与P1端口相连,升速时P0端口输出X按一定规律减少,而降速时按一定规律增大。
2.2.3PWM发生电路主要芯片的工作原理
1.数据比较器
具有数据比较功能的芯片有74LS6828,74LS6838等8位数值比较器,4位数值比较器4585等。
本PWM发生电路通过两片4位数值比较器4585就可实现PWM信号的产生,因此选用4585作为信号发生电路。
芯片4585的引脚图:
图2-104585引脚图
2.串行计数器
系统PWM信号发生电路中还使用到一片串行计数器,有串行计数功能的芯片有4024、4040等,它们具有相同的电路结构和逻辑功能,但4024是7位二进制串行计数器,而芯片4040是一个12位的二进制串行计数器,所有计数器位为主从触发器,计数器在时钟下降沿进行计数。
当CR为高电平时,它对计数器进行清零,由于在时钟输入端使用施密特触发器,故对脉冲上升和下降时间没有限制,所有的输入和输出均经过缓冲。
本系统使用4040作为串行计数器,芯片4040的引脚图如图2-11所示:
图2-114040引脚图
2.3功率放大驱动电路设计
功率放大驱动芯片有多种,其中较常用的芯片有IR2110和EXB841,但由于IR2110具有双通道驱动特性,且电路简单,使用方便,价格相对EXB841便宜,具有较高的性价比,且对于直流电机调速使用起来更加简便,因此该驱动电路采用了IR2110集成芯片,使得该集成电路具有较强的驱动能力和保护功能。
2.3.1芯片IR2110性能及特点
IR2110是美国国际整流器公司利用自身独有的高压集成电路以及无闩锁CMOS技术,于1990年前后开发并且投放市场的,IR2110是一种双通道高压、高速的功率器件栅极驱动的单片式集成驱动器。
它把驱动高压侧和低压侧MOSFET或IGBT所需的绝大部分功能集成在一个高性能的封装内,外接很少的分立元件就能提供极快的功耗,它的特点在于,将输入逻辑信号转换成同相低阻输出驱动信号,可以驱动同一桥臂的两路输出,驱动能力强,响应速度快,工作电压比较高,可以达到600V,其内设欠压封锁,成本低、易于调试。
高压侧驱动采用外部自举电容上电,与其他驱动电路相比,它在设计上大大减少了驱动变压器和电容的数目,使得MOSFET和IGBT的驱动电路设计大为简化,而且它可以实现对MOSFET和IGBT的最优驱动,还具有快速完整的保护功能。
与此同时,IR2110的研制成功并且投入应用可以极大地提高控制系统的可靠性。
降低了产品成本和减少体积。
2.3.2IR2110的引脚图以及功能
IR2110将输入逻辑信号转换成同相低阻输出驱动信号,可以驱动同一桥臂的两路输出,驱动能力强,响应速度快,工作电压比较高,是目前功率放大驱动电路中使用最多的驱动芯片。
其结构也比较简单,芯片引脚图如下所示:
图2-12IR2110引脚图
2.4主电路设计
2.4.1延时保护电路
利用IR2110芯片的完善设计可以实现延时保护电路。
IR2110使它自身可对输入的两个通道信号之间产生合适的延时,保证了加到被驱动的逆变桥中同桥臂上的两个功率MOS器件的驱动信号之间有一互琐时间间隔,因而防止了被驱动的逆变桥中两个功率MOS器件同时导通而发生直流电源直通路的危险。
2.4.2主电路
从上面的原理可以看出,产生高压侧门极驱动电压的前提是低压侧必须有开关的动作,在高压侧截止期间低压侧必须导通,才能够给自举电容提供充电的通路。
因此在这个电路中,Q1、Q4或者Q2、Q3是不可能持续、不间断的导通的。
我们可以采取双PWM信号来控制直流电机的正转以及它的速度。
将IC1的HIN端与IC2的LIN端相连,而把IC1的LIN端与IC2的HIN端相连,这样就使得两片芯片所输出的信号恰好相反。
在HIN为高电平期间,Q1、Q4导通,在直流电机上加正向的工作电压。
其具体的操作步骤如下:
当IC1的LO为低电平而HO为高电平的时候,Q2截止,C1上的电压经过VB、IC内部电路和HO端加在Q1的栅极上,从而使得Q1导通。
同理,此时IC2的HO为低电平而LO为高电平,Q3截止,C3上的电压经过VB、IC内部电路和HO端加在Q4的栅极上,从而使得Q4导通。
电源经Q1至电动机的正极经过整个直流电机后再通过Q4到达零电位,完成整个的回路。
此时直流电机正转。
在HIN为低电平期间,LIN端输入高电平,Q2、Q3导通,在直流电机上加反向工作电压。
其具体的操作步骤如下:
当IC1的LO为高电平而HO为低电平的时候,Q2导通且Q1截止。
此时Q2的漏极近乎于零电平,Vcc通过D1向C1充电,为Q1的又一次导通作准备。
同理可知,IC2的HO为高电平而LO为低电平,Q3导通且Q4截止,Q3的漏极近乎于零电平,此时Vcc通过D2向C3充电,为Q4的又一次导通作准备。
电源经Q3至电动机的负极经过整个直流电机后再通过Q2到达零电位,完成整个的回路。
此时,直流电机反转。
因此电枢上的工作电压是双极性矩形脉冲波形,由于存在着机械惯性的缘故,电动机转向和转速是由矩形脉冲电压的平均值来决定的。
设PWM波的周期为T,HIN为高电平的时间为t1,这里忽略死区时间,那么LIN为高电平的时间就为T-t1。
HIN信号的占空比为D=t1/T。
设电源电压为V,那么电枢电压的平均值为:
Vout=[t1-(T-t1)]V/T
=(2t1–T)V/T
=(2D–1)V
定义负载电压系数为λ,λ=Vout/V,那么λ=2D–1;当T为常数时,改变HIN为高电平的时间t1,也就改变了占空比D,从而达到了改变Vout的目的。
D在0—1之间变化,因此λ在±1之间变化。
如果我们联系改变λ,那么便可以实现电机正向的无级调速。
当λ=0.5时,Vout=0,此时电机的转速为0;
当0.5<λ<1时,Vout为正,电机正转;
当λ=1时,Vout=V,电机正转全速运行。
图2-13系统主电路
2.4.3输出电压波形
系统电路经过单片机控制的PWM信号产生电路送来的PWM信号,经过功率放大电路,形成输出电压的波形图如下图如示:
图2-14输出电压波形
2.4.4系统总体电路图
直流电机调速系统总体电路设计由单片机产生控制PWM信号发生电路产生PWM信号的数据,控制直流电机调速电路对电机进行调速。
图2-15系统总休电路图
2.5测速发电机
测速发电机是一种测量转速的微型发电机,他把输入的机械转速变换为电压信号输出,并要求输出的电压信号与转速成正比,分为直流与交流两种。
其绕组和磁路经过精确设计,输出电动势E和转速n成线性关系,即E=kn,其中k是常数。
改变旋转方向时,输出电动势的极性即相应改变。
当被测机构与测速发电机同轴连接时,只要检测出输出电动势,即可以获得被测机构的转速,所以测速发电机又称速度传感器。
测速发电机广泛应用于各种速度或者位置控制系统,在自动控制系统中作为检测速度的元件,以调节电动机转速或者通过反馈来提高系统稳定性和精度。
2.6滤波电路
经整流后的单向直流或单向脉动直流电,都是由强度不变的直流成分和一个以上的交流成分叠加形成的。
为了使脉动直流电变得较为平稳,把其中的交流成分滤掉,叫做滤波。
滤波有电容滤波、电感滤波等。
本系统中对直流电采用电容滤波的方式,使得直流电压变得更加平稳,调速更加精确。
电路图如图2-15所示:
图2-16滤波电路
2.7A/D转换
2.7.1芯片选型
能够进行A/D转换的芯片很多,其中AD系列的有8位A/D转换器ADC0809、AD570、AD670、AD673、AD7574等,TLC系列的有TLC545等,其中较为常用的是ADC0809和TLC545,TLC545是美国TEXAS仪器公司新推出的一种开关电容结构逐次逼近式8位A/D转换器,具有19个模拟输入端。
而ADC0809是采样频率为8位的、以逐次逼近原理进行模—数转换的器件。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换,具有地址锁存控制的8路模拟开关,应用单一的+5V电源,其模拟量输入电压的X围为0V---+5V,其对应的数字量输出为00H---FFH,转换时间为100μs,无须调零或者调整满量程。
因此本系统采用ADC0809作为A/D转换芯片。
2.7.2ADC0809的引脚及其功能
ADC0809有28个引脚,其中IN0---IN7接8路模拟量输入。
ALE是地址锁存允许,
、
接基准电源,在精度要求不太高的情况下,供电电源就可以作为基准电源。
START是芯片的启动引脚,其上脉冲的下降沿起动一次新的A/D转换。
EOC是转换结束信号,可以用于向单片机申请中断或者供单片机查询。
OE是输出允许端。
CLK是时钟端。
DB0---DB7是数字量的输出。
ADDA、ADDB、ADDC接地址线用以选定8路输入中的一路,引脚详见图2-16。
图2-17ADC0809引脚图
3.系统软件部分的设计
3.1PI转速调节器原理图及参数计算
图3-1PI转速调节器原理图
按照典型II型系统的参数选择方法,转速调节器参数和电阻电容值关系如下:
Kn=Rn/R0Γn=Rn/Ton=1/4R0*Con
参数求法:
电动机P=10KWU=220VI=55An=1000转/分电枢电阻R=0.5欧姆取滤波电路中Ro=40千欧Rn=470千欧=0.2uFCon=1uF则:
Umax=220V
Umin=(220/0.9)*0.5=122V
Yi-1=0W=1000转/分
P=Kp=Rn/Ro=11.7
I=Kp*T/Ti=125
3.2系统中的部分程序设计
软件由1个主程序、1个中断子程序和1个PI控制算法子程序组成。
3.2.1主程序设计
主程序主程序是一个循环程序,其主要思路是,先设定好速度初始值,这个初始值与测速电路送来的值相比较得到一个误差值,然后用PI算法输出控制系数给PWM发生电路改变波形的占空比,进而控制电机的转速。
其程序流程图如图所示。
软件由1个主程序、1个中断子程序和1个PI控制算法子程序组成。
主程序主程序是一个循环程序,其主要思路是由单片机P1口生数据送到PWM信号发生电路,然后用PI算法输出控制系数给PWM发生电路改变波形的占空比进而控制电机的转速。
主程序流程图如图3-2所示:
图3-2主程序流程图
3.2.2PI控制算法子程序设计
/*PI控制算法子程序*/
voidPID_work()
{
negsum=0;possum=0;
if(BJ==0)
{
possum+=k1;
temp[2]=temp[2]+temp[0];}
else
{
negsum+=k1;
temp[2]=temp[2]-temp[0];
}
k3=temp[2]/10;
if(possum>negsum)
{
k2=possum-negsum;//存储结果
CY=0;
temp[1]=k3+k1;//误差积累,
{
if(CY==1)//16位判断。
UK=0xfe;
else
UK=k1+k3;
}
else
UK=1;
P3=UK;
}
附录
1.详细电路设计图
2.程序
(1)延时程序
voiddealy()
{
uchari;
for(i=0;i<100;i++);
}
voidt0(void)interrupt1using0//定时T0中断服务函数
{
tt++;//每过250usttt加一
if(tt==40)//计满40次(1/100秒)时
{
tt=0;//重新再计
sec++;
if(sec==10)//定时0.1秒,在从零开始计时
{
sec=0;
TH0=0x06;//对TH0TL0赋值
TL0=0x06;
miaoshu=count;
count=0;
}
}
}
(2)PID运算子程序
voidPID_work()
{
negsum=0;possum=0;
if(BJ==0)
{
possum+=k1;
temp[2]=temp[2]+temp[0];}
else
{
negsum+=k1;
temp[2]=temp[2]-temp[0];
}
k3=temp[2]/10;
if(possum>negsum)
{
k2=possum-negsum;//存储结果
CY=0;
temp[1]=k3+k1;//误差积累,
{
if(CY==1)//16位判断。
UK=0xfe;
else
UK=k1+k3;
}
else
UK=1;
P3=UK;
}
(3)主程序
voidmain()
{
P1=0x00;
P3=0x00;
TMOD=0x01;/*定时器0方式1*/
TH0=0xfc;/*定时器装载初值*/
TL0=0x18;
ET0=1;/*开定时器0中断*/
TR0=1;/*启动定时器0*/
while
(1)
{
if(P1_0==1)
P1=0xff;
if(P1_1==1)
EA=0;/*关CPU中断*/
if(P1_2==1)
{
dir=~dir;/*转向控制*/
while(P1_2!
=0)
{};
}
if(P1_3==1)
{
high++;
if(high==30)
high=0;
while(P1_3!
=0)
{};
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 直流电机 调速 系统