前言
一年多前就画好了FOC的板子,后面因为各种原因耽搁了,最近又重新捡起来,准备写一下程序,首先我们要做一下FOC的理论分析。
左右手定则
左手定则用于判断导线在磁场中受力的方向:
磁感线从左手手心流入,四指指向电流方向,大拇指指向的就是安培力方向(即导体受力方向)。
右手定则用于判断感生电动势的方向:
磁感线垂直穿入右手手心,大拇指指向导体运动方向,则其余四指指向感生电动势的方向
根据上面的图示,我们能看到,对导体加载正方向电流,其产生向右的力,然后向右运动,在运动过程中又会产生负方向的感应电动势
所以,我们拿到三相电机:
用手旋转它(反向),会产生如下的波形
我们如果将上述波形的交流电输入电机,则会产生正向的旋转运动
三相电
我们对于三相电的
t
0
t_0
t0时刻状态,可以表示如下:
其中实轴就是当前的实际输出值,虚轴是假想轴,这样我们就可以将其变换到两个轴上了(即所谓的Clark变换):
在 t 1 t_1 t1时刻,假设 I a , I b , I c I_a,I_b,I_c Ia,Ib,Ic同时顺时针旋转了 θ \theta θ度,由于相对的相位不变,在进行Clark变换后即相当于 I α , I β I_{\alpha},I_{\beta} Iα,Iβ顺时针旋转了 θ \theta θ度。我们就可以直接得到 t 1 t_1 t1时刻的 I α , I β I_{\alpha},I_{\beta} Iα,Iβ值(即分别为 I d , I q I_d,I_q Id,Iq,这个变换即所谓的Park变换):
Park变换是顺时针旋转,则RevPark变换就是逆时针旋转,他俩刚好互为逆变换
参数控制
上图中,
I
d
_
R
e
f
,
I
q
_
R
e
f
I_d\_Ref,I_q\_Ref
Id_Ref,Iq_Ref即是我们的目标,通过前面分析,我们知道
I
d
I_d
Id轴实际上是实轴,而
I
q
I_q
Iq轴即虚轴。我们希望
I
q
I_q
Iq是0,而
I
d
I_d
Id是实际力矩输出
。
参考
三相坐标变换CLARK变换PARK变换
【自制FOC驱动器】深入浅出讲解FOC算法与SVPWM技术
需要注意的是稚晖君的控制是使用 I q I_q Iq控制,而不是 I d I_d Id,但实际上三相电中更常用的 I d I_d Id控制,这更符和其实际意义,使用 I q I_q Iq的话,实际上是虚轴和实轴刚好假设反了。