SPWM 和 SVPWM 的差别落到最后其实就两个数调制比和电压利用率。同一台电机、同一个母线电压、同一套功率板换个调制方式最高转速就能差出十几个百分点调参数的时候把这两个概念弄混轻则电流环抖重则直接把管子打穿。我在调试台上见过太多次“示波器上看波形挺正常一算电压利用率对不上”的情况追下去八成是调制比的定义和文献里的不是一套。这篇把 SPWM 和 SVPWM 的调制比、电压利用率从头捋一遍顺带把 15.47% 这个数怎么算出来的、零序注入为什么等价、代码里怎么写、台架上会踩什么坑一次讲透。刚接触电机控制、正在看论文或者准备写自己第一版逆变器代码的朋友可以直接照着做已经在做产品、被过调制和死区折腾过的也可以跳到第 5 节看排查表。所有内容基于我实际调试和仿真的经验公式推导和实现细节都是可以复现的。1. 调制比、电压利用率这两个词先掰开1.1 三种调制比定义混用就是事故源头调制比的麻烦之处在于不同文献、不同教材、不同芯片厂商的手册用的基准完全不一样。你看到“m 0.9 已经进入过调制”和另一篇说“m 1.05 还在线性区”两句话都没错只是因为基准不同。我按出现频率排了个序做成下面这张表看论文的时候先对号入座。定义表达式基准含义SPWM 线性区上限SVPWM 线性区上限Am Vm / (Vdc/2)以 SPWM 相电压峰值上限为基1.01.1547Bm Vm / (2Vdc/π)以六阶梯波基波峰值为基0.78540.9070Cm Vref / (Vdc/√3)以 SVPWM 相电压峰值上限为基0.86601.0表里 Vm 指的是相电压基波峰值相对直流中点Vref 是空间矢量幅值两者数值上相等。定义 A 最常见因为它最直观——m 就是“调制波峰值占半个母线电压的多少”。定义 B 在老的电力电子教材里多因为六阶梯波是理论上的极限用 2Vdc/π 做基准“m 接近 1”就代表“接近方波”。定义 C 在芯片厂商的应用笔记里流行因为它让“线性区上限就等于 1”编程时直接判断 m 1 就报警很省事。我自己写代码一律用定义 A。原因很简单占空比的计算天然以 Vdc/2 为归一化基准duty 0.5 v_cmd / Vdc这个式子里v_cmd 的物理上限就是 Vdc/2用它做基准不用来回换算中间少一次乘法就少一次溢出风险。你选定一套之后就写进头文件注释团队里所有人都按这套来别今天用 A 明天用 C这种坑一旦埋下去后面查起来能查一整天。提示拿到一份新的技术资料先翻到它的“调制比”定义式不要默认它跟你想的一样。这个习惯能省掉大量无谓的讨论。1.2 电压利用率到底在衡量什么调制比是“施加了多少”电压利用率是“最多能拿到多少”。严格讲电压利用率是一个比值输出基波电压 / 直流母线电压。麻烦的是分子用相电压还是线电压、用峰值还是有效值又能组合出好几种口径。工程上最常引用的是“线电压基波峰值 / Vdc”。这个口径下SPWM 是 0.866SVPWM 是 1.0。所以很多人说“SVPWM 的电压利用率是 100%”指的是这个。换成线电压有效值口径SPWM 是 0.6124SVPWM 是 0.7071。变频器行业说的“输出最大电压等于输入电压”也是基于这个口径——380V 输入整流后母线约 537VSVPWM 输出的线电压峰值刚好能到 537V。再换一个口径相电压有效值 / VdcSPWM 是 0.3536SVPWM 是 0.4082。这三个数字看着完全不同其实是同一件事的三张脸。我在表格里把它们并排列出来你在写报告或者跟别人对数据的时候直接查。口径SPWMSVPWM提升比例相电压基波峰值 / Vdc0.5000.57715.47%线电压基波峰值 / Vdc0.8661.00015.47%线电压基波有效值 / Vdc0.6120.70715.47%相电压基波有效值 / Vdc0.3540.40815.47%注意最后一列全部是 15.47%因为口径只是换了分母的尺度比值不变。这个比例在很多场合被简化说成“高 15%”但你要是做精确的母线电压设计这 0.47% 也别扔它对应的是余量。2. SPWM 的电压天花板是怎么算出来的2.1 三角载波比较的几何本质SPWM 的实现动作极其朴素拿一个正弦调制波跟一个三角载波扔进比较器谁高谁赢输出的就是占空比。数学上桥臂输出的开关周期平均电压等于调制度乘以母线电压。把调制波归一化成v_mod m·sin(θ)载波是幅值 ±1 的三角波那么占空比就是d 0.5 0.5·m·sin(θ)。桥臂中点相对母线负端的平均电压是d·Vdc Vdc/2 0.5·m·Vdc·sin(θ)。前面那个 Vdc/2 是共模直流分量三相都一样在星形负载里不产生电流可以直接扔掉。剩下那个交流分量的峰值是0.5·m·Vdc。当 m 取到 1 的时候交流分量峰值正好等于 Vdc/2这时候桥臂占空比在 0 到 1 之间刚好跑满一点余量都不剩。这就是 0.5Vdc 这个天花板的来历。它不是算法本身的缺陷而是“三相正弦调制波 线性载波比较”这套组合的几何上限。你想再高调制波的正峰值就得超过 Vdc/2占空比就饱和了波形顶部被削平谐波一下子涌出来。2.2 m1 这条线的物理含义m1 意味着什么意味着在一个基波周期里每一相桥臂都有一个瞬间上管全开或者下管全开占空比精确地触到 1 或者 0。这时候输出波形已经贴着六阶梯波的一个顶点。再往上走一步就进入了过调制波形开始出现“平顶”。平顶这个东西从频域上看就是把正弦的峰值削掉基波幅值不再随 m 线性增长而是缓慢爬升同时 5 次、7 次谐波快速长大。对电机来说这意味着转矩脉动、电流畸变、额外的铁损和铜损。所以绝大多数场合m1 就是硬性红线控制器要在这里做限幅。这里有个容易被忽略的点m1 的时候三相并不是同时饱和的。三相调制波互差 120 度A 相过零的时候B 相和 C 相分别在 ±0.866 的位置。也就是说即使 m 略大于 1一开始也只是某一相轻微削顶其他两相还好好的。这就是为什么有些系统在 m1.02 的时候还能凑合跑波形看着也没烂到哪去——但这是运气不是设计余量不要拿去当方案。2.3 过调制区发生的事过调制区可以分成两段来看。第一段从 m1 到 m≈1.05定义 A 口径SVPWM 下对应到 1.1 左右这个区间里矢量幅值超出了内切圆但还在六边形内部控制器通常的做法是保留角度、把幅值直接砍到六边形边界上这叫“最小相位误差过调制”。这个区间基波幅值还能继续涨但涨得比线性区慢谐波开始明显。第二段再往上六边形边界上的点已经没法满足要求输出矢量只能沿着六边形的六个顶点跳最后退化成六阶梯波。六阶梯波的相电压基波峰值是2Vdc/π ≈ 0.637Vdc比线性区上限的 0.577Vdc 又高了约 10%但代价是 THD 惨不忍睹低压电机基本不会用只有在风机泵类这种对转矩脉动不敏感的场合才偶尔提一提。我在实际项目里的处理方式是m 到 0.95 就开始软限幅到 1.0 硬限幅同时给上层报一个“母线电压不足”的标志让速度环去降转速或者触发弱磁。不要指望过调制区帮你多榨那 10%除非你的负载特性明确允许。3. SVPWM 多出来的 15.47% 从哪来3.1 六边形内切圆三相约束的几何解三相两电平逆变器有 8 个开关状态对应 6 个非零矢量和 2 个零矢量。6 个非零矢量在 αβ 平面上围成一个正六边形边长等于2Vdc/3。任何一个时刻你想要的电压矢量必须落在这个六边形内部否则物理上合成不出来。关键在于六边形不是一个圆。如果你要求三相电压都是纯正弦那么合成矢量的轨迹必须是一个圆。这个圆的最大半径受限于六边形的内切圆——半径是(2Vdc/3)×cos(30°) Vdc/√3 ≈ 0.577Vdc。这就是 SVPWM 线性区的边界也是 0.577 这个数的几何来源。对比一下 SPWM 的 0.5Vdc。两者差了0.577/0.5 1.1547也就是 15.47%。这个差值的本质是SPWM 把三相当成三个独立的标量来处理每一相都要求自己的调制波不超限结果三相同时不超限的约束比“合成矢量落在六边形内”更严苛。SVPWM 从矢量角度出发充分利用了六边形的六个角把这部分浪费掉的空间捡了回来。用生活化的说法SPWM 像是三个人各自拎一个箱子过三道限高门门高按最矮的那个算谁都不能超SVPWM 是三个人一起抬一个箱子过一个方形的洞口只要箱子的四个角不出洞中间怎么摆都行。同样的洞口后者的箱子能做得更大。3.2 两行算式推出 1.1547推导其实很短我把过程写清楚方便你手推一遍加深印象。SPWM 线性区相电压基波峰值上限Vm_spwm Vdc / 2 0.5 · VdcSVPWM 线性区相电压基波峰值上限取六边形内切圆半径Vm_svpwm (2/3) · Vdc · cos(30°) (2/3) · Vdc · (√3/2) Vdc/√3 ≈ 0.5774 · Vdc两者相除Vm_svpwm / Vm_spwm (Vdc/√3) / (Vdc/2) 2/√3 ≈ 1.1547提升比例 (2/√3 - 1) × 100% ≈ 15.47%。就这么两行。很多资料把这个结论写出来就完了但你在做母线电压选型的时候真正有用的是反过来用给定需要的输出线电压有效值 U_out母线电压至少要多少。用 SVPWM 的话Vdc_min √2 · U_out再加 5% 到 10% 的调节余量和母线纹波余量。举个具体的输出线电压有效值 380V峰值是 537VSVPWM 下母线电压最低需要 537V。而 380V 交流输入整流后的母线典型值也就 530V 到 540V带载还会跌几乎顶到天花板。这就是为什么工业变频器标称 380V 输出实际满载时往往达不到——不是算法不行是母线就那么高。设计的时候要么把电机额定电压选低一档要么把母线电压抬上去别指望算法变魔术。3.3 零序注入把 SVPWM 拉回载波比较的框架很多人第一次看 SVPWM 的实现代码会懵扇区判断、作用时间计算、七段式排布一堆分支。其实还有一条更简洁的路径叫零序注入也叫最小最大注入。它跟七段式 SVPWM 在数学上是完全等价的但代码只有三行。做法是这样先按 SPWM 的方式算出三相调制波va, vb, vc然后取这一时刻三相里的最大值和最小值注入一个共模分量v0 -(max(va, vb, vc) min(va, vb, vc)) / 2再把v0加到三相上。因为共模分量在三相星形负载里不产生电流所以输出电压不受影响但调制波的峰值被压下来了。压下来多少对于三相正弦注入之后调制波峰值从m·Vdc/2降到(√3/2)·m·Vdc/2也就是降了 13.4%。反过来说同样的母线电压下m 可以再往上提 15.47% 而不饱和。注入后的调制波形状像个马鞍所以老资料里叫它“马鞍波”。这个形状里含有三次谐波分量——严格说min-max 注入得到的不是纯三次谐波而是一个分段函数但它对峰值抑制的效果是最优的。工程上还有一种简化实现直接注入幅值为基波 1/6 的纯三次谐波v0 (1/6) · m · sin(3θ)这个做法的峰值抑制效果比 min-max 略差一点点在某些角度上峰值是 0.866 而不是 0.75但胜在有解析表达式算起来快而且在早期的模拟电路时代容易用硬件搭出来。现在都用 MCU 了直接 min-max 更省事。这里有一个很重要的实际约束必须提醒SVPWM 的相电压波形是含三次谐波的只有线电压是纯正弦。对于三相三线制的星形负载绝大多数电机都是三次谐波不产生电流完全没影响。但如果你驱动的是三相四线制负载、带中线的变压器、或者需要相电压本身正弦的场合就不能直接上 SVPWM得老老实实用 SPWM。这个坑我在一个带中线的实验台上踩过相电流里冒出一堆三次谐波查了半天才反应过来是调制方式的问题。4. 从公式到能跑的代码4.1 扇区判定与矢量作用时间标准七段式 SVPWM 的流程分四步判断参考矢量落在哪个扇区、算两个相邻非零矢量的作用时间、算零矢量时间、按七段式排布开关序列。扇区判断不用atan2那太慢。用Vβ、√3·Vα - Vβ、-√3·Vα - Vβ这三个量的符号就能定出来具体规则是先算三个辅助量 A、B、C根据它们的正负组合查表得到扇区号 1 到 6。这套判据在定点芯片上只要几次比较和加减比三角函数快一个数量级。作用时间的计算以扇区 I0 到 60 度为例。设参考矢量幅值 Vref、角度 θ两个相邻矢量 V1 和 V2 的作用时间T1 (√3 · Vref · Ts / Vdc) · sin(60° - θ)T2 (√3 · Vref · Ts / Vdc) · sin(θ)T0 Ts - T1 - T2其中 Ts 是开关周期。你可以验证一下边界当 Vref 取到 Vdc/√3、θ 取 0 时T1 TsT2 0全用 V1正确θ 取 30 度时T1 T2 Ts/2两者平分也正确。这两个边界点能帮你快速判断公式有没有写错。七段式的排布是T0/4 → T1/2 → T2/2 → T0/2 → T2/2 → T1/2 → T0/4这样每一相在每个开关周期里只动作一次开关损耗最小而且中心对称谐波特性好。4.2 七段式、五段式的取舍七段式不是唯一选择。五段式把零矢量全用在一个端点比如全用 V0 或者全用 V7一个周期里只排五段开关次数从 6 次降到 4 次开关损耗直接降三分之一。代价是谐波稍差一点共模电压也更大。我一般的选法是开关频率在 8kHz 以下、对效率敏感的场合比如大功率风机泵类用五段式开关频率高、对电流纹波和噪声敏感的场合伺服、低速大转矩用七段式。还有一种折中叫“交替零矢量”每个载波周期在 V0 和 V7 之间轮换能把共模电压的频谱打散对 EMC 有一点帮助。选完之后别忘了最小脉宽。实际功率器件有最小开通时间要求比如 1 微秒如果算出来的 T1 或 T2 小于这个值要么补到最小宽度要么干脆把这个脉冲删掉。这个处理在低调制比、矢量靠近扇区边界的时候会频繁触发。4.3 一套完整的参数计算实例拿一个具体的例子把数字走一遍方便你对照自己的项目。假设母线电压 Vdc 537V开关频率 fsw 8kHz开关周期 Ts 125μs目标输出线电压有效值 380V。先算需要的相电压基波峰值Vm √2 × 380 / √3 310.3V。用定义 A 算调制比m 310.3 / (537/2) 1.1557。这个数字刚好在 SVPWM 线性区上限 1.1547 的边缘实际已经略微超了——这也印证了前面说的“380V 变频器满载时余量很小”。所以实际设计要么把母线电容加大让 Vdc 稳在 540V 以上要么把最高输出频率限制一下。再算死区带来的电压损失。设死区时间 Td 2μsTd/Ts 2/125 1.6%。死区造成的相电压误差约等于(Td/Ts) × Vdc 8.6V占相电压峰值 310.3V 的 2.8%。这个比例在满载时不算什么但在低速轻载、m 只有 0.05 的时候相电压峰值才 13.4V8.6V 的误差占比超过 60%输出电压直接失真。这就是为什么低速必须做死区补偿。再算一下电流环带宽。8kHz 开关频率采样和 PWM 更新同步电流环带宽一般取开关频率的 1/10 到 1/20也就是 400Hz 到 800Hz。低于 400Hz 动态响应偏慢高于 800Hz 电流纹波会被放大容易啸叫。参数取值说明母线电压 Vdc537V380V 交流整流典型值开关频率 fsw8kHz兼顾损耗与噪声开关周期 Ts125μsfsw 的倒数死区 Td2μs占 Ts 的 1.6%最大相电压峰值310.3V对应线电压 380V 有效值调制比 m1.1557已贴近 SVPWM 线性区上限电流环带宽400–800Hz取 fsw 的 1/20 到 1/104.4 可直接移植的实现先说最省事的那条路零序注入版。输入是三相对直流中点的电压指令范围 ±Vdc/2输出是三路占空比/* 输入ua/ub/uc 为相电压指令单位 V范围 ±Vdc/2 * 输出duty[3]0 到 1 */ void svpwm_duty_minmax(float ua, float ub, float uc, float vdc, float duty[3]) { float umax ua ub ? ua : ub; umax umax uc ? umax : uc; float umin ua ub ? ua : ub; umin umin uc ? umin : uc; /* 关键一步注入的共模分量 */ float u0 -0.5f * (umax umin); duty[0] 0.5f (ua u0) / vdc; duty[1] 0.5f (ub u0) / vdc; duty[2] 0.5f (uc u0) / vdc; /* 保险起见再钳一次防止浮点误差越界 */ for (int i 0; i 3; i) { if (duty[i] 1.0f) duty[i] 1.0f; if (duty[i] 0.0f) duty[i] 0.0f; } }这四行就是 SVPWM 的核心。它跟七段式逐段计算的结果完全一致因为载波比较本质上就是按作用时间分配占空比。你把它烧进芯片接上电机出来的电流波形和七段式没有区别。如果你需要显式的时间量比如要做单电阻采样得知道每个矢量的具体持续时长那就得上七段式计算。核心部分是这样/* 扇区 I 示例其它扇区按 60 度旋转映射 */ float k 1.7320508f * Ts / vdc; /* √3 * Ts / Vdc */ float t1 k * (valpha * 0.8660254f - vbeta * 0.5f); float t2 k * vbeta; float t0 Ts - t1 - t2; /* t1 对应前一个有效矢量t2 对应后一个 */ /* 七段式时间戳 */ float ta t0 * 0.25f; float tb ta t1 * 0.5f; float tc tb t2 * 0.5f; float td tc t0 * 0.5f; /* 后半个周期对称回来 */这段代码里那个0.8660254就是√3/2vbeta那个式子看起来简单是因为在扇区 I 里角度展开后化简了。其它五个扇区不用重新推导把 valpha、vbeta 旋转对应角度再套同一个式子就行旋转可以用查表或者直接符号翻转。想验证自己的推导对不对写个小脚本跑一遍最省事import numpy as np def duty_minmax(ua, ub, uc, vdc): u np.array([ua, ub, uc]) u0 -0.5 * (u.max() u.min()) return 0.5 (u u0) / vdc # 扫描一个基波周期检查占空比是否越界 vdc, m 537.0, 1.15 peak 0.0 for th in np.linspace(0, 2*np.pi, 3600): ua m * (vdc/2) * np.sin(th) ub m * (vdc/2) * np.sin(th - 2*np.pi/3) uc m * (vdc/2) * np.sin(th 2*np.pi/3) d duty_minmax(ua, ub, uc, vdc) peak max(peak, d.max(), 1 - d.min()) print(占空比越界量:, peak - 1.0)把 m 设成 1.15peak - 1.0应该是一个很小的负值或者零附近设成 1.2就会明显超过 1验证了线性区上限的位置。这个小脚本我每次换平台都会重跑一遍比在示波器上找饱和点快多了。5. 台架上最容易踩的坑5.1 死区吃掉的电压死区是为了防止上下管直通但它的副作用是输出电压不再等于指令值。机理不复杂同一桥臂上下管的开关之间插入一段两边都关断的时间这段时间里电流走的是续流二极管桥臂输出电压由电流方向决定跟指令无关。结果就是电流为正时电压被吃掉一点电流为负时被多给一点平均下来是一个跟电流同相的误差电压幅值约(Td/Ts) × Vdc。这个误差有两个特征值得记住。第一它跟电流方向有关所以它不是简单的直流偏置而是一个“整流”效应会让电流波形在过零附近出现平台。第二它的绝对值跟调制比无关是常数所以在低调制比时相对影响极大。我见过一个低速运行的案例指令相电压峰值才 10V 出头死区误差贡献了 8V占空比算出来有一相长期贴着 0电流波形一半都被削掉了。补偿的常规做法是按电流符号把误差加回来电流为正时补偿Td为负时补偿-Td。难点在电流过零点——采样噪声会让符号频繁翻转补偿量跟着乱跳反而制造出新的谐波。稳一点的做法是加一个滞环或者用电流幅值做线性过渡在 |i| 小于某个阈值时把补偿量按比例缩到零。这个阈值取额定电流的 5% 左右比较合适具体要看你电流采样的噪声水平。5.2 母线波动与调制比饱和母线电压不是一个常数。整流桥后面挂电容带载时会有 2 倍工频的纹波轻载和满载能差几十伏如果是电池供电电压随 SOC 变化更大。如果你的调制比是按标称母线算死的电压一跌输出跟着跌速度环就得拼命加指令加到饱和为止。标准做法是做母线电压前馈每一拍采样 Vdc把调制波除以实测值而不是标称值。这样母线跌的时候占空比自动变大输出电压保持不变。听起来简单实际有两个坑。一是采样噪声Vdc 的采样必须滤波但滤波又会引入延迟母线突变时前馈跟不上。我的经验是用一阶低通截止频率设在开关频率的 1/20 左右兼顾噪声和响应。二是前馈做完之后调制比可能超过 1必须要有饱和检测一旦发现指令占空比触到上下限立刻报“母线欠压”或者“调制饱和”让上层降转矩。还有一个隐含问题如果你用的是无感控制或者参数辨识母线电压的准确性直接影响观测器的精度。我见过一个案例Vdc 采样电阻的温漂没管冷机启动正常跑热了以后辨识出来的磁链偏了 8%转速估算开始飘。所以母线采样这条链路校准和温补该做还得做。5.3 标幺、定点与数值边界用浮点的芯片还好用定点或者带 FPU 但想省时间的标幺化就绕不开。我推荐的标幺基准是电压以Vdc/√3为基准也就是让调制比 1.0 对应线性区上限。这样代码里判断饱和就是一句if (m 1.0f)不用记 1.1547 这个常数。定点化的时候有几个地方容易翻车。一是√3这个常数用 Q15 表示是 283780.866×32768用 Q12 是 3547精度差一点点在低调制比时影响不大但在满调制附近会导致占空比越界所以钳位那一步千万别省。二是除以 Vdc定点除法慢通常是先算1/Vdc存成倒数表或者每拍算一次倒数用乘法代替除法。三是中间结果的位宽Vref × Ts这种乘法很容易溢出先做移位再做乘法。最后一个容易被忽视的边界占空比钳位之后三相的相对关系可能被破坏输出矢量偏离指令方向。这在过调制区是正常的但在线性区出现就说明你的标幺或者限幅逻辑有问题。调试的时候可以在线打印“钳位触发次数”正常情况下线性区内这个计数应该一直是零。5.4 现象与原因速查表下面这张表是我这些年攒下来的遇到问题先对照一遍能省不少时间。现象可能原因排查方向低速时电流波形有平台死区未补偿或补偿过量查电流符号判据的滞环阈值满载时转速上不去调制比贴顶母线电压不足或余量太小实测满载时的 Vdc核对 15.47% 的余量电流 THD 比仿真大很多死区、最小脉宽、采样延迟逐项关闭后重测定位贡献最大的那一项空载正常带载后电流畸变母线跌落导致调制比饱和加电压前馈观察饱和标志位相电流含明显三次谐波负载带中线SVPWM 不适用换 SPWM 或者改用三线制接法某个扇区切换时电流尖峰扇区判据在边界抖动加扇区滞环或用连续的角度而非符号判断高调制比时占空比偶尔越界标幺系数精度不足提高常数位宽检查钳位是否生效低速轻载时电机发热异常死区误差导致的低频谐波测相电流频谱看低次谐波幅值6. 几条不太上教科书的经验第一个体会是调制比这个数在调试时最好的用法不是“算出来”而是“打出来”。我在代码里习惯留一个调试变量每一拍把当前的 m、三相占空比的最大最小值、钳位触发计数一起塞进一个结构体通过调试串口或者 DMA 送出来。示波器上看波形只能看到电压电流看不到算法内部的状态一旦出问题就是两眼一抹黑。有了这个母线一跌、调制比一饱和你立刻就能看到不用猜。第二个体会关于那个 15.47%。新手容易把它当成一个“可以无脑吃掉的余量”实际上它是有条件的——条件是你的负载是三相对称、三线制、不接中线。一旦接法变了这部分提升立刻变成谐波。所以我在方案评审的时候会专门问一句“负载接法是什么”这个问题能挡掉不少后期的返工。第三个体会是零序注入那三行代码虽然短但它跟七段式的等价性值得你自己动手验证一次。方法很简单给同一个参考矢量分别用两种方法算占空比逐点对比。你会发现它们在绝大多数点上是完全一致的只有浮点误差级别的差。验证过一遍之后你对这套算法的信任度会完全不一样以后再看到什么“改进型 SVPWM”的说法也能一眼看出它到底改了什么。最后一个关于母线电压的余量。我现在的习惯是不管算出来需要多少最终选型时再往上加 8% 到 10%。这 10% 不是浪费它买的是三样东西母线纹波的空间、电网电压偏低时的容忍度、还有电机参数偏差带来的调节余量。见过太多项目在样机阶段刚好够用一到现场电网偏低就开始批量报故障最后只能改硬件那个成本比一开始多留 10% 高太多了。