直流电机调速论文.doc_第1页
直流电机调速论文.doc_第2页
直流电机调速论文.doc_第3页
直流电机调速论文.doc_第4页
直流电机调速论文.doc_第5页
免费预览已结束,剩余8页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

直流电机调速论文1、课题背景随着时代的进步和科技的发展,电机调速系统在工农业生产、交通运输以及日常生活中起着越来越重要的作用,因此,对电机调速的研究有着积极的意义.长期以来,直流电机被广泛应用于调速系统中,而且一直在调速领域占居主导地位,这主要是因为直流电机不仅调速方便,而且在磁场一定的条件下,转速和电枢电压成正比,转矩容易被控制;同时具有良好的起动性能,能较平滑和经济地调节速度。因此采用直流电机调速可以得到良好的动态特性。由于直流电动机具有优良的起、制动性能,宜与在广泛范围内平滑调速。在轧钢机、矿井卷机、挖掘机、金属切削机床、造纸机、高层电梯等领域中得到广泛应用。近年来交流调速系统发展很快,然而直流控制系统毕竟在理论上和在时间上都比较成熟,而且从反馈闭环控制的角度来看,它又是交流系统的基础,长期以来,由于直流调速系统的性能指标优于交流调速系统。因此,直流调速系统一直在调速系统领域内占重要位置。 2、课题功能 本次课程设计主要是设计一个直流电机的驱动电路,在给定速度后,当负载变化时,速度是稳定的,构建一个闭环的控制系统。 本论文介绍了基于ATmega16单片机来实现最优PID控制的直流脉冲(PWM)调速系统,并且详细论述了该系统的控制方法、结构、参数设计、程序设计等方面的问题。该系统结构简单,调速性能好,性能价格比高,真正实现了直流调速系统的高精度控制。3、系统设计31设计要求设计一个直流电机的驱动电路,在给定速度后,当负载变化时,速度是稳定的,构建一个闭环的控制系统。32总体设计方案321设计思路题目要求设计一个直流电机的驱动电路,系统可以分为控制部分和显示部分。设计中采用ATmega16芯片为主控制核心,行列式键盘为控制部分,显示部分采用液晶LCM1602显示。通过单片机软件产生PWM波来控制电机,经过测速电路和PID算法,实现电机速度的实时测量反馈和调节。322方案论证与设计1、系统控制设计方案论证与选择 方案一:采用MCS-51系列的单片机和专用的PWM芯片及外部D/A转换电路,同时结合PID算法实现实时控制。 方案二:直接采用AVR单片机由软件产生脉冲调制信号,经过PID算法,来对电机进行控制。 由于系统要求比较简单,考虑性价比上,所以采用ATmega16芯片,来对电机进行控制。2、电机控制电路的设计 方案一:采用专用电机控制集成芯片来控制电机转动,该方案电路简单、可靠。 方案二:直接采用四个三极管搭成桥式电路来控制电机的转动。 由于系统要求驱动电机为小电机,考虑性价比上,直接采用四个三极管进行控制。3、键盘电路的设计 由于系统要求功能简单,所以直接采用行式键盘进行控制。键盘用来输入启动、停止信号和设定的速度值。4、显示电路的设计 显示电路采用LCM1602进行显示。5、速度测量电路的设计 速度测量采用光电开关,进行速度采集,经过单片机中断,将采样的数据经过换算,显示出来。323系统组成 经过比较与论证,最终确定的系统组成框图如图1所示,其中采用ATmega16为主控制芯片,采用1602进行显示,键盘控制电路和电机控制电路。按键控制模块ATmega16LCM1602显示电机驱动模块直流电机速度测量模块 图1 系统组成框图4、系统硬件的设计与实现41 ATmega16单片机主控制电路图 ATmega16芯片介绍:该芯片是基于增强的AVR RISC结构的低功耗8位CMOS微处理器,数据吞吐率高达1MIPS/MHz。有如下特点:16K字节的系统内可编程Flash,512字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个定时器/计数器等。引脚说明:VCC:数字电路的电源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:反向振荡放大器与片内时钟操作电路的输入端。XTAL2:反向振荡放大器的输出端。AVCC:AVCC是端口A与A/D转换器的电源AREF:A/D的模拟基准输入引脚。 图2 ATmega16单片机主控制电路图42 主要单元电路的设计421 显示电路的设计 该部分采用LCM1602液晶模块。LCM1602是一种使用非常广泛的液晶模块,它支持5*7点阵和2行*16字符2两种模式,背光亮度和显示对比度可调,是一种功能较齐全,价格较便宜的液晶显示器件。它由显示屏和驱动器两部分组成,单片机可通过写控制字的方式访问驱动器来实现对显示屏的控制。 图3 LCM1602显示电路图422键盘电路设计 键盘电路采用行式键盘电路 图4 键盘电路图423 电机驱动电路的设计 图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电机测速电路的设计 电机转速测量电路,采用光电开关进行对脉冲计数。图7 电机测速电路图5、软件设计 软件编写主要包括PWM波形的产生,电机转速的实时检测,PID控制算法,键盘扫描和液晶显示程序。51 核心部分算法1、PWM波形的产生 脉冲调制PWM开关型稳压电路是在控制电路输出频率不变的情况下,通过电压反馈调整其占空比,从而达到稳定输出电压的目的。通俗说的PWM就是波形,波形的波峰与波谷的关系成为占空比,可以通过PWM来控制电机。AVR单片机可以轻松实现PWM功能。ATmega16的timer0和timer2都具有PWM功能,timer0和timer2都为8位定时器。timer2为异步操作定时器,在操作过程中要等待寄存器状态更改完成。本设计中设定使用timer0来实现PWM功能。OC0 output mode 设定了PWM输出控制选择:正常的端口操作,不与OC0 相连接, 比较匹配发生时OC0 取反, 比较匹配发生时OC0 清零, 比较匹配发生时OC0 置位。Waveform mode设定了波形产生模式:比较匹配输出模式,快速PWM 模式,相位修正PWM 模式。程序代码如下:#include #include void port_init(void) PORTA = 0x00; DDRA = 0x00; DDRB = 0x08; /PB3为PWM输出,非常重要,否则无法输出波形 DDRB = 0x00; PORTC = 0x00; /m103 output only DDRC = 0x00; PORTD = 0x00; DDRD = 0x00;/TIMER0 initialize - prescale:64/ WGM: Normal/ desired value: 1KHz/ actual value: 1.002KHz (0.2%)void timer0_init(void) TCCR0 = 0x00; /stop TCNT0 = 0x8D; /设置定时器计数值 /*TCNT0*/ OCR0 = 0x73; /设置定时器比较的值 /*OCR0*/ TCCR0 = 0x23; /初始化控制 timer0的寄存器/*TCCR0*/#pragma interrupt_handler timer0_comp_isr:20void timer0_comp_isr(void) /compare occured TCNT0=OCR0#pragma interrupt_handler timer0_ovf_isr:10void timer0_ovf_isr(void) TCNT0 = 0x8D; /reload counter value/call this routine to initialize all peripheralsvoid init_devices(void) /stop errant interrupts until set up CLI(); /disable all interrupts port_init(); timer0_init(); MCUCR = 0x00; GICR = 0x00; TIMSK = 0x03; /定时器中断选项 /*TIMSK*/ SEI(); /re-enable interrupts /all peripherals are now initializedvoid main(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)=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次采样时的偏差值(采样值与设定值之差)闭环系统框图如下: PID算法执行机构被控对象采 样(检 测)设定值r偏差ey采样值程序代码如下: void PID() int y; /本次速度值 float u; /电压差值 int z; /输出增量 int t; /采样时间 char temp1; /暂存 int I; int speed; /速度设定 float k3; / PID参数记录 for(i=0;i8; Data7=y; Putdata(Data); temp1=temp1+z; if(temp1=0xf0) /结果大于0xf0时输出0xf0 temp1=0xf0;OCR2=temp1;Ek_2=Ek_1;Ek_1=Ek;TCNT2=0x0000; /计数器清零 52程序流程图开始初始化电机转速脉冲计数加1定时器定时计算当前电机转速PID算法判断脉冲是否大于设定值PWM输出外部中断计数开中断定时到开中断是 图5.2.1主程序流程图初始化取出速度命令字返回结束 图5.2.2速度控制程序流程图 初始化计算电机转速与定值比较调用PID子程序结束 图5.2.3测速中断服务程序流程图开始计算控制参数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-1)采样时间到了吗NYD/A转换被控对象A/D转换 图5.2.4 PID算法流程图初始化定时器开始工作TCNT0逐渐增大,在预分频这么多个时钟周期里变化一次TCNT0的值与OCR0的值比较TCNT0溢出,产生波形TCNT0复位下一次定时操作 图5.2.5 PWM波形的产生流程图6、调试61硬件调试 硬件调试是利用开发系统、基本测试仪器,通过执行开发系统有关命令或运行适当的测试程序,检查用户系统硬件中存在的故障。硬件调试可分为静态调试和动态调试。 1、静态调试 首先,对每一块加工好的印刷电路板要仔细的检查,检查它的印制线是否断线,是否有毛刺,是否与其他印制线或焊盘或过孔粘连,焊盘是否脱落,过孔是否有未金属化等现象,查出的故障及时排除。然后用万用表复核认为可疑的连接线或接点,检查它们的通断状态是否与设计规格相符。再检查各种电源线与地线之间是否有短路现象并排除。最后,加电检查,加电过程中细心观察芯片或器件是否出现打火、过热、变色、冒烟和异味等现象,如有,立即断电检查。 2、动态调试 首先按逻辑功能将用户系统硬件电路分为若干模块进行单独调试。调试某模块时将整个电路板中与该模块无关的器件全部拔除,当各独立模块调试无故障后,然后逐步将接近的相关模块加入到应用系统中,并每加入一个模块后再对各模块功能进行调试,若在这个过程中出现故障,则基本上是各模块协调关系上出了问题。62软件调试 首先,采取先使用断点运行方式以查看程序运行中间结果,将程序故障定位在一个较小的范围内。然后,针对故障程序段再使用单步运行调试方法来精确定位错误所在。最后,要连续运行调试,以防止某些错误在单步运行调试时被掩盖。 有些实时性操作(如中断等)必须采用连续运行方式来调试,为了准确地对错误进行定位,可使用连续加断点运行方式来调试这类程序。最终确定出错误位置并加以排除。7、总结本次课程设计我做的是直

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论