电机驱动控制就是控制电机的转动或者停止,以及转动的速度。电机驱动控制部分也叫做电子调速器,简称电调,英文electronic speed controller(ESC)。电调对应使用的电机不同,分无刷电调和有刷电调。
有刷电机的永磁体是固定不动的,线圈绕在转子上,通过电刷跟换相器接触来改变磁场方向来保持转子持续转动。无刷电机,顾名思义,这种电机是没有电刷和换相器的,他的转子是永磁体,而线圈是固定不动的,直接接到外部电源,问题就来了,线圈磁场方向怎么改变呢?事实上,无刷电机外部还需要一个电子调速器,这个调速器就是一个电机驱动,通过改变固定线圈内部电流的方向,保证它跟永磁体之间的作用力是相互排斥,持续转动得以延续。
有刷电机工作可以不需要电调,直接把电供给电机就能够工作,但是这样无法控制电机的转速。无刷电机工作必须要有电调,否则是不能转动的。必须通过无刷电调将直流电转化为三相交流电,输给无刷电机才能转动。
一般使用PWM的占空比来控制电机的转速。
无刷电机的操作相对来说是比较麻烦的,而有刷电机就是我们小时候玩的四驱车上的那种电机,接上电就能猛转,反着接它就反着猛转,就是这么简单。
Crazepony使用的是有刷空心杯电机,所以电机的控制属于有刷直流电机控制,相对于无刷电调来说要简单很多。Crazepony采用的是有刷空心杯高速电机,转速在3W转/分钟左右。要驱动有刷电机,很简单,只需要将信号的驱动能力增大,就能驱动有刷电机了。
那么选择什么元件来提供这样的特性呢?Crazepony的电机驱动IC选型经历了三级管,中功率管的失败,最后选用的是场效应管(即MOSFET)SI2302。
由于笔者完全是由于一种强烈的爱好选择了飞行器,最开始连有刷电机和无刷电机的物理结构区别都不知道,电调又是啥?傻傻分不清楚……
从一个几乎零基础的状态去选择电机驱动芯片,弯路是必须要走的,学费是必须要交的。曾以为书上学到的东西马上就能用,马上能转化为产品,后来发现真的是自己想多了。
最开始用的三极管作为电机驱动,采用很经典的共射电路“三极管工作在开关状态应该就行了吧?”画了用三极管驱动的PCB板,发现电机越转越慢,根本没劲。“也许是因为三极管扛不了大电流,好吧那我换个中功率管吧,集电极最大6A电流行了吧?”可以想象结果是不行的。
首先了解下为什么三极管作为简单的电机驱动是不可取的方案:
在晶体管家族里面还有一种跟三极管特性互补的,所有特性都集中在开关状态的晶体管,场效应管,即MOSFET。通常的场效应管完全导通时,源漏极电阻都是mΩ级别的,即它自身的耗散非常小。用它做为驱动管再合适不过了。最终选择了一个SOT23封装的,导通电压Vgs<4v的场管(SI2302),结果表现出了很好的驱动性能。
每个场效应管接一个大电阻下拉,目的是为了防止在单片机没接手电机的控制权时,电机由于PWM信号不稳定开始猛转。接一个下拉电阻,保证了场管输入信号要么是高,要么是低,没有不确定的第三种状态。那么电机也只有两种状态,要么转,要么不转。主控输出的是PWM波形,用于控制场效应管的关闭和导通,从而控制电机的转动速度。这就是crazepony电机驱动的原理。就是这么简单。
在《电机与桨叶》一文中,我们提到大四轴基本上都是使用的无刷电机,无刷电机控制必须配合无刷电调使用。
无刷电调的输入是直流,通常直接接航模电池。输出是三相交流,驱动无刷电机。另外无刷电调还有三根信号线,输入PWM信号,用于控制电机的转速。对于航模,尤其是四轴飞行器,由于其特殊性,需要专门的航模电调。
那么为什么在四轴飞行器上需要专门的电调呢,其有什么特别的地方?四轴飞行器有四个桨,两两相对呈十字交叉结构。在桨的转向上分正转和反转,这样可抵消单个桨叶旋转引起的自旋问题。每个桨的直径很小,四个桨转动时的离心力是分散的。不像直机的桨,只有一个能产生集中的离心力形成陀螺性质的惯性离心力,保持机身不容易很快的侧翻掉。所以通常航模直升机用到的电机控制信号更新频率很低,而航模四轴飞行器用到的控制信号更新频率很高。
四轴为了能够快速反应,以应对姿态变化引起的飘移,需要高反应速度的电调,常规PPM电调的更新速度只有50Hz左右,满足不了这种控制所需要的速度,且PPM电调MCU内置PID稳速控制,能对常规航模提供顺滑的转速变化特性,用在四轴上就不合适了,四轴需要的是快速反应的电机转速变化。用高速专用电调,IIC总线接口传送控制信号,可达到每秒几百上千次的电机转速变化,在四轴飞行时,姿态时刻能够保持稳定。即使受到外力突然冲击,依旧安然无恙。