拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

ANPC三电平逆变器调制方式对比:SPWM与SVPWM的仿真与工程实践

ANPC三电平逆变器调制方式对比:SPWM与SVPWM的仿真与工程实践

最近做储能变流器的几个朋友都在问ANPC三电平拓扑,聊着聊着就绕不开“调制方式”这个问题:到底是SPWM好用,还是SVPWM更优?其实在ANPC三电平拓扑里,调制方式的选择比两电平要复杂得多,因为它不只是把六个管子按正弦波比较一下那么简单,还牵扯到中点电压平衡、损耗均衡、换流时序和死区安全。这篇文章我就想把这两种调制方式放在同一张工作台上,从原理到仿真,把它们的实现路径、核心差异和工程坑点一次说清楚。适合正在做储能PCS、光伏逆变器,或者刚接手ANPC项目、需要快速上手的朋友参考。

1. 先搞清楚ANPC在解决什么问题:从NPC说起

1.1 两电平到三电平,母线利用率与电压应力的变化

要理解ANPC,得先从它爹NPC说起。两电平拓扑大家很熟:一个桥臂两个管子,输出只有正负两种电平,直流母线电压利用率低,器件承受的电压是完整的母线电压,dv/dt也大。比如母线电压是600V,两电平逆变器输出相电压就是在±300V之间来回跳,对电机绕组和滤波器的绝缘压力很大,EMI也难压。

三电平拓扑把母线中间拉出一个中性点O,输出相电压变成三档:+Vdc/2、0、-Vdc/2。同样600V母线,输出电压台阶变成±300V和0,相邻台阶的电压变化量只有300V而不是600V。这个变化是本质性的:一是输出波形更接近正弦,电流谐波明显下降;二是每个开关管承受的阻断电压理论上只有母线电压的一半,器件耐压等级可以降下来;三是dv/dt减半,对负载绝缘和电磁干扰都友好。这也是三电平在中高压变频、光伏逆变、储能变流器里大行其道的原因。

但代价也摆在台面上:器件数量翻倍,控制逻辑复杂,中点电压还会漂移。很多团队从两电平切到三电平,最头疼的往往不是主电路,而是“管子多了不知道谁该什么时候开”。这就是我今天要聊的核心命题:调制方式决定了管子开关的节奏,也直接决定了ANPC这台机器能不能稳定跑起来。

1.2 NPC最大的痛点:损耗不均

NPC(二极管中点钳位)拓扑是经典的三电平方案,四个开关管串联构成一个桥臂,然后通过两个钳位二极管把中间电位钳到中性点。它的工作逻辑不复杂:要输出正电平就开上面两个管,输出负电平就开下面两个管,输出零电平就开中间两个管。

听上去很顺,但NPC有个先天性毛病:内侧两个管的损耗远大于外侧两个管。我拿正半周说,负载电流为正时,输出正电平阶段电流走T1和T2,输出零电平阶段电流走T2和T3的钳位回路。也就是说T2这个内侧管在整个正半周期里要么在导通、要么在开关,而T1只在输出正电平那一段才工作。负半周时T3成了“劳模”。时间一长,T2和T3的结温明显比T1和T4高,导致整机的输出能力被这些内侧管的散热瓶颈卡住。

这是非常吃亏的一件事。花同样的器件成本,却因为热应力分布不均,不得不降容使用。我在实际项目中遇到过类似情况,仿真里看结温,T2比T1高出二十多度,散热器再大也救不回来,因为热源太集中。

1.3 ANPC的六个开关管状态与冗余

ANPC的全称是Active Neutral Point Clamped,有源中性点钳位,思路很直接:把NPC里那两个钳位二极管替换成带反并联二极管的有源开关管。这样单相桥臂的开关管从四个变成六个:T1、T2、T3、T4四个主开关管仍然串联在母线上,T5、T6分别从上下两个中间节点连接到中性点O。

多出的这两个有源钳位管带来一个革命性的东西:零电平输出状态不再是唯一路径,而是有两条路可以选。我列一下单相ANPC的基本开关状态:

输出电平导通管组合说明
+(P)T1、T2导通输出接正母线
0(O),路径AT2、T5导通输出经T2到T5再到中性点
0(O),路径BT3、T6导通输出经T3到T6再到中性点
-(N)T3、T4导通输出接负母线

注意看,同样是输出零电平,我可以选择让电流走上半桥臂的T2和T5,也可以让电流走下桥臂的T3和T6。这个冗余就是ANPC损耗均衡的底气:通过控制策略在工频周期内切换这两条路径,原本NPC里只能硬扛半个周期的内侧管T2或T3,现在可以把热量分摊到T5、T6这些原本闲着的有源钳位管上,结温分布一下就均匀了。

从调制方式层面看,这个零电平路径切换逻辑必须和PWM生成方式深度绑定。如果你做的调制策略只生成“P、O、N”三个开关状态,而不去管O状态到底走哪条路径,那ANPC和NPC几乎没有区别,白白浪费了这两个有源管。

2. SPWM调制:载波层叠加状态映射,看着简单,坑都在后头

2.1 载波与调制波怎么配

SPWM在ANPC上的实现思路和两电平有相似之处,但因为输出是三态,载波不再是一个,而是需要两个三角载波垂直层叠。常规做法是:载波1覆盖0到+1的范围,载波2覆盖-1到0的范围,调制波在正半周跟载波1比较,在负半周跟载波2比较。

具体说,当调制波大于载波1时输出正电平,调制波小于载波2时输出负电平,其他情况输出零电平。这个逻辑在数学上等价于把一个正弦波分成两半,各自和一个三角波比较。两个载波的相位关系不同,又分成同相层叠、反相层叠和交替反相层叠几种。实践中最常用的是同相层叠(PD),因为它的线电压谐波能量主要集中在载波频率处,没有低频边带,滤波器最好设计。

有些新手一上来就把两个载波做成反相的,输出波形也有模有样,但做频谱分析就会发现谐波分布很差,滤波器体积比PD方式大一圈。这个东西不是玄学,是数学上能推导出来的结论。所以我的建议很简单:ANPC用SPWM,默认优先选PD层叠方式,别折腾其他变体。

2.2 正负零序注入把调制比提上去

三电平SPWM如果直接用正弦波做调制波,直流母线电压利用率其实不高,最大能达到的线电压基波峰值只有Vdc/2,折算成相电压就是0.5倍的母线电压。SVPWM后处理里引入一个概念叫“零序注入”,往三相调制波里叠一个相同的分量,实际不影响线电压,却能显著提高调制比。

工程里最常用的注入方式是min-max法:u0 = -(umax + umin)/2,也就是把三相调制波的瞬时最大值和最小值取平均再取负,叠加到每一相上。这个方法效果接近最优,而且每个PWM周期只要比较三次就能算出来,在DSP里跑很轻量。

注入后调制波不再是纯正弦,而是带了一个三次谐波分量的马鞍形波形,母线电压利用率能从0.5Vdc提升到约0.577Vdc,提升比例差不多15%。对于储能逆变器这种对直流电压利用要求高的场景,这个提升非常可观。你如果不做零序注入,同样的母线电压、同样的调制比下,输出容量就白白少了15%,散热、损耗和系统成本全跟着吃亏。

需要提醒的是,零序注入虽然是在SPWM的框架里讲的,但它本质上已经和SVPWM在结果上等价了。这也是很多老工程师说“SPWM和SVPWM是一回事”的原因,后面我详细展开。

2.3 O状态路径选择与损耗均衡实现

SPWM生成的三相开关状态是“P、O、N”三态逻辑,回到ANPC单相桥上,P状态固定用T1和T2,N状态固定用T3和T4,但O状态就存在两个选择:T2+T5,或者T3+T6。

我在1.3节说了,ANPC的系统价值就在于利用O状态的冗余路径做损耗均衡。实际工程里最常用的策略是低频路径切换:以输出电流的工频周期为基准,正半周内O状态固定走路径A或路径B,负半周切换成另一条。也可以在一个工频周期内分多个区间轮换,比如每60度电角度切一次,让热量在T2、T5和T3、T6之间交替。

这个切换频率的选择是个权衡。切得太慢,比如每整个工频周期才切一次,均衡效果一般,尤其是在低功率因数工况下,电流和电压的相位错开,损耗分布又会偏到一侧。切得太快,T5和T6的开关损耗会增加,甚至可能抵消了热均衡带来的收益。我在仿真里对比过,通常每半个工频周期切换一次已经能获得大部分收益,再加密切换频率收益增长很有限。

真正要命的是切换时机。路径切换不能想切就切,必须等输出电流过零附近再动作。因为ANPC的O状态在两条路径之间切换时,如果电流不在零附近,会产生感应过压和动态不均压,极端情况下能把管子打穿。所以设计SPWM的ANPC调制器时,O状态路径选择不能简单用一个方波信号去控制,必须结合输出电流方向做逻辑门控。

2.4 死区与换流时序(SPWM最容易出事故的地方)

SPWM在ANPC上最大的坑,不是波形质量,而是换流时序。我见过不少新手搭的ANPC仿真,波形调得漂漂亮亮,一加死区就炸管,或者相电压出现毛刺,原因几乎都出在换流逻辑上。

ANPC单相桥臂六个管子,换流场景比两电平复杂得多。如果把输出电平从P切到O,DSP给出的是T1关断、T2保持导通、T5导通的信号。但如果死区设置不当,T1还没完全关断,T5就已经导通,那么T1和T5就会形成一条从正母线到中性点的通路,这就是直通,瞬间电流能把管子摧毁。

正确的换流思路是:任何一次电平切换,都要保证“先关后开”,而且同一时刻绝对不允许有超过一个开关管在母线之间形成通路。ANPC里尤其要注意T5和T6这两个钳位管,它们一个靠近正母线侧的节点,一个靠近负母线侧的节点,如果控制逻辑不小心让它们同时导通,等于直接把整个母线短路。

死区时间的选择取决于器件的开关速度和驱动电路,我一般习惯在仿真里给2到3微秒,实际样机要根据栅极电阻和器件datasheet里的关断延迟来调整。测量点也别选错,要在管子的集电极和发射极之间直接看电压,不能只在输出端看。ANPC换流时内部节点的电压变化非常快,示波器探头的地线夹得太长都会引入很大的测量误差,这一点在硬件调试时特别容易误导人。

3. SVPWM调制:矢量合成不是万能的,占空比要算对

3.1 三电平空间矢量的基本单位

SVPWM的思路和三电平的物理结构高度契合:不考虑三相的PWM波形细节,而是把三相输出组合成一个空间电压矢量,在矢量平面里去合成期望的参考电压。两电平SVPWM大家已经很熟,三电平SVPWM多了第三相状态,开关状态从2^3变成3^3,一共27种,对应的空间矢量分布在一个大六边形内。

这27个开关状态,按矢量长度分类:零矢量1个(三种实现),小矢量6个(每种有正负两个冗余),中矢量6个,大矢量6个。零矢量和冗余小矢量是三电平相对两电平的额外自由度,尤其是小矢量的正负冗余,是中点电压控制的“方向盘”。

三电平SVPWM的基本合成规则和两电平一样,叫“最近三矢量合成”:参考电压矢量落在哪个小三角形里,就用围成这个小三角形的三个矢量来合成,分别作用对应的时间,让平均效果等于参考矢量。这个方法叫做“伏秒平衡”,数学上就是解一个三元一次方程,约束条件是三个占空比之和为1。

3.2 最近三矢量合成与占空比计算

三电平矢量平面有六个大扇区,每个扇区内部再被分成四个小三角形。以第一扇区为例,目标矢量如果落在靠近中心的下方小三角形,需要用零矢量V0、小矢量V1和相邻小矢量V2来合成。

假设参考电压矢量的幅值标幺值为m,角度为θ(相对于扇区起点),三个矢量的占空比可以写成:

d0 = 1 - 2m·sin(θ + π/3) d1 = 2m·sin(π/3 - θ) d2 = 2m·sin(θ)

这个公式看着不复杂,但用的时候有几个细节必须注意:θ要换算到扇区内部角度,m的基准是Vdc/√3而不是Vdc;d0对应零矢量,d1和d2的顺序不能调换,因为它们对应的矢量在平面上的位置不同,调换了相位就错了。实际工程中,与其每次现算三角函数,不如把整个矢量平面按角度查表,或者预先算好系数存进查找表。DSP里算正弦是有开销的,开关频率一旦到10kHz以上,一个PWM周期内还要塞中点电压控制、电流环和调制算法,实时性压力不小。

其他三个小三角形的占空比公式类似,但矢量组合不同。工程用久了你会发现,SVPWM的代码写起来不短,但它的价值在于结构规范,每个扇区的处理逻辑一致,特别适合放到FPGA里用状态机实现。

3.3 冗余小矢量与中点电压控制

三电平SVPWM相对于SPWM最大的优势,在于给了你一个清晰的中点电压控制通道。中矢量和部分小矢量在工作时会引起中点电流,导致两个母线电容上的电压不一致。如果放着不管,中点电压会漂移,输出波形出现低频畸变,器件电压应力不对称,最终可能触发过压保护甚至损坏器件。

控制的核心就是利用小矢量的正负冗余:同一个空间位置,可以用正小矢量实现,也可以用负小矢量实现,但对中点电流的影响刚好相反。在一个开关周期内,原本分配给这个小矢量的总时间不变,但可以调节正负冗余的比例,比如正小矢量占60%、负小矢量占40%,这样就在不改变输出电压矢量的前提下,引入了可调的中点电流分量,用来抵消电容电压的偏差。

这个过程相当于给SVPWM增加了一个自由度,被称为“小矢量分配因子”。工程上通常用PI控制器根据电容电压差实时调整这个因子,控制带宽不用太高,低于基波频率几倍就够,因为中点电压波动主要成分是三次谐波频率。带宽太高反而不稳定,容易和电流环互相干扰。

3.4 从SVPWM到ANPC开关信号的完整链路

SVPWM计算出来的结果是三个相的占空比,但到ANPC六个开关管之间还隔着一层“状态解码器”。这一步经常被忽略,却是系统能否稳定运行的关键。

具体说,SVPWM输出的是每个PWM周期里“P、O、N”三个状态的切换时刻。例如A相在一个开关周期内先输出P,再切到O,最后回到P,那就要把这段逻辑翻译成T1到T6的开关动作。P状态对应T1、T2导通,O状态如果走路径A就对应T2、T5导通。翻译过程中必须保留死区时间,同时插入路径选择逻辑。

最稳妥的做法是把这些状态映射做成一张查找表,而不是在控制代码里用复杂的if-else嵌套。ANPC的状态组合很多,用查找表可以让逻辑变得非常简单清晰,也方便在仿真和实际控制板之间保持完全一致。我在项目里都是把这张表写在Excel里,人工核对一遍后再生成头文件,比直接在代码里堆case省太多时间。

4. 两种调制方式的对比与anpc仿真验证

4.1 直接给结论:对比表

很多人在SPWM和SVPWM之间纠结。我先把核心差异整理成一张表,方便对照:

对比维度SPWM(PD层叠+零序注入)SVPWM
波形谐波特性线电压谐波集中在载波频率附近与PD-SPWM+零序注入等效
母线电压利用率正弦调制0.866,注入零序后约1.0线性调制最大到1.0
中点电压控制通过注入零序分量间接实现冗余小矢量直接调节,更直观
损耗均衡能力依赖O状态路径切换逻辑同样依赖状态机,两者无本质差别
实现复杂度低,适合DSP逐相处理中高,扇区判断和占空比计算较多
调试便利性波形直观,容易定位问题概念抽象,但结构规范

判断依据其实可以归结为一点:如果仅仅是在做三相三线制的三电平变换器,PD-SPWM叠加适当的零序分量,数学上和SVPWM是等价的,最终PWM波形质量、母线电压利用率和中点电压控制能力没有本质差别。差别主要在于控制器的实现风格、代码组织方式和调试习惯。

4.2 怎么搭一个能复现损耗分布的anpc仿真模型

既然标题写了anpc仿真,我就把搭建流程完整说一遍。我自己的习惯是用PLECS做损耗和热分析,用MATLAB/Simulink做控制算法验证,两者结合来看整体性能。

模型第一层是主电路:直流源800V,两个400V电解电容串联,中点引出O;三相ANPC桥臂用六个IGBT模块;负载用三相RL负载。器件模型建议直接用厂商提供的热模型,PLECS可以从IGBT的datasheet导入导通压降曲线和开关损耗能量曲线,这样损耗仿真结果才有参考价值。如果只是用理想开关做初步验证,可以在Simulink里用带导通压降的IGBT和二极管模块。

控制部分我强烈建议用一个独立子系统做“状态生成器”,输入是三相调制波或SVPWM占空比,输出是三相信号再解码到18路PWM(三相乘以每相6个管子)。路径选择逻辑要在这个状态生成器里实现,而不是放在外部用普通PWM模块凑数。我见过有人直接用6个PWM比较器去生成ANPC的驱动信号,结果管子开关逻辑混乱,仿真波形根本不能用。

仿真参数的设置也有讲究。开关频率建议设10kHz,死区时间可以设2到3微秒。负载的功率因数最好设几种工况,因为ANPC的损耗均衡效果在不同功率因数下差异很大。纯阻性负载和0.8滞后功率因数负载下的结温分布趋势完全不一样,只看一种工况容易被误导。

4.3 仿真结果怎么判断好坏

跑完anpc仿真,不是看波形出来就完事了。我一般从四个维度来评判:

输出波形质量:看相电压是不是标准的三电平台阶,把相电压做FFT,看THD和主要谐波频谱位置。PD-SPWM和SVPWM的THD应该很接近,如果差很多,说明有一路的调制逻辑写错了。

中点电压波动:看两个母线电容电压的波形。中点电压应该围绕设定值有规律但幅度可控的波动,波动幅度通常在母线电压的百分之几以内。如果出现单调漂移,说明中点控制还没工作,或者正负冗余矢量分配逻辑接反了。

损耗分布均匀性:这是ANPC的核心验证项。把六个管子的平均损耗和结温差拉出来看。好的设计应该是T1/T4的外侧管损耗略低,T2/T3/T5/T6四个内侧管的损耗相对接近。如果出现某个管子损耗特别突出,说明路径切换策略没生效。

换流时序安全性:全面检查所有换流瞬间是否存在直通风险。这个在波形上不容易直接看出来,最好在仿真里加一个“直通检测”模块,实时监视各相桥臂的导通组合,一旦出现母线直通立刻报错。这个方法帮我抓出过好几个隐蔽的逻辑错误。

4.4 仿真阶段最容易出现的四个坑

第一个坑是O状态路径切换误触发。如果路径切换信号没和输出电流方向做逻辑判定,可能在电流峰值附近切换,导致输出波形出现明显尖峰。解决方式是在路径切换信号前加一个电流过零比较器,给定一个滞环窗口,只在电流过零附近允许切换。

第二个坑是死区时间被状态解码过程吞掉。很多人在生成PWM时才加死区,但ANPC的状态组合多,不同换流路径下的死区插入方式不一样,简单地把所有管子统一加死区会导致波形畸变。正确做法是分场景处理“P到O”和“O到N”的换流,分别插入对应的死区。

第三个坑是器件模型过于理想。如果用理想开关跑仿真,损耗和热分布结果完全失真,中点电压的波动特性也和实际不符。至少要给IGBT设置导通压降、开通关断延迟和开关损耗参数,不然你优化出来的路径切换策略在样机上根本复现不出来。

第四个坑是只做稳态仿真,不做动态工况。实际系统会经历负载突变、母线电压跌落,这些瞬态过程中调制策略可能因为逻辑锁存或状态还没有完成切换而出错。我在仿真里都会加一个50%负载突加突卸的工况,看中点电压和损耗分布能不能快速恢复。很多方案稳态跑得漂亮,一加动态工况就露出马脚。

5. 实操心得:不要把调制方式当成最终的胜负手

5.1 SPWM与SVPWM本质上殊途同归

做了几个ANPC项目之后,我最大的体会就是:SPWM和SVPWM之间没那么深的鸿沟。PD-SPWM叠加min-max零序注入后,输出的PWM波形和SVPWM在绝大多数工况下是等效的。区别更多的在于控制器的表达形式:SPWM是“逐相处理”,每个PWM周期算一次三相调制波和载波比较;SVPWM是“矢量处理”,先判断扇区,再计算最近三矢量的占空比。两种方法落地到ANPC之后,都要面临同一套难题——死区补偿、中点电压控制、路径切换策略。调制方式选哪个,只决定你在哪个抽象层工作,不决定最终系统性能高低。

5.2 决定项目成败的其实是状态机与换流策略

真正常见的ANPC项目翻车原因,根本不在调制方式上。我用PLECS跑了大量工况对比,同样的拓扑,只要O状态路径切换策略设计合理,SPWM和SVPWM的损耗均衡效果几乎一致,谐波性能也一致。真正拉开差距的是三个东西:一是O状态路径切换的时机和切换频率设计,这决定了热分布能不能均匀;二是换流过程中的死区管理,这决定了可靠性;三是中点电压控制器的带宽和相位裕量,这决定了动态工况下的稳定性。

这三个环节如果有一处疏忽,再好的调制算法都救不回来。我见过有人花了很大力气优化SVPWM的占空比计算精度,结果O状态路径切换还是用固定频率硬切,导致热应力在T2和T3之间来回蹦,最终结温还是超标。真正应该花时间的,是把切换策略根据实际工况做实。

5.3 一点个人习惯

最后分享一个我自己用着顺手的开发路径:先用PLECS搭一套完整的ANPC热仿真模型,把SPWM和SVPWM都配一遍,在不同负载、不同功率因数下跑损耗和结温分布,确定最优的路径切换策略;然后才是在DSP和FPGA里写工程代码,代码里的状态表必须和仿真里完全一致。

这个流程看着多了一步,但能省掉大量的样机反复调试时间。很多问题在仿真阶段暴露出来,修起来成本几乎为零,一旦上了样机再发现,就是烧管子、炸电容、重新改板的大工程。如果你正在做ANPC的项目,不妨按这个思路先跑一轮anpc仿真,把两种调制方式的差异、路径切换的效果、死区和中点电压的问题都在仿真阶段解决掉,再去碰硬件。这个顺序真的能帮你少掉很多头发。

返回列表