SVPWM(Space Vector Pulse Width Modulation),即空间矢量脉宽调制。SVPWM的理论基础是平均值等效原理,即在一个开关周期Ts内,对基本矢量电压加以组合,使其平均值与给定电压矢量相等。通过控制基本矢量电压的作用时间,使合成的目标矢量电压在空间位置按照接近圆形轨迹旋转,所产生的实际磁通去逼近一个理想的磁通圆。模型如下图所示,采样点数越多,就越逼近理想磁通圆,理论上采样点数无穷多时就是理想磁通圆了。
左图:基本电压矢量图; 右图:实际磁通圆轨迹示意图
加在三相绕组线圈上的端电压都为正弦电压,设峰值为Um,两两相位差120°,记为:
注意:这里的电压是标量,只是电压幅值按正弦变化。
在二维平面上,三相绕组ABC构成的坐标系,两两坐标轴相差120°,则三相基本电压用矢量表示为:
用欧拉公式
展开上式,并计算其矢量和
下面是展开计算的过程:
在计算过程中用到了三角函数的展开公式:
原理总结:
通过在 空间位置上两两相差120° 的三个基本电压来合成目标电压。三个基本电压的方向不变,幅值按正弦规律变化, 相位两两相差120° ;合成的目标矢量电压其幅值固定不变,为相电压峰值的1.5倍,方向在空间旋转,旋转的角速度等于相电压幅值变化的角速度。
02. SVPWM实现方法
2.1 基本矢量电压:
如下图所示,逆变器的三相桥臂共有6个开关管(Q1,Q2,Q3,Q4,Q5,Q6),对于每一个半桥,同一时刻只能有一个开关管导通,即控制信号G1和G2反相,G3和G4反相,G5和G6反相,如果同一个半桥的上下桥臂同时导通则会导致电源Udc短路。逆变器三个半桥的输出分别加到电机的ABC三相绕上,三相绕组在空间位置上两两相差120°。
定义开关函数
如S(A)=1表示Q1导通Q2截止,母线电压Udc加到A相绕组;
再比如S(B)=1表示Q3截止Q4导通,B相绕组连接到电源负极,即GND。
ABC三个开关函数的状态(S(A),S(B),S(C))共有8种组合,分别是{(0,0,0),(0,0,1),(0,1,0),(0,1,1),(1,0,0),(1,0,1),(1,1,0),(1,1,1),},分别对应8个矢量电压,其中2个零矢量电压是和,6个非零矢量电压分别是,它们在空间位置上相邻间隔60°,将平面等分为6个扇区。
以三相绕组的公共端N点作为参考零电位,各基本矢量电压的方向如上图所示,在三相坐标系下,这6个非零基本矢量电压的幅值为Udc,具体如下表所示。
容易想到,通过控制开关管的状态,可以合成6个方向中任意一个方向的矢量电压;通过控制该状态下开关管的PWM占空比,可以改变该方向的矢量电压的幅值的有效值(占空比从0到100%对应矢量电压有效值从0到Udc)。比如要合成一个方向和U4相同,幅值为Udc/2的矢量电压,只需要控制G1的占空比为50%,G3,G5的占空比为0%即可;再比如要合成一个方向和U6相同,幅值为3Udc/4的矢量电压,只需要控制G1,G3的占空比为75%,G5的占空比为0%即可。
在三相坐标系下,6个基本矢量电压的幅值都为Udc,转换到αβ两相坐标系下,基本矢量电压的幅值为2*Udc/3(为什么是2/3倍这个问题困扰了我好久才弄清楚了,下面简单说明一下)。
以基本矢量电压U1为例,U1(001)在abc三相坐标系下的幅值为Udc,他由合成。经过clarke变换,得到在αβ两相坐标系下的电压,合成在两相坐标系下的基本矢量电压U1的幅值为,方向不变。因为我们判断扇区和PID计算的输出目标矢量电压都是在两相坐标系下进行的,故计算SVPWM也在两相坐标系下进行。
下面的介绍都是在两相坐标系下的,注意!
经过上面的步骤,已经能合成6个方向,幅值为的基本矢量电压了。接下来我们用这6个基本的矢量电压,合成一个任意方向0-360°,任意幅值0~Umax的矢量电压,即我们最终的目标矢量电压,下面计算Umax的值。
容易知道,通过这6个基本矢量电压,能够合成的最大旋转圆形目标电压,其幅值为正六边形的内切圆的半径,即。
回顾一下数学知识:在一个平面内,两个不共线的非零向量可以作为一个基底,两个基底的线性组合可以合成该平面内任意方向和任意大小的第三个向量。(不懂没关系,看下面就够了)
容易想到,任意一个目标电压矢量,可以由该矢量所在扇区的相邻两个基本矢量电压合成。比如扇区I的任意矢量电压Us都可以由相邻的U4和U6两个基本矢量电压合成。
这里的Us就是坐标变换里的Uq和Ud的矢量和,(PS:在电机控制应用中,Uq由q轴电流环PI控制器计算输出得到,同时d轴电流环还会计算输出得到一个Ud,Ud滞后Uq90°)
然后回到坐标变换去了,另一篇文章有详细讲解[另一篇文章的链接],这里只简单说明结果。
先是park逆变换,由期望输出的Uq,Ud和当前的空间位置即角度θ[在电机控制里面这里是指电角度,并不是旋转平面的角度(后面讲电角度、电机极对数和旋转角度的关系)],通过park逆变换计算Uα,Uβ。
得到Uα,Uβ后,接着就是判断所在扇区
2.2 扇区判断:
目标矢量电压Uref就是PI控制器计算的输出Uq,Ud的矢量和,经过Park逆变换得到Uα和Uβ,空间矢量调制的第一步,就是由Uα和Uβ判断目标空间矢量电压所处的扇区。
由以上矢量图几何关系分析可以得到,所在扇区和需要满足的充分必要条件列表:
可以看出,决定扇区的基本变量有:
其中线性无关的只有三个(也可以取其他三个线性无关的):
则(A,B,C)有8种状态000,001,…………… ,111
其中(A,B,C)=(000)和(111)并不存在,另外6个状态对应6个扇区,下面做简单分析。
(A,B,C) =000时:
即U1<0,U2<0,U3<0,
即Uβ<0,由式2式3叠加得-Uβ<0,Uβ>0,和 式1冲突,故该状态不存在。
(A,B,C)=001时:
即U1<0,U2<0,U3>0,
即Uβ<0,故电角度θ满足:180在Uβ<0的条件下,对Uα>0(270360)和Uα<0(180270)时分情况讨论,并结合式2式3,即:
(A,B,C)=010时:
即U1<0,U2>0,U3<0,
即Uβ<0,故电角度θ满足:180在Uβ<0的条件下,对Uα>0(270360)和Uα<0(180270)时分情况讨论,并结合式2式3,即:
(A,B,C)=011时:
即U1<0,U2>0,U3>0,
即Uβ<0,故电角度θ满足:180在Uβ<0的条件下,对Uα>0(270360)和Uα<0(180270)时分情况讨论,并结合式2式3,即:
(A,B,C)=100时:
即U1>0,U2<0,U3<0,
即Uβ>0,故电角度θ满足:0在Uβ>0的条件下,对Uα>0(090)和Uα<0(90180)时分情况讨论,并结合式2式3,即:
(A,B,C)=101时:
即U1>0,U2<0,U3>0,
即Uβ>0,故电角度θ满足:0在Uβ>0的条件下,对Uα>0(090)和Uα<0(90180)时分情况讨论,并结合式2式3,即:
(A,B,C)=110时:
即U1>0,U2>0,U3<0,
即Uβ>0,故电角度θ满足:0在Uβ>0的条件下,对Uα>0(090)和Uα<0(90180)时分情况讨论,并结合式2式3,即:
(A,B,C) =111时:
即U1>0,U2>0,U3>0,
即Uβ>0,由式2式3叠加得-Uβ>0,Uβ<0,和 式1冲突,故该状态不存在。
综上,可以列出(A,B,C)的值和所对应的扇区关系如下表;
(A,B,C) | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
---|---|---|---|---|---|---|---|---|
所在扇区 | 无 | 4 | 6 | 5 | 2 | 3 | 1 | 无 |
N=4C+2B+A | 0 | 4 | 2 | 6 | 1 | 5 | 3 | 7 |
N=4A+2B+C | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
然后在程序里里面查表,根据计算的N查找对应的扇区。