☰
基于改进钳位VSVM与DPWM的T型三电平逆变器混合调制策略
2026/10/10 15:13:14 网站建设 项目流程

搞电力电子的同行应该都有同感:三电平拓扑到今天已经不是“要不要用”的问题,而是“怎么用才能不吃亏”的问题。T型三电平逆变器在低压并网、储能变流器、电机驱动里越来越常见,但真正把它做好用,绕不开三个老大难——中点电位漂移、开关损耗、谐波畸变。这三者互相纠缠,单纯靠某一种调制策略很难同时摆平。

我最近完成的这个项目,就是把改进的钳位VSVM(虚拟空间矢量调制)和DPWM(不连续脉宽调制)组合起来,做了一套以T型三电平逆变器为平台的混合调制策略。出发点很直接:VSVM擅长压中点振荡,DPWM擅长降开关损耗,两者各有脾气,关键是怎么让它们在一个基波周期里分工合作,而不是简单粗暴地“切来切去”。项目交付物除了整套可跑的仿真模型,还有一份说明文档和参考文献清单,方便直接对着复现。

这篇文章就按项目推进的顺序,把里面最核心的东西掰开讲:为什么这么混、关键参数怎么定、模型怎么搭、调试时踩过哪些坑、最后留下了什么可复用的东西。适合正在做三电平调制算法、或者准备往DSP/FPGA上移植PWM策略的工程师参考。

1. 这个项目先算清了三笔账:损耗、平衡和畸变

1.1 中点电位:三电平的“阿喀琉斯之踵”

三电平逆变器直流侧必须用两个串联电容分压,输出电平里的“O”状态直接把负载接到这个分压中点上。只要一个开关周期内流入中点的电流平均值不为零,上下电容电压就会被“充偏”或“放偏”,这就是中点电位漂移的来源。漂移一旦严重,轻则输出电压谐波增大,重则某只电容过压、器件击穿。

要理解中点电流从哪来,得把27个开关状态按矢量类别分开看。大矢量(比如PNN)三相输出都不接中点,对中点零影响;零矢量里OOO虽然三相都接中点,但平衡负载下三相电流和为零,也不产生净中点电流。真正麻烦的是两类:小矢量和冗余小矢量,同一位置有正、负两种状态,它们产生的中点电流方向相反,所以可以互相抵消;中矢量则是“直击要害”,三相里只有一相接中点,单靠矢量自身无法抵消,是低频中点振荡的主要来源。

这个低频振荡不是小问题。基波50Hz时,中点电压会出现明显的150Hz分量,调制比越高振荡幅度越大,功率因数偏低时尤其严重。过去工程上习惯用闭环去“事后修补”,也就是检测上下电容电压差,动态调整冗余小矢量的作用时间来对冲。这种做法在大多数工况下能用,但本质是“出了偏差再纠”,在调制比接近极限或者动态负载突变的瞬间,容易力不从心。

1.2 开关损耗和电流畸变:一对天然矛盾

开关损耗和电流畸变在调制层面是对着干的。开关频率越高,电流纹波越小、THD越好看,但器件的开关损耗直线上升;降频率省了损耗,滤波器和电机铁耗却又遭殃。三电平调制比两电平多了一层中间电平,本来可以在同样纹波条件下把开关频率降下来,但如果每一相都老老实实地连续开关,可优化的空间就是有限的。

DPWM的思路是让某相在特定区间内保持固定电平不动,把那些“不产生新电平、只白白耗能”的开关动作砍掉。三相里一相歇着,另外两相继续调制,平均开关次数能明显减少。代价也很明确:输出电压波形里的谐波会变差,而且钳位期间该相不参与中点电流调节,中点平衡的压力全部甩给剩余两相。很多做三电平的工程师一用DPWM就被中点振荡折腾得够呛,原因就在这里。

项目在设计上先把这个矛盾拆成两段来解决:平衡问题交给VSVM的理论框架,损耗问题交给DPWM的钳位思路,然后用一套混合调度逻辑把两者缝起来。后面你会看到,这条路线不是两条算法各自跑完再拼结果,而是在开关序列生成这一层就做了融合,切换点处理好了才不会顾此失彼。

1.3 为什么平台选T型而不是NPC

NPC和T型是三电平里最常见的两兄弟。NPC每相需要两个钳位二极管,中高压场合器件应力分散、可靠性口碑好,是传统工业变频的常青树。T型则是把钳位二极管换成了一对半压的有源开关,整个桥臂呈“T”字形,因此得名。

T型每相一共四个管子:外侧两个管子T1/T4要扛整条直流母线电压,内侧两个管子T2/T3只扛半条母线电压。相比NPC,T型省掉了一组钳位二极管,低压场合(比如400V电网、750V光伏系统、电池储能)导通损耗更低,器件分布更紧凑,功率密度更高。缺点是外侧管子要扛全部母线电压,所以不太适合直接往中高压做,那是NPC和更高电平拓扑的地盘。

这个项目瞄准的是低压大电流应用,T型在导通损耗和成本上的优势正好能放大混合调制的收益。另外T型的开关过程有一个特点:P到O、O到N都是半个母线电压的台阶,不连续调制钳位在P或N时,外侧管在一个区间内完全不动,这对降低外侧高压管的热应力特别友好。所以选T型做验证平台,不是随手抓的,是为了让DPWM的低损耗优势能真正体现出来。

2. 先把底子打牢:T型三电平、VSVM、DPWM的原理拆解

2.1 T型三电平的工作状态与器件应力

T型单相电路可以按输出电平分成三种状态,开关状态表如下:

输出状态开通器件输出电平参与中点电流
PT1、T2+Vdc/2否
OT2、T30是
NT3、T4-Vdc/2否

注意状态表里P状态开着T2、N状态开着T3,这不是多余的。T型桥臂中间那两个开关本质是双向开关,提前开通是为了让P到O、O到N的换流路径清晰可控,避免换流瞬间出现悬空。P和N之间绝对不能直接切换,否则就是让T1和T4同时关断、再硬生生把负载甩到另一个母线,产生的电压尖峰能把器件直接打穿。

器件应力方面,T1/T4要阻断Vdc,所以在700V母线系统里一般要用1200V等级的管子(考虑1.5倍以上安全裕量),T2/T3只需要阻断Vdc/2,可以用600V等级。这种“一大一小”搭配让T型在器件成本上有明显优势,但也带来一个工程约束:内侧和外侧管的热损耗分布天然不对称,调制策略最好能考虑到这一点。改进钳位方案里对钳位位置的选择,其实就是在利用这个不对称性,把“该歇的管子”安排合适。

2.2 VSVM:用“虚拟矢量”把中点电流清零

VSVM的出发点很朴素:既然中矢量天生会往中点注入电流,那就不直接用它,而是把它“拆”成几个小矢量的组合,让这些小矢量在同一个开关周期里把中点电流互相抵消掉。所谓“虚拟矢量”,指的就是这种“由多个实际开关状态按特定比例合成的等效矢量”。

拿扇区I的虚拟中矢量来举例。物理上的中矢量PON会往中点注入b相电流;而小矢量POO和ONN产生的中心电流分别是-ia和+ia,PPO和OON产生的分别是-ic和+ic。如果把POO和ONN的时间调成一样,它们的中点电流就正好对冲;PPO和OON同理。再把这两对小矢量按合适的比例拼在一起,合成出来的等效矢量和PON指向同一个位置,但整段作用时间内流入中点的总电荷为零。

这样做的意义是结构性的:VSVM不依赖“出了偏差再修”,而是从开关序列生成的那一刻起,就让每个开关周期内中点电流平均值为零。理论上无论调制比多高、功率因数怎么变,都没有低频中点振荡。代价也有,我后面单独讲,这就是为什么单用VSVM还不够、还要拉上DPWM的原因。

用生活经验类比,VSVM相当于“拼车”:单个中矢量是那种非要自己开车进城的人,路上必然制造拥堵;虚拟矢量则是让几个方向合适的人拼一辆车走同一段路,人还是那些人,路还是那条路,但拥堵被设计掉了。

2.3 DPWM:让一相歇着,损耗自然下来

DPWM在载波域很好理解:把调制波在某个区间直接“贴”到正母线或负母线上,那一相的占空比变成恒定的最大值或零,自然就没有开关动作了。在空间矢量域看,相当于某个扇区内持续分配一个固定的冗余状态,调制波在这段时间里是“断开”的,所以叫“不连续”。

三电平DPWM比两电平多了一点选择:可以钳位在P,可以钳位在N,特殊玩法下还可以钳位在O。钳位位置的选择直接决定省的是谁的损耗。钳位在P,外侧高压管T1在整个区间不开关,内侧管只参与部分换流;钳位在O,则是让内侧双向开关一直导通,外侧管完全不动作。考虑到T型内侧管是低压管、损耗承受能力相对好,工程上一般倾向于把高压管多的损耗省掉,所以优选钳位在P或N,而不是长时间挂在O。

DPWM的钳位区间有两种主流摆法:一种是固定位置,比如钳位区间中心对准相电压峰值,即DPWM1;另一种是让钳位区间中心对准相电流峰值,即DPWM2。想最低限度地降低开关损耗,应该关心电流而不是电压,因为开关损耗的本质是“带电压切电流”,电流越大切换损失越大。所以DPWM2这种随功率因数角动态平移钳位位置的做法,就是“改进钳位”的核心雏形。在T型三电平上,这个平移还要叠加对上下电容中点电流的考虑,就成了项目里改进钳位VSVM的出发点之一。

3. 混合调制策略的设计思路与关键细节

3.1 单用VSVM的短板在哪

VSVM虽然把中点振荡治得服服帖帖,但用下来有两个实实在在的短板。第一是开关动作次数不低:为了构造一个虚拟中矢量,需要在四个小矢量状态里来回切换,同样一个扇区里,状态切换次数比经典SVPWM的最优序列还多一些,导致开关损耗并没有占便宜。第二是线性调制范围受限,因为虚拟矢量的合成消耗了一部分电压矢量空间,最大可输出调制比会比经典SVPWM略低,这意味着直流母线利用率打了折扣,在需要压满母线电压的场合(比如并网逆变器接近满载时)会很憋屈。

另外还有一个感受层面的问题:VSVM在低调制比下,中点平衡能力绰绰有余,但这时候逆变器输出电流本来就小,开关损耗占总损耗的比例反而突出。也就是说,低调制区用VSVM是“杀鸡用牛刀”,高调制区又嫌它损耗大、调制范围紧。这让我意识到,VSVM和DPWM不是竞争关系,而是互补关系:VSVM管住平衡和波形质量,DPWM管住损耗,混合策略就是把它们各自最擅长的工况段挑出来。

3.2 改进钳位VSVM的具体做法

这次项目的“改进钳位VSVM”,核心就两条:把钳位位置从固定改成随功率因数角动态平移,同时在钳位期间仍保留虚拟矢量的结构约束,保证中点电流在开关周期内依然平均为零。

先说动态平移。我按照负载功率因数角φ实时计算钳位区间中心,让钳位区间的中心对准相电流峰值。这样做的物理意义很直接:电流最大的时候不开关,一次“硬切”都不产生,开关损耗降到最低。实现上不需要复杂计算,每60度扇区里查一张按φ偏移的钳位位置表就行,φ从负载端估算出来,在线更新。

再说钳位期间的中点平衡。把某一相钳在P或N之后,这相就退出了中点电流的“供给方”,剩下的平衡调节只能依靠另外两相里的冗余小矢量。实际实现时,我在每个开关周期内把剩余小矢量的时间按比例k拆分成正冗余和负冗余:t_p = (1+k)/2·t_small,t_n = (1-k)/2·t_small。k由中点电压偏差经过一个带限幅的PI调节器输出,限幅范围0.2到0.8,防止某一个小矢量时间被压到零以下。这套调节器和VSVM的虚拟矢量结构并行不悖,因为虚拟矢量保证的是“基波层面无低频振荡”,而k调节处理的是瞬态扰动和器件参数不对称引起的残余偏差。

3.3 DPWM与VSVM的混合切换逻辑

混合策略最怕的事情是模式切换瞬间波形“哐当”一下,出现电流突变甚至过压尖峰。我在设计里没有搞成“VSVM跑完整个基波周期再切DPWM”的粗放方案,而是在扇区边界内做平滑过渡,并加滞回。

具体调度规则分三档:调制比m低于0.6时,跑纯VSVM,此时谐波和平衡优先,损耗本来就不是矛盾的主要方面;m在0.6到0.93之间,进入改进钳位VSVM+DPWM混合模式,按照功率因数角动态决定钳位区间,该区用DPWM钳位、非钳位区沿用虚拟矢量结构;m高于0.93接近过调制边界时,切到以DPWM为主、冗余小矢量微调为辅的极限模式,尽量保住母线利用率。三档之间都设置了滞回带,比如0.6档要往下到0.55才切回纯VSVM,避免在临界点反复横跳。

切换时机的控制更关键。所有模式切换都安排在扇区边界的零矢量中心时刻完成,并且新老模式的第一个开关状态保持与上一周期末尾相同,这样实现上只是“多走一两个状态”,不会产生电平跳变。软件里我专门做了一个状态机,把每个扇区的开关序列预先规划好,切换只是查表索引的变更,不是运行中途改算法。

4. 仿真与算法实现:参数计算、模型搭建、代码逻辑

4.1 主电路参数怎么定

我用Matlab/Simulink搭了T型三电平逆变器主电路,直流侧用两个分压电容,负载选三相RL阻感负载,模拟电机或网侧阻抗的特性。参数选择不是拍脑袋,每个参数都有出处。

参数取值选择依据
直流母线电压Vdc700V模拟400V级低压系统的典型母线电压
分压电容C1/C22000μF按最恶劣工况下中点纹波电压不超过母线电压2%~3%估算
负载电阻R10Ω让满载电流在70A附近,开关损耗可测
负载电感L5mH电流纹波约10%,接近实际电机电感量级
开关频率fsw10kHz兼顾损耗与谐波的常用折中值
死区时间2μs对应IGBT模块的常规死区

中点电容的粗算是这个思路:最恶劣情况下,中点电流幅值近似等于负载电流幅值,振荡频率是基波的3倍(150Hz)。如果允许中点电压波动ΔV=17V以内,电容C要满足C≥I_np_max·T/(2·ΔV),I_np_max按70A、T=1/150s算,代入就是70×0.00667/(2×17),得到约13.7mF,这个值大得离谱,说明想让满载3倍频纹波完全压住是不现实的。所以要靠调制算法去消除振荡源头,电容按承受剩余残余纹波设计就好,实际取2000μF配合VSVM,中点纹波可以控制在10V以内,说明算法起的作用远大于电容硬扛。

4.2 调制算法的实现逻辑与关键代码

算法核心分五步:采集电压电流和角度、扇区判断、模式选择、时间计算、开关序列生成。我先把扇区I里的时间计算核心逻辑列出来,完整推导放在说明文档里。

% 扇区I内 改进钳位VSVM+DPWM 时间计算示意 % ref为扇区内部空间角,m为调制度,Ts为开关周期 % VV1、VV2为当前模式选定的两个虚拟矢量 % d1、d2为虚拟矢量作用占空比,d0为零矢量占空比 theta_s = ref - 0 * pi/3; % 扇区内角度 d1 = m * Ts * sin(pi/3 - theta_s); % 虚拟矢量VV1作用时间 d2 = m * Ts * sin(theta_s); % 虚拟矢量VV2作用时间 d0 = Ts - d1 - d2; % 零矢量/冗余调整时间 % 中点平衡调节:k由PI输出,限幅0.2~0.8 % t_small为冗余小矢量总时间 t_p = (1 + k) / 2 * t_small; % 正冗余小矢量 t_n = (1 - k) / 2 * t_small; % 负冗余小矢量 % 拼七段式序列:保证相邻状态只差一个电平 seq = [t_n, t_n2, t_p, d0/2, t_p, t_n2, t_n];

这段代码背后有个容易被忽略的点:d1和d2的表达式是经典SVPWM的形式,但用在VSVM里时,VV1和VV2的“坐标”要先经过虚拟矢量合成的线性变换折算。直接拿经典公式套虚拟矢量会导致调制范围失真。我在文档里专门画了每个扇区的虚拟矢量坐标表,工程复现时务必对照那个表折算,不能图省事照抄公式。

开关序列生成时,我强制做了“单步换流检查”:序列中任意相邻两个开关状态必须只改变一相,且该相电平只能从P到O或O到N,严禁P直接跳N。这个检查在代码里就是个查表条件判断,但它能拦住绝大多数导致过压的误发波问题,强烈建议保留。

模式切换的滞回逻辑也要写进代码里,我用了一个简单的模式变量mode,加上上下限阈值m_lo和m_hi:

if mode ~= DPWM_MODE && m > m_hi mode = DPWM_MODE; elseif mode == DPWM_MODE && m < m_lo mode = VSVM_MODE; end

m_hi取0.6,m_lo取0.55。切换执行的时机不在这里,而是由扇区索引更新信号触发,确保切换落在扇区边界,避免在扇区中间切换导致状态序列对不上。

4.3 说明文档与参考文献怎么整理

项目要求交付说明文档和参考文献,我按“谁接手都能直接干下去”的标准整理。文档结构分六块:拓扑与数学模型、调制策略原理、状态机与序列表、参数设计与灵敏度、仿真结果对比、工程实现注意事项。其中状态机与序列表是重中之重,我把每个扇区、每种模式下应该走的开关状态序列全部列成表格,并标注了钳位相、零矢量位置、冗余矢量顺序。

仿真结果对比部分,我做了三组对照:纯VSVM、纯DPWM、改进钳位VSVM+DPWM混合模式,分别在调制比0.4、0.8、0.95下测THD、中点电压纹波、开关损耗估算。结论是混合模式在中高调制区THD比纯DPWM低约15%,开关损耗比纯VSVM低约22%,中点纹波和纯VSVM基本持平。这些数据不只在文档里贴图,还把测量条件、滤波器类型、采样点数都写清楚,避免复现时因为测量口径不一致而对不上。

参考文献我按六个方向归档:T型三电平拓扑综述与损耗分析、虚拟空间矢量调制原始文献与改进版、三电平DPWM及钳位策略、中点电位平衡闭环方法、混合调制与载波等效实现、数字实现与死区补偿。每个方向挑近年高引文献一到两篇,再加一篇我最核心参考的文献单独标注,写清楚自己改了它哪个部分、为什么改。这样别人拿到手里知道你的方案“站在谁肩上”,也方便顺藤摸瓜扩展。

5. 实测中常见的坑:问题定位与排查方法

5.1 中点电位低频振荡没被压住

即使理论分析很漂亮,仿真里我一开始还是看到了150Hz振荡。排查后发现有两类原因。第一类是模式切换过程中,改进钳位区间把某相钳住后,剩余两相的小矢量余地不够,k值一上来就顶到限幅边界,相当于闭环失效。第二类是查表折算错误导致虚拟矢量时间算偏,中点电流没有真正精确抵消。

处理的思路是两层:先把k的限幅从0.2~0.8收窄到0.35~0.65,虽然牺牲一点动态补偿力度,但保证在任何钳位方式下都有足够的调节余量;同时在钳位区间的两端各留出一小段“过渡区”,过渡区内不进入满钳位,而是逐步把冗余矢量时间过渡给调节器。这个方法有点类似并网锁相环的软切入,能显著减少切换瞬间的振荡激励。

定位这类问题时,我的习惯是在模型里单独引出Vc1-Vc2,加一个150Hz带通滤波器观察残余分量。如果滤波后的振荡幅值在10V以内(对700V母线约1.4%),可以接受;如果超了,就分别冻结k值和钳位位置做单变量测试,很快能锁定是平衡调节器的问题还是钳位分配的问题。

5.2 THD偏高和电流畸变

混合模式下的THD问题集中在两个位置:一是扇区切换边界,二是钳位区间的进入和退出点。扇区边界出现畸变多是因为状态序列切换时,某相电平需要从一个模式的工作点跳到另一个模式的工作点,瞬时占空比出现了台阶。

解决扇区边界畸变的办法之一是把一段完整的“过渡扇区”预留出来,在过渡扇区里对两个模式的占空比做线性加权融合,而不是瞬间切换。实际跑下来,60度扇区里前面30度按A模式算、后面30度按B模式算、中间用余弦加权过渡,THD能得到明显改善,代价是损失一点点损耗优化空间。这个“一点点”值不值,取决于你的应用是谐波敏感型还是损耗敏感型。

钳位区间进入/退出点的畸变,多数来自死区效应。进入钳位瞬间,该相开关动作消失,但死区补偿还在按连续开关的模式补,两套逻辑打架,产生电压误差。解决方法是把死区补偿也做成“钳位感知型”,检测到当前相即将进入钳位区间时,逐步撤掉该相的死区补偿量,而不是一直补到底。这是我踩过最深的一个坑,写出来给后面的人提个醒。

5.3 切换瞬间的突变与噪声

还有一个常被忽略的问题是DPWM带来的共模电压突变。钳位在P或N时,该相输出直接挂到母线,共模电压会瞬间跳变半个母线电压,在电机负载上会明显表现为轴承电流和电磁噪声增大。这是DPWM这类调制的“原罪”,不是bug,但工程上必须处理。

我做了两个层面的缓解:一是在输出端加共模扼流圈,这是硬件手段,见效直接;二是在调制层面对钳位位置做微调,把钳位区间尽量安排在该相电流极性不发生翻转的时段,减少钳位切换时的大电流硬切,从源头降低共模dv/dt。说句实在话,共模问题靠算法只能缓解,彻底解决还是要硬件和算法配合。

在仿真里验证切换突变时,不要只看电压电流的宏观波形,要盯着单个开关周期的PWM脉冲展开看。我习惯把同一扇区边界前后各5个开关周期的占空比指令逐拍导出来对比,如果发现占空比有超过一个载波周期的连续阶跃,就说明切换逻辑里存在状态跳跃,尽早修掉比到实验台排查高效得多。

5.4 常见问题速查表

现象可能原因排查与处理
中点电压150Hz振荡大k值限幅过紧、虚拟矢量时间折算错误收窄k限幅、检查扇区折算表
扇区边界电流台阶模式切换不在扇区边界强制切换发生在零矢量中心
THD偏高但波形无明显畸变死区补偿与钳位不匹配做钳位感知型死区补偿
共模噪声明显增大DPWM共模电压突变加共模扼流圈、微调钳位位置
高调制比下母线利用率不足VSVM虚拟矢量调制范围受限调制比>0.93切DPWM极限模式
模式间反复横跳切换阈值无滞回设置m_hi/m_lo滞回带

6. 个人经验总结与可扩展方向

自己做完整套混合调制策略,最大的体会是:这类算法的难点从来不在某个公式,而在边界和切换。VSVM的原理五分钟能讲完,DPWM省损耗的思路一句话也能说清,但真正让它们稳定协同工作的,是扇区边界的对齐、切换滞回、死区补偿这些看起来不“高级”的工程细节。仿真里怎么调都完美的波形,一加上死区、直流侧杂散电感、采样延时就全变样,所以做这个方向,先把状态机和边界条件写好,再去琢磨优化算法。

如果你要把这套方案往下延展,可以考虑三个方向。一是把中点平衡调节器升级成模型预测型的,从“基于偏差调节k”变成“基于未来一个开关周期内中点电荷预测来选k”,动态响应会更好。二是把混合策略移植到FPGA或者DSP的硬件实现上,扇区查表和时间计算都适合并行化,FPGA做七段式序列生成尤其顺手。三是结合故障诊断,利用DPWM钳位区间天然提供的“某相不动作”窗口,在线检测开关管开路故障,这样一套调制策略同时兼顾性能、损耗和可靠性。

最后分享一个我的个人习惯:调试三电平时,每次跑到扇区边界我都会单独盯一下Vc1-Vc2的瞬时值,而不是只看总母线电压Vdc。这个习惯救过我很多次——两个电容电压一个升高一个降低时,总电压纹丝不动,但器件应力可能已经悄悄超了。波形好不好看是表面,中点电位的瞬时行为才是三电平真正的温度计。希望这篇记录能让你在复现混合调制策略时少踩几个我踩过的坑。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询