笔记前声明:文中截图均出自上方链接中稚晖君的文章。

目录

一、什么是FOC

二、FOC驱动器和无刷电调的区别

2.1 FOC的优势:

2.2 电调的优势:

2.3 FOC待解决的问题

2.4 直流无刷电机分析

三、驱动电路的实现

3.1 三相逆变器电路

 3.2 旋转的三相电机波形

四、FOC驱动原理

4.1 天书 算法导图

4.2 稍微解释

4.3 SPWM

4.4 Clark变换

4.5 Park变换

 4.6 三环串级PID


4.7 Id与Iq(电流环)

4.8 速度环

 4.9 位置环


一、什么是FOC

FOC(Field-Oriented Control),直译是磁场定向控制,也被称作矢量控制(VC,Vector Control),是目前无刷直流电机(BLDC)和永磁同步电机(PMSM)高效控制的最优方法之一。FOC旨在通过精确地控制磁场大小与方向,使得电机的运动转矩平稳、噪声小、效率高,并且具有高速的动态响应。

二、FOC驱动器和无刷电调的区别

2.1 FOC的优势:

1. 低转速下控制
由于控制原理的区别,无刷电调只能控制电机工作在高转速下,低速下无法控制;而FOC控制器则完全没有这个限制,不论在什么转速下都可以实现精确控制。

2. 电机换向
同上面的理由,由于电调无法反馈转子位置,因此很难实现电机正反转的换向(当然有感电调可以实现);而FOC驱动器的换向性能极其优秀,最高转速下正反转切换可以非常顺畅;此外FOC还可以以能量回收的形式进行刹车控制。

3. 力矩控制
普通电调都只能控制电机转速,而FOC可以进行电流(力矩)、速度、位置三个闭环控制。

4. 噪音
FOC驱动器的噪音会比电调小很多,原因是普通电调采用方波驱动,而FOC是正弦波。

2.2 电调的优势:

1. 兼容性
电调驱动不同的BLDC(无刷直流电机)不需要进行参数整定,而FOC需要。

2. 算法复杂度
电调的算法实现更简单,运算量少,很适合需要提高带宽的超高转速电机。

3. 成本
电调的成本比FOC低很多。

2.3 FOC待解决的问题

至于什么时候怎么知道该换到哪个供电相?如何产生更平滑的换向电压?如何提高电源的利用效率?这些都是FOC控制方法要探讨和解决的问题。

2.4 直流无刷电机分析

简单地说,BLDC由于反电动势接近梯形波,所以依然是采用方波驱动,肯定是会有上面说的抖动问题的,但是转一圈抖6下太明显了,如果我增加电机槽、极对数(也就是磁铁对数),那以前是360度里面抖6下,现在变成120度里面抖6下,甚至更小,这样“颗粒感”不就变得更小了嘛?实际中买到的BLDC电机基本都是多极对的(比如下图),原理跟之前的分析是一样的,出来的都是三相信号(图中的三根线),可以自己进行类推。

而另一方面,为什么我们非得用方波这种不平滑的波来驱动电机呢,用正弦波它不香吗?是的,这就是PMSM解决问题的方式,由于PMSM的反电动势被设计为正弦波的形状,我们用软件和算法结合PWM技术将方波转变成等效的正弦波,再来驱动电机,结果美滋滋,控制效果很理想。当然为了产生更好的正弦波、更好的旋转磁场,驱动器、控制算法就变得非常复杂,这也是FOC的实现原理,后面会进行详细介绍

三、驱动电路的实现

3.1 三相逆变器电路

PF驱动和VF驱动的区别_待解决

所谓逆变电路,即把直流电变换为交流电,或者简单点说就是一个可以产生不同电流流向的电路,通过前面的电机模型分析我们也可以看出,对于无刷电机的驱动是需要在不同时刻施加不同方向的电压(电流)的,因此需要逆变电路。

 

PF驱动和VF驱动的区别_框图_02

而逆变电路具体的实现则一般是采用半桥MOS电路来制作的。半桥电路的原型如下,其实很简单,就是两个MOS管组成的上桥臂下桥臂,中间引出一条输出线:

PF驱动和VF驱动的区别_PF驱动和VF驱动的区别_03

打开红的和两个蓝的,三相都有磁场

遗留问题: 这里我理解的差

PF驱动和VF驱动的区别_框图_04

 

PF驱动和VF驱动的区别_学习_05

 3.2 旋转的三相电机波形

按照前面的无刷电机基本模型,假设我们拿到这样一个电机,手动匀速转动它的转子,然后用示波器观察它的三相输出电压(也就是反电动势产生的电压),会看到什么波形呢?

其实很自然可以想到,我们会得到3根正弦曲线,而且三根曲线两两相位差为120°:

PF驱动和VF驱动的区别_待解决_06

发电机反过来就是电动机啦,所以假如反过来我们在三相无刷电机的三相线圈上输入上述三相正弦电压,那么就可以驱动无刷电机平稳高效地旋转了。

而这也是FOC驱动无刷电机的基本手段,即通过计算所需电压矢量,使用 SVPWM 技术产生调试信号,驱动三相逆变电路,合成出等效的三相正弦电压驱动电机。

四、FOC驱动原理

4.1 天书 算法导图

PF驱动和VF驱动的区别_框图_07

4.2 稍微解释

PF驱动和VF驱动的区别_正弦波_08

PF驱动和VF驱动的区别_待解决_09

4.3 SPWM

PF驱动和VF驱动的区别_学习_10

 最主要的原因是,通过上面三个半桥逆变器电路的分析我们可以知道,我们并不好在某一时刻独立地控制某一时刻电机的三个相电压,也就很难合成三路这种SPWM波了;另外SPWM也比后面要说的SVPWM的电压利用率要低15%(具体怎么算的这里就不介绍了)

PF驱动和VF驱动的区别_PF驱动和VF驱动的区别_11

4.4 Clark变换

遗留问题:开尔文接法

PF驱动和VF驱动的区别_框图_12

 

PF驱动和VF驱动的区别_PF驱动和VF驱动的区别_13

PF驱动和VF驱动的区别_待解决_14

 

PF驱动和VF驱动的区别_PF驱动和VF驱动的区别_15

PF驱动和VF驱动的区别_待解决_16

注意:频率还是不变的!

PF驱动和VF驱动的区别_待解决_17

PF驱动和VF驱动的区别_正弦波_18

4.5 Park变换

PF驱动和VF驱动的区别_待解决_19

PF驱动和VF驱动的区别_PF驱动和VF驱动的区别_20

 

PF驱动和VF驱动的区别_正弦波_21

 这个操作是可行的,因为我们会通过编码器输入转子的实时旋转角度,所以这个角度始终是一个已知数。经过这一步的变换,我们会发现,一个匀速旋转向量在这个坐标系下变成了一个定值!(显然的嘛,因为参考系相对于该向量静止了),这个坐标系下两个控制变量都被线性化了!

 遗留问题:理解一般

PF驱动和VF驱动的区别_学习_22

 

PF驱动和VF驱动的区别_学习_23

 4.6 三环串级PID

PF驱动和VF驱动的区别_框图_24

遗留问题:

PF驱动和VF驱动的区别_PF驱动和VF驱动的区别_25

 这仨是什么?

解决了PF驱动和VF驱动的区别_PF驱动和VF驱动的区别_26,因为park变换需要这个值嘛

可以看出来,这也就是前面提到的FOC控制9个步骤所描述的过程。实际只用到了PI控制,没有引入微分,因为电流的采样率非常高不需要加入微分项。(为啥)

PF驱动和VF驱动的区别_学习_27

4.7 Id与Iq(电流环)

PF驱动和VF驱动的区别_框图_28

 首先,星形连接:相电流 = 线电流

其次,通过我的推导:电流的方向就是转子的受力方向

因为电流流经线圈产生的磁场,进而是磁场提供动力而不是电流了

(这不是转载的)

遗留问题:线圈一定是三个么,这是三相交流电,可不可以多相?

PF驱动和VF驱动的区别_正弦波_29

PF驱动和VF驱动的区别_待解决_30

 

PF驱动和VF驱动的区别_正弦波_31

4.8 速度环

PF驱动和VF驱动的区别_PF驱动和VF驱动的区别_32

 

PF驱动和VF驱动的区别_学习_33

 4.9 位置环

最外一层是位置环,也就是可以控制电机旋转到某个精确的角度并保持,控制框图如下:

PF驱动和VF驱动的区别_学习_34

同理应该很简单可以理解,上图中位置控制PID只用了P项(也可以使用PI)。

 

PF驱动和VF驱动的区别_PF驱动和VF驱动的区别_35

(厉害了,这跟我担心的反着,速度低反而不理想了,我感觉速度太高也会不理想)

所以为了避免速度环节带来的误差,在做位置控制的时候可以只使用位置和电流组成的双环进行控制,不过此时需要对位置环做一定的变化,控制框图如下:

PF驱动和VF驱动的区别_学习_36

 由于去掉了速度环,这里的位置环我们使用完整的PID控制,即把微分项加上(因为位置的微分就是速度,这样可以减小位置控制的震荡加快收敛;积分项的作用是为了消除静态误差)

遗留问题:看不懂

4.10 SVPWM

PF驱动和VF驱动的区别_框图_37

4.10.1 空间电压矢量

什么是空间电压矢量?

空间电压矢量是我们在控制电机过程中虚拟出来的一个矢量,既然是矢量,自然是有大小和方向的,那么它的大小和方向是什么呢?

还是以前面三相逆变驱动电路那幅图中的状态为例,输入100的状态:

PF驱动和VF驱动的区别_待解决_38

PF驱动和VF驱动的区别_正弦波_39

PF驱动和VF驱动的区别_PF驱动和VF驱动的区别_40

 

PF驱动和VF驱动的区别_学习_41

PF驱动和VF驱动的区别_待解决_42

 

PF驱动和VF驱动的区别_正弦波_43

 

PF驱动和VF驱动的区别_学习_44

 

PF驱动和VF驱动的区别_学习_45

 

PF驱动和VF驱动的区别_正弦波_46

 取一种做演示:

PF驱动和VF驱动的区别_正弦波_47

 如前文分析,此时的电压矢量为AO方向,大小为 Udc ,我们把这个矢量画在坐标轴中如图:

 

PF驱动和VF驱动的区别_框图_48

 

PF驱动和VF驱动的区别_PF驱动和VF驱动的区别_49

4.10.2 SVPWM技术

PF驱动和VF驱动的区别_学习_50

 

PF驱动和VF驱动的区别_框图_51

PF驱动和VF驱动的区别_待解决_52

 

PF驱动和VF驱动的区别_框图_53

 

PF驱动和VF驱动的区别_正弦波_54

PF驱动和VF驱动的区别_待解决_55

PF驱动和VF驱动的区别_正弦波_56

遗留问题:m还能改么 ?零矢量的也没看懂

解决:发现一个问题:

PF驱动和VF驱动的区别_PF驱动和VF驱动的区别_57

为了避免(1,1,1)的零矢量造成运算错误,需要(0,0,0)矢量与(1,1,1)等大?

 

PF驱动和VF驱动的区别_框图_58

 这是真的强

PF驱动和VF驱动的区别_框图_59

PF驱动和VF驱动的区别_正弦波_60