SVPWM详解:空间矢量PWM原理、扇区划分、作用时间计算与三相电机控制

📅 发布时间:2026/7/13 13:00:15
SVPWM详解:空间矢量PWM原理、扇区划分、作用时间计算与三相电机控制 SVPWM详解空间矢量PWM原理、扇区划分、作用时间计算与三相电机控制一、前言在学习电机控制、FOC、三相逆变器、BLDC、PMSM 或伺服驱动时经常会遇到一个非常重要的概念SVPWMSVPWM 的全称是Space Vector Pulse Width Modulation中文一般叫空间矢量脉宽调制很多人刚接触 SVPWM 时会觉得它比较抽象为什么要把三相电压变成空间矢量 为什么要划分六个扇区 V1、V2、V0、V7 是什么 T1、T2、T0 又是什么意思 SVPWM 和普通 SPWM 有什么区别 为什么电机最终电流会接近正弦本文将从三相逆变器开始详细介绍 SVPWM 的基本概念、空间矢量、六个扇区、作用时间计算、PWM 波形生成、应用场景和调试注意事项。二、什么是 SVPWMSVPWM 是一种用于三相逆变器控制的 PWM 调制方法。它的核心目标是通过控制三相逆变桥六个功率开关的导通时间 在一个 PWM 周期内合成期望的电压矢量 从而驱动三相电机平稳运行。普通 PWM 通常关注的是某一路输出的占空比而 SVPWM 关注的是三相逆变器整体产生的空间电压矢量。可以简单理解为SPWM分别生成三相正弦PWM SVPWM从空间矢量角度整体合成三相电压SVPWM 常用于无刷直流电机 BLDC 永磁同步电机 PMSM FOC 矢量控制 伺服驱动器 变频器 电动汽车电机控制器 工业电机驱动系统图1 SVPWM 基础与工作原理SVPWM 不是简单输出三路正弦 PWM而是利用三相逆变器的不同开关状态在空间矢量平面内合成目标电压矢量。三、三相逆变器是 SVPWM 的硬件基础SVPWM 通常作用在三相逆变桥上。一个典型三相逆变器由六个功率开关组成A相上桥臂 A相下桥臂 B相上桥臂 B相下桥臂 C相上桥臂 C相下桥臂三相输出分别接到电机的 A、B、C 三相绕组。简化结构如下Vdc | 上桥臂开关 | A/B/C 相输出 | 下桥臂开关 | GND每一相通常有两个开关上管导通下管关闭 → 该相接近 Vdc 上管关闭下管导通 → 该相接近 GND注意同一相的上下桥臂不能同时导通 否则会造成直流母线短路也就是直通。因此实际控制中必须加入死区时间。四、三相逆变器的 8 种开关状态三相逆变器有三相每一相可以用 0 或 1 表示开关状态。一般可以定义1上桥臂导通下桥臂关断 0下桥臂导通上桥臂关断三相组合就是Sa Sb Sc因为每一相有 2 种状态三相总共有2^3 8 种开关状态它们分别是000 001 010 011 100 101 110 111其中000 和 111 是零矢量 其余 6 个是有效电压矢量零矢量的特点是三相都接到同一侧母线输出线电压为 0。有效矢量的特点是可以在空间矢量平面上形成 6 个方向不同的电压矢量。五、什么是空间矢量在三相电机控制中三相电压不是孤立存在的。三相电压可以通过 Clarke 变换转换到两相静止坐标系abc → αβ在 αβ 坐标系中三相电压可以等效成一个二维平面上的电压矢量。这个矢量可以表示为Vref其中幅值表示电压大小 角度表示电压方向电机控制的目标就是让这个电压矢量按照期望的角度和大小旋转从而驱动电机产生平稳转矩。六、六个有效矢量和两个零矢量三相逆变器的 8 种开关状态中有 6 个有效矢量。常见编号方式如下V1100 V2110 V3010 V4011 V5001 V6101两个零矢量是V0000 V7111注意不同资料中 V1、V2、V3 的编号可能略有不同 但核心思想都是一样的6 个有效矢量围成一个六边形。6 个有效矢量在 αβ 平面上相隔 60°构成一个正六边形。参考电压矢量Vref位于这个六边形内部时可以由相邻两个有效矢量和零矢量合成。七、为什么要划分六个扇区因为 6 个有效矢量把空间矢量平面分成了 6 个区域。每个区域叫一个扇区。扇区 I0° ~ 60° 扇区 II60° ~ 120° 扇区 III120° ~ 180° 扇区 IV180° ~ 240° 扇区 V240° ~ 300° 扇区 VI300° ~ 360°当参考矢量Vref位于某个扇区中时就可以用该扇区两边相邻的两个有效矢量来合成它。例如在扇区 I 中Vref 位于 V1 和 V2 之间那么一个 PWM 周期内可以使用V1 V2 V0 / V7这几个矢量按一定时间比例作用最终合成平均电压矢量Vref。图2 SVPWM 空间矢量与扇区划分SVPWM 的核心步骤之一是先确定参考电压矢量所在扇区然后选择该扇区相邻的两个有效矢量和零矢量进行合成。八、SVPWM 的核心思想SVPWM 的核心思想可以用一句话概括在一个 PWM 周期 Ts 内 通过相邻两个有效矢量和零矢量的作用时间 合成目标参考电压矢量 Vref。假设参考矢量在某个扇区中相邻两个有效矢量分别为Vi Vj则在一个 PWM 周期内Vi 作用 T1 时间 Vj 作用 T2 时间 零矢量作用 T0 时间满足Ts T1 T2 T0其中T1第一个有效矢量作用时间 T2第二个有效矢量作用时间 T0零矢量作用时间 TsPWM 周期只要合理分配 T1、T2、T0就可以让一个 PWM 周期内的平均电压等效为目标电压矢量。九、T1、T2、T0 怎么理解可以把 SVPWM 看成一种“时间加权平均”。例如在扇区 I 中参考矢量位于 V1 和 V2 之间。如果参考矢量更靠近 V1那么T1 时间更长 T2 时间更短如果参考矢量更靠近 V2那么T2 时间更长 T1 时间更短如果参考矢量幅值越大那么T1 T2 越大 T0 越小如果参考矢量幅值越小那么T1 T2 越小 T0 越大所以可以理解为T1 和 T2 决定目标矢量的方向和大小 T0 用于填满剩余 PWM 周期并改善波形对称性。十、作用时间的基本关系在一个 PWM 周期内必须满足Ts T1 T2 T0其中T1 0 T2 0 T0 0在线性调制区内T0 是大于等于 0 的。如果参考矢量过大导致T1 T2 Ts就进入过调制区。过调制会导致波形失真增加控制效果变差。因此实际工程中通常会对参考电压矢量幅值做限幅。十一、扇区 I 中的作用时间计算假设参考矢量位于扇区 I扇区内角度为 θ。也就是说0° θ 60°在常见归一化表示中作用时间可以写成类似形式T1 Ts × M × sin(60° - θ) T2 Ts × M × sin(θ) T0 Ts - T1 - T2其中M调制系数或归一化幅值 θ参考矢量在当前扇区内的角度需要注意不同芯片库、不同教材、不同归一化方式下 T1、T2 的公式系数可能不同 但本质都是将 Vref 分解到相邻两个有效矢量上。实际工程中很多 FOC 库会直接使用Vα、Vβ或Vd、Vq计算占空比。十二、SVPWM 的开关序列为了降低谐波和开关损耗SVPWM 通常采用对称开关序列。以扇区 I 为例常见序列为V0 → V1 → V2 → V7 → V2 → V1 → V0也就是000 → 100 → 110 → 111 → 110 → 100 → 000这样做的好处是PWM 波形对称 谐波较小 电流波形更平滑 开关次数相对合理零矢量时间 T0 通常会分配给 V0 和 V7。例如V0 作用 T0 / 2 V7 作用 T0 / 2对称分配可以让 PWM 波形以周期中心对称有利于降低谐波。图3 SVPWM 作用时间计算与开关序列在一个 PWM 周期中SVPWM 会根据参考矢量所在扇区计算 T1、T2、T0并按照对称开关序列生成三相 PWM。十三、从 T1/T2/T0 到三相占空比计算出 T1、T2、T0 后还需要转换成三相 PWM 占空比。以扇区 I 为例常见相电平作用时间可以理解为Ta T1 T2 T0/2 Tb T2 T0/2 Tc T0/2然后转换成占空比Da Ta / Ts Db Tb / Ts Dc Tc / Ts最后写入 PWM 定时器比较寄存器CCR_A Da × PWM_PERIOD CCR_B Db × PWM_PERIOD CCR_C Dc × PWM_PERIOD不同扇区下Ta、Tb、Tc 的排列关系不同。但基本流程是一样的确定扇区 ↓ 计算 T1、T2、T0 ↓ 根据扇区换算三相作用时间 ↓ 得到 Da、Db、Dc ↓ 写入定时器比较寄存器 ↓ 输出三相 PWM十四、六个扇区的占空比关系如果采用常见 V1100、V2110、V3010、V4011、V5001、V6101 的编号方式可以简单理解为扇区主要相邻矢量占空比分配特点IV1、V2A 相占空比较大IIV2、V3B 相逐渐增大IIIV3、V4B 相占空比较大IVV4、V5C 相逐渐增大VV5、V6C 相占空比较大VIV6、V1A 相逐渐增大工程中不建议死记表格而应理解参考矢量在哪个扇区 就用该扇区相邻两个有效矢量合成 再根据开关状态换算三相占空比。十五、SVPWM 和 SPWM 有什么区别SPWM 是正弦脉宽调制。它的基本思路是用三相正弦参考波和三角载波比较 生成三相 PWM。SVPWM 则是从三相逆变器空间电压矢量角度出发 通过矢量合成生成三相 PWM。两者主要区别如下对比项SPWMSVPWM思路三相正弦调制空间矢量合成直流母线利用率较低更高谐波表现一般较好适合 FOC可以用更常用实现复杂度较低较高工程应用简单控制电机高性能控制SVPWM 相比 SPWM常见优势是直流母线利用率更高 输出电压能力更强 谐波较低 电机电流更平滑 更适合 FOC 控制。通常认为 SVPWM 比 SPWM 的直流母线利用率提高约 15% 左右。十六、为什么 SVPWM 输出的电流接近正弦从逆变器输出端看PWM 电压本质上是高频开关波形。但电机绕组具有电感特性。电感会抑制电流突变相当于对高频 PWM 进行滤波。所以逆变器输出的是高频 PWM 电压 电机绕组看到的是等效平均电压 电机电流经过电感滤波后接近正弦这就是为什么 PWM 波形看起来是方波但电机电流可以比较平滑。图4 SVPWM 波形生成与三相输出SVPWM 通过三相逆变器输出 PWM 电压电机绕组电感对高频开关波形产生滤波作用使最终相电流更接近正弦。十七、SVPWM 在 FOC 中的位置在 FOC 控制中SVPWM 通常位于控制链路的最后一环。典型 FOC 流程如下采样三相电流 ↓ Clarke 变换abc → αβ ↓ Park 变换αβ → dq ↓ 电流 PI 控制 ↓ 逆 Park 变换dq → αβ ↓ 得到 Vα、Vβ ↓ SVPWM 计算占空比 ↓ 三相逆变器输出 PWM ↓ 驱动电机也就是说FOC 算法输出的是期望电压矢量 SVPWM 负责把这个电压矢量变成三相 PWM 占空比。所以 SVPWM 是 FOC 中非常关键的执行环节。十八、SVPWM 实现流程实际代码实现 SVPWM一般可以按下面步骤1. 获取参考电压矢量 Vα、Vβ 2. 判断 Vref 所在扇区 3. 计算 T1、T2、T0 4. 根据扇区计算三相占空比 5. 对占空比做限幅 6. 写入 PWM 定时器比较值 7. 加入死区保护 8. 输出三相互补 PWM流程可以写成Vα/Vβ ↓ 扇区判断 ↓ T1/T2/T0计算 ↓ Ta/Tb/Tc计算 ↓ DutyA/DutyB/DutyC ↓ PWM比较寄存器 ↓ 三相逆变器十九、SVPWM 伪代码示例下面给出一个简化伪代码方便理解流程。typedefstruct{floatduty_a;floatduty_b;floatduty_c;}SVPWM_Output_t;SVPWM_Output_tSVPWM_Calc(floatv_alpha,floatv_beta,floatvdc){SVPWM_Output_t out;floatangle;floatvref;intsector;floatT1;floatT2;floatT0;floatTa;floatTb;floatTc;/* 1. 计算参考矢量幅值和角度 */vrefsqrtf(v_alpha*v_alphav_beta*v_beta);angleatan2f(v_beta,v_alpha);if(angle0){angle2.0f*PI;}/* 2. 判断扇区 */sector(int)(angle/(PI/3.0f))1;if(sector6){sector6;}/* 3. 计算当前扇区内角度 */floatthetaangle-(sector-1)*(PI/3.0f);/* 4. 简化计算 T1、T2、T0实际项目需按归一化方式修正 */floatMvref/vdc;T1M*sinf((PI/3.0f)-theta);T2M*sinf(theta);T01.0f-T1-T2;if(T00.0f){T00.0f;}/* 5. 根据扇区计算三相作用时间 */switch(sector){case1:TaT1T2T0/2.0f;TbT2T0/2.0f;TcT0/2.0f;break;case2:TaT1T0/2.0f;TbT1T2T0/2.0f;TcT0/2.0f;break;case3:TaT0/2.0f;TbT1T2T0/2.0f;TcT2T0/2.0f;break;case4:TaT0/2.0f;TbT1T0/2.0f;TcT1T2T0/2.0f;break;case5:TaT2T0/2.0f;TbT0/2.0f;TcT1T2T0/2.0f;break;case6:default:TaT1T2T0/2.0f;TbT0/2.0f;TcT1T0/2.0f;break;}/* 6. 输出占空比 */out.duty_aTa;out.duty_bTb;out.duty_cTc;returnout;}注意上面代码用于理解流程不建议直接照搬到产品中。 实际项目要结合具体芯片库、PWM模式、计数方式、死区时间、母线电压归一化方式进行调整。二十、中心对齐 PWM 和边沿对齐 PWMSVPWM 中常用中心对齐 PWM。中心对齐 PWM 的特点是计数器先向上计数再向下计数 PWM 波形以周期中心对称 谐波表现更好 适合三相电机控制。边沿对齐 PWM 的特点是计数器从 0 计到周期值 PWM 边沿集中在同一侧 实现简单但电流采样和谐波表现可能不如中心对齐。电机控制中一般推荐中心对齐 PWM 三相互补输出 死区时间二十一、死区时间为什么重要三相逆变器每一相有上管和下管。如果上下管同时导通会造成直流母线短路。为了避免直通需要在上下管切换时加入短暂延时。这个延时叫死区时间死区时间太小容易上下管直通 功率器件发热严重 可能损坏驱动板死区时间太大输出电压畸变增加 低速性能变差 电流波形失真 电机噪声增大所以死区时间要根据功率器件、驱动芯片和开关速度合理设置。二十二、电流采样与 SVPWM 的关系在 FOC 中电流采样非常关键。SVPWM 会产生三相 PWM 波形而电流采样通常需要避开开关瞬间。因为开关瞬间噪声较大容易导致 ADC 采样异常。常见做法是使用中心对齐 PWM 在 PWM 周期中点附近触发 ADC 避开开关边沿 使用定时器触发 ADC如果电流采样时序不对可能出现电流波形异常 FOC 控制不稳定 电机抖动 速度波动 电流环震荡所以 SVPWM 不只是算占空比还要配合 ADC 采样时序设计。二十三、SVPWM 常见应用场景SVPWM 主要应用在三相电机和逆变控制中。常见场景包括PMSM 永磁同步电机控制 BLDC 无刷直流电机控制 FOC 矢量控制 变频器 伺服驱动器 电动汽车驱动控制器 风机水泵控制 压缩机驱动 机器人关节电机控制 储能逆变系统 光伏逆变器尤其在 PMSM 和 FOC 控制中SVPWM 基本是非常常见的选择。二十四、SVPWM 常见问题图5 SVPWM 调试技巧与常见问题SVPWM 调试不能只看公式还要检查 PWM 定时器、三相桥驱动、死区时间、母线电压、电流采样、角度反馈和保护策略。1. 电机抖动或者噪声大可能原因扇区判断错误 T1/T2/T0计算错误 三相PWM顺序错误 电机相序错误 角度反馈方向错误 死区时间不合理 电流采样噪声大排查建议先低电压、低占空比测试 观察三相PWM是否互补 检查三相相序 检查编码器方向 确认角度增加方向和电机旋转方向一致。2. 电机不转但有电流可能原因空间矢量角度没有旋转 三相输出顺序错误 电机缺相 驱动桥没有正常工作 死区或使能信号异常 电流环输出过小排查建议先开环输出旋转电压矢量 用示波器观察三相PWM 检查驱动芯片使能 检查电机三相接线。3. 电机反转可能原因相序接反 角度方向反了 Park/逆Park变换符号错误 编码器方向与电机方向不一致解决方法交换任意两相电机线 或修改角度方向 或调整相序映射。4. 电流过大可能原因占空比过大 电压矢量幅值过大 PI参数过激 电流采样比例错误 母线电压设置错误 电机参数不匹配排查建议先限制最大电压输出 开启过流保护 检查电流采样方向 确认电阻、电感、极对数等电机参数。5. 高速运行不稳定可能原因母线电压不足 调制进入过调制区 电流环带宽不足 采样频率不够 死区影响变大 电机反电动势过高排查建议提高母线电压 检查调制比是否过大 优化电流环PI 提高PWM频率或优化采样点。二十五、调试 SVPWM 的推荐顺序调试 SVPWM 不建议一开始就闭环 FOC。推荐按下面顺序1. 检查 PWM 定时器确认PWM频率正确 三相PWM输出正常 上下桥臂互补 死区时间正确 PWM极性正确2. 检查三相桥驱动确认驱动芯片供电正常 使能信号正常 故障信号正常 上下桥臂没有直通3. 开环输出 SVPWM先不闭环直接给一个旋转电压矢量。观察电机是否平稳旋转。4. 检查相序如果电机抖动或者反转检查A/B/C相序 编码器方向 角度方向5. 检查电流采样确认电流采样通道正确 采样方向正确 采样时刻正确 零偏校准正确6. 再闭环 FOC最后再加入电流环 速度环 位置环这样问题更容易定位。二十六、学习 SVPWM 的重点学习 SVPWM不要只背公式。更重要的是理解以下几个问题三相逆变器有哪些开关状态 为什么有 6 个有效矢量和 2 个零矢量 空间矢量为什么是六边形 参考矢量为什么要落到某个扇区 为什么只需要两个相邻有效矢量就能合成 Vref T1、T2、T0 分别表示什么 如何从 T1/T2/T0 转换成三相 PWM 占空比 为什么中心对齐 PWM 更常用 为什么电机电流最终接近正弦 SVPWM 在 FOC 中处于哪个位置只要这些问题理解清楚SVPWM 就不再只是公式而是一套完整的电压矢量合成方法。二十七、SVPWM 核心总结SVPWM 可以这样总结SVPWM 是一种用于三相逆变器的空间矢量调制方法。 它通过 6 个有效矢量和 2 个零矢量在每个 PWM 周期内合成目标电压矢量。核心流程是获取 Vα/Vβ ↓ 判断扇区 ↓ 计算 T1/T2/T0 ↓ 生成三相占空比 ↓ 输出三相互补 PWM ↓ 驱动电机最重要的一句话SVPWM 不是直接画三相正弦波 而是用三相逆变器的开关状态 在空间矢量平面中合成一个旋转的电压矢量。实际工程中SVPWM 是否稳定不只取决于公式还取决于PWM定时器配置 死区时间 母线电压 电流采样时序 角度反馈方向 电机相序 PI参数 保护策略所以调试 SVPWM 时一定要从硬件输出、PWM波形、电流采样、角度方向和控制参数多个方面综合排查。文章标签SVPWM 空间矢量PWM FOC 电机控制 BLDC PMSM 三相逆变器 STM32 嵌入式开发 伺服驱动 变频器 PWM 电流采样 电机调试