做三相三电平整流器这个Simulink仿真是很多电力电子方向的同学和工程师绕不过去的一道坎。我最近帮课题组把一套基于PI双闭环的三相三电平整流器模型完整调通从主电路参数计算到PI参数整定再到波形调试踩了不少坑。这篇就把整个建模和调试过程里的关键东西梳理一遍包括为什么选三电平拓扑、双闭环的整定思路、Simulink里每个模块怎么搭、以及仿真波形出现异常时怎么定位问题给后面做类似项目的朋友一个可以直接参考的路径。先说清楚这篇针对的是最常见的NPC中点钳位三相三电平整流器控制方式是双闭环PI调制部分这边用了载波层叠PWM。如果你是要做SVPWM方向大部分建模思路共用但调制环节需要单独替换掉。1. 为什么选“三相三电平双闭环”方案选型与整体思路1.1 项目背景什么样的场合需要这个模型这个仿真最初是为了验证一台新能源充电设备的AC/DC前端。输入是市电三相380V/50Hz输出直流母线需要稳定在650V左右同时要求网侧功率因数接近1电流谐波要控制住。这种需求在储能变流器、UPS、充电模块、电机回馈节能装置里非常常见本质就是一个高功率因数PWM整流器。很多人一开始会先考虑两电平因为教材里讲得多、模型简单。但实际项目里一旦做到几十千瓦以上、或者对并网谐波有严格要求的场合两电平的短板就很明显。所以这边直接采用三电平NPC拓扑用双闭环做控制。这篇博文就是要把这样一个完整方案在Simulink里的落地过程讲清楚。1.2 三电平相比两电平到底赢在哪里做一个表格对比一下看起来最直观对比项两电平PWM整流器三电平NPC整流器输出电压电平数每相输出Ud/2和-Ud/2两种电平每相输出Ud/2、0、-Ud/2三种电平单管耐压承受整个直流母线电压承受半个直流母线电压电流谐波较大LF滤波器体积大等效开关频率提高谐波明显减小滤波器体积需要较大电感电容可以缩小体积降低损耗控制复杂度简单成熟需要处理中点电位平衡等额外问题适用功率范围几十千瓦以内常见中高压大功率场合优势明显为什么三电平的谐波能降下来因为每个桥臂输出相电压多了一个零电平台阶合成出来的正弦波更接近理想正弦等效地就是提高了开关频率。同一开关频率下三电平的网侧电流THD能比两电平低很多这是工程上最实在的收益。单管耐压减半也很关键。直流母线650V的时候两电平的IGBT至少要选1200V档三电平每个管子只承受325V选600V档的管子就够。这个差异不仅影响器件成本还直接影响系统可靠性。做产品的人都会盯着这一点因为功率器件耐压等级越高价格越贵而且开关损耗通常也更大。当然三电平也有自己的新麻烦最典型的就是中点电位漂移。因为上下电容分压给中点负载不平衡或者调制不平衡时中点电压会偏导致上下电容不均压、谐波恶化严重的会损坏开关器件。这个后面调试部分专门讲。1.3 双闭环控制的整体结构外环管电压内环管电流控制部分是这个仿真里真正的大脑采用经典的双闭环结构外环是电压环采样直流母线电压Ud和给定Ud_ref比较经过PI调节器输出一个量作为内环d轴电流的参考值Id_ref。内环是电流环在dq同步旋转坐标系下工作两个PI调节器分别控制d轴有功电流和q轴无功电流输出叠加前馈解耦项后得到调制信号。为什么电压环的输出不是直接给调制信号而是给一个电流参考因为直流侧电容的电压变化其实是由电流充放电决定的先控制电流再控制电压就能把“慢”的电压响应和“快”的电流响应分离开工程上叫做内快外慢。一句话概括电压环管长期目标电流环管短期跟踪。生活化类比一下这就像团队管理电压环是负责人负责拍板“我们需要多少资源”电流目标电流环是执行团队要快速追上资源目标。如果把负责人的指令直接下达到执行细节中间缺了电流环系统就会又慢又振。实际仿真中这种结构有两大好处。一是动态响应好负载突变时电压掉得少、恢复快因为电流环能够提前响应二是限流保护方便把Id_ref幅值饱和上限一限电流就顶住不会过冲这对保护开关管非常重要。2. 先把参数算明白主电路与PI双闭环参数设计2.1 主电路参数估算直流电压、电感、电容怎么取仿真模型不是凭空搭的参数首先要算对后面的波形才谈得上“看得入眼”。我这个系统设计指标是三相380V输入、直流输出650V、额定功率20kW、开关频率10kHz。直流母线电压这里取650V原因很简单380V交流线电压的峰值是380乘以根号2大约537VPWM整流要在交流电压峰值之上才能保证对电网电流的可控性所以直流电压必须大于537V。实际工程一般预留10%~20%裕量650V附近是常见选择。交流侧滤波电感的选择经验公式是L ≈ (Ud - √3 × Em) / (2 × ΔImax × fs)其中Em是相电压峰值311VΔImax是允许的电流纹波峰值通常取额定电流峰值的10%~20%。额定电流大约是20kW/(380V×√3)约30A峰值约42A纹波取5~8A。一算大概在2~4mH。实际我取值3mH这是工程上比较稳妥的中间值既保证纹波足够小动态响应也不至于太迟钝。直流侧电容的选取工程经验是δ C/U根据电压波动允许值和负载阶跃大小来估算。常见做法是取容值使得满载时电压纹波在设计范围之内并在负荷阶跃时电压跌落不超过5%。我这个系统里取了两组4700μF电容串联等效约2350μF实际组内调试时每组还并联了吸收电容。这里有个重要提醒在Simulink里电容值不要照抄“理论最小值”因为仿真里电容取得过小启动冲击和负载突变时的电压跌落会让你怀疑人生调试起来运气成分很大。宁可稍微取大一点。2.2 电流内环的PI整定先解决“能跟得上”电流内环工作在dq坐标系下以d轴为例被控对象近似为L di_d/dt e_d - u_d - R i_d ωL i_qR是线路电阻和开关管等效压降的综合体现实际仿真里很小约0.01Ω。由这个方程可以看到d轴电流和q轴电流之间存在ωL i_q的交叉耦合项不能直接当成两个独立的回路来调。处理办法是在PI输出上叠加前馈解耦项u_d e_d ωL i_q - u_d_PIu_q e_q - ωL i_d - u_q_PI这样处理后d、q轴可以分别独立整定。电流环PI参数有工程整定法把被控对象等效为一阶惯性环节期望闭环带宽取值通常为开关频率的1/10~1/20。10kHz开关频率下带宽取1000~1500rad/s比较合适那么Kp和Ki可以按下式估算Kp L / τKi R / τ其中τ 1/带宽。代入L3mH、带宽选1200rad/s可得Kp约为3.6Ki约为12。不过这只是初始值实际一定要带上仿真在线调整。我用这个初值进仿真后电流环跟踪效果不错然后手动微调到Kp4.5、Ki50时波形更干净。有个坑要提前说两个电流环PI的输出都要加限幅一般限幅按调制波峰值1.0来设。如果不限幅启动瞬间PI积分冲得很高调制波会长时间饱和在1电流过冲非常大。2.3 电压外环的PI整定慢半拍是为了稳电压环的整定比电流环讲究因为它和被控的大电容相关反应本来就慢。如果电压环PI调快了最典型的现象就是电压虽然能稳住但内环给定电流一直在剧烈波动整个系统嗡嗡响。整定经验是电压环带宽取电流环带宽的1/5到1/10让外环“慢半拍”。我这套系统电流环带宽1200rad/s电压环带宽取120~200rad/s对应PI初值选Kp ≈ 2、Ki ≈ 40。仿真中发现电压环的Ki不能太大否则在负载切换时会出现低频振荡。你可以观察电流内环的给定波形来判断——如果负载恒定但Id_ref在抖说明电压环给你“抖”了减Ki。启动方式也很有讲究。仿真刚开始电容电压是0如果直接给Ud_ref650V电压外环PI会迅速把Id_ref推到上限充电电流巨大会导致波形异常甚至看起来像“炸了”。因此建议启动采用斜坡给定Ud_ref从0斜坡爬升到650V爬升时间设定在0.1~0.2s。这样启动电流平滑波形正常后续观察动态响应也更准确。3. Simulink模型搭建全流程从主电路到控制环3.1 主电路搭建三相电源、三电平NPC桥臂、直流侧打开Simulink先加载Simscape Electrical工具箱老版本叫SimPowerSystems界面叫powerlib不同版本名称有差异别找不到模块。搭建顺序从后往前理先放直流侧再放桥臂再接交流侧符合“先定功率流向”的习惯。直流侧用两个串联电容中间节点标为N就是中点。两个电容各加一个电压测量模块分别测上下电容电压后面中点平衡要用。直流侧并联一个负载电阻模拟后级负荷阻值计算方法很简单——满载650V/20kWR ≈ 650²/20000 ≈ 21Ω。如果想看动态响应可以把负载电阻做成阶跃切换。三电平NPC桥臂我建议先用Universal Bridge模块把Bridge Type选为“Three-level”这是最简单靠谱的做法内部已经搭好Igbt/Diode并带有中点钳位二极管。如果你是做教学演示需要展示拓扑内部结构也可以手动搭每相四个IGBT串成桥臂上下两个二极管反向并联中间用两个钳位二极管连到中点。手动搭的好处是拓扑看得清楚但连接很容易错检查起来费时新手建议先用Universal Bridge跑通整体功能。交流侧放三相电压源和测量模块电压源设为三相幅值311V、频率50Hz、相位互差120度。交流侧和桥臂交流输出之间串入三个电感和采样模块电感的寄生电阻建议加0.01Ω不加的话有些求解器会对纯感性回路报代数环或数值病态。3.2 采样与坐标变换PLL、Clarke变换、Park变换要控制电流内环必须把三相静止坐标下的交流电流变换到dq同步旋转坐标。这里第一步需要电网电压的相位θ使用的是锁相环PLL。Simulink里可以直接用自带的“3-phase PLL”模块它会输出角度ωt和sin、cos一个向量拉出来就能用。需要注意的是PLL模块输出角度的单位是弧度并且模块里有一个初始频率参数要设置为50Hz否则启动时锁相收敛很慢前几个周期dq轴电流会抖得厉害。三相电流采样值经过Clarke变换得到αβ分量再经过Park变换得到dq分量。公式上可以自己搭运算模块但更快的方式是用Simscape Electrical库里的“abc to dq0”模块直接把角度和三相量输入进去。不过很多老教材里写的公式符号和这个模块的变换方向不完全一样你只需要记住一个优先级一切以模块实际输出的dq波形为准。仿出来电流能稳在常数就说明变换方向对了如果波形在剧烈跳动或者直流分量是负的优先检查角度和变换方向是否匹配。3.3 三电平PWM发生逻辑载波层叠方案实战三电平调制我这里选的是载波层叠PWMCPWM具体用同相层叠方式。原理是两个三角载波一个位于0~1区间另一个位于-1~0区间。归一化调制波m在[-1,1]之间将m分别与两个载波比较。当m大于上方载波时输出“1”连接到正母线当m小于下方载波时输出“-1”连接到负母线若都不满足则输出“0”连接到中点。这个“1/0/-1”的中间量再经过一个门极信号分配逻辑转换成四个IGBT的开关信号。我写了一个MATLAB Function模块做状态映射代码很简单function [T1,T2,T3,T4] level2gate(level) % level: -1/0/1映射到NPC桥臂四管门极 % 标准NPC桥臂T1T2为上两管T3T4为下两管 T1 0; T2 0; T3 0; T4 0; if level 1 % P状态上两管导通下两管关断 T1 1; T2 1; T3 0; T4 0; elseif level -1 % N状态下两管导通上两管关断 T1 0; T2 0; T3 1; T4 1; else % O状态T2T3导通电流流经钳位二极管 T1 0; T2 1; T3 1; T4 0; end end两个条件要特别核对一是T1和T3不能同时导通T2和T4不能同时导通这组互补关系一旦搞错仿真里会直接过流二是实际硬件里两个互补管之间必须加死区时间仿真如果用了理想开关不开死区可能现象不明显但你做半实物或者硬件在环时迟早要吃这个亏。仿真阶段可以在IGBT模块参数里设置Turn-on/Turn-off延迟来模拟死区。但要注意上述映射逻辑的默认T3/T4定义针对的是从上到下T1、T2、T3、T4布局的标准NPC。不同教材管脚命名有差异接完务必先空载试跑观察PWM波形而不是直接带负载别偷这个懒。3.4 双闭环控制回路搭建与仿真参数设置控制回路搭建顺序是从外向里电压外环采样直流母线电压和斜坡给出的参考值比较过PI调节器输出限幅后作为Id_refq轴给定Iq_ref直接设0实现单位功率因数。两个电流内环的PI输出分别叠加上前馈解耦项得到Ud_ref、Uq_ref再经过Park反变换得到αβ下的调制波最终归一化后送给三电平PWM发生器。仿真求解器有讲究开始时我用了ode45结果跑0.5秒仿真愣是卡了快十分钟因为PWM开关动作带了大量高频切换连续变步长算法会频繁衰减步长。后面改成ode23tb并把最大步长设为5e-5仿真速度快很多波形精度也没问题。如果追求更快的速度可以把开关管设置成理想开关模型关闭导通压降和结电容等寄生参数。我心里默认的仿真时长是这样的启动加斜坡0.15s0.35s时刻加一次负载阶跃仿真总时长0.6s这样既能看到启动阶段、稳态阶段也能看到动态响应波形信息很完整。4. 仿真调试、波形分析与常见问题排查4.1 正常波形长什么样建立“好波形”的直觉模型调通之后你要先知道“正常”长什么样才能判断异常。第一个看母线电压波形从0开始跟着斜坡爬升到650V大概0.25s后稳定稳定后纹波峰峰值应该在10V以内大概1%左右。0.35s负载突变时会有一个小幅跌落和恢复过程恢复时间一般不超过30ms。第二个看网侧电流波形和电网电压波形电流应该是非常接近正弦的波形和相电压基本同相位。把电流波形放大能看到一周期内有明显的阶梯状PWM纹波那是正常现象关键是基波要正弦且没有大的畸变。第三个看dq轴电流稳态时Id是平直的直流Iq在0附近。如果Id上面叠加了明显的100Hz纹波说明电压外环PI的Ki偏大或者两个直流电容的中点电位出现了不平衡需要处理。4.2 高频频踩的坑中点电位漂移、启动过冲、谐波异常中点电位漂移是NPC三电平仿真里最难缠的一个问题也是最容易碰到的。现象是上下两个电容电压不一致比如一个330V一个320V甚至差距继续拉大。这会导致相电压波形不再对称、电流谐波增大严重时电容不均压可能直接让某个电容过压损坏。在仿真里我验证过几种处理办法的差别。最顶用简单的办法给直流侧两个电容各并联一个阻值较大的均压电阻几百kΩ级别这样静态漂移能被电阻显著拉低动态漂移也会改善很多。但要注意这只是治标工程产品不能靠电阻硬扛因为电阻一直耗电。而要真正解决需要在中点电位出现偏差时调整调制策略比如在调制波里注入合适的零序分量来改变中点电流的流入流出或者在三电平SVPWM里重新分配冗余小矢量的作用时间。做课程设计或者课题出个结果的话用均压电阻或者简单的零点电流调节就够交差了做装置就得认真搞动态平衡了。启动过冲则是另一种高频问题而且新手最容易碰到。现象是合闸那一瞬间电流直接顶到上百安培波形直接飞出去。原因就是我前面说的直接给了满幅电压参考。处理办法是斜坡给定以及给电压环PI输出也就是Id_ref一个合理的限幅比如限制在额定峰值电流的1.2倍以内。我实际调试中二者配合启动电流峰值控制在额定电流以内。谐波另一个容易被忽视的来源是电感取值偏小。如果电流波形虽然正弦但开关频率纹波特别大、THD计算出来明显超标那就检查电感和开关频率的搭配。开关频率10kHz、电感3mH电流纹波控制效果是让人满意的如果电感降到1mH或更小波形就会明显毛糙很多。4.3 常见问题速查表一句话定位问题整理了一份我自己排查时常用的小表格按“现象-原因-对策”来查现象大概率原因排查与对策启动瞬间电流飞起电压环积分饱和/无斜坡加斜坡参考、限制Id_ref上限、电压环限幅母线电压稳不住缓慢振荡电压环PI太激进降Kp和Ki验证带宽是否比电流环慢5~10倍电流dq分量有明显振荡电流环PI参数不匹配缩小Kp检查是否把前馈解耦项叠加正确上下电容电压差越来越大中点电位失衡加均压电阻、检查三相调制波对称性、必要时加中点电压平衡PI电流纹波非常大电感太小或开关频率过低提高开关频率或增大电感取值仿真速度很慢、卡死求解器不适合PWM高频切换用ode23tb离散化模型、限制最大步长、关掉开关管寄生参数PLL锁不住dq电流乱跳初始频率参数没设对或角度方向反了检查PLL频率初值核对Park变换角度方向带负载后电压跌落大电压环带宽不够或电容偏小适当加大电压环Kp权衡后加大直流电容这个表看着简单但排查效率极高。我在调下一个类似模型时基本就是先看母线电压波形再看dq电流波形对照表里排除两个最可能项基本十分钟内就能锁定问题方向。4.4 调试顺序建议与一个容易忽略的细节最后强调一下调试顺序这个顺序能让你少走太多弯路。我个人习惯按下面的流程先把PLL锁相调好确认输出角度稳定、dq电流变换后不再跳变。开环给固定调制波确认桥臂PWM输出和三相电压波形基本正常。只闭合电流内环给定Id_ref为常数观察dq电流能够跟踪电流波形正弦。闭合电压外环采用斜坡启动逐步加载观察整体动态。很多同学一上来就把双闭环全闭合一出问题根本不知道是内环没调好还是外环调太猛切线一片混乱。分步调试虽然是老生常谈但它的本质是让你把“问题定位”这个工作拆细排查速度反而最快。还有一个细节容易被忽略dq变换中的角度方向。不同的书和不同的工具包里Park变换的矩阵定义可能差一个负号有的模块输出的是q轴滞后还是超前你要直接看仿出来的波形来判断方向对不对。如果Id、Iq调换位置了PI整定参数对不上波形肯定会乱。不要迷信公式以波形为准。这个习惯会帮你省掉至少半天的排查时间。做完整套仿真回过味来最深的感受是三相三电平整流器本身不算难难的是把“拓扑带来的新问题”中点平衡和“双闭环的串级整定逻辑”想明白。你把这些想透了换SVPWM、换两电平、换更高功率等级都是在同一个框架上做局部替换而已。如果后面有人问到SVPWM版本或者带不平衡负载的工况我再单独写一篇展开。
阅读完成 · 觉得有帮助?