前言
前人FOC经验复盘帖。
一、FOC是什么?
FOC(Field-Oriented Control),直译是磁场定向控制,也被称作矢量控制(VC,Vector Control),是目前无刷直流电机(BLDC)和永磁同步电机(PMSM)高效控制的最优方法之一。FOC旨在通过精确地控制磁场大小与方向,使得电机的运动转矩平稳、噪声小、效率高,并且具有高速的动态响应。
FOC可以方便的利用位置环、速度环、电流环精确的控制位置、速度、扭矩。是伺服系统重要的组成部分。
二、电机基础知识
链接: 【电机控制】无刷电机入门资料
看不懂的朋友请自行补课,想想当年物理课是不是睡过去了~
三、关于SVPWM的补充(绝对精华)
前人讲过很多,前文链接中也多有讲解。本文针对SVPWM和七段式开关模式做一点补充。
个人觉得现在网上所谓的SVPWM的理论推导有些复杂,明明用三个电压矢量就够了偏偏要搞出来六个电压矢量,推导和理解都复杂了。
回到第一性原理,SVPWM要做的是什么?还原到三相交流电。怎么做?不就是反Clark变换么。
Va = Vα
Vb = (-Vα + Vβ*SQRT3)/2
Vc = (-Vα - Vβ*SQRT3)/2
从坐标系的角度,只要vref不是0矢量,则Va、Vb、Vc有且只有一项<0。前面链接里面讲的分六区处理主要解决的也是负向量无法转换为占空比输出。
为了解决负值问题,需要将值为负的那一相用另外两相表示。跳过证明过程
Va=-(Vb+Vc)
因此,可以通过上式将三相电压转换为2相非0电压和一相0电压。
从六区到三区。
以Va、Vb、Vc即T4(100)、T2(010)、T1(001),将相位分为3个扇区。类似的,每个向量均可以用相邻两相电压合成。其结果大家可以自行推导,不会的同学可以去看六区分解是如何推导的。
第一扇区(0~120°,Va Vb之间)
Va = Vα + Vβ/SQRT3
Vb = 2Vβ/SQRT3
Vc = 0
按六区的分解,将T6分解到Va和Vb也可以得到上述相同结果。
按反Clark变换验证一下,Vc<0,将各相都-Vc,得到
Va = 3/2*(Vα + Vβ/SQRT3)
Vb = 3/2*(2Vβ/SQRT3)
Vc = 0
Clark等幅值变换系数P=2/3。上面反Clark变换系数恰好是1/P=3/2。
但与上面按六区直接分解到两相有一点不一样了,差了一个系数。虽然系数不影响PI调节,但这里一直没完全想明白为什么会差个系数,按说两种方式应该得到相同的结果。
猜测:
1. 从复平面上看,每增加一相(升维),变换过程中幅值都会增加(此处没有证明过程),为保持幅值不变,升维过程中要乘缩放系数。
2. 由平面直角坐标向120°坐标变换时,没有升维,因此系数没有变化。
Va,Vb,Vc的幅值为2/3Udc,为避免超出调节幅度,对Vα,Vβ进行缩放限幅。
各相电压与Um一比,占空比就出来了。按中心对齐发波,biubiubiu,效果是不是一毛一样?代码估计省一半。
ps:
根据Va Vb Vc 的值可以分配T0和T7的时间,实现五段或七段的SVPWM控制。
从数学上看,将空闲时间平均分配给T0和T7和简化为两相发波结果没有区别。
那为什么要增加T7这个过程呢?多一路开关管工作,其上升下降时间也不是理想的,还增加谐波,还不利于电流采样。没想明白,请高手指教。
自己来回答上面的问题:
五段式相比七段式开关损耗是减少1/3,但容易造成上下桥臂应力不均衡,影响综合寿命。增加谐波的观点是基于减少了一路开关(减少dv/dt)的观点得出的。这个分析不全面,从系统角度应当考虑对合成线电压进行FFT分析,其结果是七段式谐波要更小,更优。具体分析参见下面的链接。
链接: 空间矢量PWM的分析
链接: 我理解的SVPWM
四、其他
母线电流估算及功率估算作用:通过软件对母线电流及控制器输出功率进行估算,可用估算值进行相关控制及保护功能设置。
母线电流估算原理:将三相相电流采样值的加权平均值作为直流母线电流预估值,相电流的权系数分别为各自的作用时间占比。
Idc = ta ia + tb ib + tc ic
式中ta, tb, tc为三相占空比,ia, ib, ic为三相电流值。
功率估算原理:
P=Ud id + Uq iq
式中𝑈d ,𝑈q 为与dq轴电流同时刻的dq轴电压。