电动车用无刷直流电机控制器的设计

摘 要

近年来,社会发展快速,而我们生活的环境也在遭受破坏,民众的环境保护意识和资源节约意识不断提高,电动车在这样的机遇下获得很大关注并蓬勃发展。之前有刷直流电机在电动车驱动装置中占据着主导地位,但有刷电机凭借机械换向器和电刷配合进行换向,特别容易造成磨损,元件也比较复杂,同时运行稳定性较差且有杂音。现在无刷直流电机运用在更多行业,它兼备有刷直流电机优点,没有机械换向装置,使用时间长、安全性高、维护成本低等优点,这些优点使它成为电动车用电机的首选。

利用PICl6F72单片机进行无刷直流电机控制器的设计。用它来实现各个模块的功能,电池经稳压器输出不同电压,一个给驱动芯片IR2130,通过IR2130芯片驱动逆变桥电路,根据检测的逆变桥输出电流大小对电机控制,同时确定是否过流。检测电池电压,然后输入单片机进行控制。另一个给单片机,提供电压和基准值。

关键词:无刷直流电动机 PIC16F72 控制系统

目 次

1引言 .............................................................. 3 1.1课题背景描述 .................................................... 3 1.2无刷直流电机的发展现状 .......................................... 3 1.3无刷直流电机发展前景 ............................................ 4 2 电动车控制总体设计 .............................................. 5 2.1电机选择 ........................................................ 5 2.2 无刷直流电机的结构 ............................................. 5 2.3 无刷直流电机的原理 ............................................. 5 2.4无刷直流电机的运行特性 .......................................... 7 3 硬件设计 ......................................................... 9 3.1无刷直流电机控制器硬件设计 ...................................... 9 3.2 PIC16F72单片机的主要性能 ...................................... 10 3.3电源变换电路 ................................................... 10 3.3 MOSFET驱动芯片IR2130简介 ..................................... 11 3.5 输入信号处理部分 .............................................. 13 3.5.1 速度控制和电量检测部分 ...................................... 13 3.5.2 电流检测和放大部分 .......................................... 14 3.5.3 霍尔位置传感器信号处理部分 .................................. 15 3.5.4 转把刹车处理部分 ............................................ 16 4 软件设计 ....................................................... 17 4.1 软件设计的总体思路简介 ........................................ 17 4.2程序流程图 ..................................................... 17 4.3 转子换相流程图 ................................................ 18 总 结 ............................................................ 20 致 谢 ............................................................ 21 参 考 文 献 ....................................................... 22 附录A 硬件电路原理图 .............................................. 24 附录B 控制程序 .................................................... 26

1引言

1.1课题背景描述

目前,全国各地都出现雾霾天气,人们越来越关注生活环境。减少资源浪费,发展新能源的呼声高涨,特别是国家把这个问题提上日程,可以看出对环境卫生的重视。在这样的背景下,无污染的交通工具受到热捧。

市场上新能源汽车的高效节能得到很多重视和大量研究,特别是电动车的发展。由于电子控制技术的革新发展使得对电机性能要求也越来越高,例如:质量小,输出转矩高,占地小,运行效率高。无刷直流电机具有结构简单,安全运行,没有摩擦,电磁噪声小优点,大量运用在现代生产装备、功能测量仪器、电脑外围设备和特殊电器。

它克服了有刷直流电机电刷和换向器的接触产生摩擦火花, 电流干扰和其它缺点,延长使用时间, 所以无刷直流电机在电动自行车产品中逐渐被运用。鉴于无刷直流电机这些优异的功能,它将会获得更大的应用空间。

1.2无刷直流电机的发展现状

电动车在行驶时,由于受到交通路况的影响,通常是处在走走停停的状况,特别是在城市交通中,这种状况更为明显。因此, 电动机的启动特性、加速度特性、效率利用率、低速运行、再生回馈制动具有特别高的品质。电机过载、电机的能量密度是电动车电机的一个重要指标。

没有某一电动机是电动车专用的, 都是使用通用电机, 如直流它励电机, 直流串励电机、永磁直流电动机。通用电动机负载特性常数随着电动车负荷特性变化而变化, 如果这两个特征不匹配, 就会影响电动机的输出, 从而影响电动车的性能。此外, 大多数电机设计的最高效率点设置在额定负载左右。开关磁阻电机低速高扭矩, 但效率低, 永磁同步电机效率高, 但不能改善低速扭矩。无刷直流电机恰恰有这些优点。把多种电机的技术指标列出见表1-1。

由表1-1看出无刷直流电机为最佳驱动电动车的电机,跟列表中其它电机比较它突出优点是:依靠转子上的霍尔位置传感器完成电子换向,不用借助电刷和换向器,不经常维修,耐用经济,硬性指标好,能实现平滑且大范围的调速,它消除了电刷上的降压,具有很高的效率,将电枢绕组缠绕在电动机的定子上,容易把热量

排出。这种情况下可最大程度减小电机尺寸。把永磁体安装在电机转子上,优化电机动态响应。减掉了换向器和电刷的限制,转速可以很高,控制器可以驱动电机运转,同时它又可调节电动机的速度。

表1-1 各种电机性能指标

1.3无刷直流电机发展前景

不可否认,电动车是近些年发展尤为迅速并且成为趋势的一个产业。它减少尾气、使用便捷、方便维护的特点,得到消费者的喜爱,在我国它的需求量非常大。到2008年我国消费的电动车数量达到1.1亿辆。除此之外,从近年来的情况看,它大大超越自行车数量,与燃油车比较中它的优势逐渐明晰,最近几年很多公司推出样式新颖能耗低的电动车,是交通出行的工具。依靠数据显示:预计至2015年,市场上电动车消费量可达到3.2亿辆。加上各阶层认识到电动车的经济环保,它每年的增长可以达500万辆,连带其附属产业,它能创造巨大的经济效益。所以,在扩大内需和减少污染的大环境下,电动车可以保持长期发展。

2 电动车控制总体设计

2.1电机选择

无刷直流电机与其它电机相比,它运行稳定,启动转矩大,成本低。并且回馈部分不复杂,功率密度保持的很高,电机输出转矩也很大,控制装置也非常好设计,这样电机和逆变器的优点得到最大限度发挥。无刷电机调速范围很宽,尺寸小,质量不大,转自惯量较低,客服了传统电机的励磁消耗。

2.2 无刷直流电机的结构

电动机上电枢绕组的连接是用三相星型的形式,绕组的首端或尾端相连。三个霍尔位置传感器安装在电机转子同轴上,单片机将输入的位置信号经分析计算后输出下一步的驱动信号,驱动信号经特定驱动芯片后导通逆变器的功率管,使电机绕组按一定顺序导通。图2.1是无刷直流电机的构成:

图2.1无刷直流电机组成

电机的组成元件有转轴、机壳、定子和转子。定子上三相星形绕组,接上电源后,电流流入定子三相绕组,形成旋转的磁动势,定子磁动势与转子磁铁产生的励磁磁场相互感应而产生输出功率,并通过转子旋转拖动输出一定的机械功率,从而实现了将电能向机械能这个方向转化。

2.3 无刷直流电机的原理

无刷直流电机的运行原理是电动机、霍尔传感器、换向电路配合工作,一个环节出现差错,电机的安全运行都不能保证。它们之间的工作原理如图2.2所示:

图2.2无刷直流电机工作原理

直流无刷电机中,依靠霍尔传感器检测出的转子位置信号,经单片机处理后输出,经驱动芯片放大后导通或关断逆变桥中MOSFET 管,保证电机三相绕组按序通电,定子产生的旋转磁场与转子产生的永磁磁场相互作用,让电机转子进行运转。

跟随电机转子的旋转,霍尔位置传感器不停地感应输出位置信号,然后通过单片机对这些感应信号进行运算判断,不断输出驱动信号对相应的功率管进行导通或关段,通过信号处理可改变电机绕组的通电组合,确保某一磁极下流过的电流方向保持同向,上述即为无刷电机换向原理。

无刷直流电机的定子电枢绕组的绕线形式分为星形绕组和三角形绕组两大类,本文运用星形绕组。与它相连的是三相全桥逆变电路,图2.3是星形连接的三相全桥电路图。

以图2.3星形连接的三相全桥电路来分析电机换向步骤。霍尔传感器彼此相隔120。电角度,当转子在正转时,三个霍尔传感器输出的信号为001

、011、010、110、100、101,如此进行下一轮运行。当电机转子反转时,霍尔传感器输出的信号与正转时的相反,这里不再讲述。

图2.3 星形连接的全桥逆变图

当无刷直流电机的正转时,霍尔传感器信号为001时,晶体管V4、V5导通,信号为010时,V2、V3导通,信号为100时,V1、V6导通。依靠电子换相电路及时跟踪电动机内部霍尔位置传感器感应的信号,电机才能正常转动起来。表2-1无刷电动机通电控制表。

2.4无刷直流电机的运行特性

我们选用电机时会从它的运行特点考虑,这里分析它启动的特性和调速的特性,这决定着电机是否符合电动车运行要求。

刚启动时电流是正常电枢电流的几倍甚至到几十倍,此刻电机电枢的电磁转矩最大,电动机能在很短的时间内启动。而随着电机转子的加速旋转,感应的反电动势E 在逐渐增大,电磁转矩随之减小,加速度的转矩降低,直到最后在正常的运行状态。

为了预防接通电源后,在电机刚起动时由于起动电流过大而烧坏电动机线圈绕组,这样就需要单片机在控制电动机启动时,一定要保证PWM 脉宽调制波分配在某个比较合适的占空比上,并且安装电流反馈控制环,在确定电动机能迅速起动的同时又最大可能的让电机处在一个电机安全运行的范围内。

电机调速方法:可以改变电机电枢电压大小,还可以在转子中串电阻。改变电枢电压,进而改变电机输出功率大小,调节电机运行速度,调速范围比较宽。转子串电阻调速就是在电机绕组外串接电阻,这种方法容易实现。可它不能进行无级调

速,载负载能力很弱。同时电阻浪费很多电能。无刷直流电机现在大多选用改变电机绕组上电压的大小进行调速。

此外,当电动机出现堵转时,那么电机也会产生巨大的电枢电流,这样在单片机上安装一个过电流保护的电路是非常必要的。一句话,对电枢电流的检测,全部都是为了确保电机安全运行。在全面考虑电机运行功能以及会出现的问题后,我们设计出符合实际应用的电动车。

3 硬件设计

3.1无刷直流电机控制器硬件设计

硬件原理图如图3.1所示。设计电路包括蓄电池供电模块、稳压电源模块、逆变器驱动模块、逆变器模块、刹车模块、电流检测模块等。

图3.1 无刷直流电机控制器原理框图

稳压电源模块是通过变压装置的变压转换,输出电路所需要的工作电压,为整个系统不同电路装置提供所需的电压和电流,是整个系统的动力保证。于电动车用无刷直流电机来讲,由于它仅能依靠电池的形式来供电,但是电池的能量储存总是越来越少,所以说一定要定时检测一下电源电压以确定此时电池的剩余电量,避免电池使用过量而缩短电池的使用寿命。

调速模块对电机进行速度调速。它通过霍尔转把输出电压大小变化调节速度。单片机输出驱动IR2130的信号后,对逆变器中各功率管进行导通。逆变桥电路输出电机所需要的电压,为电动机提供动力。

单片机处理传感器信号,经过计算后向逆变桥发出控制指令,使电机转动起来;单片机控制模块经过对调速信号的采集,计算出电机的预定运行转速,给出实际速度与预定速度间的差值,最后采集逆变桥的电流,在电流没达最大电流前提下,单

片机通过调PWM 波的占空比进行调速;运行时,控制模块又要读取检测电源的电压,保证电源没处在欠压状态。

3.2 PIC16F72单片机的主要性能

外部时钟输入:工作频率是20MHz ,带有2K 字14位宽的程序存储空间,伴随着128字节8位宽的数据存储空间,另外还有8个中断,3个8位I/O口以及PORTA 、PORTB 、PORTC 。还有三个定时器模块:TIMER0、TIMER1、TIMER2。带有一个CCP 模块;5路8位模数转换。

在CPU 方面:精简指令仅有35条;它的运算速度是20M 外部时钟输入,200ns 指令周期;2K*14位字节的程序存储空间;并且在输出引脚与PIC16F872、PIC16C72/A兼容,它具有中断功能其具备8级硬件堆栈;直接寻址、间接寻址、相对寻址模式。

PIC 16F 72图 3.2 PIC16F72引脚图

3.3电源变换电路

稳压电路输出两个不同的电压值,一个是+12V电压,另一个是+5V电压。 第一路的输出是+12V电压,它供给驱动芯片IR2130,用来驱动逆变桥,它利用LM7812输出电压,C5的作用是滤波。 然而逆变驱动电路对变换第一路电压的要求不是特别严格,大致在12V 到15V 时即可控制MOSFET 管的开通或关断,所以选择12V 还是非常合适的。而LM7812的输入和输出电压是不能超出+60V。

第二路输出电压是+5V ,由LM78L05供给,它可以为智能控制系统提供+5V 的电源电压,又可用来提供A/D转换的基准电压值,如果说电压不在4.8-5.2V 之间,控制系统不能输出相应的控制指令,所以对电压精度要求非常高。

图3.3 电源变换电路

3.3 MOSFET驱动芯片IR2130简介

IR2130专门用来驱动功率晶体管的芯片, 经过自带的自举电路可以驱动低、中、高压侧晶体管。它有六个输入端口和六个输出端口, 仅需一个12V 电压就可驱动逆变桥中的6个功率晶体管, 一个IR2030就做了3个IR2103的工作, 降低了设计成本,又减少电路复杂程度,安全运行更有保障。

驱动芯片IR2130 优点:可直接驱动电压达620V 的设备,自身带有死区时间可保证上、下桥臂的功率管不能同时导通 ,它工作电压范围在2-18V 。各个引脚功能:VCC 是电压输入端, HIN1、HIN2、HIN3是单片机控制上桥的输出信号,LIN1、LIN2、LIN3单片机控制下桥的驱动信号, FALUT 处理电机运行中的突发事件, ITRIP 是电流检测输入端口, CAO 是放大电流的输出端口,VSS 是电源地,HO1、HO2、HO3驱动逆变桥上臂功率管,LO1、LO2、LO3驱动逆变桥下臂功率管。

图3.4 IR2130管脚图

IR2130驱动逆变器给电机供电,接成三相全桥逆变电路,PIC16F72经过计算输出六个驱动信号,输入到引脚2、3、4和5. 、6、7中。以A 相驱动为例,自举电容C12储存的能量经引脚VB1、HO1加到逆变器上桥功率管Q1的栅极,负极接在Q1的源极,形成一个回路,流过的电流使Q1栅源极之间电压为+14V,此时Q1导通。48V 电压就加到A 相绕组上。引脚16输出高电平时,经电阻R43加到功率管Q2的栅极,Q2饱和导通,此时Q1截止,Q2导通后,饱和管压降不大,经电阻RS 接地,电流从A 相绕组中经Q2到地。

经IR2130芯片输出逆变桥中晶体管导通所需的驱动信号。电阻RS 检测的电流送到管脚9、13中,如果电路中电流过大,将会导致IR2130输出的信号全部是低电平,使功率晶体管关断。

9

12

图3.5 逆变桥驱动电路

3.5 输入信号处理部分

3.5.1 速度控制和电量检测部分

电动车的转把分光电式和霍耳式, 当前多是运用霍尔转把。它的结构简单,运行稳定,成本较低。霍尔转把工作原理采用线性霍尔传感器感应周围磁场的强度来输出电压值。霍尔转把一般输出电压在1.0V-4.5V 。电路图如3.6所示。霍尔转把根据感应到的电压值,进入引脚1中,控制芯片经过计算后输出控制信号,进而调节PWM 信号占空比控制电机转速。J2用来限制速度, 限制进入单片机的电流过大,保证电机的安全。

T

图3.6 速度控制电路

电池电压的测量如图所示。电路中电阻R16 和R17 起到分压作用。通过单片机计算出检测到的电压值,然后与设定的最小限值进行比较。为了延长电池使用寿命 ,当检测到电池电压低于设定的41.5V 时, 警示使用人员进行充电。

图3.7 电池测压及报警电路

3.5.2 电流检测和放大部分

电动车运行中会因外在条件导致电流大于额定值,如果不及时处理将会损毁电机,利用采样电阻RS 将测得电压换算成电流。采样电流进入到下面电路中进行比较和放大处理。

驱动电路地端RS 与系统地相连。测定的电流决定逆变桥功率管是否导通,经 LM358 的比较器UIA ,送进单片机的引脚21,作为中断请求输入信号。

U1A 作为比较器,脚3用作基准电压的输入,基准电压值设定是0.3V 。脚1在正常工作情况下是高电平,当电流增大时,脚2上电压大于脚3的0.3V ,这时脚1变成低电平,控制器会发出停止运行的指令,保护电机。U2A 作为放大器将检测电流从脚3输入,经过放大后送人单片机引脚4中。

+5

R222K

3

R5

R31K

1K

2

+12

R1910K

U1A 1

R201K

U2A

2

1

3

4

R41K

LM358

I_TEST

4

LM358

S a m p l e _C

图3.8电流检测和过流保护电路

3.5.3 霍尔位置传感器信号处理部分

霍尔传感器信号处理部分的电路图如图3.9所示。

图3.9 霍尔位置传感器输入信号电路

我们知道,这三个霍尔传感器安装在电机的内部,它是一种开关型器件,并且采用OC 门输出,如果让它产生高电平和低电平,那必须要接上拉电阻。H1、H2、H3是霍尔传感器的输出信号,经过低通滤波处理后的霍尔信号Ha 、Hb 、Hc 才能进入单片机,这样做是为了减少干扰单片机判断的因素。

经过处理后的信号H1送到单片机引脚13中,借助CCP1脉冲捕获,计算出H1相邻两次上升沿相隔时间,即可算出电机运行速度。

3.5.4 转把刹车处理部分

设计要求是握下刹车时,刹车信号传人单片机中,电机停止转动。电动车闸把上安有闸把位置传感元件,可将感应到的刹车信号输出。刹车动作时,单片机将接收刹车信号,处理后不再驱动电机。

电动车闸把的位置传感元件为开关型霍耳感应元件。在机械刹车的同时,又断开电动机电压驱动。电子低电位闸把正常工作时,它为高电平。当刹车时,它跳变成低电平。电子高电位闸把正常工作时为低电平,当刹车时,跳变成高电平。电路如图3.10。

图3.10 刹车信号电路

4 软件设计

4.1 软件设计的总体思路简介

实现的功能:欠压警告功能、过流中断功能、刹车断电功能、速度调节功能。这些是电动车最基本的功能,它能够实现这些功能是依据输入模块的特殊性及对实时性的要求,用不同的扫描频率定时检测硬件电路中所述各输入模块的输入信号,经单片机计算后再进行输出。

它利用定时的方式对信号进行扫描:检测输入模块时,几个模块根据自身对时性要求不同,进而设定不同的定时检测周期;而对于输出信号,因为实时性的要求,使得中断程序不可太过冗长,当单片机检测接受了某一项触发任务时,设置相应标志位,等到退出中断程序后再执行,如果是对必须立即执行完成的任务,可安排在中断程序实现。

从电动车和无刷直流电机自身特性两方面分析,对于检测输入信号,平均每128us 都要的电机相序、电流以及逆变桥的电流进行检测,而调速功能检测、刹车功能检测以及欠压保护功能检测则对实时性要求低,仅需每10ms 至50ms 定时检测就可满足设计要求。

4.2程序流程图

主程序上电后完成各个模块初始化:对脉冲宽度调制、数模转换、通用输入输出口、定时器单元设初始值;无刷直流电机控制器的软件设计采用模块化思想,用 C 语言进行软件编程。电动车无刷直流电机控制系统的软件主要用于完成电动车电压的检测,以及是否有刹车信号的输入、转子换相检测、速度给定值的计算、PWM 信号产生及故障输入的处理等方面。因此,系统软件设计要求包括初始化子程序,霍尔传感器信号检测、采集子程序,刹车、转把输入信号采集。流程图如图4.1所示。

图4.1 无刷直流控制器主程序流程图

4.3 转子换相流程图

将霍尔传感器的信号输入单片机中,与之前输入的信号值进行比较,如果比较结果不同,单片机输出相应的驱动信号给驱动芯片IR2130, 进而控制逆变桥中对应功率管导通、关断,让流过电机绕组的电流改变方向。为确保安全,不能同时导通、关断两管功率管,例如以前的输出结果是六位的二进制数X , 换相要求变成Y ,它实现的顺序是先输出X 、Y 相与操作后的数,稳定后在输出Y 值。如图4.2所示。

4.2 转子换相流程图

总 结

比较了众多单片机,PIC16F72具有很多优点,它的指令非常简单,是哈弗总线结构。关于驱动芯片选定IR2130,它是专用来驱动逆变桥电路的。选用干电池供电,这也符合实际。电源电路输出两路电压, 分别是+12V电压和+5V电压。电流的检测和处理是通过LM358的两个放大器, U1A 用来做过流保护的工作,U2A 做电流放大器。霍尔传感器信号利用OC 门输出形式处理。调速功能实现通过线性霍尔元件来完成。

经过这次毕业设计,详细了解直流无刷电机的结构和工作原理,学会用Protel 绘电路图,能利用PIC16F72单片机对无刷电机直流电机进行转把速度调节、逆变桥驱动、刹车断电功能、欠压保护、过流保护等基本功能的应用。不足之处:

硬件方面,由于缺乏这方面的实践,对于单片机参数还不能完全了解,造成选择上有些错误。

软件方面,个人能力有限,仅实现了控制系统所列的几个模块功能,不能全面反映实际运用功能。

致 谢

时间过得很快,我的大学生活即将结束,感谢学院对我们的教育,让我们在这四年中锻炼成长,思考学习。在这里愉快度过了美好的青春,我敬爱的老师,亲爱的同学们,这里怀着感激、不舍之情要说再见了。

在我的毕业论文设计中,非常感谢我的毕业设计导师王秀霞老师,王老师认真负责,对毕业设计的开题报告,外文译文做了很耐心的更改和指正,对我的帮助非常大,对于毕业设计王老师也是细致的解答我们遇到的问题。还帮助我进行参考资料的选择,对电路图中不合格的点一一进行指正。每当遇到问题老师都会进行专业的讲解,使我们豁然开朗。

谢谢我的同学,特别是室友,在设计方面给我的指导和专业知识,诚挚致谢。

参 考 文 献

[1] 李钟明,刘卫国等.稀土永磁电机[M ].北京:国防工业出版社,2004. [2] 邱建琪.永磁无刷直流电动机转矩脉动抑制的控制策略研究[D].杭州:浙江大学,2002.

[3] 顾铭.无刷直流电机控制系统设计[D ].大连:大连理工大学,2006. [4] 余永权,汪明慧,黄英.单片机在控制系统中的应用[M ].北京:电子工业出版社,2003.

[5] 符曦.高磁场永磁式电动机及其驱动系统[M ].北京:机械工业出版社,2004.

[6] 王绪伟,费树,胡继峰.基于MC33035的永磁无刷直流电机控制器的设计[J ].电子工程师,2001.

[7] 潘建.无刷直流电机控制器MC33035的原理及应用[J ].国外电子元器件,2003.

[8]何信龙,李雪银.PICl6C7X 入门与应用范例[M ].北京:清华大学出版社,2006.

[9] 胡宝兴.基于DSP 的电动自行车用无刷直流电机控制系统的研究[D ].杭州:浙江工业大学,2005.

[10]周志新.电动自行车结构与维修[M ].江苏:江苏科学技术出版社,2008. [11]郝晓弘.智能控制全数字交流伺服系统[A ].第五届中国交流电机调速传动学术会议论文集[C ].2006.

[12]周渊深.交直流调速系统与MATLAB 仿真[M ].北京:中国电力出版社,2003.

[13]周雪琴.计算机控制系统[M ].西安:西北工业大学出版社,2004. [14] 何信龙,李雪银.PICl6C7X 入门与应用范例[M ].北京:清华大学出版社,2002.

[15] 张明蜂.PIC 单片机入门与实践[M ].北京:北京航空航天大学出版社,2004.

[16] 李荣正,刘启中,陈学中.PIE 单片机原理及应用 [M ].北京:北京航空航天大学出版社,2005.

[17] 李先祥.无刷直流电机的单片机监控系统的研制[J ].电气传动自动化.2002.

[18] 廖志敏. 电动自行车电气故障诊断与维修[M ]:人民邮电出版社,2007. [19] 陈隆昌,阎治安,刘新正.控制电机(第三版)[M ].西安电子科技大学出版社,2000.

[20] 刘亮喜.无刷直流电动机原理及其应用[J ].交频器世界,2001.

[21] 董学明.电动自行车用智能无刷直流电机驱动器[J].微电机,2006. [22] 唐苏亚. 我国电动自行车产业的发展现状[J ].电机技术,2004.

[23] 陈清泉,李宜巨. 21世纪的绿色交通工具一电动车[M ].北京:清华大学出版社, 2000.

[24]Woong-chul Yang.Larry R.Brandenburg and Bradford Bates[M].”Ford P2000 Fuel CellVehicle” .EVS ,2007. [25] Chee W.Lu .Torque Controller for Brushless DC Motor[J].IEEE Transaction onIndustrial Electronics,2006,46(2):47 1-473.

[26] RPillary,R .Kxishnan .Modeling ,Simulation, .and Analysis of Permanent Magnet MotorDrivers[J].IEEE Transactions on Ndustry Applications,2006,12(3):28-20.

[27] Hong-xing Wu. and Shu—mei Cui.A Contronller of Brushless DC Motorfor Electric Vehicle[J].IEEE Transaction on Magnetics,2005,41(1).509-513.

[28] Kyeong —Hwa Kim.Myung-Joong Youn.Performance comparison of PWM inverter and variable DC link inverter schemes for high-speed sensorless control of BLDG motor[J].Electronics Letters,2002,38(10):1294-1295.

[29] Chee W.Lu .Torque Controller for Brushless DC Motor[J].IEEE Transaction on Industrial Electronics,2001,46(2):47 1-473.

附录A 硬件电路原理图

T

0U

9

12

附录B 控制程序

端口初始化程序

/*********************************************/

void Init(void)

{

PORTB = 0B00000000;

PORTC = 0B00000000;

TRISB = 0B00000001;//设置RB0为输入

TRISC = 0B00000000;//设置RC 输出 RBPU=0;//PORTB上拉使能 }

主要是保存数据到EEPROM 中 Main() uint win; uchar i;

Init();//初始化程序 delayms(100);

PORTC=0XFF; PORTB=0XFF; PORTA=0XFF;

WIN24C64_write(0x0000,0x55);//存数据到EEPROM delayms(20);

WIN24C64_write(0x0001,0xaa);//存数据到EEPROM

delayms(20);

while(1)

{

delayms(1000); //延时

PORTC=~WIN24C64_read(0x0000);//读取24C64地址00H 中的数据 delayms(1000); //延时

PORTC=~WIN24C64_read(0x0001);//读取24C64地址00H 中的数据 }

中断处理程序

void interrupt ISR(void)

{ uchar j;

if(INTF==1)//外部INT0 { PEIE=0;

INTF=0; //清除中断标志位

if(counter_temp

{

int0_flag=1;

counter=counter_temp/256; //counter=counter_temp; counter_temp=0; counter_temp1=0; count_num=0; }

// LED9=!LED9;

PEIE=1; }

else if(TMR1IF==1) //定时器中断 TIMER1

{

//time1_flag=1;

TMR1IF=0;//清除中断标志位

TMR1L=T1L;

TMR1H=T1H; //重新设置定时器时间

counter_temp++;

counter_temp1++; // LED10=!LED10;

} else {;} }

显示程序

void plot1bar(char value, char max_value) {

unsigned int plot_value; int i;

char hibyte_value, lobyte_value; lobyte_value = 0; hibyte_value = 0;

plot_value = (int)(value*15/max_value);// Computes how many points to plot. Since

// Initial values.

we are using 2 vertical

// 8 bit blocks, we can have 1-16 points for a bar graph.

if((plot_value>0)&&(plot_value

else if((plot_value>7)&&(plot_value

// Plots bar graph which are above 8

for(i=plot_value;i>=0;i--) { }

lobyte_value=0x00;

hibyte_value=hibyte_value>>1; hibyte_value=hibyte_value+0x80;

points up to 15 points.

{

}

plot_value = plot_value - 7; for(i=plot_value;i>=0;i--) { }

hibyte_value = 0xFF;

lobyte_value=lobyte_value>>1; lobyte_value=lobyte_value+0x80;

else if(plot_value>15) {

lobyte_value = 0xFF; // If beyond 15 points than cap the points at the maximum

of 15.

hibyte_value = 0xFF;

} else {

lobyte_value = 0x00; // If below 0 then cap it to 0(which is a unit of pixel on the

bargraph).

}

writedata(lobyte_value);// A 16 point plotting. Plots the higher 8 bits (which is the

hibyte_value = 0x80;

low byte)

writedata(hibyte_value);// and then the lower 8 bits (which is the high byte) of the

graph. }

PWM 波控制电机程序

aa++;if(aa>60000)

{aa=0;cc++;if(cc>2000)cc=0;} bb++;

if(bb>2000)bb=0;

if(bb

{

RC1=0;

RC2=0;

}

else

{

RC1=1;

RC2=1;

}

*/

for(bb=0;bb

}

30


© 2024 实用范文网 | 联系我们: webmaster# 6400.net.cn