一、参考资料
- 【自制FOC驱动器】深入浅出讲解FOC算法与SVPWM技术 - 知乎
- FOC入门教程_zheng是在下的博客-CSDN博客
- DengFOC官方文档
- 技术干货 |【自制】FOC驱动板
二、FOC控制算法流程框图
- 在FOC控制中主要用到三个PID环,从内到外依次是:电流环、速度环、位置环
- 通过电流反馈来控制电机电流(扭矩)→通过控制扭矩来控制电机的转速→通过控制电机的转速控制电机位置
2.1 PI电流环(内层)
2.2 电流环+速度环
- w:电机的转速,可以通过电机编码器或者霍尔传感器计算得到
2.3 位置环+速度环+电流环
- 编码器无法返回电机的转速w,可以通过计算一定时间内的编码值变化量来表示电机的转速(用平均速度代表瞬时速度)。
- 电机转速比较高时,这样的方法是可以的。但是在位置控制模式时,电机的转速会很慢(因为需要转子固定在某个位置),此时用平均测速法会存在非常大的误差(转子不动或动的很慢,编码器就没有输出或者只输出1、2个脉冲)。
- 所以为了避免速度环节带来的误差,在做位置控制时,可以只使用位置和电流组成的双环进行控制。此时位置环使用PID控制(位置的微分D就是速度),可以减小位置控制的震荡,加快收敛,积分项的作用是为了消除静态误差。
三、FOC控制算法重要公式
3.1 Clarke变换与反变换
- Clarke变换:将三相正弦电流Ia、Ib、Ic,转换成Iα、Iβ
- Clarke逆变换:用不到,采用了SVPWM进行了替代。
3.2 Park变换与反变换
- Park变换:将两相正弦电流Iα、Iβ,转换为两个常量Iq、Id
α--β坐标系:电机定子
q-d坐标系:电机转子
θ:转子当前的角度
Iq:当三相绕组产生的磁场方向与转子磁铁相切时,电流产生的旋转力矩最大。
Id:当三相绕组产生的磁场方向与转子磁场方向反向平行时,这时电机会被吸在原地不动,电流都用来产生热量。
- Iq=1,Id=0,转子逆时针旋转,且转速随着Iq的变大而变大。
- Iq=0,Id=1,转子定在原地,且发热量随着Id的变大而变大。
- Park逆变换:
3.3 扇区计算
在三相逆变电路中:
- 1:上桥臂导通
- 0:上桥臂关闭
3.3.1 矢量编码
为了便于分析:采用二进制的方式对电压矢量进行编码,例如二进制100,十进制为U4
- 3个半桥臂共可产生8种输出状态(2^3=8)
- U7(111):3个半桥的上桥臂全部导通,无电流输出
- U0(000):3个半桥的上桥臂全部关闭,无电流输出
序号 | A相桥臂 | B相桥臂 | C相桥臂 | 矢量编号 |
1 | 0 | 0 | 0 | U0 |
2 | 1 | 0 | 0 | U4 |
3 | 1 | 1 | 0 | U6 |
4 | 1 | 1 | 1 | U7 |
5 | 0 | 1 | 1 | U3 |
6 | 0 | 0 | 1 | U1 |
7 | 0 | 1 | 0 | U2 |
8 | 1 | 0 | 1 | U5 |