ARTICLE DETAIL

资讯详情

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

ANPC三电平逆变器调制策略详解:SPWM与SVPWM实现与损耗均衡

ANPC三电平逆变器调制策略详解:SPWM与SVPWM实现与损耗均衡 做光伏逆变器、储能PCS、UPS这类电力电子产品的朋友这几年对ANPC三电平应该不陌生。它和经典NPC的关系一句话就能讲完把钳位二极管换成了有源开关管。但就是这一换调制自由度和器件损耗分配完全不一样了。在实际项目里我见过太多人在NPC和ANPC之间反复对比后最终选了ANPC结果发现真正决定性能和热设计的其实不是拓扑本身而是你怎么调制它。这篇文章把我自己在ANPC项目上的实现经验整理出来重点拆解两种主流调制方式——载波SPWM和SVPWM从原理、开关状态、损耗分配到仿真调试一次讲透。做逆变器控制、搞仿真、或者正在选型做预研的朋友都可以直接拿去参考。1. ANPC拓扑结构与基础原理1.1 从NPC到ANPC为什么要做有源钳位传统的I型NPC三电平每相桥臂是四个主开关管加两个钳位二极管。钳位二极管的作用是在输出零电平时把桥臂中点钳到直流母线中点这样每只主开关管只需要承受一半的母线电压这是三电平比两电平优势最核心的地方。但实际跑起来钳位二极管经常成为整套系统的短板。为什么因为钳位二极管只在特定电流方向下导通而且损耗集中在器件内部热量分布极不均衡。尤其在低调制比、高功率因数工况下钳位二极管的损耗占比会显著上升散热器设计不得不按最热器件来留余量整机功率密度上不去。我见过一个早期的三相NPC光伏逆变器满载高温老化时钳位二极管和旁边主开关管的温度差能到25℃以上散热器都快成瓶颈了。ANPC的思路很简单把这两个钳位二极管换成带反并联二极管的IGBT或MOSFET也就是有源开关管。这么改的好处是原来被动导通的钳位支路变成了可控路径零电平时让电流走哪条通路由调制策略说了算。这样一来损耗可以主动分配热设计压力瞬间小很多中点的电位控制也有更多手段。很多产品选择ANPC本质上不是追求更低的谐波而是冲着热设计和可靠性去的。1.2 开关状态与输出电平ANPC单相桥臂一共六只管子从上到下依次是S1、S2、S3、S4钳位管是S5、S6。S5接直流母线中点和S1与S2之间的节点S6接中点和S3与S4之间的节点。输出A在这两只内管S2与S3之间。每组调制信号最终落到这六只管子上每一时刻必须保证输出电平正确同时不能出现上下桥臂直通。ANPC每相可以输出三种电平P正电平Vdc/2、O零电平0、N负电平-Vdc/2。P状态驱动S1、S2导通N状态驱动S3、S4导通这两个没有太多选择空间。零电平O是重点它有两组可行的开关组合O1组合S2和S5导通电流从中点经S5、S2流向输出正电流方向这时桥臂上半部分参与钳位。O2组合S3和S6导通电流经S3、S6流回中点这时下半部分参与钳位。这两种组合都能让输出稳定在零电平但电流实际流经的器件不同损耗分布也不同。这就是ANPC实现损耗均衡的根本抓手。对NPC来说零电平的路径是由电流方向自然决定的钳位二极管被导通没法选择对ANPC来说两只钳位管都可以主动开通所以调制算法可以按温度、功率因数、母线电压等条件来选择当前时刻用O1还是O2。1.3 换流路径与互补关系实际换流时六只管子的驱动之间必须严格遵守互补和死区约束。ANPC一相通常分成三组逻辑组合P状态时S1、S2一起通N状态时S3、S4一起通O状态时按O1或O2给S2、S5或S3、S6发驱动。死区设置上有个细节S1和S5存在换流关系S4和S6也存在换流关系。当从P状态切换到O1状态时需要先关S1等待死区时间后再开通S5。如果S1还没有完全关断就给S5发开通信号母线正端会通过S1和S5形成对中点O的直通短路这是一定要避免的。同理N状态和O2之间的切换也要在S4和S6之间加死区。我在样机调试时习惯用硬件比较器直接看驱动波形死区时间设置一般在3到5微秒具体看IGBT的关断延迟和门极电阻。死区设得太大输出电压会有明显畸变和谐波增加设得太小又容易引发直通。这个平衡点要靠双脉冲实验标定不能直接照搬芯片手册上的参数。2. 调制方式一载波SPWM2.1 载波层叠方案与调制波生成载波SPWM是三电平里最容易理解和实现的一种调制方式。它的思路是把两电平PWM的载波概念扩展到三个电平用两个幅值相同、相位可选的三角载波分别对应输出的正半周和负半周。最常用的是同相层叠方案也就是两个载波上下排列、相位一致调制波在正半周和上面的载波比较负半周和下面的载波比较。具体到ANPC调制波和两个载波比较会得到三个逻辑区间的判断结果。比如A相参考电压大于上载波时该相输出P状态参考电压小于下载波时输出N状态介于两者之间时输出O状态。这一步得到的实际上只是一个“电平选择指令”PRE、PO或PNO还不能直接给六只管子的门极使用需要经过状态解码把P、O、N翻译成S1到S6的具体驱动组合。这里有一个我用过很多次的做法先把P/O/N状态编码成两位逻辑变量然后通过查表方式生成六路驱动。比如P状态对应“S11S21S50S60S30S40”O1状态对应“S21S51其余为0”O2状态对应“S31S61其余为0”N状态对应“S31S41其余为0”。查表比用一堆逻辑门判断简单得多也方便在仿真里和实际DSP代码里保持一致。2.2 零序分量注入与等效SVPWM很多人以为SPWM和SVPWM是两种完全独立的东西其实在三相系统里只要在SPWM的调制波中注入适当的零序分量两者的调制效果就基本等价了。零序分量就是三相调制波同时叠加同一个量它不会在线电压中产生差模分量却可以有效提高直流电压利用率也有助于调整零电平的作用时间。具体操作上最常用的是注入三次谐波或者注入共模分量。以三相调制波ua、ub、uc为例叠加后新调制波为uax ua u0其中u0 -(max(ua,ub,uc) min(ua,ub,uc)) / 2。这样算出来的调制波三相合成矢量在空间里就和SVPWM的参考矢量轨迹重合了。我建议做ANPC的工程师先掌握这个方法因为DSP里生成三角载波并和调制波比较比完整跑SVPWM扇区判断要省不少算力调试时也直观。对ANPC来说零序分量注入还有额外一层意义它可以改变零电平时段在一个载波周期里的分配这样我们就能在一些工况下调节O1和O2的使用比例把损耗往热容量更大的器件上引。换句话说零序注入不只是为了电压利用率还能作为损耗管理的辅助工具。2.3 SPWM下ANPC的开关时序与损耗分配在纯SPWM框架下最常见的ANPC损耗均衡策略是低频换流和载波周期切换两种。低频换流策略很简单就是在一个工频周期内固定使用O1在下一个工频周期使用O2。这样钳位管S5和S6的任务按照工频周期交替平均损耗大致相近。缺点是工频周期内某个钳位管会持续承担工作峰值热应力比较高对IGBT模块内部热阻抗是考验。载波周期切换策略则是每个载波周期都在O1和O2之间切换比如奇数周期用O1偶数周期用O2。这种策略散热效果更平均但每多一次切换就多一次开关动作开关损耗随之上升需要在控制代码里权衡。因为ANPC的S5、S6往往选择更快但载流能力稍弱的器件频繁开关时结温纹波的评估一定不能省。我前期做仿真时对比过这两种策略在10kHz开关频率、阻感负载下载波周期切换比低频换流在四只主开关管和两只钳位管之间的损耗分布可以做到更均匀但总损耗高出约4%到6%。如果散热器余量充足我更倾向于低频换流毕竟损耗更小、实现更稳。散热吃紧的项目再上周期切换。3. 调制方式二SVPWM空间矢量调制3.1 三电平空间矢量分布与扇区划分SVPWM是从电机控制领域推广过来的调制方法核心思想是在复平面上用基本电压矢量合成目标参考矢量。三电平逆变器每相有三个电平状态P、O、N三相组合共有27种开关状态映射到空间矢量图上可以得到19个独立的基本电压矢量分为零矢量、大矢量、中矢量和小矢量四类。如果只从调制角度看SVPWM比SPWM多的东西就是扇区判断、矢量作用时间解算和开关序列编排。这个流程看起来很繁琐但它在处理中点电位和零电平冗余方面有天然优势。ANPC正好需要精细控制零电平路径所以SVPWM方案在高端电机驱动和并网逆变器里很受欢迎。实际编程时先用参考矢量的αβ分量判断所在大扇区然后在该扇区内继续判断参考矢量落在哪个小三角形区域再用最近三矢量合成原则解算各矢量的作用时间。这里我建议把所有计算都归一化处理以母线电压半值Vdc/2为基值这样不管母线是400V还是800V代码都能通用也方便在不同项目间互相移植。3.2 矢量作用时间计算以第一扇区为例参考矢量如果落在靠近原点的下部小三角形会由两个小矢量和一个零矢量来合成如果落在中部则涉及小矢量、中矢量和零矢量如果落在外部区域则需要大矢量、中矢量和相邻小矢量。不同区域的计算公式不同但核心都是伏秒平衡原理也就是参考矢量乘以开关周期等于各基本矢量乘以各自作用时间的总和。这里不把每个三角形的公式全部罗列很多教材都写得很细我只提一个实操中的关键点作用时间算完之后一定要检查三段时间之和是否等于开关周期Ts。由于浮点计算精度和扇区判断误差常常会出现几微秒甚至十几微秒的偏差这在开环仿真里不明显但接上闭环控制后就会表现为电流谐波异常。我的习惯是在每周期末尾做一次归一化处理把时间比例重新缩放保证开关序列完整填充整个载波周期。开关序列编排上三电平SVPWM常用七段式也就是一个周期内开关状态按“负小矢量—零矢量—正小矢量—中矢量或大矢量—正小矢量—零矢量—负小矢量”的对称顺序排列。这样做的好处是每次只改变一相输出电平开关次数少、谐波性能好。对ANPC而言这个序列里的“负小矢量”和“正小矢量”正好对应不同的零电平路径所以天然要检查O1和O2的使用情况是否与热均衡策略一致。3.3 小矢量冗余与中点电位调节三电平SVPWM最吸引人的地方就是可以用小矢量的冗余状态来调节中点电位。在空间矢量图里正小矢量和负小矢量指向同一个空间位置比如POO和ONN但它们接入的中点电流方向相反。如果POO作用时间多中点电位偏一个方向ONN作用时间多中点电位就偏另一个方向。控制算法只要调整这两个冗余小矢量的时间分配就能把中点电位拉回平衡点。这个逻辑放到ANPC里就更顺了。POO状态里B相和C相都输出O每一相的O路径可以选择O1或O2所以中点电流路径的控制维度比传统NPC更多。我在一个储能PCS项目里曾经同时用“小矢量时间分配”和“ANPC零电平路径选择”两种方法控制中点电位稳压效果明显优于只用其中一种的情况尤其在电网电压不平衡时更有余量。不过也要提醒一下小矢量时间分配会影响等效开关频率下的器件损耗分布。如果为了中点电位控制一直偏向某个冗余小矢量那相对应一侧的钳位管会工作得更频繁热量集中。所以工程上必须把中点电位闭环和损耗均衡策略做成联合控制不能各调各的。这个联合控制的系数整定我一般先在中点电位环上用PI然后把PI输出限幅在正负20%的小矢量占空比范围内避免过度调节导致某相开关管过温。4. 两种调制方式对比与选型分析4.1 谐波性能与电压利用率从输出线电压波形看ANPC三电平的线电压是五电平阶梯波谐波性能天然好于两电平。在开关频率相同的条件下两种调制方式的电流THD差异其实没有想象中那么大尤其是在较高开关频率下。SVPWM最大的优势是直流电压利用率比纯SPWM高约15%但如果在SPWM注入零序分量后两者在这一项上就几乎打平了。实际项目里我更关注低开关频率下的表现。比如轨道交通或大功率电机驱动开关频率只有几千赫兹谐波和高频损耗都很敏感SVPWM在抑制低次谐波方面有结构调整上的优势效果比加点零序的SPWM更均匀。而在光伏逆变器这类并网应用开关频率普遍在10kHz以上载波SPWM加零序注入完全没有问题控制实现还简单DSP和MCU的资源占用也小。4.2 损耗分布与热设计对比两种调制方式的损耗差异反而更多体现在零电平路径的分配策略上。SPWM一般搭配查表式的状态机对O1/O2切换的热均衡策略可以做得比较精细SVPWM则在开关序列设计时就固定了正负小矢量的排列顺序O路径的使用规律更结构化容易和控制中点电位的算法一起设计。我做过一组对比同样在400V母线、50A输出、10kHz开关频率、功率因数0.9的情况下采用SVPWM七段式序列配合正负小矢量时间再分配的方案整机损耗比固定O1的SPWM方案大约低8%左右而且IGBT芯片最大结温下降约12℃。这个提升主要来自SVPWM在空间矢量层面对电流路径和开关动作次数做了更合理的规划而SPWM如果没有额外优化钳位管会在部分区域承担不必要的开关损耗。讲这个不是说SPWM不行而是提醒你选型不能只看是哪种调制方式还要看你配套的损耗均衡策略做到什么程度。ANPC的成败恰恰就在这套策略上。4.3 工程选型建议我个人的选型建议可以整理成一张实用的对照表应用场景推荐调制方式关键理由三相光伏并网逆变器、储能PCS载波SPWM加零序注入实现简单闭环调节成熟电网谐波要求容易满足电机驱动尤其低开关频率SVPWM低次谐波性能好电压利用率高高中压大功率变频器SVPWM配合中点电位联合控制需要精细控制器件损耗和中点平衡模块化多电平或高频场合载波移相SPWM天然适合多模块错相输出单模块控制开销小需要注意这些推荐没有绝对的对错。我见过有人在电机驱动里也用优化后的SPWM效果同样不错。但选SPWM还是SVPWM一定要在项目初期就把调制算法接口、控制芯片算力、器件热仿真模型一起定下来不然后面换算法往往意味着重新做半年的器件选型和热测试。5. 仿真搭建与调试实录5.1 仿真平台与模型搭建ANPC仿真现在主流还是MATLAB/Simulink加Simscape Electrical或者用PLECS。PLECS在开关损耗和热分析上特别细腻很适合做ANPC这种对损耗均衡敏感的拓扑Simulink的优势是控制算法搭建灵活和C代码生成无缝衔接。我一般两个配合用Simulink搭完整控制链路PLECS做功率器件损耗和热仿真。模型搭建的关键是三相桥臂和调制模块。主电路部分直流侧是两个串联的母线电容中间抽头为O点每相桥臂六只管子的连接按照前面小节的结构一一对应。母线电容的参数选择直接影响中点电位波动我通常仿真时取每千安输出电流配1000微法到2000微法左右实际工程再看纹波要求定。调制模块部分SPWM方案用两个三角载波和一个调制波比较生成P/O/N状态码后查表输出六路PWM。SVPWM方案则先做坐标变换、扇区判断、时间解算再输出开关序列。这里强烈建议把电平状态码和PWM驱动分开两层因为后续调试死区、加补偿、做故障保护时都只改状态解码和死区插入模块就够了。5.2 仿真结果观察点仿真跑起来以后先看四个关键波形和指标。第一个是输出相电压。ANPC三电平的相电压应该呈现P、O、N三个台阶如果出现两个电平明显不对称或者台阶宽度混乱多半是调制波或载波配置错了。第二个是线电压正常是五电平阶梯波如果某一段电平缺失往往意味着某相的状态解码表有错误。第三个是输出电流正弦度这个直接决定THD水平配合FFT分析可以看到5次、7次等次谐波的幅值。第四个是中点电位波动母线电容上的两个电压差值应稳定在一个小范围内如果发生发散振荡中点电位闭环肯定有问题。在PLECS里还可以导出每个器件的损耗曲线和结温曲线。ANPC的优势在这里看得很直观合理设置O1/O2切换策略后六个器件的损耗曲线会相对接近不会出现某一个器件特别高的情况。如果某只钳位管损耗明显偏高说明调制策略里对该管对应的零电平路径选择可能偏多需要调整分配系数。5.3 新手容易踩的坑仿真是个好东西但有些坑也是真坑。我结合自己带团队的经验把新手最常踩的几个问题列出来载波频率和相位不一致。三相三电平SPWM如果各相使用独立的三角载波必须保证同频同相否则线电压里会出现大量低频谐波。我在Simulink里习惯直接共用同一个载波信号源再从它分三路延迟半个开关周期的操作也只在载波移相方案里才用。状态解码表逻辑错误。特别是O1和O2的驱动组合写反会导致仿真相电压出现莫名其妙的电平跳变或者中点电位快速漂移。排查方法是先在开环且阻感负载下把调制波固定在一个直流偏置点逐点对比逻辑状态。死区配置不合理。仿真里很多教程会直接忽略死区但一上硬件就出问题。建议从仿真第一版就加死区模块这样能提前暴露直通问题和换流异常。Simulink里可以用Transport Delay加逻辑处理实现死区注意死区时间不要大于开关周期的2%。浮点运算导致的扇区边界抖动。SVPWM在扇区边界切换时由于时间计算误差开关序列可能发生错乱。处理方式是在电流过零和扇区边界附近加滞环让控制器不频繁切换仿真里可以用比较精度的容差来稳定判断。母线电容初始电压不均衡。仿真启动时如果不给上下电容设置合理的初始电压中点电位可能在一开始就出现较大偏移进而影响调制效果。我习惯把两只母线电容初始电压设为Vdc/2和Vdc/2并在控制启动后先跑一小段开环再切闭环。这些问题如果在仿真阶段都处理干净硬件调试时会省下大量时间。ANPC的物理样机调试比仿真更依赖驱动板的可靠性和死区设计真到了实验台上再去逐级排查调制策略的bug就太晚了。最后再分享一个小技巧。做ANPC调制策略验证时一定要同时看“电平状态码”和“实际输出PWM”两组波形并且把减速比设到1:1去对比。电平状态码正确不代表六路PWM也正确因为中间的查表、死区、信号反转任何一个环节出问题都会让管子实际收到的驱动和理论状态对不上。我在这个环节上吃过亏自此以后仿真模型里永远挂着这两组示波器每当改一次调制算法就先对一遍波形再谈后续性能指标。这套流程虽然慢一点但能把ANPC项目的开发风险和调试周期显著压下来。
返回列表