FOC就是一种控制无刷电机的算法。可以精确地控制磁场的大小与方向。称为磁场矢量控制。
FOC实现的核心:
1.Clark变换原理
把采集到的三相电流ia,ib,ic转为两相ialpha,ibeta。如下公式:
2.park变换
3.PI 控制
4.反Park变换。
5.SVPWM
而正弦波正是FOC驱动无刷电机的手段。正弦波怎么产生。从而引出SVPWM。
这部分比较复杂,详细可参考https://blog.youkuaiyun.com/qq_41328470/article/details/127157958
6.Simulink仿真
7.代码示例
```python
import numpy as np
import matplotlib.pyplot as plt
class FOCController:
def __init__(self, kp_d, ki_d, kp_q, ki_q, max_pwm=255):
# PI 控制器参数
self.kp_d = kp_d
self.ki_d = ki_d
self.kp_q = kp_q
self.ki_q = ki_q
self.max_pwm = max_pwm
self.integral_d = 0
self.integral_q = 0
def clarke_transform(self, ia, ib):
i_alpha = ia
i_beta = (ia + 2 * ib) / np.sqrt(3)
return i_alpha, i_beta
def park_transform(self, i_alpha, i_beta, theta):
i_d = i_alpha * np.cos(theta) + i_beta * np.sin(theta)
i_q = -i_alpha * np.sin(theta) + i_beta * np.cos(theta)
return i_d, i_q
def inverse_park_transform(self, v_d, v_q, theta):
v_alpha = v_d * np.cos(theta) - v_q * np.sin(theta)
v_beta = v_d * np.sin