直流电机调速论文Word文档格式.docx

上传人:b****5 文档编号:17438309 上传时间:2022-12-01 格式:DOCX 页数:16 大小:333.03KB
下载 相关 举报
直流电机调速论文Word文档格式.docx_第1页
第1页 / 共16页
直流电机调速论文Word文档格式.docx_第2页
第2页 / 共16页
直流电机调速论文Word文档格式.docx_第3页
第3页 / 共16页
直流电机调速论文Word文档格式.docx_第4页
第4页 / 共16页
直流电机调速论文Word文档格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

直流电机调速论文Word文档格式.docx

《直流电机调速论文Word文档格式.docx》由会员分享,可在线阅读,更多相关《直流电机调速论文Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。

直流电机调速论文Word文档格式.docx

直接采用四个三极管搭成桥式电路来控制电机的转动。

由于系统要求驱动电机为小电机,考虑性价比上,直接采用四个三极管进行控制。

3、键盘电路的设计

由于系统要求功能简单,所以直接采用行式键盘进行控制。

键盘用来输入启动、停止信号和设定的速度值。

4、显示电路的设计

显示电路采用LCM1602进行显示。

5、速度测量电路的设计

速度测量采用光电开关,进行速度采集,经过单片机中断,将采样的数据经过换算,显示出来。

3.2.3系统组成

经过比较与论证,最终确定的系统组成框图如图1所示,其中采用ATmega16为主控制芯片,采用1602进行显示,键盘控制电路和电机控制电路。

图1系统组成框图

4、系统硬件的设计与实现

4.1ATmega16单片机主控制电路图

ATmega16芯片介绍:

该芯片是基于增强的AVRRISC结构的低功耗8位CMOS微处理器,数据吞吐率高达1MIPS/MHz。

有如下特点:

16K字节的系统内可编程Flash,512字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个定时器/计数器等。

引脚说明:

VCC:

数字电路的电源

GND:

端口A(PA7—PA0):

端口A作为A/D转换器的模拟输入端,为8位双向I/O口。

端口B(PB7—PB0):

8位双向I/O口。

端口C(PC7—PC0):

端口D(PD7—PD0):

~RESET:

复位输入引脚。

XTAL1:

反向振荡放大器与片内时钟操作电路的输入端。

XTAL2:

反向振荡放大器的输出端。

AVCC:

AVCC是端口A与A/D转换器的电源

AREF:

A/D的模拟基准输入引脚。

图2ATmega16单片机主控制电路图

4.2主要单元电路的设计

4.2.1显示电路的设计

该部分采用LCM1602液晶模块。

LCM1602是一种使用非常广泛的液晶模块,它支持5*7点阵和2行*16字符2两种模式,背光亮度和显示对比度可调,是一种功能较齐全,价格较便宜的液晶显示器件。

它由显示屏和驱动器两部分组成,单片机可通过写控制字的方式访问驱动器来实现对显示屏的控制。

图3LCM1602显示电路图

4.2.2键盘电路设计

键盘电路采用行式键盘电路

图4键盘电路图

4.2.3电机驱动电路的设计

图5电机驱动电路

工作原理简述如下:

当ctr_A=1,ctr_B=0:

则Q4导通Q2截止,Q3截止Q1导通。

于是电流i流经电机M的路径为:

VccQ1MD2Q4地,电机正转。

当ctr_A=0,ctr_B=1:

则Q3导通Q1截止,Q4截止Q2导通。

VccQ2MD1Q3地,电机反转。

采用光耦电路进行电路隔离,有效提高电路的抗干扰性,当OC1A为1时,则ctr_A=1,当OC1A为0时,则ctr_A=0。

图6光耦电路

4.2.4电机测速电路的设计

电机转速测量电路,采用光电开关进行对脉冲计数。

图7电机测速电路图

5、软件设计

软件编写主要包括PWM波形的产生,电机转速的实时检测,PID控制算法,键盘扫描和液晶显示程序。

5.1核心部分算法

1、PWM波形的产生

脉冲调制PWM开关型稳压电路是在控制电路输出频率不变的情况下,通过电压反馈调整其占空比,从而达到稳定输出电压的目的。

通俗说的PWM就是波形,波形的波峰与波谷的关系成为占空比,可以通过PWM来控制电机。

AVR单片机可以轻松实现PWM功能。

ATmega16的timer0和timer2都具有PWM功能,timer0和timer2都为8位定时器。

timer2为异步操作定时器,在操作过程中要等待寄存器状态更改完成。

本设计中设定使用timer0来实现PWM功能。

OC0outputmode设定了PWM输出控制选择:

正常的端口操作,不与OC0相连接,比较匹配发生时OC0取反,比较匹配发生时OC0清零,比较匹配发生时OC0置位。

Waveformmode设定了波形产生模式:

比较匹配输出模式,快速PWM模式,相位修正PWM模式。

程序代码如下:

#include

voidport_init(void)

{

PORTA=0x00;

DDRA=0x00;

DDRB=0x08;

//PB3为PWM输出,非常重要,否则无法输出波形

DDRB=0x00;

PORTC=0x00;

//m103outputonly

DDRC=0x00;

PORTD=0x00;

DDRD=0x00;

}

//TIMER0initialize-prescale:

64

//WGM:

Normal

//desiredvalue:

1KHz

//actualvalue:

1.002KHz(0.2%)

voidtimer0_init(void)

TCCR0=0x00;

//stop

TCNT0=0x8D;

//设置定时器计数值/*TCNT0*/

OCR0=0x73;

//设置定时器比较的值/*OCR0*/

TCCR0=0x23;

//初始化控制timer0的寄存器/*TCCR0*/

#pragmainterrupt_handlertimer0_comp_isr:

20

voidtimer0_comp_isr(void)

//compareoccuredTCNT0=OCR0

#pragmainterrupt_handlertimer0_ovf_isr:

10

voidtimer0_ovf_isr(void)

//reloadcountervalue

//callthisroutinetoinitializeallperipherals

voidinit_devices(void)

//stoperrantinterruptsuntilsetup

CLI();

//disableallinterrupts

port_init();

timer0_init();

MCUCR=0x00;

GICR=0x00;

TIMSK=0x03;

//定时器中断选项/*TIMSK*/

SEI();

//re-enableinterrupts

//allperipheralsarenowinitialized

voidmain(void)/*加上这些,程序就可以运行了。

*/

init_devices();

while

(1)

;

程序中几个关键的寄存器的意义:

1.TCNT0:

定时器计数值,定时过程中不断增大,溢出后重新置数,开始下一轮。

2.OCR0:

定时器比较的值,当TCNT0=OCR0时,会产生timer0_comp_isr中断。

3.TCCR0:

控制timer0的寄存器。

4.TIMSK:

定时器中断选项,这里允许timer0比较中断,溢出中断。

5.预分频器:

预分频器是独立运行的。

也就是说,其操作独立于T/C的时钟选择逻辑,且它由T/C1与T/C0共享。

由于预分频器不受T/C时钟选择的影响,预分频器的状态需要包含预分频时钟被用到何处这样的信息。

一个典型的例子发生在定时器使能并由预分频器驱动(6>

CSn2:

0>

1)的时候:

从计时器使能到第一次开始计数可能花费1到N+1个系统时钟周期,其中N等于预分频因子(8、64、256或1024)。

PWM的工作流程:

1.初始化,定时器开始工作,TCNT0逐渐增大,在预分频这么多个时钟周期里变化一次。

2.输出比较寄存器包含一个8位的数据,不间断地与计数器数值TCNT0进行比较。

匹配事件可以用来产生输出比较中断,或者用来在OC0引脚上产生波形。

3.TCNT0溢出,溢出中断用于在OC0上产生波形,置位或者清零。

4.TCNT0复位,进行下一次定时操作。

PWM的占空比:

调节PWM的占空比,只需要用程序更改OCR0的值即可,根据不同的情况,可能是增加也可能是减小。

注意:

因为Timer2是异步控制器,使用Timer2时,调节OCR2需要等待寄存器更新完成才能进行其他操作。

2、PID控制算法

要使电机的转速稳定在某一预定的转速,需要随时监测(采样)电机的转速并与预定值(设定值)相比较,根据比较的结果来不断调整电机的转速,使之尽量接近设定值,这一过程成为闭环反馈控制,其控制方法(控制策略)称为控制算法,控制算法可以有多种多样,其中典型的一种算法叫做PID(比例—积分—微分)算法(或PID控制)。

PID控制有连续PID控制和数字PID控制两种,前者由模拟电子线路构成,不含智能元件(单片机),后者以微计算机为核心构成。

数字PID控制常常采用增量PID算法,表达式如下:

y(k)=y(k-1)+△y(k)

其中y(k)——第k次输出的控制(信号)值

y(k-1)——前一次输出的控制(信号)值

△y(k)——输出增量(可为正、负数)

△y(k)=kp[e(k)-e(k-1)]+kie(k)+kd[e(k)-2e(k-1)+e(k-2)]

其中kp——比例系数

Ki——积分系数

Kd——微分系数

e(k):

第k次采样时的偏差值(采样值与设定值之差)

e(k-1):

第k-1次采样时的偏差值(采样值与设定值之差)

e(k-2):

第k-2次采样时的偏差值(采样值与设定值之差)

闭环系统框图如下:

voidPID()

{

inty;

//本次速度值

floatu;

//电压差值

intz;

//输出增量

intt;

//采样时间

chartemp1;

//暂存

intI;

intspeed;

//速度设定

floatk[3];

//PID参数记录

for(i=0;

i<

=2;

i++)

EEPROMReadBytes(i*4,floatxin.c,4);

K[i]=floatxin.x;

}

EEPROMReadBytes(0x0010,intxin.c,1);

//读EEPROM

speed=intxin.x;

t=itime*0.0001275;

y=TCNT2;

Ek=y-speed;

u=k[0]*((Ek-Ek_1)+(t/k[1]*Ek+(k[2]/t)*(Ek-2*Ek_1+Ek_2)));

z=u/U1*0xff;

temp1=OCR2;

if(flage==1)//监控状态

Data[4]=0xb0;

Data[5]=temp1;

Data[6]=y>

>

8;

Data[7]=y;

Putdata(Data);

temp1=temp1+z;

if(temp1<

=0)//结果小于0时输出0

temp1=0x00;

if(temp1>

=0xf0)//结果大于0xf0时输出0xf0

temp1=0xf0;

OCR2=temp1;

Ek_2=Ek_1;

Ek_1=Ek;

TCNT2=0x0000;

//计数器清零

5.2程序流程图

图5.2.1主程序流程图

图5.2.2速度控制程序流程图

图5.2.3测速中断服务程序流程图

图5.2.4PID算法流程图

图5.2.5PWM波形的产生流程图

 

6、调试

6.1硬件调试

硬件调试是利用开发系统、基本测试仪器,通过执行开发系统有关命令或运行适当的测试程序,检查用户系统硬件中存在的故障。

硬件调试可分为静态调试和动态调试。

1、静态调试

首先,对每一块加工好的印刷电路板要仔细的检查,检查它的印制线是否断线,是否有毛刺,是否与其他印制线或焊盘或过孔粘连,焊盘是否脱落,过孔是否有未金属化等现象,查出的故障及时排除。

然后用万用表复核认为可疑的连接线或接点,检查它们的通断状态是否与设计规格相符。

再检查各种电源线与地线之间是否有短路现象并排除。

最后,加电检查,加电过程中细心观察芯片或器件是否出现打火、过热、变色、冒烟和异味等现象,如有,立即断电检查。

2、动态调试

首先按逻辑功能将用户系统硬件电路分为若干模块进行单独调试。

调试某模块时将整个电路板中与该模块无关的器件全部拔除,当各独立模块调试无故障后,然后逐步将接近的相关模块加入到应用系统中,并每加入一个模块后再对各模块功能进行调试,若在这个过程中出现故障,则基本上是各模块协调关系上出了问题。

6.2软件调试

首先,采取先使用断点运行方式以查看程序运行中间结果,将程序故障定位在一个较小的范围内。

然后,针对故障程序段再使用单步运行调试方法来精确定位错误所在。

最后,要连续运行调试,以防止某些错误在单步运行调试时被掩盖。

有些实时性操作(如中断等)必须采用连续运行方式来调试,为了准确地对错误进行定位,可使用连续加断点运行方式来调试这类程序。

最终确定出错误位置并加以排除。

7、总结

本次课程设计我做的是直流电机调速,虽然以前也接触过,但都是在实验台上实现,并不需要应用到现实生活中。

通过本次课程设计我了解了许多关于直流电机调速的知识,也查询了许多的资料,并结合自己的想法完成了课题。

经过学习,使我对AVR单片机有了初步的了解,对一个系统的设计要如何入手有了更加深刻的体会。

在整个设计过程中,也遇到了一些问题,如PID算法等,但经过努力都一一解决了。

通过这次案例分析课程设计,我学到了很多东西,感觉到理论和现实的差别。

在过去的两年多的大学学习中,大部分时间是在跟着老师学习,学习过去的一些基本理论一些基本的思想,感觉上好像学习就应是这个样子,就应该是老师让我们干什么我们就干什么,没有自己真正实践过。

第一次接触这样的课程,十分高兴,我深入到实际的工程案例中。

它能充分调动大家的积极性,趣味性强,不仅锻炼能力,而且可以学到很多书本上没有的东西。

我们上网查找相关的资料,并从众多资料中筛选出对自己有用的东西,真正锻炼了我们的能力。

虽然起初感觉有点无从下手,但慢慢就变得得心应手。

在这次的设计中,也得到了同学和老师的帮助。

通过这次学习,使我对本专业有了更深的认识,也大大提高了我的动手能力。

8、参考文献

1、李朝青.《单片机原理及接口技术》.北京:

北京航空航天大学出版社,1999年。

2、求是科技.《8051单片机程序设计》北京:

人民邮电出版社,2006年。

3、马潮.《高档8位单片机原理与开发应用指南(上)》.北京:

北京航空航天大学出版社,2004年。

4、网站:

5、网站:

www.IC

6、网站:

7、中国工控网。

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

当前位置:首页 > 高中教育 > 高中教育

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

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