单片机大实验(打印)_第1页
单片机大实验(打印)_第2页
单片机大实验(打印)_第3页
单片机大实验(打印)_第4页
单片机大实验(打印)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、 . . . 学院 单片机原理与应用 课程论文课程论文题目基于单片机的电动自行车直流无刷电机的PWM调速的设计院系名称计算机科学与技术专业(班级)09计本(1)班(学号)伟庆 0904011038指导教师龙夏2012年 6月 16 日基于单片机的电动自行车直流无刷电机的PWM调速的设计09计本(1)班 伟庆 0904011038关键词 PIC单片机 电动自行车 PWM 无刷直流电机引言电动自行车是一种比较适合我国普通群众经济状况的新型交通工具,受到广大消费者的热烈欢迎。过去的电动自行车通常选用直流有刷电机, 但有刷电机有噪音大,电刷换向时产生的摩擦会使电机寿命减短等缺点,因而正逐步被直流无刷电

2、机所取代。 直流无刷电机采用霍尔效应进行调速,与有刷电机相比有诸多优点,如:优越的调速性能,主要表现在调速方便(可无级调速)、调速围宽、低速性能好(启动转矩大、启动电流小)、运行平衡、噪音低、效率高等方面。随着社会的不断进步,人们生活水平的提高,环境保护和能源节约问题已经越来越受到重视,开发“零污染”、高效率的绿色环保电动自行车代替已成为一个不可逆转的趋势,且具有良好的发展前景。近年来,无刷直流电机(BLDCM)以其体积小,结构简单,功率密度高,输出转矩大,动态性能好等特点而得到了广泛应用。在电机的数字调速控制中,选择高效可靠的单片机将使控制系统的硬件电路简单可靠、软件编制方便,系统整体性能得

3、以提高。电动自行车控制系统的设计方案(1) 系统的硬件设计与原理这里设计的电动自行车控制系统主要由以下几部分组成:以PIC16F72单片机为主控电路,其主要功能是完成电机的起动、换相、调速、制动等控制并实现对电机、电池的保护;以IR2132S为核心的驱动、逆变电路,其主要功能是利用IR2131S的自举技术驱动功率MOSFET管控制电机电流;位置信号处理电路、电流信号处理电路以与一些外围保护、辅助电路,其主要功能有完成对信号的采样、对电路的供电、提供显示信号、发出报警信号等功能。系统原理框图如图1所示。该系统的基本原理是:PIC单片机的PWM输出端口经驱动芯片,驱动6个功率场效应管,由其组成的三

4、相全桥驱动电路对电机进行控制,位置检测和电流检测形成负反馈,位置检测的同时可以计算出电机转速参数,因此可以对电机进行位置环、速度环和电流环的三闭环控制。位置参数由无刷直流电动机自带的霍尔元件测出,并由PIC16F72的C端口进行捕捉定位,反馈的电流量是通过检测旁路电阻上的压降实现的,由PIC自带的AD进行采样、转换。无刷直流电机的速度、电流双闭环控制如图2所示。(2) 系统的主要控制电路设计位置检测与速度检测电路。在无刷直流电机的控制中,磁极位置的测定直接决定了控制效果的好坏。方波电流驱动的无刷直流电机是借助于位置检测信号控制逆变器换流,以达到在电机定子线圈以互差120°的方波电流,

5、才能正常运行。本系统的位置信号采样是通过无刷直流电动机本身自带的霍尔元件检测的,由于霍尔元件是集电极开路输出,其输出信号经过上拉电阻得出位置方波信号,再经过隔离电路送到PIC的C口对应引脚进行位置信号的捕捉。为了使电路尽可能的简单,降低成本,该系统没有专门设置速度检测装置,而是利用转子位置传感器所产生的脉冲信号来反映电机的转速,并通过软件运用算法测速,从而实现转速反馈。电流检测电路。电流检测是限流驱动的基础,是系统电流环控制的重要环节,该方案采用一个分流电阻间接测流。在直流侧接相应阻值的分流电阻,通过测量电阻的电压,来测量直流回路的电流,这种方案对于AD转换的精度和软件数据处理有一定要求,但是

6、造价很低。驱动、逆变电路。该系统采用MOSFET组成逆变器的变换电路。由于半桥逆变器的控制比较复杂,需要6组控制信号,电机三相绕组的工作也相对独立,必须对三相电流分别控制。而全桥逆变器的控制比较简单,只需三组独立控制信号,且任一时刻导通的两相电流相等,只要对其中一相电流进行控制,另外一相电流也得到了控制。因此该方案采用全桥逆变电路来控制各相位的导通,并选取美国国际整流公司推出的MOS功率器件专用的栅极驱动集成电路IR2132S。电机调速方案。直流无刷电动机可以通过改变电枢电路中的外串电阻或改变加在电动机电枢上的电压调速。其中改变电枢电压调速的方法有稳定性较好、调速围大的优点。该系统利用开关驱动

7、方式使半导体功率器件工作在开关状态,通过脉宽调制(PWM)控制电动机电枢电压,实现调速。常用的PID控制算法分为位置式控制算法和增量式控制算法。位置型PI算法的表达式为:式中:e(t)是输入;u(t)起控制作用;Kp为比例系数;Ti为积分时间常数。增量型算法表达式为:该系统电流调节器用PI调节器,速度调节器为改进的PI调节器,且都采用增量式控制算法。对于速度环的控制采用改进的PI算法即积分分离PI算法实现。该算法的表达式为:积分分离算法要设置积分分离阀E0,| e(kT)|E0时,采用PI控制可保证系统的控制精度;当|e(kT)|E0时,也即偏差较大时,采用P控制直接使超调量大为降低。(3)

8、系统软件设计与实验结果软件设计是整个控制系统设计的核心部分,它将直接决定了整个控制系统的控制质量和它的效率,决定系统输出信号的特性,包括电流大小与稳定度、谐波含量、保护功能的完善、可靠性等。PIC芯片是在其专门的软件开发环境Mplab进行程序编写与仿真的,这给开发者设计调试程序带来了极大的方便。该系统软件设计重点是主程序和中断服务程序,其流程图如图3和图4所示,其中T0用于计算换相时间,且采用汇编语言编写程序。附录(源程序)#include <reg52.h>#include "Afx.h"#include "Config.c"#define

9、 CIRCLE 5 /脉冲周期/按键定义uchar key,key_tmp=0, _key_tmp=0;/显示定义uchar LedState=0xF0; /LED显示标志,0xF0不显示,Ox00显示uchar code LED_code_d4=0xe0,0xd0,0xb0,0x70; /分别选通1、2、3、4位uchar dispbuf4=0,0,0,0; /待显示数组uchar dispbitcnt=0; /选通、显示的位uchar mstcnt=0;uchar Centi_s=0,Sec=0,Min=0; /分、秒、1%秒/程序运行状态标志bit MotState=0; /电机启停标志

10、bit DirState=0;/方向标志 0前,1后uchar State1=-1;uchar State2=-1;uchar State3=0;uchar State4=-1;uchar LSpeed=0;uchar RSpeed=0;/其他uint RunTime=0;uint RTime_cnt=0;uint LWidth;uint RWidth; /脉宽uint Widcnt=1;uint Dispcnt; /函数声明void key_scan(void);void DisBuf(void);void K4(void);void K3(void);void K2(void);void

11、K1(void);void disp( uchar H, uchar n );void main(void) P1|=0xF0;EA=1;ET0=1;ET1=1;TMOD=0x11;TH0=0xFC;TL0=0x66; /T0,1ms定时初值TH1=0xDB;TL1=0xFF; /T1,10ms定时初值TR0=1;Widcnt=1;while(1)key_scan();switch(key)case 0x80: K1(); break;case 0x40: K2(); break;case 0x20: K3(); break;case 0x10: K4(); break;default:bre

12、ak;key=0;DisBuf();LWidth=LSpeed; RWidth=RSpeed;/按键扫描*模拟触发器防抖void key_scan(void)key_tmp=(P3)&0xf0;if(key_tmp&&!_key_tmp) /有键按下key=(P3)&0xf0;_key_tmp=key_tmp ; /按键功能处理/逻辑控制void K4(void) if(State4=-1)State4=1;TR1=1;dispbuf3=1;LedState=0x00; /打开LEDMotState=1; /打开电机LSpeed=1;RSpeed=1;/初速设为

13、1else if(State4=1)State4=0;TR1=0;MotState=0; /关闭电机else if(State4=0) MotState=1;if(State3=0)State4=1;TR1=1;else if(State3=1)LSpeed=2; RSpeed=2; void K3(void)if(State4=1)DirState=!DirState;if(State4=0)if(State3=0)State3=1; /可以转向标志 1可以,0不可以TR1=1;dispbuf3=9;MotState=1;LSpeed=2;RSpeed=2;else if(State3=1)

14、State3=0;TR1=0;dispbuf3=0;MotState=0; void K2(void)if(State4=1&&LSpeed<4&&RSpeed<4)LSpeed+;RSpeed+;else if(State4=0)if(State3=0)/State4=-1;/LedState=0xF0; MotState=0;Sec=0;Min=0;else if(State3=1&&LSpeed<4&&RSpeed<4) /TurnState=0;LSpeed=2;RSpeed+;void K1(vo

15、id)if(State4=1&&LSpeed>1&&RSpeed>1)LSpeed-;RSpeed-;else if(State4=0)if(State3=0)State4=-1;LedState=0xF0; MotState=0;else if(State3=1&&LSpeed<4&&RSpeed<4)/TurnState=1;LSpeed+;RSpeed=2;/显示预处理void DisBuf(void) if(RTime_cnt=100)Sec+;RTime_cnt=0;if(Sec=60)Min+;

16、Sec=0;if(State4=1)dispbuf0=Sec%10; dispbuf1=Sec/10; dispbuf2=Min;if(!DirState) /正转 dispbuf3=LSpeed;if(DirState)/反转dispbuf3=LSpeed+4; if(State4=0)if(State3=0) dispbuf0=Sec%10; dispbuf1=Sec/10; dispbuf2=Min; dispbuf3=0;if(State3=1) dispbuf0=RSpeed; dispbuf1=LSpeed; dispbuf2=Min; dispbuf3=9;/LED驱动void

17、disp( uchar H, uchar n ) P1=n;P1|=LedState ;P1|=LED_code_dH;/T0中断*显示/方波输出void Time_0() interrupt 1 TH0=0xFC;TL0=0x66;Widcnt+;Dispcnt+; /电机驱动/方波输出if(Widcnt>CIRCLE) Widcnt=1; if(Widcnt<=LWidth)LMot_P=!DirState&&MotState;else LMot_P=DirState&&MotState; LMot_M=DirState&&Mot

18、State;if(Widcnt<=RWidth)RMot_P=!DirState&&MotState;else RMot_P=DirState&&MotState;RMot_M=DirState&&MotState; /显示if(Dispcnt=5)disp(dispbitcnt,dispbufdispbitcnt);dispbitcnt+;if(dispbitcnt=4) dispbitcnt=0;Dispcnt=0;/T1中断*运行时间void Time_1() interrupt 3TH1=0xDB;TL1=0xFF;RTime_cnt+;/*配置文件Afx.h*/#ifndef _AFX_#define _AFX_typedef u

温馨提示

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

评论

0/150

提交评论