单片机大实验(打印).doc

上传人:doc321 文档编号:14865996 上传时间:2022-02-22 格式:DOC 页数:12 大小:189.50KB
返回 下载 相关 举报
单片机大实验(打印).doc_第1页
第1页 / 共12页
单片机大实验(打印).doc_第2页
第2页 / 共12页
单片机大实验(打印).doc_第3页
第3页 / 共12页
单片机大实验(打印).doc_第4页
第4页 / 共12页
单片机大实验(打印).doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《单片机大实验(打印).doc》由会员分享,可在线阅读,更多相关《单片机大实验(打印).doc(12页珍藏版)》请在三一文库上搜索。

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 #include Afx.h#include Config.c#define CIRCLE 5 /脉冲周期/按键定义uchar key,key_tmp=0, _key

9、_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; /电机启停标志bit DirState=0;/方向标志 0前,1后uchar State1=-1;uch

10、ar 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 K1(void);void disp( uchar H, uchar n );void m

11、ain(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:break;key=0;DisBuf();LWidth=LSpeed; RWidth=RSpee

12、d;/按键扫描*模拟触发器防抖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;/初速设为1else if(State4=1)State4=0;TR1=0;MotState=0; /关闭电机else if(Stat

13、e4=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)State3=0;TR1=0;dispbuf3=0;MotState=0; void K2(void)if(State4=1

14、&LSpeed4&RSpeed4)LSpeed+;RSpeed+;else if(State4=0)if(State3=0)/State4=-1;/LedState=0xF0; MotState=0;Sec=0;Min=0;else if(State3=1&LSpeed4&RSpeed1&RSpeed1)LSpeed-;RSpeed-;else if(State4=0)if(State3=0)State4=-1;LedState=0xF0; MotState=0;else if(State3=1&LSpeed4&RSpeedCIRCLE) Widcnt=1; if(Widcnt=LWidth)

15、LMot_P=!DirState&MotState;else LMot_P=DirState&MotState; LMot_M=DirState&MotState;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 T

16、ime_1() interrupt 3TH1=0xDB;TL1=0xFF;RTime_cnt+;/*配置文件Afx.h*/#ifndef _AFX_#define _AFX_typedef unsigned char uchar;typedef unsigned int uint;typedef unsigned long ulong;#endif/*IO配置文件Config.c*/#ifndef _Config_#define _Config_#include Afx.h#include /显示定义 sbit led=P32;/电机引脚定义 sbit LMot_P=P22; sbit LMot_M=P23; sbit RMot_P=P20; sbit RMot_M=P21;#endif12 / 12

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1