《直流电机调速论文.pdf》由会员分享,可在线阅读,更多相关《直流电机调速论文.pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 1 直流电机调速论文 1、课题背景 随着时代的进步和科技的发展,电机调速系统在工农业生产、交通运输以及日常生活中起着越来越重要的作用,因此,对电机调速的研究有着积极的意义.长期以来,直流电机被广泛应用于调速系统中,而且一直在调速领域占居主导地位,这主要是因为直流电机不仅调速方便,而且在磁场一定的条件下,转速和电枢电压成正比,转矩容易被控制;同时具有良好的起动性能,能较平滑和经济地调节速度。因此采用直流电机调速可以得到良好的动态特性。由于直流电动机具有优良的起、制动性能,宜与在广泛范围内平滑调速。在轧钢机、矿井卷机、挖掘机、金属切削机床、造纸机、高层电梯等领域中得到广泛应用。近年来交流调速系统
2、发展很快,然而直流控制系统毕竟在理论上和在时间上都比较成熟,而且从反馈闭环控制的角度来看,它又是交流系统的基础,长期以来,由于直流调速系统的性能指标优于交流调速系统。因此,直流调速系统一直在调速系统领域内占重要位置。2、课题功能 本次课程设计主要是设计一个直流电机的驱动电路,在给定速度后,当负载变化时,速度是稳定的,构建一个闭环的控制系统。本论文介绍了基于 ATmega16 单片机来实现最优 PID 控制的直流脉冲(PWM)调速系统,并且详细论述了该系统的控制方法、结构、参数设计、程序设计等方面的问题。该系统结构简单,调速性能好,性能价格比高,真正实现了直流调速系统的高精度控制。3、系统设计
3、31 设计要求 设计一个直流电机的驱动电路,在给定速度后,当负载变化时,速度是稳定的,构建一个闭环的控制系统。32 总体设计方案 321 设计思路 题目要求设计一个直流电机的驱动电路,系统可以分为控制部分和显示部分。设计中采用 ATmega16 芯片为主控制核心,行列式键盘为控制部分,显示部分采用液晶 LCM1602 显示。通过单片机软件产生 PWM 波来控制电机,经过测速电路和 PID 算法,实现电机速度的实时测量反馈和调节。322 方案论证与设计 1、系统控制设计方案论证与选择 方案一:采用 MCS-51 系列的单片机和专用的 PWM 芯片及外部 D/A 转换电路,同时结合 PID 算法实
4、现实时控制。方案二:直接采用 AVR 单片机由软件产生脉冲调制信号,经过 PID 算法,来对电机进行控制。由于系统要求比较简单,考虑性价比上,所以采用 ATmega16 芯片,来对电 2 机进行控制。2、电机控制电路的设计 方案一:采用专用电机控制集成芯片来控制电机转动,该方案电路简单、可靠。方案二:直接采用四个三极管搭成桥式电路来控制电机的转动。由于系统要求驱动电机为小电机,考虑性价比上,直接采用四个三极管进行控制。3、键盘电路的设计 由于系统要求功能简单,所以直接采用行式键盘进行控制。键盘用来输入启动、停止信号和设定的速度值。4、显示电路的设计 显示电路采用 LCM1602 进行显示。5、
5、速度测量电路的设计 速度测量采用光电开关,进行速度采集,经过单片机中断,将采样的数据经过换算,显示出来。323 系统组成 经过比较与论证,最终确定的系统组成框图如图1 所示,其中采用 ATmega16为主控制芯片,采用 1602 进行显示,键盘控制电路和电机控制电路。图 1 系统组成框图 4、系统硬件的设计与实现 41 ATmega16 单片机主控制电路图 ATmega16 芯片介绍:该芯片是基于增强的 AVR RISC 结构的低功耗 8 位CMOS 微处理器,数据吞吐率高达 1MIPS/MHz。有如下特点:16K 字节的系统内可编程 Flash,512 字节 EEPROM,1K 字节 SRA
6、M,32 个通用 I/O 口线,32个通用工作寄存器,用于边界扫描的 JTAG 接口,支持片内调试与编程,三个定时器/计数器等。引脚说明:VCC:数字电路的电源 按键控制模块 ATmega16 LCM1602 显示 电机驱动模块 直流电机 速度测量模块 3 GND:地 端口 A(PA7PA0):端口 A 作为 A/D 转换器的模拟输入端,为 8 位双向I/O 口。端口 B(PB7PB0):8 位双向 I/O 口。端口 C(PC7PC0):8 位双向 I/O 口。端口 D(PD7PD0):8 位双向 I/O 口。RESET:复位输入引脚。XTAL1:反向振荡放大器与片内时钟操作电路的输入端。XT
7、AL2:反向振荡放大器的输出端。AVCC:AVCC 是端口 A 与 A/D 转换器的电源 AREF:A/D 的模拟基准输入引脚。图 2 ATmega16 单片机主控制电路图 42 主要单元电路的设计 421 显示电路的设计 该部分采用 LCM1602 液晶模块。LCM1602 是一种使用非常广泛的液晶模块,它支持 5*7 点阵和 2 行*16 字符 2 两种模式,背光亮度和显示对比度可调,是一种功能较齐全,价格较便宜的液晶显示器件。它由显示屏和驱动器两部分组成,单片机可通过写控制字的方式访问驱动器来实现对显示屏的控制。4 图 3 LCM1602 显示电路图 422 键盘电路设计 键盘电路采用行
8、式键盘电路 图 4 键盘电路图 423 电机驱动电路的设计 图 5 电机驱动电路 5 工作原理简述如下:当 ctr_A=1,ctr_B=0:则 Q4 导通Q2 截止,Q3 截止Q1 导通。于是电流 i 流经电机 M 的路径为:VccQ1MD2Q4地,电机正转。当 ctr_A=0,ctr_B=1:则 Q3 导通Q1 截止,Q4 截止Q2 导通。于是电流 i 流经电机 M 的路径为:VccQ2MD1Q3地,电机反转。采用光耦电路进行电路隔离,有效提高电路的抗干扰性,当 OC1A 为 1 时,则 ctr_A=1,当 OC1A 为 0 时,则 ctr_A=0。图 6 光耦电路 424 电机测速电路的设
9、计 电机转速测量电路,采用光电开关进行对脉冲计数。图 7 电机测速电路图 5、软件设计 软件编写主要包括PWM 波形的产生,电机转速的实时检测,PID 控制算法,键盘扫描和液晶显示程序。51 核心部分算法 1、PWM 波形的产生 脉冲调制 PWM 开关型稳压电路是在控制电路输出频率不变的情况下,通过电压反馈调整其占空比,从而达到稳定输出电压的目的。通俗说的 PWM 就是波形,波形的波峰与波谷的关系成为占空比,可以通过 PWM 来控制电机。AVR单片机可以轻松实现PWM 功能。ATmega16 的 timer0 和 timer2 都具有 PWM 功 6 能,timer0 和 timer2 都为
10、8 位定时器。timer2 为异步操作定时器,在操作过程中要等待寄存器状态更改完成。本设计中设定使用 timer0 来实现 PWM 功能。OC0 output mode 设定了 PWM输出控制选择:正常的端口操作,不与 OC0 相连接,比较匹配发生时 OC0 取反,比较匹配发生时 OC0 清零,比较匹配发生时 OC0 置位。Waveform mode设定了波形产生模式:比较匹配输出模式,快速 PWM 模式,相位修正 PWM 模式。程序代码如下:#include#include void port_init(void)PORTA=0 x00;DDRA =0 x00;DDRB =0 x08;/PB
11、3 为 PWM 输出,非常重要,否则无法输出波形 DDRB =0 x00;PORTC=0 x00;/m103 output only DDRC =0 x00;PORTD=0 x00;DDRD =0 x00;/TIMER0 initialize-prescale:64/WGM:Normal/desired value:1KHz/actual value:1.002KHz(0.2%)void timer0_init(void)TCCR0=0 x00;/stop TCNT0=0 x8D;/设置定时器计数值/*TCNT0*/OCR0 =0 x73;/设置定时器比较的值/*OCR0*/TCCR0=0 x
12、23;/初始化控制 timer0 的寄存器/*TCCR0*/#pragma interrupt_handler timer0_comp_isr:20 void timer0_comp_isr(void)/compare occured TCNT0=OCR0#pragma interrupt_handler timer0_ovf_isr:10 void timer0_ovf_isr(void)TCNT0=0 x8D;/reload counter value 7 /call this routine to initialize all peripherals void init_devices(
13、void)/stop errant interrupts until set up CLI();/disable all interrupts port_init();timer0_init();MCUCR=0 x00;GICR =0 x00;TIMSK=0 x03;/定时器中断选项/*TIMSK*/SEI();/re-enable interrupts /all peripherals are now initialized void main(void)/*加上这些,程序就可以运行了。*/init_devices();while(1);程序中几个关键的寄存器的意义:1.TCNT0:定时器计
14、数值,定时过程中不断增大,溢出后重新置数,开始下一轮。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)的时候:从计时器使能到第一次开
15、始计数可能花费 1 到 N+1 个系统时钟周期,其中 N 等于预分频因子(8、64、256 或 1024)。PWM 的工作流程:1.初始化,定时器开始工作,TCNT0 逐渐增大,在预分频这么多个时钟周期里变化一次。2.输出比较寄存器包含一个 8 位的数据,不间断地与计数器数值 TCNT0 进行比较。匹配事件可以用来产生输出比较中断,或者用来在 OC0 引脚上产生波形。3.TCNT0 溢出,溢出中断用于在 OC0 上产生波形,置位或者清零。4.TCNT0 复位,进行下一次定时操作。PWM 的占空比:8 调节 PWM 的占空比,只需要用程序更改 OCR0 的值即可,根据不同的情况,可能是增加也可能
16、是减小。注意:因为 Timer2 是异步控制器,使用 Timer2 时,调节 OCR2 需要等待寄存器更新完成才能进行其他操作。2、PID 控制算法 要使电机的转速稳定在某一预定的转速,需要随时监测(采样)电机的转速并与预定值(设定值)相比较,根据比较的结果来不断调整电机的转速,使之尽量接近设定值,这一过程成为闭环反馈控制,其控制方法(控制策略)称为控制算法,控制算法可以有多种多样,其中典型的一种算法叫做 PID(比例积分微分)算法(或 PID 控制)。PID 控制有连续 PID 控制和数字 PID 控制两种,前者由模拟电子线路构成,不含智能元件(单片机),后者以微计算机为核心构成。数字 PI
17、D 控制常常采用增量 PID 算法,表达式如下:y(k)=y(k-1)+y(k)其中 y(k)第 k 次输出的控制(信号)值 y(k-1)前一次输出的控制(信号)值 y(k)输出增量(可为正、负数)y(k)=kpe(k)-e(k-1)+kie(k)+kde(k)-2e(k-1)+e(k-2)其中 kp比例系数 Ki积分系数 Kd微分系数 e(k):第 k 次采样时的偏差值(采样值与设定值之差)e(k-1):第 k-1 次采样时的偏差值(采样值与设定值之差)e(k-2):第 k-2 次采样时的偏差值(采样值与设定值之差)闭环系统框图如下:程序代码如下:void PID()int y;/本次速度值
18、 float u;/电压差值 int z;/输出增量 int t;/采样时间 char temp1;/暂存 int I;PID 算法 执行机构 被控对象 采 样(检 测)设定值 r 偏差 e y 采样值 9 int speed;/速度设定 float k3;/PID参数记录 for(i=0;i8;Data7=y;Putdata(Data);temp1=temp1+z;if(temp1=0 xf0)/结果大于 0 xf0 时输出 0 xf0 temp1=0 xf0;OCR2=temp1;Ek_2=Ek_1;Ek_1=Ek;TCNT2=0 x0000;/计数器清零 52 程序流程图 10 图 5.
19、2.1 主程序流程图 图 5.2.2 速度控制程序流程图 初始化 取出速度命令字 返回 结束 开始 初始化 电机转速脉冲计数加 1 定时器定时 计算当前电机转速 PID 算法 判断脉冲是否大于设定值 PWM 输出 外部中断计数 开中断 定时到开中断 是 11 图 5.2.3 测速中断服务程序流程图 图 5.2.4 PID 算法流程图 开始 计算控制参数 A、B、C 初始值 e(k-1)=e(k-2)=0 本次采样输入c(k)计算偏差值 e(k)=r(k)-c(k)计算控制量u(k)=Ae(k)-Be(k-1)+Ce(k-2)输出u(k)为下一时刻做准备 e(k-1)e(k-2),e(k)e(k
20、-1)采样时间到了吗 N Y D/A 转换 被 控 对 象 A/D 转换 初始化 计算电机转速 与定值比较 调用 PID 子程序 结束 12 图 5.2.5 PWM 波形的产生流程图 6、调试 61 硬件调试 硬件调试是利用开发系统、基本测试仪器,通过执行开发系统有关命令或运行适当的测试程序,检查用户系统硬件中存在的故障。硬件调试可分为静态调试和动态调试。1、静态调试 首先,对每一块加工好的印刷电路板要仔细的检查,检查它的印制线是否断线,是否有毛刺,是否与其他印制线或焊盘或过孔粘连,焊盘是否脱落,过孔是否有未金属化等现象,查出的故障及时排除。然后用万用表复核认为可疑的连接线或接点,检查它们的通
21、断状态是否与设计规格相符。再检查各种电源线与地线之间是否有短路现象并排除。最后,加电检查,加电过程中细心观察芯片或器件是否出现打火、过热、变色、冒烟和异味等现象,如有,立即断电检查。2、动态调试 首先按逻辑功能将用户系统硬件电路分为若干模块进行单独调试。调试某模块时将整个电路板中与该模块无关的器件全部拔除,当各独立模块调试无故障后,然后逐步将接近的相关模块加入到应用系统中,并每加入一个模块后再对各模块功能进行调试,若在这个过程中出现故障,则基本上是各模块协调关系上出了问题。62 软件调试 首先,采取先使用断点运行方式以查看程序运行中间结果,将程序故障定位初始化 定时器开始工作 TCNT0 逐渐
22、增大,在预分频这么多个时钟周期里变化一次 TCNT0的值与OCR0的值比较 TCNT0 溢出,产生波形 TCNT0 复位 下一次定时操作 13 在一个较小的范围内。然后,针对故障程序段再使用单步运行调试方法来精确定位错误所在。最后,要连续运行调试,以防止某些错误在单步运行调试时被掩盖。有些实时性操作(如中断等)必须采用连续运行方式来调试,为了准确地对错误进行定位,可使用连续加断点运行方式来调试这类程序。最终确定出错误位置并加以排除。7、总结 本次课程设计我做的是直流电机调速,虽然以前也接触过,但都是在实验台上实现,并不需要应用到现实生活中。通过本次课程设计我了解了许多关于直流电机调速的知识,也
23、查询了许多的资料,并结合自己的想法完成了课题。经过学习,使我对 AVR 单片机有了初步的了解,对一个系统的设计要如何入手有了更加深刻的体会。在整个设计过程中,也遇到了一些问题,如PID 算法等,但经过努力都一一解决了。通过这次案例分析课程设计,我学到了很多东西,感觉到理论和现实的差别。在过去的两年多的大学学习中,大部分时间是在跟着老师学习,学习过去的一些基本理论一些基本的思想,感觉上好像学习就应是这个样子,就应该是老师让我们干什么我们就干什么,没有自己真正实践过。第一次接触这样的课程,十分高兴,我深入到实际的工程案例中。它能充分调动大家的积极性,趣味性强,不仅锻炼能力,而且可以学到很多书本上没有的东西。我们上网查找相关的资料,并从众多资料中筛选出对自己有用的东西,真正锻炼了我们的能力。虽然起初感觉有点无从下手,但慢慢就变得得心应手。在这次的设计中,也得到了同学和老师的帮助。通过这次学习,使我对本专业有了更深的认识,也大大提高了我的动手能力。8、参考文献 1、李朝青.单片机原理及接口技术.北京:北京航空航天大学出版社,1999年。2、求是科技.8051 单片机程序设计 北京:人民邮电出版社,2006 年。3、马潮.高档 8 位单片机原理与开发应用指南(上).北京:北京航空航天大学出版社,2004 年。4、网站: 5、网站:www.IC 6、网站: 。7、中国工控网。