SVPWM算法原理及详解及永磁同步电机坐标变换(二)

目录

一、SVPWM 8种开关状态

二、六个扇区和扇区判断        

 三、扇区发波

 四、矢量作用时间计算

五、 矢量切换时间的计算


一、SVPWM 8种开关状态

        最常见的两电平拓扑如下图:

        共有3个桥臂,每个桥臂只能一个晶闸管通,另一个断开,我们将桥臂上面晶闸管导通,下面关断记为S = 1;下面晶闸管导通,上面关断记为S=0。因此共有2^{3}=8种开关状态:

000---001---010---011---100---101---110---111

        其中第一个数字代表a桥臂开关状态,依此类推。

        例如:若a桥臂S=1,b和c桥臂S=0,则我们可以将拓扑结构简化成下面的图:

        其中U_{ao}=\frac{2}{3}U_{dc},U_{bo}=U_{co}=-\frac{1}{3}U_{dc}

        于是,我们将这八种情况的各相电压总结在下列的表中:

SaSbScU_{ao}U_{bo}U_{co}U_{k}
000000V0
001-\frac{1}{3}U_{dc}-\frac{1}{3}U_{dc}\frac{2}{3}U_{dc}V1
010-\frac{1}{3}U_{dc}\frac{2}{3}U_{dc}-\frac{1}{3}U_{dc}V2
011-\frac{2}{3}U_{dc}\frac{1}{3}U_{dc}\frac{1}{3}U_{dc}V3
100\frac{2}{3}U_{dc}-\frac{1}{3}U_{dc}-\frac{1}{3}U_{dc}V4
101\frac{1}{3}U_{dc}-\frac{2}{3}U_{dc}\frac{1}{3}U_{dc}V5
110\frac{1}{3}U_{dc}\frac{1}{3}U_{dc}-\frac{2}{3}U_{dc}V6
111000V7

         我们将三相电压写成幅值加相角的形式,令a的相电压相角为0,则b相为120°,c相为240°。并求解他们的矢量和:

二、六个扇区和扇区判断        

        于是,我们画出上面8种开关状态三相构成矢量和V0,V1,V2,V3,V5,V6,V7,并划分出了六个扇区。

          

         接下来,考虑到我们有一个圆形旋转参考电压U_{ref},我们需要利用扇区两侧的矢量来合成跟踪参考电压的实际电压。于是,我们就需要判断当前时刻U_{ref}落在哪一个扇区内。

        在SVPWM算法原理及详解及永磁同步电机坐标变换(一)中,我们已经详细的讲述了Clarke变换,也就是 由三相静止坐标系abc到两相静止坐标系αβ的变换,我们将已经合成的参考电压U_{ref}沿着α轴和β轴进行分解。

        并观察每个扇区内U_{\beta },U_{\alpha }值的特征,总结如下表:

         根据以上总结,我们发现可以用一下三个式子来判断扇区:

         

 三、扇区发波

七段式SVPWM矢量如何从起点到达终点?

以第一扇区为例:可以选择红色曲线的顺序发波,也可以选择蓝色曲线。

红色曲线:先沿V4方向走再沿V6方向走,最后再往V4方向走

蓝色曲线:先沿V6方向走再沿V4方向走,最后再往V6方向走

唯一的区别是零矢量的插入方式不同

        红色路径是4-6-4,因为还是为了每次只切换一个桥臂的开关,零矢量的插入方式是0-4-6-7-6-4-0(7段式),或者是4-6-7-6-4(五段式);而蓝色路径零矢量的插入方式是7-6-4-0-4-6-7(7段式),或者是6-4-0-4-6(五段式)。

把其他扇区都加进来,就得到下图:

        如果考虑软件的计算方便,每次发波都先发000矢量,中间插入111矢量,那么就要按照图中红色曲线发波,如下图。


        这样第一扇区要先发U4,矢量走到第二扇区后,不能先发U6,要先发距离000更近的矢量U2,到第三扇区后,还是先发U2。总之,1(001),2(010),4(100)距离零矢量(000)更近,要作为每个扇区的首发。

        也可以选择3(011),5(101),6(110)作为首发,那么在7段式的中间需要插入的就是000矢量。

 其他发波形式可以看:SVPWM分析、各个扇区详细计算以及Matlab仿真_michaelf的博客-优快云博客_svpwm扇区判断

 四、矢量作用时间计算

        以下仅介绍第一扇区的计算方式,其他扇区计算方式相同:

 

 

五、 矢量切换时间的计算

 

 未完待续

 

 

 

 

 

### SVPWM矢量作用时间计算方法 SVPWM(Space Vector Pulse Width Modulation,空间矢量脉宽调制)的核心在于如何合理分配基本电压矢量的作用时间,从而合成目标电压矢量。以下是关于SVPWM矢量作用时间计算的具体内容: #### 基本概念 在三相三电平逆变器中,SVPWM通过组合不同的开关状态来形成多个基本电压矢量[^1]。这些基本电压矢量分为有效矢量、零矢量以及辅助矢量。为了实现对电机的有效控制,需要根据目标电压矢量的位置和幅值,计算各个基本电压矢量的作用时间。 #### 矢量作用时间计算过程 假设目标电压矢量 \( U_{ref} \) 的位置已知,则可以通过几何关系分解到两个相邻的有效矢量 \( V_1 \) 和 \( V_2 \),并结合零矢量 \( V_0 \) 来完成合成。具体计算如下: 1. **确定扇区** 首先判断目标电压矢量 \( U_{ref} \) 所处的扇区。通常将整个平面划分为六个扇区,每个扇区内有两个主要的有效矢量参与合成[^2]。 2. **分解目标矢量** 将目标矢量 \( U_{ref} \) 分解为两个有效矢量 \( V_1 \) 和 \( V_2 \) 的线性组合: \[ T_s = t_1 + t_2 + t_0 \] 其中 \( T_s \) 是采样周期,\( t_1, t_2 \) 表示两个有效矢量的作用时间,而 \( t_0 \) 则是零矢量的时间。 3. **求解作用时间** 根据几何关系可得: \[ t_1 = \frac{U_x}{V_d}, \quad t_2 = \frac{U_y}{V_d} \] 这里 \( U_x, U_y \) 是目标矢量投影到两邻边上的分量,\( V_d \) 是直流母线电压[^1]。 4. **调整零矢量时间** 如果总作用时间超过采样周期 \( T_s \),则需适当减少 \( t_1, t_2 \),并将多余部分分配给零矢量 \( t_0 \)[^2]。 #### 应用实例 以下是一个简单的 Python 实现代码用于计算矢量作用时间: ```python def calculate_SVPWM_times(U_ref_magnitude, theta, Vd, Ts): """ 参数: U_ref_magnitude: 目标电压矢量大小 theta: 目标电压矢量角度 (弧度) Vd: 直流母线电压 Ts: 采样周期 返回: t1, t2, t0: 各个矢量的作用时间 """ import math # 计算目标矢量的坐标 Ux = U_ref_magnitude * math.cos(theta) Uy = U_ref_magnitude * math.sin(theta) # 计算各矢量作用时间 t1 = abs(Ux / Vd) t2 = abs(Uy / Vd) t_total = t1 + t2 # 调整零矢量时间 if t_total > Ts: delta_t = t_total - Ts t1 -= delta_t / 2 t2 -= delta_t / 2 t0 = 0 else: t0 = Ts - t_total return max(t1, 0), max(t2, 0), max(t0, 0) # 示例参数 U_ref_magnitude = 150 # 单位:伏特 theta = math.pi / 6 # 单位:弧度 Vd = 200 # 单位:伏特 Ts = 1e-4 # 单位:秒 t1, t2, t0 = calculate_SVPWM_times(U_ref_magnitude, theta, Vd, Ts) print(f"t1={t1:.6f}s, t2={t2:.6f}s, t0={t0:.6f}s") ``` 此代码实现了基于输入的目标电压矢量大小和方向,自动计算三个矢量的作用时间,并确保其满足采样周期约束。 ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值