电动车无刷控制器硬件电路解释4649335Word文件下载.docx
《电动车无刷控制器硬件电路解释4649335Word文件下载.docx》由会员分享,可在线阅读,更多相关《电动车无刷控制器硬件电路解释4649335Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。
![电动车无刷控制器硬件电路解释4649335Word文件下载.docx](https://file1.bdocx.com/fileroot1/2023-1/10/7eff9597-d668-4ac0-b6d6-c08b13b03019/7eff9597-d668-4ac0-b6d6-c08b13b030191.gif)
各引脚应用如下:
1:
MCLR复位/烧写高压输入两用口
2:
模拟量输入口:
放大后的电流信号输入口,单片机将此信号进行A-D转换后经过运算来控制PWM的输出,使电流不致过大而烧毁功率管。
正常运转时电压应在0-1.5V左右
3:
电源电压经分压后的输入口,单片机将此信号进行A-D转换后判断电池电压是否过低,如果低则切断输出以保护电池,避免电池因过放电而损坏。
正常时电压应在3V以上
4
模拟/数字量输入口:
由于电机的位置传感器排列方法不同,该口的电平高低决定适合于哪种电机,目前市场上常见的有所谓120°
和60°
排列的电机。
有的控制器还可以根据该口的电压高低来控制起动时电流的大小,以适合不同的力度需求。
5:
线性霍尔组成的手柄调速电压输入口,单片机根据此电压高低来控制输出给电机的总功率,从而达到调整速度的目的。
6:
数字量输入口:
1+1助力脉冲信号输入口,当骑行者踏动踏板使车前行时,该口会收到齿轮传感器发出的脉冲信号,该信号被单片机接收到后会给电机输出一定功率以帮助骑行者更轻松地往前走。
7:
模拟/数字量输入口:
刹车信号电压输入口。
可以使用AD转换器判断,或根据电平高低判断,平时该脚为高电平,当有刹车信号输入时,该脚变成低电平,单片机收到该信号后切断给电机的供电,以减少不必要的损耗。
8:
单片机电源地。
9:
单片机外接振荡器输入脚。
10:
单片机外接振荡器反馈输出脚。
11:
数字输入口:
功能开关1
12:
功能开关2
13:
数字输出口:
PWM调制信号输出脚,速度或电流由其输出的脉冲占空比宽度控制。
14:
功能开关3
15、16、17:
电机转子位置传感器信号输入口,单片机根据其信号变化决定让电机的相应绕组通电,从而使电机始终向需要的方向转动。
这个信号上面讲过有120°
之分,这个角度实际上是这三个信号的电相位之差,120°
就是和三相电一样,每个相位和前面的相位角相差120°
。
60°
就是相差60°
18:
该口控制一个LED指示灯,大部分厂商都将该指示灯用作故障情况显示,当控制器有重大故障时该指示灯闪烁不同的次数表示不同的故障类型以方便生产、维修。
19:
20:
单片机电源正。
上限是5.5V。
21:
外部中断输入,当电流由于意外原因突然增大而不在控制范围时,该口有低电平脉冲输入。
单片机收到此信号时产生中断,关闭电机的输出,从而保护重要器件不致损坏或故障不再扩大。
22:
同步续流控制端,当电流比较大时,该口输出低电平,控制其后逻辑电路,使同步续流功能开启。
该功能在后面详细讲解。
23--28:
是功率管的逻辑开关,单片机根据电机转子位置传感器的信号,由这里输出三相交流信号控制功率MOSFET开关的导通和关闭,使电机正常运转。
有了智能化的控制中心,就需要有其它电路来为其服务,我们在这里从头开始介绍。
一、电源部分
控制器有三组电源,第一组当然是提供总能源的电池,板子上的电解电容C1:
1000μF,63V)C11:
47μF,63V及C13,C33:
0.1μF63V是退耦用的,用于消除由于电源线、电路板走线所带来的电阻、寄生电感等引起的杂波干扰,由于工作在大电流、高频率、高温状态下,特别对电解电容有损耗角小、耐高温的要求,普通的电解电容容易发热爆裂。
第二组电源提供12-15V的电压,这组电压主要提供给MOSFET的开通电压,由于场效应管的驱动要求比较特殊,必须有10V以上20V以下的电压才能很好导通,所以必须有合适的电压供给,同时该组电压也为后面5V稳压块提供预稳压。
这组电压由LM317提供,输出大约13.5V。
由于LM317的输入输出压差不能超过40V,而输入电压可能高达60V,因此在前面加了一个330Ω,2W的电阻,既预先降压,又替317分担了一部分功耗。
第三组电源是5V,由LM78L05提供,由于78L05提供的最大电流只有100mA,所以另并联了两个1.5K的电阻以扩流,同时也分担一部分功耗。
在整个系统中,对5V电源的要求比较高,不单单是因为逻辑电路,MCU等的电源电压都不能过高,而且由于MCU的所有AD转换都是以5V电压为基准,所以当5V不准时会出现电流,欠压值,手柄控制等均不能达到设计要求的情况,甚至不能动作,因此该电压的范围应被严格限制在4.90-5.10V之间。
二、信号输入与预处理部分
这部分电路包括电源电压输入、工作电流比较,放大输入、手柄电压输入、电机转子位置传感器的霍尔信号输入、刹车信号输入及各种其它功能开关信号输入等。
1.电源电压输入:
由于MCU只接受0-5V的信号,所以电源电压必须经过分压才能输入MCU。
2.工作电流放大、输入
U3A是一个放大电路,它将康铜丝R55采样过来的电流信号经过6.5倍放大送入单片机。
最早的设计在R23上并联了一个0.1μF的电容组成低通放大器,后来为了更好地实时检测电流,将该电容去掉,这样放大后的电压和电流的实际变化基本一致以便MCU采样值更接近于实际值。
U3B是一个比较器接法,实际也是一个比较器,正常时的电流绝对不会让该比较器翻转,当电流由于某种原因突然增大到一定程度,该比较器翻转从而触发单片机的外部中断,单片机就会完全关闭电机的输出进入保护状态,避免故障进一步扩大。
这里有人会问,为什么放大器的放大倍数取得这么小,如果放大倍数再大一点的话,单片机经过AD转换后的数字相对比较大,分辨率可以做得比较高,何乐而不为呢?
这种想法是有道理的,但是限于LM358的频率响应不够高,15KHZ(PWM的工作频率大约为15.6K)的方波经358放大之后变成梯形波了,我们目前对电流峰值的采样应当采取梯形波的上边,如果放大倍数过大,梯形波的上边就会变得很窄而使单片机采样困难,甚至采样错误,比如采样到梯形波的斜边,因而不能正确反映电流的实际大小,这就会导致电流控制的紊乱。
所以宁愿放大倍数取小点以保证采样位置的准确无误。
3.手柄输入部分:
手柄输出的电压范围在1.2-4.2V的范围内,经过阻容滤波后输入到单片机处理。
手柄需要一个5V的电源才能工作。
4.电机转子位置传感器输入部分:
由于该传感器安装在电机内部,采用开路输出的办法,所以除提供5V电源外,每个传感器都必须接上拉电阻,并对其输出的信号进行阻容滤波以抗干扰,同时在电源处接二极管、接地采用细铜膜做保险丝,防止电机相线与霍尔信号线短路后高电压反串近来损坏板子上别的零件。
5.刹车信号输入:
由于刹车信号开关往往和刹车灯共用一个开关,每个厂商的刹车电压也不统一,所以必须接入二极管防止高压串入。
高电平输入部分,要做到8-50V输入时都能正常工作。
6.其它功能开关信号比较简单,功能实现均依靠内部程序实现,
驱动控制信号大致由两种信号合成:
PWM信号和相位逻辑开关信号,这里不得不先介绍一下功率开关部分:
功率开关部分是由三组半桥开关组成的三相开关,用以改变电机线圈的通电顺序和通电方向,我们一般把与电源正相接的功率管称为上桥,与电源地相接的功率管称为下桥,参考图一,上桥的相位逻辑开关信号由A+、B+、C+提供,这三个控制信号必须与PWM信号合成后控制对应的上桥,下桥的相位逻辑开关信号由A-、B-、C-提供,基本上直接被用来控制下桥的开关。
单片机这六个脚上都接了一个2.2K-10K的电阻到地,是为了防止单片机处在复位时,由于这些脚均处于高阻状态,有可能会引入干扰信号而导致后面逻辑电路误动作,这个比较简单,但是我们现在看到控制部分的电路图并非上面所说的那么简单,实际电路中间弯弯绕绕经过了4个逻辑电路处理后才到达上下桥的驱动电路,许多朋友会问:
为什么要如此复杂呢?
其实这些电路都是为了实现一个功能:
同步续流。
为什么要同步续流
需要说明一下,这里的“同步续流”,被一些人称为“同步整流”,同步整流是用在电源上的名词,用在这里明显不太合适。
先参考图
假设此时A相上桥和C相下桥通电,当A相上桥PWM占空比没有达到100%时,通过电机线圈的电流是断续的,但上桥关闭的时候,由于电机线圈是一个电感,线圈上必定会出现一个自感反电动势,这个反电动势必须维持线圈电流的方向不变,由于A相上桥已经关闭,这个电流就会通过原来已经开通的C相下桥,地,A相下桥的续流二极管继续流动,见图6。
当总电流小时这个自感电流并不大,但总电流大时,线圈中储存的能量多起来,这个自感电流也会相当大,我们知道MOSFET的续流二极管本身的压降大约在0.7-1V,在通过的自感电流大时,功耗便会相当大,假设自感电流为10A,二极管压降为0.7V时,功耗为7W,显然这个发热量是相当大的,这时下桥便会变得很烫,假如我们此时把下桥打开,让自感电流直接从MOSFET的沟道里走掉(MOSFET导通时电流可以双向流通),再假设MOSFET导通电阻RDSON=10mΩ,10A的时候功耗就变为1W,理论上就可以大大降低下桥的功耗,从而降低温升。
但在实际上,由于上下桥在交*导通时需要一个死区以避免双管直通造成2.同步续流的逻辑关系
图为A相驱动电路的实际电路因为三相驱动相同,所以我们这里仅以A相为例说明同步续流功能的实现电源短路,这个作用会打一些折扣,不过效果还是很明显。
这也是为什么很多产品的下桥会用好一点的管子的原因。
同步续流的实现
单片机产生的PWM占空比信号一路通过与门,经R53,R52,C71截波(缩小占空比)后输出,相位不变,截波量大约为1.5μS,形成PWM信号,此路输出至上桥驱动,与上桥逻辑开关信号相与后驱动上桥MOSFET。
另一路经R57和C24,反相器U5A移相,相移量大约750nS,再经U5B反相,形成PWM-信号,最后合成至下桥驱动。
此时两个信号输出时相位相同,但PWM-信号占空比比PWM信号占空比大1.5μS,但由于PWM-信号已经偏移750nS,所以PWM信号刚好套在PWM-信号中间,两边空出750nS作为MOSFET开关的死区。
处理后波形示意图如图
此主题相关图片如下:
同步续流示意图.gif
截波波形.gif
2.同步续流的逻辑关系
图12为A相驱动电路的实际电路
图12
因为三相驱动相同,所以我们这里仅以A相为例说明同步续流功能的实现过程
当A向的逻辑开关信号“A+”为高电平时,A相上桥被“PWM”信号驱动,在整机电流较小的情况下,PV信号为高电平,不管或非门U3C其它两个输入脚电平如何,其输出总是低,所以此时或非门U2B仅受“A-”信号控制,“A-”信号是下桥的逻辑开关,它仅在下桥需要导通时置高,平时为低。
当整机电流比较大,而PWM占空比小于100%时,由于A相上桥在PWM间隙关断导致电机线圈中出现较大感应电流,感应电流通过另一相的下桥和A相下桥的二极管泄放,为降低该二极管的功耗,此时应将A相下桥MOSFET打开以减小压降,这时单片机将“PV”信号端拉低,在PV信号和反向后的“A+”信号共同作用下,“PWM-”信号通过U3C传递到U2B,而此时由于“A-”为低,所以U2B受“PWM-”信号控制,在PWM信号关断的间隙使下桥MOSFET导通。
当“A+”信号为低电平时,“PWM-”信号并不影响下桥,保证了下桥的正确逻辑而不会误导通。
以单独一组A相上下桥驱动为例,见图12
见了这种电路,很多人首先会问:
为何上桥的驱动电路如此复杂?
很显然,这么复杂的电路一定有其用途,如果要简单一点话,上桥的功率开关直接用P沟道的MOSFET来做就可以,这样驱动电路会简单很多,但P沟道的功率MOSFET又贵又难买,为了节省成本,只能用N沟道的代替,但N沟道的MOSFET导通时其栅极G的电压必须比源极S高出10V以上才能保证完全导通,这样在上桥导通时,假设电源电压为48V,那么上桥G极的电压就必须比电源电压高12V,也就是大于60V才行。
但怎样获得比电源电压还高的驱动电压呢?
一般情况可以通过变压器耦合驱动信号,电荷泵升压提供高压等方法,而在这里,则采用了一种叫做“高压浮栅型驱动电路”来驱动上桥。
顾名思义,浮栅驱动的栅极是浮动的,这是一个很形象的描述,我们根据线路图来分析一下栅极是怎样“浮动”起来的
我们先看一下C5的接法,这是整个驱动的关键所在,C5正极通过二极管接到13.5V电源(实际在13.5V左右),负极很奇怪地接到电机的相位线,与它所驱动的MOSFET
V1的源极接在一起,在电机不动的情况下,所有的MOSFET关闭,此时C5通过二极管D1,电阻R40充电至接近13.5V,当A+和PWM的合成信号使U4A的3脚输出高电平时,q1导通带动t1导通,这样12V多的电压就会加到V1的栅极使V1导通,而V1导通使电源电压加至负载,也就是V1的源极电压会升高至48V,而此时由于C5充满电,C5上的电压仍然是12V,所以可以维持t1的导通并使V1栅极的电压始终保持高于VCC,这样V1的栅极就好像随着源极电压浮动而浮动,所以叫做“浮栅驱动”。
这时如果U4A的3脚一直维持高电平的话,在电容k1和MOSFET本身GS间电容充饱电之后,C5上的储存的电荷主要通过t1的BE结,电阻a1到三极管q1放电(由于此时二极管D7处于正偏状态,所以t2的BE结反偏而截止,因此t2并不参与放电),如果C5足够大,那么可以在相当长的一段时间内保证V1的驱动电压在合理的范围内。
这里b1放在q1的射极上组成一个近似恒流的驱动电路,用以保证在C5正极电压升得很高时,通过三极管q1的放电电流不致过大而导致电容很快放完。
当U4A的3脚输出低电平时,q1,t1迅速关闭,t2开始导通,将k1和栅极本身积累的电荷迅速泄放,V1被关闭,而此时由于另两组中的一组之下桥维持在导通状态,电容C5就会通过电机绕组和该下桥迅速充电补充电能,为下一个周期做准备。
从上面的过程可以看出,电容C5的充电量应该是越大越好,但电容大了,可能二极管来不及给电容充电,电容小了,又不能保证导通时间,所以这种驱动不能使V1长时间维持在导通状态,这也是为什么PWM信号要耦合到上桥的一个原因。
其次对于这个驱动电路有人还会产生一个疑问:
按理说用作功率开关的MOSFET,为了减少开关损耗,应尽量避免MOSFET工作在放大状态,按照这个原则,驱动MOSFET的电平应该是快速上升、快速下降,而且这个速度是越快越好,但此电路中增加了电阻e1、e2,电容k1、k2,这四个元件在这里的作用显然有悖于快升快降的原则,实际上这四个零件在电路中的作用也确实是有意减慢MOSFET的开启速度,使驱动MOSFET的电压波形上升沿没那么陡峭,为什么要这样做呢?
这个要从MOSFET的结构来看,MOSFET本身各极之间存在极间电容,这个电容被称为密勒电容。
而我们现在这种上下桥类似推挽结构的电路,上桥导通时,由于下桥漏极的电压急剧升高,这种电压变化会通过下桥的密勒电容传递给下桥的栅极,我们把上桥导通时下桥漏极电压升高的速度以Δv/Δt表示,当Δv/Δt足够大时,传递给下桥栅极的电荷便会积蓄到足以使下桥导通的地步,这样就会导致上下桥直接将电源短路,而解决这个问题最简单的办法,就是让上下桥开通的速度不要那么快,所以加上阻容延时,并且这里的k1,k2还有吸收部分冲击电压的功效,这里就不多做描述了。
电动车无刷电机控制器软件设计详解
作者:
谢渊斌原作发表在《电子报2007年合订本》下册
版权保留,转帖请注明出处
本文以MICROCHIP公司所生产的PIC16F72为基础说明软件编程方面所涉及的要点,此文所涉及的源程序均以PIC的汇编语言为例。
由于软件不可避免需与硬件相结合,所以此文可能出现硬件电路图或示意图。
本文适合在单片机编程方面有一定经验的读者,有些基础知识恕不一一介绍。
我们先列一下电动车无刷马达控制器的基本要求:
功能性要求:
1.电子换相
2.无级调速
3.刹车断电
4.附加功能
a.限速
b.1+1助力
c.EBS柔性电磁刹车
d.定速巡航
e.其它功能(消除换相噪音,倒车等)
安全性要求:
1.限流驱动
2.过流保护
3.堵转保护
3.电池欠压保护
4.节能和降低温升
5.附加功能(防盗锁死,温升限制等)
6.附加故障检测功能
从上面的要求来看,功能性要求和安全性要求的前三项用专用的无刷马达驱动芯片加上适当的外围电路均不难解决,代表芯片是摩托罗拉的MC33035,早期的控制器方案均用该集成块解决。
但后来随着竞争加剧,很多厂商都增加了不少附加功能,一些附加功能用硬件来实现就比较困难,所以使用单片机来做控制的控制器迅速取代了硬件电路芯片。
但是硬件控制和软件控制有很大的区别,硬件控制的反应速度仅仅受限于逻辑门的开关速度,而软件的运行则需要时间。
要使软件跟得上电机控制的需求,就必须要求软件在最短的时间内能够正确处理换相,电流限制等各种复杂动作,这就涉及到一个对外部信号的采样频率,采样时机,信号的内部处理判断及处理结果的输出,还有一些抗干扰措施等,这些都是软件设计中需要再三仔细考虑的东西。
PIC16F72是一款哈佛结构,精简指令集的MCU,由于其数据总线和指令总线分开,总共35条单字指令,0-20M的时钟速度,所以其运算速度和抗干扰性能都非常出色,2K字长的FLASH程序空间,22个可用的IO口,同时又附加了3个定时/计数器,5个8位AD口,1个比较/捕捉/脉宽调制器,8个中断源,这些优异的性能为电动车控制器控制提供了良好的硬件环境和软件基础,一经推出就赢得众多设计人员的热捧。
那么如何使用PIC16F72来设计一个电动车控制器呢?
我们下面以目前市面流行的硬件设计为基础,尽量通俗易懂地介绍一下程序设计思路和注意点。
要使无刷电机转起来,并且听从驾驶者的调速、刹车等基本指挥,最基本的要求就是要实现硬件所能实现的电子换向和调速,刹车等功能。
实际上软件的整体设计也和硬件一样,也是一个模块化堆砌的过程,问题在于模块的合理化堆砌,使堆砌后形成的整体能够坚固,协调、高效率运作。
我们先说一说各种模块功能的简单实现,然后再来讨论如何使这些模块协调运转。
1.首先说说电子换相模块
我们知道,直流永磁电机在运转时需要一对电刷和与线圈相对应的换向整流子来使线圈中的电流方向根据磁场方向来不断改变,从而转子持续向一个方向运转,我们称这种电机为有刷电机,在电动车刚刚面世时一般均使用这种电机,但有刷电机有一个致命的缺陷,就是用作电刷的碳刷非常容易磨损,换向整流子也非常容易被油污,碳刷碎屑填满空隙而漏电,而且功率越大,这种毛病越严重,导致有刷电机维护量和故障率急剧上升,严重影响其推广,因此在较大功率的场合,无刷电机应运而生。
无刷电机,顾名思义就是没有了电刷,不能自动换向,因此要依靠传感器检测转子的位置、用电子开关来改变线圈中电流的方向,所以其控制器要对转子永磁体位置进行精确检测,并用电子开关切换不同绕组通电以获得持续向前的动力。
转子位置检测传感器有很多,比如光传感器,磁感应传感器等,电子开关可以用大功率三极管、功率型场效应管、IGBT等制作,在目前的绝大多数电动车三相无刷电机中均使用三个开关式的霍尔传感器检测永磁体相对于定子线圈的位置,控制器跟据三个霍尔传感器输出的六种不同信号输出相应的控制信号驱动功率型场效应管(MOSFET)组成的电子开关向马达供电。
这就是所谓六步换相法。
从电机原理可以看出,这种电机是一种特殊的同步电机,因此换相必须及时,否则会导致电机失步,从而使电机噪音增大,效率降低,严重的还会导致控制器,电机烧毁。
鉴于以上要求,我们先必须测一下市面上普通的无刷马达在最高转速时(考虑到顺风和下坡的情况)的换向情况,这个比较简单,用示波器测量之后得到在最高速时每相霍尔传感器输出的频率大概在140HZ左右,折合到换向的最小时间,那么应该是1.2mS左右换相一次,根据际的使用效果,软件的反应时间必须在0.12mS左右,也就是说在检测到换相信号的改变并且输出换相驱动信号时的过程必须在0.1-0.2mS之内完成。
另一个需要考虑的是,电机驱动是一个大电流驱动,又是一个电感性负载,控制器在运行时不可避免有干扰引入,因此除了在硬件布局,布线上注意外,软件上也要做相应的抗干扰措施以避免错误的换向动作。
考虑到输入到单片机的换相信号容易受干扰,加上线路上滤波电容的影响,单片机程序在读取换相信号时应至少连续读取3次,以3次信号完全一致时才采用该值作为换相信号的真值,如果其中一次不对,那么干脆就重新再读3次,这就是一个有抗干扰措施的鉴相过程。
取得换相信号后,我们将其与上次读到的值做对比,如果相同,则表示没有换相,如果不同,则要跟据这个值去取得一个相对应的驱动信号,从而驱动电子开关动作。
这个过程可以使用逐项比较法,查表法等来实现。
鉴于查表法比较快捷,一般使用查表法。
其中需要考虑的是,一旦获得的信号与所有的六个信号都不相同,可能表示电机中霍尔元件或者其连接线路出现故障,此时我们应该让电机断电以避免误操作。
市面上有两种电机,即所谓的120°
霍尔信号,这个角度代表三个霍尔器件输出的三相电信号其相位角相差的角度,其实这里面的区别仅仅是电平的不一样,在马达内部的安装上,位置没什么不同,只是中间一相的相位相反,所以仍然是六种信号对应六种驱动,软件上将表稍作调整即可。
需要提一下的是,在120°
的霍尔信号中,不可能出现二进制0B000和0B111的编码,所以在一定程度上避免了因霍尔零件故障而导致的误操作。
因为霍尔元件是开路输出,高电平依靠电路上的上拉电阻提供,一旦霍尔零件断电,霍尔信号输出就是0B111。
一旦霍尔零件短路,霍尔信号输出就是0B000,而60°
的霍尔信号在正常工作时这两种信号均会出现,所以一定程度上影响了软件判断故障的准确率。
目前市面马达已经逐渐舍弃60°
相位的霍尔排列。
编程提示:
在程序上,我们综合考虑单片机的处理速度,采用定时中断去检测相位变化,中断周期采用128μS,中断源可使用T