一、FOC的框架

FOC主要是通过对PMSM/BLDC进行电流的控制,实现对电机转矩(电流)、速度、位置的控制。如下图所示,以电流作为最内环,速度是中间环,位置作为最外环,最终实现三闭环的控制。

  1.  电流环:采集三相电流,角度,进行Clarke、Park变换,得到 Iq、Id;再跟 Iq_ref、Id_ref计算误差,将误差值带入两个电流PI控制器中,计算出Uq、Ud;接着RePark,SVPWM。
  2. 速度环:当对PMSM/BLDC进行速度控制的时候,在电流环的基础上,串多一个速度环,用期望速度Speed_ref和实际速度Speed计算出误差,再代入速度PI控制器里面,计算出 Id,Iq 代入到电流环中。
  3. 位置环:当对PMSM/BLDC进行位置控制的时候,在电流环、速度环的基础上,串多一个位置环,用期望位置角度Position_ref和实际位置角度Position计算出误差,代入到位置PI控制器中,计算出Speed,代入到速度环中。

二、FOC各个环节计算 

1、Clarke变换

        (1)目的:将三相静止坐标系的三相电流值转换成两相静止坐标系的2个电流值;

        (2)图示如下:

        (3)公式如下:

                I\alpha =Ia-\frac{1}{2}Ib - \frac{1}{2}Ic

                I\beta = \frac{\sqrt{3}}{2}Ib - \frac{\sqrt{3}}{2}Ic

        (4)在(3)的基础上,等幅值变换,变换系数为2/3;等功率变换,变换系数为sqrt(2/3);

2、Park变换

        (1)目的:将两相静止alpha-beta坐标系变换成旋转的两相正交d-q坐标系;

        (2)图示如下:

        (3)公式如下:

                Id = I\beta \sin \theta + I\alpha \cos \theta

                Iq = I\beta \cos \theta - I\alpha \sin \theta

3、RePark变换

        (1)目的:分别对d轴和q轴电流进行调节,PI调节器输出电压Vd​、Vq​之后,要进行Park反变换,将这两个输出电压从d−q旋转坐标系变换回静止的alpha - beta两相坐标系;

        (2)图示如下:

        (3)公式如下:

                V\alpha =Vd\cos \theta - Vq\sin \theta

                V\beta = Vd\sin \theta + Vq\cos \theta

4、SVPWM

(1)SVPWM和SPWM一样,都属于脉宽调制。要注意的是,所谓“磁场定向控制”(FOC),是指采用SPWM或SVPWM的调制方式,在旋转的d - qd−q坐标系上进行相关变量的单独控制, SVPWM并不指代磁场定向控制;

(2)开关定义:

         以典型三相半桥功率回路为例,如下图所示。当开关1导通,开关2关断时,电机A相端子电压为电源电压,把这种状态记作1。当开关1关断,开关2导通时,电机A相端子电压为电源地,把这种状态记作0。在采用互补PWM并加入死区控制的情况下,电机A相端子的状态要么为1,要么为0。依此类推,电机端子A、B、C共有2^3 =8种状态。不过,高边开关全部导通、低边开关全部关断时,电机中没有电流通过;高边开关全部关断、低边开关全部导通时,电机中也没有电流通过。因此,只有6种状态是有电流的,这6种状态也被称为“有效矢量”;

(3)矢量表

空间矢量 开关状态【A B C】
V4 【100】
V6 【110】
V2 【010】
V3 【011】
V1 【001】
V5 【101】
V0 【000】
V7 【111】

(4)扇区图

5、SVPWM计算(方法一)

        (1)扇区计算

\left | V\alpha \right | \geqslant \left | \frac{V\beta }{\sqrt{3}} \right | V\alpha \geq 0 V\beta \geqslant 0 Sector=1
\left | V\alpha \right | \leqslant \left | \frac{V\beta }{\sqrt{3}} \right | V\beta \geqslant 0 Sector=2
\left | V\alpha \right | \geqslant \left | \frac{V\beta }{\sqrt{3}} \right | V\alpha \leq 0 V\beta \geqslant 0 Sector=3
\left | V\alpha \right | \geqslant \left | \frac{V\beta }{\sqrt{3}} \right | V\alpha \leq 0 V\beta \leq 0 Sector=4
\left | V\alpha \right | \leqslant \left | \frac{V\beta }{\sqrt{3}} \right | V\beta \leq 0 Sector=5
\left | V\alpha \right | \geqslant \left | \frac{V\beta }{\sqrt{3}} \right | V\alpha \geq 0 V\beta \leq 0 Sector=6

        (2)X Y Z 计算

                K = \frac{Ts}{V_{Bus}}

                X = \sqrt{3} V_{\beta} * K

                Y = (\frac{\sqrt{3}}{2}V_{\beta }+\frac{3}{2}V_{\alpha })*K

                Z = (\frac{\sqrt{3}}{2}V_{\beta }-\frac{3}{2}V_{\alpha })*K

        (3)T1 T2 计算

扇区 1 2 3 4 5 6
T1 -Z Y         X Z -Y -X
T2 X Z -Y -X -Z Y

        (4)Ta Tb Tc 计算

                Ta = (T - T1 - T2) / 4

                Tb = Ta  + T1/2

                Tc = Tb + T2/2

        (5)各个扇区的CMP

扇区 1 2 3 4 5 6
CMP1 Tc Tb Ta Ta Tb Tc
CMP2 Tb Tc Tc Tb Ta Ta
CMP3 Ta Ta Tb Tc Tc Tb

6、SVPWM计算(方法二)

        (1)扇区计算

V\beta >0 A=1 else A=0
\sqrt{3}V\alpha - V\beta > 0 B=2 else B=0
-\sqrt{3}V\alpha - V\beta > 0 C=4 else C=0
Sector = A + B + C

        (2)X Y Z 计算

                K = \frac{Ts}{V_{Bus}}

                X = \sqrt{3} V_{\beta} * K

                Y = (\frac{\sqrt{3}}{2}V_{\beta }+\frac{3}{2}V_{\alpha })*K

                Z = (\frac{\sqrt{3}}{2}V_{\beta }-\frac{3}{2}V_{\alpha })*K

        (3)T1 T2 计算

扇区 1 2 3 4 5 6
T1 Z Y         -Z -X X -Y
T2 Y -X X Z -Y -Z

        (4)Ta Tb Tc 计算

                Ta = (T - T1 - T2) / 4

                Tb = Ta  + T1/2

                Tc = Tb + T2/2

        (5)各个扇区的CMP

扇区 1 2 3 4 5 6
CMP1 Tb Ta Ta Tc Tc Tb
CMP2 Ta Tc Tb Tb Ta Tc
CMP3 Tc Tb Tc Ta Tb Ta

    

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐