无刷电机基础
参考:
1.得捷电子教你转起一台无刷电机
2.稚晖君知乎关于无刷电机的讲解

**其余参考在文中以链接形式给出

  1. 无刷电机的简要原理
    无刷电机相比于有刷电机,最大的特点是没有电刷,这就带来了性能佳,寿命长等优点


1.1 无刷电机的分类**
直流无刷电机分为下面两类:

1.无刷直流电机(BLDC):方波驱动,航模上用的都是这种
2.永磁同步电机(PMSM):正弦波驱动,性能比BLDC更优,但算法更复杂



两者大体结构上是相同的,结构上最大的区别是定子的形状不同,这就带来了控制算法的不同

1.2 无刷电机控制系统的基本结构
无刷电机的控制系统包含以下部分



1.无刷电机
2.三项驱动(即六个桥,比有刷电机的多一个桥)
3.控制系统
4.速度反馈(霍尔传感器直接读取转子位置让控制系统进行信号控制)


1.3 无刷电机的转动原理
1.3.1 BLDC六步换向方波控制法



类似于步进电机,每对线圈按一定规律进行通断即可,每次两两导通

驱动简单,但缺点明显,输出转矩不恒定,电机震动大

tips:步进电机转动的最小单位是一个步距角,无刷电机是连续运转,所以两者并不一样

1.3.2 FOC(Field-Oriented Control)
FOC直译是磁场定向控制,也被称作矢量控制,是目前BLDC和PMSM最优的控制方法之一,三相同时工作

FOC精确控制磁场大小与方向,使电机平稳高效运转



FOC的具体过程有点复杂…略 具体可在得捷电子和稚晖君的知乎文章上学习

FOC是一个巨牛逼的算法,用得好可以对电机实现像素级控制,想知道有多牛逼的话可以看稚晖君的这个视频

1.3.3 无传感器无刷电机启动方法

无刷电机需要对速度和位置进行测量,测量就有传感器读取和无传感器估计(有的电机因为条件限制没有能安装传感器)的方案

对于无传感器的电机有专门的启动方法

三段式启动法:

1.预定位:确定转子的初始位置
通过变化磁场, 让转子转到特定的位置

2.加速运行:让转子加速转动起来

3.开环切入闭环
当反电动势检测稳定的时候,说明电机速度达到无位置传感器运行的要求,可以切入闭环状态

2.无刷电机相关参数
2.1 KV值

表示电机电压每升高1V,电机转速提升的数值,在无刷电机中,这个值是常量

2.2 表贴式与内嵌式
表贴式(SPM)的无刷电机的转子在电机表面,定子在电机中心。而内嵌式(IPM)的转子在电机中心,和传统电机一样,定子在电机表面。
SPM和IPM影响反电动势的测量

2.3 尺寸
无刷电机的型号命名中有2216、2814等数字,其中,前两位是指定子的外径,后两位是指定子的高度,越大的电机功率越大,重量也越大

2.4 槽数和级数
1.槽数(N):定子铁芯的数量,因为无刷电机是三相电机,所以N是三的倍数
2.级数(P):定子上磁钢的数量,磁钢是南北极成对使用,所以P是偶数
特性:
1.N、P越小,转速越高
2.N相同时,P越大,扭矩越大
3.N、P越大,电机顿挫越小,震动越小,但槽数多了之后难以做好动平衡


2.5 市面上常用无刷电机型号
因为航模电机不需要精确控制,而且需要控制成本,所以航模电机一般都是BLDC

1.A2212



2.2208



3.3650(感觉这种比较适合用来做小车,这个也是BLDC,驱动板是生成PWM的)



4.野火PMSM



无刷电机型号巨多,要用的时候自己选型就好

3. 无刷电机驱动
3.1 电子调速器

电子调速器即电调(ESC),特指航模行业的无刷电机驱动器,一般体积小,电流大,工作时间短

只能用来调速,往信号口输入PWM即可驱动,具体怎么驱动的没找到资料,把调速器买来测一下输出就知道了



3.2 FOC驱动器
应用于各个行业,功能多样化和复杂



4.使用ST库让无刷电机转起来
我们需要的硬件:

1.无刷电机
2.电机驱动
3.电机控制器(32可满足)
4.电源
tips:通过得捷电子可以查到很多相关资料和硬件选型

软件
1.CubeMax
2.ST的FOC库 ST Motor Control WorkBenck、ST Motor Profile等
思路:
1.对于没有得到详细参数的电机,先用ST Motor Profile对电机参数进行辨识(即测量),并将参数保存



有参数的可以直接进入下一步
2.在Motor Control WorkBenck中对参数进行修改与确认,基本上是自动填好不用再修改了的



没有问题开始生成工程,选择Keil V5和STM32CubeMax的固件版本



点击GENERRATE开始生成工程,成功后点击Run STM32CubeMax对STM32剩下的引脚进行配置,最后在CubeMax中生成代码即可得到完整的工程



编译没有问题可以直接将代码烧到开发板中



回到Motor Control WorkBenck中,点击功能栏中的仪表盘按钮,可以进入控制无刷电机的上位机程序,这时候就可以自如控制电机了

如果想要编程控制电机,研究一下工程中ST的FOC库,用库函数进行编程即可

如果想不使用库,可能就得自己研究控制算法自己写程序了