1. 通用计算公式 (General Formula)
对于任意开关状态组合 SaSbScS_a S_b S_cSaSbSc(其中 Sx∈{P,O,N}S_x \in \{P, O, N\}Sx∈{P,O,N}),其对应的空间矢量 V⃗\vec{V}V 通用计算公式为:
V⃗=23(Va⋅ej0+Vb⋅ej2π3+Vc⋅ej4π3) \vec{V} = \frac{2}{3} \left( V_a \cdot e^{j0} + V_b \cdot e^{j\frac{2\pi}{3}} + V_c \cdot e^{j\frac{4\pi}{3}} \right) V =32(Va⋅ej0+Vb⋅ej32π+Vc⋅ej34π)
其中相电压 VxV_xVx 与开关状态的映射关系为:
- P (Positive) : Vx=+Udc2V_x = +\frac{U_{dc}}{2}Vx=+2Udc
- O (Zero) : Vx=0V_x = 0Vx=0
- N (Negative) : Vx=−Udc2V_x = -\frac{U_{dc}}{2}Vx=−2Udc
代入后可简化为系数形式:
V⃗=Udc3(ka⋅ej0+kb⋅ej2π3+kc⋅ej4π3) \vec{V} = \frac{U_{dc}}{3} \left( k_a \cdot e^{j0} + k_b \cdot e^{j\frac{2\pi}{3}} + k_c \cdot e^{j\frac{4\pi}{3}} \right) V =3Udc(ka⋅ej0+kb⋅ej32π+kc⋅ej34π)
(其中 kx∈{1,0,−1}k_x \in \{1, 0, -1\}kx∈{1,0,−1} 对应 {P,O,N}\{P, O, N\}{P,O,N})
2. 完整分类对照表 (序号 | 名称 | 矢量表达式 | 开关状态)
| 序号 | 名称 (分类) | 矢量表达式 (极坐标) | 矢量表达式 (代数形式) | 对应开关状态 (冗余状态) |
|---|---|---|---|---|
| 0 | 零矢量 | 000 | 000 | PPP, OOO, NNN |
| 1 | 小矢量 | Udc3ej0\frac{U_{dc}}{3} e^{j0}3Udcej0 | Udc3\frac{U_{dc}}{3}3Udc | POO, ONN |
| 2 | 小矢量 | Udc3ejπ3\frac{U_{dc}}{3} e^{j\frac{\pi}{3}}3Udcej3π | Udc3(12+j32)\frac{U_{dc}}{3}(\frac{1}{2} + j\frac{\sqrt{3}}{2})3Udc(21+j23 ) | PPO, OON |
| 3 | 小矢量 | Udc3ej2π3\frac{U_{dc}}{3} e^{j\frac{2\pi}{3}}3Udcej32π | Udc3(−12+j32)\frac{U_{dc}}{3}(-\frac{1}{2} + j\frac{\sqrt{3}}{2})3Udc(−21+j23 ) | OPO, NON |
| 4 | 小矢量 | Udc3ejπ\frac{U_{dc}}{3} e^{j\pi}3Udcejπ | −Udc3-\frac{U_{dc}}{3}−3Udc | OPP, NOO |
| 5 | 小矢量 | Udc3ej4π3\frac{U_{dc}}{3} e^{j\frac{4\pi}{3}}3Udcej34π | Udc3(−12−j32)\frac{U_{dc}}{3}(-\frac{1}{2} - j\frac{\sqrt{3}}{2})3Udc(−21−j23 ) | OOP, NNO |
| 6 | 小矢量 | Udc3ej5π3\frac{U_{dc}}{3} e^{j\frac{5\pi}{3}}3Udcej35π | Udc3(12−j32)\frac{U_{dc}}{3}(\frac{1}{2} - j\frac{\sqrt{3}}{2})3Udc(21−j23 ) | POP, ONO |
| 7 | 中矢量 | Udc3ejπ6\frac{U_{dc}}{\sqrt{3}} e^{j\frac{\pi}{6}}3 Udcej6π | Udc3(32+j12)\frac{U_{dc}}{\sqrt{3}}(\frac{\sqrt{3}}{2} + j\frac{1}{2})3 Udc(23 +j21) | PON |
| 8 | 中矢量 | Udc3ejπ2\frac{U_{dc}}{\sqrt{3}} e^{j\frac{\pi}{2}}3 Udcej2π | jUdc3j\frac{U_{dc}}{\sqrt{3}}j3 Udc | OPN |
| 9 | 中矢量 | Udc3ej5π6\frac{U_{dc}}{\sqrt{3}} e^{j\frac{5\pi}{6}}3 Udcej65π | Udc3(−32+j12)\frac{U_{dc}}{\sqrt{3}}(-\frac{\sqrt{3}}{2} + j\frac{1}{2})3 Udc(−23 +j21) | NPO |
| 10 | 中矢量 | Udc3ej7π6\frac{U_{dc}}{\sqrt{3}} e^{j\frac{7\pi}{6}}3 Udcej67π | Udc3(−32−j12)\frac{U_{dc}}{\sqrt{3}}(-\frac{\sqrt{3}}{2} - j\frac{1}{2})3 Udc(−23 −j21) | NOP |
| 11 | 中矢量 | Udc3ej3π2\frac{U_{dc}}{\sqrt{3}} e^{j\frac{3\pi}{2}}3 Udcej23π | −jUdc3-j\frac{U_{dc}}{\sqrt{3}}−j3 Udc | ONP |
| 12 | 中矢量 | Udc3ej11π6\frac{U_{dc}}{\sqrt{3}} e^{j\frac{11\pi}{6}}3 Udcej611π | Udc3(32−j12)\frac{U_{dc}}{\sqrt{3}}(\frac{\sqrt{3}}{2} - j\frac{1}{2})3 Udc(23 −j21) | PNO |
| 13 | 大矢量 | 2Udc3ej0\frac{2U_{dc}}{3} e^{j0}32Udcej0 | 2Udc3\frac{2U_{dc}}{3}32Udc | PNN |
| 14 | 大矢量 | 2Udc3ejπ3\frac{2U_{dc}}{3} e^{j\frac{\pi}{3}}32Udcej3π | 2Udc3(12+j32)\frac{2U_{dc}}{3}(\frac{1}{2} + j\frac{\sqrt{3}}{2})32Udc(21+j23 ) | PPN |
| 15 | 大矢量 | 2Udc3ej2π3\frac{2U_{dc}}{3} e^{j\frac{2\pi}{3}}32Udcej32π | 2Udc3(−12+j32)\frac{2U_{dc}}{3}(-\frac{1}{2} + j\frac{\sqrt{3}}{2})32Udc(−21+j23 ) | NPN |
| 16 | 大矢量 | 2Udc3ejπ\frac{2U_{dc}}{3} e^{j\pi}32Udcejπ | −2Udc3-\frac{2U_{dc}}{3}−32Udc | NPP |
| 17 | 大矢量 | 2Udc3ej4π3\frac{2U_{dc}}{3} e^{j\frac{4\pi}{3}}32Udcej34π | 2Udc3(−12−j32)\frac{2U_{dc}}{3}(-\frac{1}{2} - j\frac{\sqrt{3}}{2})32Udc(−21−j23 ) | NNP |
| 18 | 大矢量 | 2Udc3ej5π3\frac{2U_{dc}}{3} e^{j\frac{5\pi}{3}}32Udcej35π | 2Udc3(12−j32)\frac{2U_{dc}}{3}(\frac{1}{2} - j\frac{\sqrt{3}}{2})32Udc(21−j23 ) | PNP |
3. 关键数据总结
- 总状态数 : 33=273^3 = 2733=27 种开关组合。
- 唯一矢量数 : 19 个 (1个零矢量 + 6个小矢量 + 6个中矢量 + 6个大矢量)。
- 注:小矢量有冗余(每个矢量对应2种开关状态),零矢量有3种状态,中矢量和大矢量无冗余(各对应1种状态)。
- 幅值规律 :
- 小矢量 (Small) : ∣V⃗∣=13Udc≈0.333Udc|\vec{V}| = \frac{1}{3} U_{dc} \approx 0.333 U_{dc}∣V ∣=31Udc≈0.333Udc
- 中矢量 (Medium) : ∣V⃗∣=13Udc≈0.577Udc|\vec{V}| = \frac{1}{\sqrt{3}} U_{dc} \approx 0.577 U_{dc}∣V ∣=3 1Udc≈0.577Udc
- 大矢量 (Large) : ∣V⃗∣=23Udc≈0.667Udc|\vec{V}| = \frac{2}{3} U_{dc} \approx 0.667 U_{dc}∣V ∣=32Udc≈0.667Udc
- 角度分布 :
- 小矢量与大矢量角度重合 (0∘,60∘,...0^\circ, 60^\circ, \dots0∘,60∘,...)。
- 中矢量位于两者中间 (30∘,90∘,...30^\circ, 90^\circ, \dots30∘,90∘,...)。
这个表格可以直接用于编写空间矢量调制(SVM)算法的代码查找表或进行理论推导在这里插入代码片。
MATLAB实现见下
matlab
% 清除环境
clc; clear; close all;
%% 1. 参数定义
Udc = 1; % 归一化直流母线电压 (设为1方便观察比例)
% 开关状态映射: P=1, O=0, N=-1 (对应电压 +Udc/2, 0, -Udc/2)
% 注意:公式系数会自动处理 Udc/2 到 Udc/3 的转换
states = {'P', 'O', 'N'};
values = [1, 0, -1];
%% 2. 生成所有 27 种组合并计算矢量
sv_list = struct();
idx = 0;
fprintf('=================================================================================\n');
fprintf('序号 | 名称 | 幅值 (归一化) | 角度 (度) | 矢量表达式 (极坐标) | 开关状态\n');
fprintf('---------------------------------------------------------------------------------\n');
for ia = 1:3
for ib = 1:3
for ic = 1:3
idx = idx + 1;
% 获取当前开关状态的数值 (k_a, k_b, k_c)
ka = values(ia);
kb = values(ib);
kc = values(ic);
% 获取开关状态字符 (e.g., 'P', 'O', 'N')
sa = states{ia};
sb = states{ib};
sc = states{ic};
switch_str = [sa, sb, sc];
% --- 核心计算公式 ---
% V = (2/3) * (Va + Vb*e^(j2pi/3) + Vc*e^(j4pi/3))
% 其中 Vx = kx * (Udc/2)
% 代入后: V = (Udc/3) * (ka + kb*e^(j2pi/3) + kc*e^(j4pi/3))
alpha = 0;
beta = 2*pi/3;
gamma = 4*pi/3;
V_complex = (Udc/3) * (ka * exp(1j*alpha) + ...
kb * exp(1j*beta) + ...
kc * exp(1j*gamma));
mag = abs(V_complex);
ang = angle(V_complex); % 弧度
ang_deg = rad2deg(ang);
if ang_deg < 0, ang_deg = ang_deg + 360; end
% --- 分类逻辑 (基于幅值容差) ---
tol = 1e-6;
if mag < tol
type_name = '零矢量';
type_id = 0;
elseif abs(mag - Udc/3) < 0.01
type_name = '小矢量';
type_id = 1;
elseif abs(mag - Udc/sqrt(3)) < 0.01
type_name = '中矢量';
type_id = 2;
elseif abs(mag - 2*Udc/3) < 0.01
type_name = '大矢量';
type_id = 3;
else
type_name = '未知';
type_id = -1;
end
% 存储数据
sv_list(idx).id = idx;
sv_list(idx).name = type_name;
sv_list(idx).mag = mag;
sv_list(idx).ang_deg = ang_deg;
sv_list(idx).V = V_complex;
sv_list(idx).switch = switch_str;
% 格式化输出到命令行
% 构造极坐标字符串
if mag < tol
polar_str = '0';
else
polar_str = sprintf('%.3f Udc ∠%d°', mag/Udc, round(ang_deg));
end
fprintf('%4d | %-6s | %10.4f | %8.1f | %-24s | %s\n', ...
idx, type_name, mag/Udc, ang_deg, polar_str, switch_str);
end
end
end
fprintf('=================================================================================\n');