
1. 母线电压利用率SPWM那道绕不过去的坎做逆变器或者电机控制的工程师应该都有过这种经历样机装好了直流母线电压也按理论值留了裕量可一带载就发现输出电压不够电机转速上不去或者并网电流畸变。查来查去问题常常出在一个基础概念上——母线电压利用率。这个词说起来简单但不是每个人都能把它和实际波形对上号。先给出一个最直白的定义电压利用率指的是逆变器能够输出的最大交流线电压基波幅值与直流母线电压的比值。用公式表达就是电压利用率 U_line_fundamental / U_dc对于最常用的三相桥式逆变电路如果采用纯粹的SPWM正弦脉宽调制每相调制波是正弦波调制比最大只能到1忽略死区等非理想因素。此时相电压基波幅值最大为 U_dc / 2线电压基波幅值则是其√3倍U_line_fundamental_max (U_dc / 2) × √3 ≈ 0.866 × U_dc也就是说常规SPWM的母线电压利用率大约只有86.6%。这个数字意味着什么如果你要输出380V的线电压直流母线电压至少要撑到 380 / 0.866 ≈ 439V。很多刚入行的工程师第一次算母线电压时都会忽略这个0.866等到实际测试时发现电压“不够用”才回头来补课。问题的根源在于正弦波本身。正弦波的峰值是有效值的√2倍而逆变器能够输出的电压受限于母线电压的一半。为了让正弦波的峰值不超出母线电压的约束调制比就被压在了1以下而且正弦波在峰值附近很长一段区间内都保持较高的瞬时值这部分“冗余”并没有被充分利用。换句话说——正弦波峰值附近的波形利用率很低大部分时间里调制波离母线电压的边界还有一大截距离这段距离就是浪费掉的电压空间。所以提升母线电压利用率的核心思路就是在不超出母线电压边界的前提下改变调制波的形状让它的峰值降下来、平均值或者基波含量提上去。这正是零序电压注入要做的事。2. 零序电压注入到底往正弦波里加进了什么零序电压注入这个名字乍一听有点吓人实际上它的操作非常朴素。三相正弦调制波本来长这样u_a U_m × sin(ωt)u_b U_m × sin(ωt - 2π/3)u_c U_m × sin(ωt 2π/3)这三相波形的特点是任意时刻三相之和恒等于0对称分量法里这叫无零序分量。零序电压注入做的事就是在这个三相对称正弦波上同时叠加上同一个电压信号 u_zero(t)。叠加之后三相调制波变成u_a u_a u_zerou_b u_b u_zerou_c u_c u_zero注意u_zero 对三相来说是完全相同的。直觉上你会问这不是把波形整体抬高或者压扁了吗桥臂的占空比不是全变了吗没错每相相对于直流母线中点的电压确实变了但关键点在于——线电压完全没变。因为线电压是两个相电压相减u_ab (u_a u_zero) - (u_b u_zero) u_a - u_b零序分量在相减的过程中被抵消掉了。也就是说只要注入的零序电压在三相上完全一致负载端感受到的线电压基波就一点都不会受影响我们可以放心大胆地把它当作“形状整形工具”来用。那为什么要费劲去整这个形因为三相调制波的峰值限制了调制比。如果叠加一个合适的 u_zero可以把三相合成波的峰值压低。峰值一旦降下来在同样的母线电压约束下调制比就能往上加基波电压也就跟着上去了。不过这里有一个很容易混淆的概念我见过不少同事在这上面栽过跟头所谓“零序”是指对三相负载来说不产生线电压分量并不代表它不存在于系统中。实际上这个电压在逆变器的共模电压逆变器输出中点与电网或负载中性点之间的电压上体现得很明显。注入零序电压之后共模电压会显著变化这在某些对漏电流敏感的场合比如光伏并网逆变器是需要专门评估的。所以“无零序”是站在负载线电压的角度说的站在这台逆变器的桥臂上看它实实在在存在。那到底该注入什么样的零序电压才能把峰值压得最低这就引出了马鞍形波以及三次谐波注入的问题。这里很多人会有一个先入为主的印象——SVPWM的马鞍形波是不是就是“正弦波加三次谐波”严格来说这要看你用的是哪种零序注入策略三次谐波只是其中一种经典的模拟域方案SVPWM对应的则是一种更特殊的分段函数但两者在“压低峰值、提升利用率”这个维度上思路是完全一致的。3. 1/6三次谐波的数学账从86.6%到100%是怎么算出来的先说经典的1/6三次谐波注入法。所谓1/6指的是注入的三次谐波幅值是基波幅值的六分之一。写成公式就是u_zero (U_m / 6) × sin(3ωt)叠加后的A相调制波变成u_a U_m × sin(ωt) (U_m / 6) × sin(3ωt)这个波形画出来就是大家常说的马鞍形波——波峰变得扁平波谷也相应变化。现在的问题很直接叠加之后波形的峰值到底降了多少这决定了调制比能提多高。先把 u_a 对时间求导找极值点。令 u_a(t) 对 t 的导数为0d/dt [U_m × sin(ωt) (U_m / 6) × sin(3ωt)] 0ωU_m × cos(ωt) (ωU_m / 2) × cos(3ωt) 0cos(ωt) (1/2) × cos(3ωt) 0用三倍角公式展开 cos(3ωt) 4cos³(ωt) - 3cos(ωt)代入上式cos(ωt) (1/2) × (4cos³(ωt) - 3cos(ωt)) 02cos³(ωt) - cos(ωt) 0cos(ωt) × (2cos²(ωt) - 1) 0解出两组极值点一组是 cos(ωt) 0对应 ωt π/2此时 u_a U_m (U_m/6) × sin(3π/2) U_m - U_m/6 (5/6)U_m ≈ 0.833U_m另一组是 cos²(ωt) 1/2即 cos(ωt) ±√2/2此时 sin(ωt) ±√2/2sin(3ωt) 算下来等于 ∓√2/2代入得 u_a ±(√2/2)U_m ∓ (√2/12)U_m ±(5√2/12)U_m ≈ ±0.589U_m。取最大值是 5√2/12 U_m≈0.589U_m? 等等这里有误。重新算一遍当 ωt π/4即 cos √2/2, sin √2/2时3ωt 3π/4sin(3π/4) √2/2。u_a sin(π/4) (1/6)sin(3π/4) √2/2 √2/12 (6√2/12 √2/12) 7√2/12 ≈ 0.825U_m。最终峰值在 ωt π/2 处取得? 不对我要比较 (5/6)≈0.833 和 7√2/12≈0.825所以最大值是5/6U_m。之前写的0.589那个是负半轴极值没必要纠结。结论就是注入1/6三次谐波后波形峰值从 U_m 降到了 (5/6)U_m降幅约16.7%。这意味着什么原来调制比到1就顶到母线电压天花板了现在可以在不超调的情况下把基波幅值放大到原来的 1/(5/6) 1.2 倍即调制比上限 6/5 1.2对应的电压利用率(U_dc / 2) × √3 × 1.2 / U_dc 0.866 × 1.2 1.039这个值超过了1不对理想情况下正弦波叠加三次谐波后最大基波相电压可以做到 U_dc / 2 × 1.2 0.6U_dc线电压为 0.6×√3 1.039U_dc但线电压不可能超过母线电压。这里的问题是1/6三次谐波注入理论上把线电压基波幅值推过了母线电压但这只是数学上的结果。实际中线电压最大只能是 U_dc当某一相钳位到正母线、另一相钳位到负母线时。所以更精确的说法是1/6三次谐波注入把利用率从 86.6% 提升到了接近 100%具体数值取决于你注入的具体函数。如果一个零序注入函数能把波形峰值压到 √3/2 ≈ 0.866U_m那调制比就能推到 1 / 0.866 ≈ 1.1547线电压基波幅值正好等于 U_dc利用率等于100%。1/6三次谐波把峰值压到0.833U_m对应利用率 0.866 / 0.833 ≈ 1.04。等等这个反而超了不对我再仔细想想。我前面算的有问题。重新理一遍基波幅值为 U_m 的正弦波加上 U_m/6 的三次谐波后峰值变为 (5/6)U_m ≈ 0.833U_m。如果母线电压允许的最大调制波峰值为 U_dc/2相电压极限那么可以取 U_m (U_dc/2) / (5/6) 1.2 × (U_dc/2) 0.6U_dc。也就是说基波相电压幅值可以做到 0.6U_dc。线电压基波幅值 √3 × 0.6U_dc ≈ 1.039U_dc。这是理论值但实际三相桥的输出线电压不能超过母线电压 U_dc。1.039U_dc U_dc说明1/6三次谐波注入理论上的极限确实是超过100%的。但在实际逆变器中由于不能过调制、死区、开关管压降等因素通常达不到这个理论极限工程上近似认为可以到100%。实际上如果只注入三次谐波最大的问题是三次谐波分量在整个基波周期内都在“占用”电压空间虽然它不产生线电压基波但它占用了桥臂的瞬时电压输出能力。最优的零序注入函数其实不是三次谐波而是SVPWM对应的那一类限幅函数它能把峰值压得更低并且让波形贴着六边形边界走。三次谐波注入的价值更多在于它是理解“零序电压注入为什么能提升利用率”的最佳数学起点。从工程应用的角度讲真正被广泛采用的还是SVPWM因为它天然解决了“该注入多少、注入什么形状”的优化问题。那SVPWM是怎么回事它是怎么在马鞍形波这件事上和零序注入殊途同归的这要从空间矢量合成的角度重新看一遍。4. SVPWM的真面目矢量合成与零序电压注入殊途同归SVPWM空间矢量脉宽调制是从电机控制里诞生的思路。三相逆变器的6个开关管只有8种合法的开关组合对应8个基本电压矢量——6个非零矢量幅值为2/3 U_dc和2个零矢量上下桥臂同时导通。SVPWM的基本思想是用这8个矢量在时间上的平均效果去合成任意一个期望的电压矢量。假设期望的电压矢量在某个扇区内相邻的两个非零矢量和零矢量按一定占空比配合就能在一个开关周期内“拼”出这个矢量。这就是为什么SVPWM教程里总有扇区判断、作用时间计算、七段式/五段式发波这些内容。它的目标和SPWM不一样SPWM是每相独立比较正弦调制波和载波SVPWM直接站在“合成电压矢量”的角度思考问题。但这个思路最后落到的结果却和零序电压注入惊人地一致。说清楚这点需要把SVPWM的调制波反推出来。当SVPWM在每个扇区按矢量合成规则计算出三相占空比之后把占空比还原成等效的调制波画出来就是马鞍形——每条相电压波形都是正弦波的基础上叠加了一个零序分量。这个零序分量在0到1之间呈分段线性的形状它把波形峰值往两边“压”让三相电流更接近正弦同时让电压利用率更高。举个扇区I的例子。扇区I内期望电压矢量由V1100和V2110合成零矢量V0和V7均分剩余的周期。计算出来的三相占空比写成等效调制波会在正弦波形上叠加一个u_zero -0.5 × (u_a_max u_a_min) / (u_a_max - u_a_min) 之类的限幅项。这项的几何效果是哪一相的瞬时值最高就被钳位在1附近哪一相最低就被钳位在0附近。换句话说SVPWM做的事情等价于在正弦波上叠加了一个随着扇区切换而变化的零序电压让三相调制波中的某一相或两相贴着母线电压的上下边界运行。这就是SVPWM的马鞍形波的真正来源也回答了“为什么SVPWM的马鞍形波不是简单加三次谐波”的问题——三次谐波是连续函数而SVPWM的零序分量是分段函数在不同扇区里表达式不同整体效果是把三相调制波约束在一个六边形区域内。这个理解在工程上非常重要。因为一旦明白了SVPWM等价于“正弦波 某个零序分量”你就可以直接抛弃扇区和矢量合成的中间变量用纯调制波的方式去实现SVPWM。很多商用控制器的代码就是这么写的——算好三相正弦波再算出零序分量直接叠加省去扇区判断的过程还能顺便实现各种优化目标比如切换五段式、调整中点电位。这也就是所谓的“载波调制SVPWM”或者“SVPWM的调制波实现法”。更直观的区别可以从波形上看。SPWM的三相调制波是纯正弦在峰值附近载波比对的裕量很小利用率受限SVPWM的三相调制波是马鞍形峰值处被压平在同等母线电压下可以注入更大的基波分量。两者的关系可以这样概括对比项SPWMSVPWM调制波形状纯正弦正弦叠加零序分量马鞍形电压利用率86.6%最高100%理论谐波特性谐波集中在边频带谐波分布更分散THD更低数字化实现比较正弦波与载波扇区计算或等价零序注入直流母线电压需求高低约13.4%所以当有人问“SVPWM和SPWM有什么区别”的时候最本质的答案不是“一个用矢量合成、一个用载波比较”而是SVPWM在SPWM的基础上引入了一个聪明的零序分量把正弦波改造成了马鞍形波从而在不改变线电压基波的情况下把母线电压利用率硬生生往上提了一截。5. 七段式与五段式SVPWM背后的零序分量选择理解了SVPWM等价于零序注入之后再去看七段式和五段式SVPWM的区别就顺理成章了。这两个名词在很多SVPWM教程里都是重点但很多人只记住了“七段式开关次数多、谐波小五段式开关次数少、效率高”说不出背后的本质。七段式SVPWM在一个开关周期内按“零矢量V0起点 → 非零矢量1 → 非零矢量2 → 零矢量V7 → 非零矢量2 → 非零矢量1 → 零矢量V0”的顺序发波零矢量V0和V7各占一半。这种方式下面每相桥臂在一个周期内开关两次三相加起来一共6次实际上是在一个周期内每相都动作两次共涉及多次开关具体视实现而定。它的等效零序电压是一条连续的三角波夹在正弦波之间的形状波形对称性好谐波集中在开关频率的整数倍附近电流纹波小因此在电机驱动里是默认选择。五段式SVPWM则把零矢量全部压缩到V0或V7中的某一个另一个零矢量完全不出现。这样做的好处是每相桥臂在一个开关周期内只动作一次开关损耗直接降为七段式的2/3左右。但代价也明显等效的零序分量出现了跳变两相之间会出现180°的相位跳跃导致输出电压谐波变大电流纹波也变大。在同样的开关频率下五段式的电流THD通常比七段式高5%~10%。所以五段式一般用在开关频率受限但效率要求高的大功率场景中比如轨道交通牵引变流器。还有一个在电机控制里必须考虑的细节零序分量的选择会直接影响到中性点电压或者共模电压。七段式因为零矢量V0、V7对半分配共模电压相对固定五段式因为只有一个零矢量共模电压的跳变幅度更大。对永磁同步电机这类对轴电压敏感的系统来说共模电压过大会加剧轴承电蚀问题。我见过一个风电变流器的现场案例就是改成五段式之后电机轴承在半年内出现了明显的电蚀痕迹最后不得不改回七段式或者在五段式基础上额外加共模滤波。再往深一步说七段式和五段式并不是SVPWM仅有的形态。你完全可以在“连续调制”和“断续调制”之间自由选择零序分量的具体形状这就引出了更广义的DPWM不连续脉宽调制一族。DPWM1、DPWM2、DPWM3这些变体本质就是选取不同的钳位扇区让某一相在60°或者120°区间内钳位在正母线或负母线上不动作进一步降低开关损耗。从这个角度看SVPWM、THIPWM三次谐波注入PWM、DPWM这些调制策略统统可以统一在“在正弦波上注入不同类型的零序电压”这个框架下。你不需要把它们当成互相独立的算法它们只是一个优化问题里不同约束条件下的解。6. 工程实现中的几个坑与我的处理经验理论说完了聊点实际的。零序电压注入和SVPWM虽然原理清晰但在数字控制器上实现的时候有几个坑是我实际踩过、也看身边同事踩过的列出来供参考。第一个坑是调制比的概念混淆。数字控制里的调制比有时用“软件调制比”即正弦表的幅值有时用“物理调制比”即实际输出电压与母线电压的比值。SVPWM把调制比推高到1.1547之后如果软件里还用旧的习惯去算电流环输出的限幅值很容易在弱磁控制或者满压输出的时候出现饱和。我的做法是在代码里统一用“线电压基波幅值 / U_dc”这个物理量做标幺所有限幅值都换算到这一个坐标系下调试时一眼就能看出离最大输出还差多少裕量。第二个坑是死区时间对马鞍形波的削峰效应。死区会降低实际输出的基波电压尤其是在调制比接近极限的时候死区造成的电压损失占比更明显。如果不做死区补偿你会发现SVPWM的理论利用率到不了100%实际测出来可能只有96%~97%。死区补偿的算法有很多最实用的一种是依据电流极性把占空比做相应加减。电流极性判断在过零附近容易抖动需要加滞回或者滤波这个细节决定了补偿效果的好坏。第三个坑是零序电压注入在单相或者两相应用里不适用。零序注入的原理建立在三相系统能够相互抵消零序分量的基础上。如果你把SVPWM的思想硬套到单相逆变器上是没有任何提升的因为单相系统没有另外两相来抵消你注入的共模信号。很多人刚开始搞储能PCS时想用SVPWM的思路提升单相H4桥的电压利用率折腾半天发现没用——单相系统提升电压利用率要靠的是H桥本身的结构特点每个桥臂可以输出±U_dc/2的相电压负载直接跨接在两个桥臂之间这是另一套逻辑。第四个坑是五段式SVPWM在负载不平衡时的表现。五段式因为钳位区间是固定的如果三相负载不平衡或者反电动势含有较大谐波某相被钳位时电流畸变会加重。我在异步电机带重载弱磁的工况下测试过五段式的电流THD在负载不平衡时明显恶化后来在软件里加了动态切换逻辑——轻载或者开关频率充足时用七段式重载且开关频率受限时切五段式避免固定用一种策略带来的局限性。第五个坑也是比较隐蔽的一个零序电压注入会影响过流保护的判断阈值。因为注入之后相电压波形不再是正弦相电流的峰值与基波有效值的比值也会变化。如果用标准的正弦波峰值系数√2去设置过流保护阈值在SVPWM满调制或者过调制附近可能会出现误触发。实际中我把过流阈值留了15%以上的裕量并且结合电流的RMS值做双重判断而不是只看瞬时峰值。从选型角度看到底是所有场合都无脑上SVPWM还是说有的场景用SPWM就够了我的习惯是电机控制、并网逆变器、UPS这类对电压利用率和波形质量都有要求的场景直接上SVPWM省得后面为电压不够再折腾而对于那种母线电压本来就留了充足裕量、对成本和控制复杂度极其敏感的场合SPWM依然是可以接受的。这里没有绝对的好坏关键是你清不清楚自己那一百多伏特的母线电压余量到底是为哪个环节留的。回到标题的问题零序电压注入为什么能提升母线电压利用率因为它把三相正弦调制波里“不干活”的峰值冗余给利用起来了SVPWM和它什么关系SVPWM本质上是零序电压注入的一种最优解——它通过电压矢量合成的方式隐式地找到了那个能把调制波峰值压到最低的零序分量。理解了这一层SVPWM的公式就不再是一堆需要死记硬背的查表逻辑而是一个可以灵活变通的调制思路。我这些年调试下来最值钱的经验就是在理论上把SPWM、SVPWM、DPWM这些名词背后的统一框架想清楚遇到具体问题的时候直接回到“正弦波加零序电压、线电压不受影响、峰值被压低、利用率提升”这条主线上来推导很多看似复杂的方案差异一眼就能看穿。