这些年做了好多无刷电机控制器,从航模的到工业应用的,从开源到闭源,从高电压到低电压,从大电流到低电流的,林林总总。青春都献给了电机驱动器,因为有多年的经验积累,利用业余时间,零零碎碎花了大约1个月时间,总算像样的做出来了。期间做错了一版,导致工期延期。
先来看一下板子机械尺寸和电气参数。尺寸10cm x 8cm,最大输入电压28v(可改为45v输入),额定输入电压为24v,推荐工作电压为24v,最大电流设计为30A,因为输出5.08插头最大耐压为15A,因此推荐工作电流为10A左右较为安全,因此额定功率250W。
板子外观:
开发板:开发板
板子设计初衷为学习板,因此板子上的资源留的比较多,方便二次开发。
1、可通过硬件来切换实现无感、有感驱动。
2、板子上预留串口、USB-TTL方便FOC上位机调试。
3、为了下载调试方便,预留了SWD接口,没有添加20脚的JTAG接口。
4、5个按键作为按键调速功能键,按键采用丰田汽车前面板按键,手感和使用寿命都优于市面上的按键。
5、一个滑动变阻器,作为模拟输入控制转速的。
6、OLED显示屏接口,方便调试时更直观的操作。
7、四个测试点,方便用示波器观测驱动波形。
能翻到我这篇bolg的,都是对无刷电机的性能和优点十分清楚的,在无刷电机的功能上我不做其它介绍了,在硬件和软件上我简单讲一下,方便大家了解。
无刷电机硬件很简单,MCU、驱动、H桥电流采样。主要就是这几部分,可能做的比较多,感觉这些东西也没啥可讲的,给大家介绍一下H桥和驱动吧。
无刷电机控制其实已经很成熟了,百年不变的H桥电路,大家可以在网上找得到,无论航模电机驱动还是工业电机驱动,都是用的一个H桥,H桥上的MOS主要决定了驱动器的功率,航模上要求的PCB面积比较小,因此在选择MOS上会选择小封装,大功率的,一般会选择DFN3.3x3.3的或者DFN5X6的,这里是硬件设计上的一个难点,在控制成本的前提下,又要保证PCB面积和性能,对工程师布线要求较高。其它影响功率的还有PCB板的铜厚、MOS的散热条件等。工业上应用会使用大功率MOS、IGBT或者晶闸管等功率器件。
驱动芯片这个没什么特殊出,唯一的要求就是就是稳,稳,稳。保证有效输出,方案可靠稳定,控制类都要求安全可靠,尤其电机控制,不可以出错。
这是我在网上找的驱动方案和H桥电路,我们的方案跟这个也大同小异。
软件方面比较精彩,一句两句话也不能把其中的精髓说清楚。软件主要分有感和无感,这两个主要是在启动方式上有区别,其它地方大同小异。
有感无刷电调换相逻辑:
不同绕组的通电切换,必须在转子转到位置时进行,即换相须准时地进行。换相控制是保证无刷直流电机正常工作的基础,有霍尔传感器的无刷直流电机中,一般安装3个霍尔传感器,间隔60和120按圆周分布。如果间隔60,输出波形相差60电度角。若间隔120,则3个霍尔传感器输出波形相差120度电度角,输出信号中高低电平各占180度,以120度霍尔式位置传感器为例,三相无刷直流电机反电动势和传感器输出信号相位关系。HALL-A.HALL-B,HALL-C为三个霍尔传感器在电机运转中的波形,EMF-A,EMF-B,EMF-C为电机反电动势电压波形。
由图可知,无刷直流电机反电动势为正负半波皆有120度平台的梯形波,三相间相差为120度。三个位置传感器电角度间距(120度)如此,可通过对霍尔传感器信号的检测,经由功率mos或IGBT功率开关实现换相,使电枢绕组依次通电,从而在定子上产生跳跃式的旋转磁场,驱动永磁转子旋转,位置传感器输出信号不断变化,电枢绕组的通电状态随之改变,使得在某一磁极下导体的电流方向始终保持不变,这就是无刷直流电机无接触换向过程。
无刷电机的调速方式:
对于无刷电机,其电动势的平衡方程为:
可见,在忽略电枢电阻和功率开关压降的情况下,无刷直流电机的转速仅和电枢电压和磁场强度有关,其调速方法有调压调速和弱磁调速两种,类似于直流有刷电机调速。其中,调压调速采用额定励磁可实现额定转矩输出,所以适用于恒转矩负载基速范围内调速,且方法简单实现。
无刷直流电机调压调速方案有:
1.晶闸管移相调压,DC/DC变换电路调压和脉宽调试PWM技术。
晶闸管移相调压
如果系统是交流供电,需要整流电路获得直流母线电压,此时,可采用晶闸管构成可控整流桥,利用调相方法调节直流母线电压大小。
DC/DC变换器调压
如果系统是直流供电,可以采用DC/DC变化器调压,调压调速原理如下,图中变换器可以调节电枢电压达到无刷直流电机调速目的,换相电路适时切换通电绕组使电机旋转。
举个简单的例子,在连接的直流母线上串联一个功率晶体管,用以调节控制器的直流电压,功率管可以工作在放大状态,给控制器的电压可以连续变化。
PWM换相调压
最常见的调压调速方法是脉宽调制技术,PWM技术。
PWM技术可以有效的对谐波进行抑制,在频率,效率方面有着明显的优点,使逆变电路的技术性能与可靠性得到明显提高,采用PWM方式构成的逆变器,输入是固定不变的直流电压,可以通过PWM技术在同一逆变器中,即实现调压又实现调频,由于这种逆变器,只有一个可控的功率级,简化了主回路和控制回路的结构,体积小,重量轻,可靠性高。
输出电压的平均值和占空比成正比,所以在调节频率时,不改变直流电压幅值,而改变输出电压脉冲的占空比,也同样可以实现变频变压的效果,但是在实际使用过程中,频率是固定的,通过调整占空比来实现调压调速的。
六步换相函数讲解:
TIM1->CCR2 = 0; //定时器1通道2占空比为0;
TIM1->CCR1 = 0;//定时器 2 通道1占空比为0;
TIM1->CCR3 = MY_PWM;//定时器1第三通道占空比就是设定的值,这样就满足了二二导通的原则,把下一个MOS管导通,其它两个下管不导通。
即
GPIO_SetBits(GPIOB,GPIO_Pin_13);
GPIO_ReSetBits(GPIOB,GPIO_Pin_14 | GPIO_Pin_14);
这样就形成上面一个管子输出PWM,下面一个MOS导通,然后中间是两根电机线,就会转动,这样按照一定的顺序去换相导通,电机就会转起来。
最后:
无刷电机控制说难也难,说简单也简单。
说它难是因为网上资料太多,太乱,没有一个好的引导,无法正确入门,造成学习时间过久,失去学习兴趣;其次操作不当会导致硬件损坏,如板子冒烟,烧驱动,烧mos,对学习者心里上会造成一定的恐慌,无法继续主动学习。
说它简单是因为技术是一层窗户纸,捅破了就没那么难了。
难易问题如同小马过河,你若是拥有多年编程经验,做过其它行业的多个项目,那么你就是小马过河里的老黄牛,河水再深对你来说也很浅,你要是刚会个C语言,会个单片机基本操作,那么你就是小马过河里的小松鼠,进河里就被淹死了。人要对自己有个定位,知道自己有多大能耐,不是一味的喊口号,说自己多么有毅力,多么能吃苦,我见过的喊口号的人,最终都一败涂地。浪费了钱不说,也浪费了时间,挫了自己的锐气,兵家大忌。
说了这么多,从无刷电机控制原理到人生道理都给大家讲了,希望大家对自己有一个准确的定位,花最少的时间学习到最宝贵的知识,最后祝大家学习愉快,工作顺利。
写了个程序测试板子功能,通过按键来控制电机启动、停止,加减速,换向等功能。
优酷连接: