欢迎来到天天文库
浏览记录
ID:15603221
大小:26.00 KB
页数:6页
时间:2018-08-04
《电动车无刷电机控制器软件设计要点》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、本文以MICROCHIP公司所生产的PIC16F72为基础说明软件编程方面所涉及的要点,为节省篇幅,本文不附程序框图,电原理图等。本文适合在单片机编程方面有一定经验的读者,有些基础知识恕不一一介绍。我们先列一下电动车无刷马达控制器的基本要求:功能性要求:1。电子换相2。无级调速3。刹车断电4。附加功能a。限速b。1+1助力c。EBS柔性电磁刹车d。定速巡航e。其它功能(消除换相噪音,倒车等)安全性要求:1。限流驱动2。过流保护3。堵转保护4。电池欠压保护5。降低温升6。附加功能(防盗锁死,温升限制等)7。附加故障检测功能从上面的要求来看,功能性要求和安全性要求的前三项
2、用专用的无刷马达驱动芯片加上适当的外围电路均不难解决,代表芯片是摩托罗拉的MC33035,早期的控制器方案均用该集成块解决。但后来随着竞争加剧,很多厂商都增加了不少附加功能,一些附加功能用硬件来实现就比较困难,所以使用单片机来做控制的控制器迅速取代了硬件电路芯片。但是硬件控制和软件控制有很大的区别,硬件控制的反应速度仅仅受限于逻辑门的开关速度,而软件的运行则需要时间。要使软件跟得上电机控制的需求,就必须要求软件在最短的时间内能够正确处理换相,电流限制等各种复杂动作,这就涉及到一个对外部信号的采样频率,采样时机,信号的内部处理判断及处理结果的输出,还有一些抗干扰措施等,
3、这些都是软件设计中需要再三仔细考虑的东西。下面我们挑选对控制器性能和安全比较重要的功能来讨论编程中应该注意的问题和使用的一般方法。1。电子换相无刷电机要对转子永磁体位置进行精确检测,并用电子开关切换不同绕组通电以获得持续向前的动力,在目前的绝大多数电动车三相无刷电机中均使用三个开关式的霍尔传感器检测永磁体相对于定子线圈的位置,控制器跟据三个霍尔传感器输出的六种不同信号输出相应的控制信号驱动电子开关向马达供电。这就是所谓六步换相法。从电机原理可以看出,换相必须及时,否则会导致电机失步,从而使电机噪音增大,效率降低,严重的还会导致控制器,电机烧毁。鉴于以上要求,我们测得市
4、面上普通的无刷马达在最高转速时(考虑到顺风和下坡的情况)每1。2mS左右换相一次,根据实际的使用效果,软件的反应时间必须在0。12mS左右检测到换相信号的改变并且输出换相驱动信号。考虑到输入到单片机的换相信号容易受干扰,加上线路上滤波电容的影响,单片机程序在读取换相信号时应至少连续读取3次,以3次信号完全一致时才采用该值作为换相信号的真值,这就是鉴相。取得换相信号后,我们将其与上次读到的值做对比,如果相同,则表示没有换相,如果不同,则要跟据这个值去取得一个相对应的驱动信号,从而驱动电子开关动作。这个过程可以使用逐项比较法,查表法等来实现。鉴于查表法比较快捷,一般使用查
5、表法。其中需要考虑的是,一旦获得的信号与所有的六个信号都不相同,可能表示电机中霍尔元件或者其连接线路出现故障,此时我们应该让电机断电以避免误操作。市面上有两种电机,即所谓的120°和60°霍尔信号,这个角度代表三个霍尔器件输出的三相电信号其相位角相差的角度,其实这里面的区别仅仅是电平的不一样,在马达内部的安装上,位置没什么不同,只是中间一相的相位相反,所以仍然是六种信号对应六种驱动,软件上将表稍作调整即可。需要提一下的是,在120°的霍尔信号中,不可能出现二进制0B000和0B111的编码,所以在一定程度上避免了因霍尔零件故障而导致的误操作。因为霍尔元件是开路输出,高
6、电平依靠电路上的上拉电阻提供,一旦霍尔零件断电,霍尔信号输出就是0B111。一旦霍尔零件短路,霍尔信号输出就是0B000,而60°的霍尔信号在正常工作时这两种信号均会出现,所以一定程度上影响了软件判断故障的准确率。目前市面马达已经逐渐舍弃60°相位的霍尔排列。编程提示:在程序上,我们综合考虑单片机的处理速度,采用定时中断去检测相位变化,中断周期采用128μS,中断源可使用TMR0,或者PWM本身的TMR2中断。在同一个中断中,我们还将安排其它更重要的工作,这个在后面的电流控制中再说明。2。无级调速由于使用直流电源,电机的速度得依靠调节加在电机两端的电压来调整,较简单的
7、办法是使用PWM脉宽调制来调节加到电机两端的电压。PWM的工作周期根据电机的使用环境,采用64μS,折算成频率大约15。625KHz,频率太低了会产生人耳能明显感觉到的高频噪声,电流也不容易控制;太高了又增加电子开关的开关损耗。PWM脉冲的最大宽度,这个直接影响到电机的最高速度,则由手柄输出的电压决定。手柄电压检测简单,人对速度的感觉很迟钝,所以手柄的检测不需要很频繁,这个AD检测与电源电压,刹车等检测均不需要很快的速度,所以每隔10mS-50mS轮番检测一次便足够,AD的检测在定时中断中做,而结果则放在中断外做,这样不会占用中断太多的时间。编程提示
此文档下载收益归作者所有