很早之前就想做一款无刷电机控制器,忙于工作一直没有弄。Zui近有点时间画板,打样,焊接,调试,总算顺利的转起来。期间也遇到很多问题,上网查资料,自己量波形前前后后搞了差不多近一个月,(中间又出差一周)总算搞的差不多了,特意写个
板子外观100*60mm 中等大小。DC 12V输入,设计Zui大电流10A.(实际没试过那么大的电机,手头的电机也就56A的样子)硬件上可以切换有感(HALL)和无感(EMF)两种模式,外部滑动变阻器调速 预留有PWM输入、刹车、正反转、USB和uart等接口。
先来说下原理无刷电机其实就是直流电机,和传统的DC电机是一样的,只是把有刷的电滑环变成了电子换向器。
![图片](http://static.11467.com/img/lazy.gif)
因为少了电滑环的摩擦寿命静音方面有了很大的提升,转速也更高。
![图片](http://static.11467.com/img/lazy.gif)
当然难点就在如何获取当前转子的位置好换相,又分为两种有感和无感。
有感就是在电机端盖的部位加装霍尔传感器分别相隔30度或60度。无感就是靠检测悬浮相的感应电动势过零点(后面细讲)。
当然各有各的优缺点,有感在低速方面好,可以频繁启停换相。无感的结构简单成本低,航模上应用居多。
先说有感,电源被分成了3个绕组U V W这个交流电还是有区别的。
它只是3个H桥按一定的顺序导通模拟出来的,本质还是直流电。电机靠hall位置按一定顺序换相,转速与电压电流有关。这一点切记,不是换的越快转的越快。(位置决定换相时刻,电压决定转速)一般调速就是调电压,6步PWM方式是目前常用的。当续还有foc等更好算法。相关文章:浅析PWM控制电机转速的原理。
硬件部分网上基本都是成熟的方案。三相H桥,H桥一般有上臂mos和下臂mos组成,如果只是简单的做演示上臂选pmos下臂选nmos控制电路简单直接用单片机的io就可以驱动。pmos低内阻的价格高。功率上面很难做大。相关文章:H桥如何控制电机速度。
这也就是为什么基本所有的商业控制器全是nmos的原因。
上臂用nmos存在一个问题vgs控制电压大与vcc4v以上才能完全导通。为了简化电路采用了ir公司出的驱动ic,它内部有自举升压电路。外部仅需一个续流的二极管及储能电容即可。
![图片](http://static.11467.com/img/lazy.gif)
![图片](http://static.11467.com/img/lazy.gif)
有感模式控制相对简单,3个霍尔传感器输出一般都是数字信号,分压后直接接单片机io。
![图片](http://static.11467.com/img/lazy.gif)
当然控制方式上也就简单很多,三个霍尔接中断输入,在中断处理程序中根据组合状态换相,程序上也没什么复杂的。主程序一直检测ad值,改变pwm占空比,及电流保护等。
如下一个典型的换相代码。STM32 有两个gaoji定时器tim1 tim8可以输出4组互补型pwm,还可以设定死区时间等,使用上非常方便。
![图片](http://static.11467.com/img/lazy.gif)
![图片](http://static.11467.com/img/lazy.gif)
下图为uvw三相的霍尔检测到的电平及w相的波形。
![图片](http://static.11467.com/img/lazy.gif)
下图为 uvw三相波形及w相霍尔电平
![图片](http://static.11467.com/img/lazy.gif)
下图为 w相电平, w相上臂on 下臂pwm ,w相霍尔信号。
![图片](http://static.11467.com/img/lazy.gif)
下图为w相ir2304芯片输出,上臂电压可明显看到已高于vcc,下臂为pwm信号
![图片](http://static.11467.com/img/lazy.gif)
说无感模式,由于没有了霍尔,电机无法知道转子当前的位置就无法换相,而感应电动势也只有在转起来之后才有,无感模式的启动是个难点。一般方法都是分三段法:1预定位 2 启动 3 进入闭环反馈
正如网友说的江湖一层纸,戳破不值半文钱。
1.预定为就是强制给某一相通电一段时间,让电机定位到这个位置。占空比30-50%不要太大,可能会发热。
2. 启动,就是逐步的强制换相,当然要有个加速的过程,使电机转起来。
这个过程太慢会抖动反转,太快会丢步。参数需要一点点试,有点像控制步进电机。要能使电机转的能产生电动势,我也是参照的德国MK电调的算法。
每次延时时间比上一次少1/25,形成一个加速的过程,直到电机完全转起来产生足够的电动势。