FOC

Tony

FOC(Field-Oriented Control)简单来说其实是通过对电机所反馈的电流、位置、速度加上PID算法,实现的精准控制。因此对于机械臂等对于电机的控制的精准度要求十分高的领域中非常常见。

下面是有感FOC控制控制BLDC(无刷直流电机)的流程图

FOC 流程图
FOC 流程图

1. 电机驱动

这里不赘述BLDC如何驱动,有兴趣可以去看这边有关直流无刷电机的文章

1.1 SVPWM

从流程图我们可以看出SVPWM 是通过输入的两个电压来生成控制三相逆变电路的三相电压PWM波

2. 变换

比起其他部分,与矢量空间有关的各种部分才是FOC 控制的精髓所在,除了外加的磁编码器侦测位置的变化,我们可以通过对输出的电流的反馈来完成另一层的闭环控制。因为我们通过三相逆变电路的采样取得的电流是三个不同的电流值,他们的相位差为,所以当我们以坐标系的形式表达三相电流,他们会是有三个坐标轴相差的坐标系组成

三轴坐标
三轴坐标

虽然这很清晰地表达了三相电流的变化,但是这对于我们控制直流无刷电机所使用的直流电相距甚远,也就是说这些数字对于我们控制电机过于繁杂,因此我们要简化这三道正弦波,而Clark变换则是第一步

2.1 Clark 变换

Clark 变换就是将三个坐标轴组成的二维坐标系,转换为我们比较熟悉的两个相垂直的坐标轴组成的坐标系,也就是线性代数中的 orthogonal basis,变换公式如下

矩阵方程为

Clark 变换后
Clark 变换后

2.2 Park 变换

经过了Clark 变换后,我们得到了新的坐标系和新的电流图,但问题是图中的依然正弦波。正如之前说的,让我们控制正弦波是一件极为麻烦的事,Park变换就是再一次简化这个正弦波,让其变成线性的方程的一次变换。

由于正弦波是因为角度的变化,那么只要我们在变换中,让坐标系随角度一起改变,正弦波就可以被变成一个恒定是值

以下是经Clark 变换后的正弦波的样子

Clark 变换后
Clark 变换后

变换公式如下

矩阵公式为,


以下是经过Park 变换后的电流形式

Park 变换后
Park 变换后

2.3 Reverse Park 变换

参考