基于单片机的直流电机调速系统Word格式.docx

上传人:b****7 文档编号:22415686 上传时间:2023-02-04 格式:DOCX 页数:21 大小:283.25KB
下载 相关 举报
基于单片机的直流电机调速系统Word格式.docx_第1页
第1页 / 共21页
基于单片机的直流电机调速系统Word格式.docx_第2页
第2页 / 共21页
基于单片机的直流电机调速系统Word格式.docx_第3页
第3页 / 共21页
基于单片机的直流电机调速系统Word格式.docx_第4页
第4页 / 共21页
基于单片机的直流电机调速系统Word格式.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

基于单片机的直流电机调速系统Word格式.docx

《基于单片机的直流电机调速系统Word格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的直流电机调速系统Word格式.docx(21页珍藏版)》请在冰豆网上搜索。

基于单片机的直流电机调速系统Word格式.docx

如果此时芯片的输出控制端为低,也即是输出三态门打开,锁存器中的地址信息便可以通过三态门输出。

其引脚图如图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电源,其模拟量输入电压的范围为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/CnTon=1/4R0*Con

参数求法:

电动机P=10KWU=220VI=55An=1000转/分电枢电阻R=0.5欧姆取滤波电路中Ro=40千欧Rn=470千欧Cn=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发生电路改变波形的占空比,进而控制电机的转速。

其程序流程图如图所示。

主程序主程序是一个循环程序,其主要思路是由单片机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中断服务函数

tcnt++;

//每过250usttcnt加一

if(tcnt==40)//计满40次(1/100秒)时

{

tcnt=0;

//重新再计

sec++;

if(sec==10)//定时0.1秒,在从零开始计时

sec=0;

TH0=0x06;

//对TH0TL0赋值

TL0=0x06;

miaoshu=count;

count=0;

}

(2)PID运算子程序

(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!

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1