搜索
bottom↓
回复: 5

我也贡献点资料-----网上找的,不过相信搞电机控制的人会喜欢

[复制链接]

出0入0汤圆

发表于 2011-8-2 07:54:20 | 显示全部楼层 |阅读模式
因为菜鸟,一直都是提问,没什么贡献,在网上看了点资料觉得不错,贡献出来


1、电子换相
无刷电机要对转子永磁体位置进行精确检测,并用电子开关切换不同绕组通电以获得持续向前的动力,在目前的绝大多数电动车三相无刷电机中均使用三个开关式的霍尔传感器检测永磁体相对于定子线圈的位置,控制器跟据三个霍尔传感器输出的六种不同信号输出相应的控制信号驱动电子开关向马达供电。这就是所谓六步换相法。从电机原理可以看出,换相必须及时,否则会导致电机失步,从而使电机噪音增大,效率降低,严重的还会导致控制器,电机烧毁。
鉴于以上要求,我们测得市面上普通的无刷马达在最高转速时大约每1.2ms左右换相一次。考虑到输入到单片机的换相信号容易受干扰,加上线路上滤波电容的影响,单片机程序在读取霍尔换相信号时应至少连续读取6次,以6次霍尔信号完全一致时才采用该值作为换相信号的真值,这就是鉴相。取得换相信号后,我们将其与上次读到的值做对比,如果相同,则表示没有换相,如果不同,则要跟据这个值去取得一个相对应的驱动信号,从而驱动电子开关动作。这个过程可以使用逐项比较法,查表法等来实现。鉴于查表法比较快捷,一般使用查表法。其中需要考虑的是,一旦获得的信号与所有的六个信号都不相同,可能表示电机中霍尔元件或者其连接线路出现故障,此时我们应该让电机断电以避免误操作。
市面上有两种电机,即所谓的120°和60°霍尔信号,这个角度代表三个霍尔器件输出的三相电信号其相位角相差的角度,其实这里面的区别仅仅是电平的不一样,在马达内部的安装上,位置没什么不同,只是中间一相的相位相反,所以仍然是六种信号对应六种驱动,软件上将表稍作调整即可。需要提一下的是,在120°的霍尔信号中,不可能出现二进制0B000和0B111的编码,所以在一定程度上避免了因霍尔零件故障而导致的误操作。因为霍尔元件是开路输出,高电平依靠电路上的上拉电阻提供,一旦霍尔零件断电,霍尔信号输出就是0B111。一旦霍尔零件短路,霍尔信号输出就是0B000,而60°的霍尔信号在正常工作时这两种信号均会出现,所以一定程度上影响了软件判断故障的准确率。目前市面马达已经逐渐舍弃60°相位的霍尔排列。
编程提示:
在程序上,我们综合考虑单片机的处理速度,采用定时中断去检测相位变化,中断周期采用64μS,中断源使用PWM本身中断。在同一个中断中,我们还将安排其它更重要的工作,这个在后面的电流控制中再说明。
2、无级调速
由于使用直流电源,电机的速度得依靠调节加在电机两端的电压来调整,较简单的办法是使用PWM脉宽调制来调节加到电机两端的电压。PWM的工作周期根据电机的使用环境,采用64μS,折算成频率大约15.625KHz,频率太低了会产生人耳能明显感觉到的高频噪声,电流也不容易控制;太高了又增加电子开关的开关损耗。PWM脉冲的最大宽度,这个直接影响到电机的最高速度,则由手柄输出的电压决定。
手柄电压检测简单,人对速度的感觉很迟钝,所以手柄的检测不需要很频繁,这个AD检测与电源电压,刹车等检测均不需要很快的速度,所以每隔10mS-50mS轮番检测一次便足够。
编程提示:
由于现在大多采用线性霍尔作为手柄调节速度方案,优点是无触电,故障率极低。缺点是在5V供电的情况下,电压只能在1.1V-4.3V的范围内变化,这只需要我们做一点简单的运算,或者采用查表的方法,将这期间的AD数值转换成PWM占空比的值即可。虽然讲是无级调速,实际上分32级时人已经感觉不出来了。但是有一点,根据手柄得出的PWM脉冲宽度不能直接用来控制PWM占空比,需要在电流允许的情况下才能让占空比达到设定值。
3、刹车断电
电动车在刹车手柄附近装了一个微动开关,一方面在刹车时点亮刹车灯,一方面给控制器提供一个刹车高或低电平信号,各厂家不一定,在电路上作一些电平转换很容易就可以提供给单片机一个准确的信号,我们可以采用数字测量的方法测量这个电平是高还是低,也可以使用AD去测量有几伏,总之监测到这个信号后必须关闭所有的驱动输出和PWM输出,这就可以实现刹车断电。编程方面我就不多说了。至于如何实现EBS电子刹车,以后再叙。
4、限流驱动
这是整个控制器的灵魂,如果限流驱动没做好,其他功能再好还是一个字:烧!。
电动车控制器的电子开关均使用功率MOSFET控制,MOSFET的最大允许电流,最大允许功耗都有其限制,如果没有电流控制,或者电流控制不好,均会导致功率MOSFET的烧毁,从而导致整个控制器报废,因此电流控制是本程序的重中之重,这个做不好,其它功能一概免谈。
电流信号经康铜丝采样之后分两路,一路送至放大器,一路送至比较器。放大器用来实时放大电流信号,放大倍数大约11倍,放大后的信号提供给单片机进行AD采样转换,转换所得AD值用来控制电流不超过我们所允许的值。另一路信号送至比较器,当电流突然由于某种原因大大超过允许值,比如一只MOSFET击穿或误导通时,比较器翻转送出低电平,触发单片机的大电流中断,使单片机能够快速关断驱动,从而保护MOSFET避免更大伤害。我们这里所要讲述的准确,及时两个要素,主要是针对放大器放大之后的信号处理过程来表述的。
准确
首先一个条件是准确,这里所指的是电流的AD采样和转换的时机。我们现在使用的是PWM脉冲驱动,这种脉冲驱动导致的直接结果是放大后的电流信号与PWM脉冲频率相同,相位上滞后一定时间的脉动电流波形,这种波形如果没有经过滤波处理,将会类似于一个梯形,如果我们要获得准确的电流AD转换值,最好的办法就是在梯形波的上边中间采样电流信号,这样所获得的电流AD值才能较为准确地反应电流的实际大小。
那么怎样保证采样的准确性呢?这里有一个办法,就是使用定时中断,我们可以设定好使定时中断和PWM周期同步,预先设定好AD的通道,将AD转换器切换到检测电流的那个通道,当进入定时中断处理完现场保护,中断源判断等一系列动作之后,开启AD时刻刚好落在电流梯形波的中央,采样完毕之后马上进行转换。
及时
其次是要及时。如果我们想及时准确地控制电流,采样次数也是要求越多越好,因为电流的变化相当快,在一个PWM周期中变化量可能会很大,所以我们最好是在一个PWM周期里采样数次,但是我们的单片机没有这么快的速度,再说PWM的占空比在一个周期中只接受最后的改变,而且要到下个周期才能发挥作用,所以一个PWM周期采样一次就够了,而且为了更好地处理其它事情,我们两个周期才对电流采样一次。
采样转换之后的工作,就是处理了。怎样根据AD结果去调节电流?我们不需要想到PID控制那么复杂的概念,只需要在电流没达到限制值时逐渐增加PWM,直到等于手柄设定值为止,如果在此过程中电流接近限制值,那么应该不再增加PWM,直到电流减小。如果电流超过了限制值,则根据超过的量,找一个比较合适的减小量,比如PWM减1或减3,一切以电流比较稳定为准,不要有太大的波动,但波动越小,我们要求PWM占空比调整精度越高。实践证明,8Bit的精度对调整电流来说足够。
恒流算法--电流即时值和有效值的矛盾:也许我们注意到大多数控制器的最大电流并没有出现在堵转的时候,这是因为上面我们所检测到的是电流的即时值,我们在电流表上看到的是电源电流的有效值,当PWM占空比不是100%的情况下,电流有效值≈电流即时值*PWM占空比,也就是说,占空比越小,要保证电流有效值达到我们的期望值,电流的即时值要提高。
电流的测量和控制还涉及到其他两个附加功能:换相消噪和降低温升,降低温升这个要结合硬件讲。
怎样减小换相噪声?
在电动车刚刚起步的时候我们会发现换相时电机会发出很大的突突声,这是由于电机起步时电流比较大,而电机是个感性负载,换相后由于电机线圈电流不会一下增大到换相前的水平,这样就造成换相前后电流反差非常大,从而导致牵引力的急剧变化,这种变化便会引起电机强烈振动,这种振动噪声我们不能完全消除,但有简单的方法减小,就是在换相后的一段时间使PWM脉冲占空比达到100%来使电流增长快一点,从而减轻振动噪声。需要提醒的是在这个过程中我们需要随时监测电流变化,电流一达到换相前的水平就可以恢复换相前的PWM占空比。如果电流始终达不到以前的水平,那么最多延时5多个PWM周期即可,时间长了也没用,以不影响到鉴相等其它重要工作为度。

5、堵转保护
为了防止电机发生堵转时电流始终通过同一组MOSFET而造成永久损害,因此有必要在堵转发生之后数秒钟之内切断电机的供电。一般时间是2秒。要注意的是有时电机虽然发生堵转,但刚好在换相的临界点,此时会产生频繁的换相动作,这对MOSFET也是有害的,所以也应当作堵转来对待。
6、欠压保护
这是针对电池的保护动作,如果电池过放电,将导致电池的永久损坏。注意欠压保护和电池电压上升后恢复供电这两个电压应有一定回差,比如48V电池欠压点在42V,而恢复供电点在45V,当电池电压回到45V时还应延时数秒,避免控制器频繁进入保护状态使骑行者感到不适。另一点要注意的是,电池是具有内阻的电源,因此在大电流放电的情况下因适当调低欠压值。
电压值的检测也是不需要非常频繁的,每隔10-50ms轮流检测一次AD值即可。
7、故障的检测,保护及显示
使用了单片机这样的可以智能化的零件,我们就可以做一些工作来帮助生产和维修:
由于生产过程中不可避免会造成一些诸如虚焊,连锡之类的缺陷,所以在产品组装成半成品测试时就会出现一些故障,轻则某些功能失效,重的会导致元器件烧毁,这是老板绝对不愿意看到的,所以我们可以多做一些工作最大限度上避免此类问题的发生:
我们最担心的是生产过程中由于连锡或虚焊导致MOSFET烧毁,一个MOSFET好几块RMB,谁见了都心疼。幸好现在有单片机,在开机时可以用极短的时间(大概10-20μS)的时间全部开启一下上桥,关闭,然后再开启一下下桥,如果其中有MOSFET短路就会产生比较大的电流,这个电流我们可以用单片机在开启MOSFET的同时检测到,而在这么短的时间内即使某个MOSFET短路,也不至于把另外一个烧掉,所以可以利用这个检验方法来初步检查产品的好坏,也便于修理工修理。其他的故障比较好检测,这里就不一一赘述。
故障检测出来了,需要显示出来以告知人们出了什么故障,目前一般采用LED闪烁次数来表示,次数可以自己定,也可以采用比较流行的办法:
慢闪:
1秒钟闪一次,表示没有检测出故障。
快闪:
连续闪两次,停一下,表示刹车,或者刹车部分有故障。
连续闪三次,停一下,表示INT0口始终为低电平,很有可能是比较器部分有问题。
连续闪四次,停一下,表示上桥有短路现象
连续闪五次,停一下,表示下桥有短路现象
连续闪六次,停一下,表示电机霍尔信号有故障,或者相位选择有误。
连续闪七次,停一下,表示刚刚发生了过流保护,INT0口有低电平脉冲出现
连续闪八次,停一下,表示电源电压过低或给单片机供电的5V电源电压过高。
8、同步整流
    这里的“同步整流”实际上应该称为“同步续流”,假设此时A相和C相通电,当A相上桥(我们把连接电源正的MOSFET称为上桥,与电源地连接的成为下桥,下同)PWM占空比没有达到100%时,通过电机线圈的电流是断续的,但上桥关闭的时候,由于电机线圈是一个电感,线圈上必定会出现一个自感反电动势,这个反电动势必须维持线圈电流的方向不变,由于A相上桥已经关闭,这个电流就会通过原来已经开通的C相下桥,地,A相下桥的续流二极管继续流动。
当总电流小时这个自感电流并不大,但总电流大时,线圈中储存的能量多起来,这个自感电流也会相当大,我们知道MOSFET的续流二极管本身的压降大约在0.7-1V,在通过的自感电流大时,功耗便会相当大,假设自感电流为10A,二极管压降为0.7V时,功耗为7W,显然这个发热量是相当大的,这时下桥便会变得很烫,假如我们此时把下桥打开,让自感电流直接从MOSFET的沟道里走掉(MOSFET导通时电流可以双向流通),再假设MOSFET导通电阻RDSON=10mΩ,10A的时候功耗就变为1W,理论上就可以大大降低下桥的功耗,从而降低温升。但在实际上,由于上下桥在交叉导通时需要一个死区以避免双管直通造成电源短路,这个作用会打一些折扣,不过效果还是很明显。这也是为什么很多产品的下桥会用好一点的管子的原因。

出0入0汤圆

发表于 2011-8-2 08:26:08 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-2 08:40:56 | 显示全部楼层
"连续闪四次,停一下,表示上桥有短路现象 "

如何判断出上桥还是下桥短路?

出0入0汤圆

发表于 2011-10-26 17:11:31 | 显示全部楼层
mark

出0入0汤圆

发表于 2014-9-15 17:20:52 | 显示全部楼层
谢谢楼主提供的资料!

出0入0汤圆

发表于 2014-9-24 11:17:40 | 显示全部楼层
无刷调速的核心就是检测电机转子的相位,还有在无霍尔的无刷电机中,启动比较困难
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 05:00

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表