接到这个项目的时候需求其实很直白一条10kV三相母线上的负载波动很大平均功率因数只有0.85上下现场一开大设备站内电压就往下掉。以前用的机械式电容器组投切太慢要么过补、要么欠补而且在动态冲击负荷面前基本无能为力。经过几轮选型最终方案敲定用级联H桥型STATCOM做无功补偿。整个仿真平台基于Matlab 2015a搭建主电路直挂10kV电网核心研究方向落在了无功补偿效果和直流侧电容电压的稳定性上。这个项目我从头到尾做了差不多三周最折磨人的不是主电路拓扑而是每个H桥自己的电容电压都像有独立的想法——你若不去控制它它就会慢慢漂移最终逼停整套装置。这篇文章就把我在Matlab 2015a环境里做10kV级联H桥型STATCOM仿真的一套完整做法写下来包括主电路参数怎么定、直流侧电容电压怎么控制、模型怎么搭、调试时踩过哪些坑。适合正在做中压链式STATCOM课题的学生以及刚接触高压无功补偿仿真的工程技术人员参考。1. 为什么选级联H桥而不是两电平或变压器耦合式STATCOM1.1 10kV等级下两电平方案和变压器方案的尴尬先解释一个容易被忽略的问题10kV不是实验室里的380V三相线电压10kV对应相电压有效值约为5774V峰值高达8165V。两电平STATCOM如果要直挂这个电压等级IGBT必须大量串联均压动态均压和短路保护都极其麻烦工程上几乎没人这么干。变压器耦合式STATCOM可以把电压降下来用低压器件实现但变压器体积大、损耗高、响应速度被变压器漏感和饱和特性拖慢而且成本不低在无功补偿这种对动态响应有要求的场合并不友好。而级联H桥型STATCOM的基本思路是把一相桥臂拆成多个相互独立的单相全桥逆变器然后把它们串联起来。每个H桥单元只承担总电压的一部分比如每相6个H桥串联每个桥只需要承受1600V到1700V左右的直流侧电压IGBT选型压力就小得多。整相输出电压是多个电平叠加的阶梯波谐波特性也远好于两电平方案甚至可以省掉笨重的升压变压器直接经过并网电抗器接到10kV母线上。级联结构带来的最大好处就是模块化器件电压等级低、谐波小、扩展容量只需要增加串联单元数量。这些优点让它在6kV、10kV以及35kV等中高压动态无功补偿场景里成了主流方案。如果你看到市面上很多SVG静止无功发生器产品内部核心拓扑基本就是链式级联结构。1.2 级联结构引入的新问题电容电压变成了N份而不是一份选择级联方案的同时也给自己埋下了一个大麻烦——直流侧电容电压不再是一个整体而是每相N个H桥就有N个悬浮的直流电容。在两电平STATCOM里只有一个直流母线电容电压外环稳住这个电容就够了控制回路相对简单。但在级联H桥结构里每个H桥的直流电容彼此隔离它们各自从主电路吸收能量又各自向电网释放能量。由于开关器件导通压降、触发脉冲延时的细微差异以及PWM调制波在不同单元上的相位差异这些电容电压会出现不均衡有的往上飘有的往下掉。电压失衡的后果非常严重。如果某个单元的直流电压过高电容和功率开关器件就会超过安全工作区可能直接炸掉模块如果某个单元电压过低它输出的电平就会偏离预期导致总输出电压畸变谐波增大。所以级联H桥型STATCOM的控制目标实际上被拆成两层外层维持整相直流侧平均电容电压稳定内层把每个H桥电容电压之间的偏差拉回到允许范围内。这两个目标缺一不可也是整个仿真项目里最核心的难点。2. 10kV样机主电路参数与直流侧电容电压目标的工程设计2.1 每相级联单元数N怎么定先定直流电压再反推调制比做这台10kV级联H桥型STATCOM仿真时我首先把装置的额定容量定在了±5Mvar逻辑是作为一条10kV母线动态无功支撑5Mvar量级可以覆盖大多数现场波动情况又不至于让仿真模型过于臃肿。接着要确定每相级联多少个H桥。这需要从器件耐压和调制比两个方向去反推。10kV线电压对应的相电压峰值为8165V ≈ 10000 × √2 / √3每相N个H桥串联后用SPWM调制时理论上每个H桥输出的基波电压峰值可以接近其直流侧电压Udc。但实际调制比M不能取到1通常取0.8左右留出动态调节余量也给载波比和谐波抑制留空间。于是要满足N × M × Udc ≈ 8165V我按N6、Udc1700V、M0.8来配平算出来的结果是6×0.8×17008160V刚刚能覆盖电网相电压峰值。直流侧1700V的电容电压比较适合用3300V等级的IGBT关断过压尖峰和器件安全裕度都能留出来。我也对比过其他组合比如N8配Udc1400V、N10配Udc1100V。单元数越多等效电平数越多谐波越好但控制器需要处理的载波通道和均压调节也越多调制同步复杂度直线上升。N6在这台装置里算一个平衡点模块数量适中单桥耐压可用3300V器件调制比也合理PWM通道数量在Simulink里也好管理。2.2 直流侧电容容值的简化计算用脉动能流反推直流侧电容容值怎么定很多初学者喜欢拍脑袋选一个几毫法的值。实际上这个值可以由允许的电压纹波直接推算。级联STATCOM的每个H桥在运行时从电网吸收的单相瞬时功率含有两倍工频的脉动分量。这个脉动功率会不断向电容充电和放电导致Udc上叠加一个100Hz的纹波。如果纹波过大一方面会恶化输出波形质量另一方面也可能造成过压保护动作。工程上常用的简化公式如下C ≥ P_mod / (2 × ω × ΔU)其中P_mod是单个H桥承担的最大等效视在功率ω是电网角频率100πΔU是允许的电压纹波幅值。以±5Mvar装置为例三相总容量5Mvar每相容量约1.667Mvar每相6个H桥每个桥的P_mod约为278kVA。如果允许的纹波为直流电压的5%即ΔU85V则C ≥ 278000 / (2 × 314 × 85) ≈ 3.06mF所以我建模时选用了3000μF左右的电容值后面根据波形微调到3200μF。如果你希望纹波更小电容要相应加大如果只是快速验证控制算法也可以先放大电容让仿真稳定下来等控制调通后再把电容改回设计值看真实纹波表现。2.3 并网电抗器与载波移相角两个容易被低估的参数STATCOM和电网之间必须串联一个并网电抗器它的作用有两个一是滤除PWM产生的高频开关纹波二是让装置输出电压和电网电压之间形成一定的相位差从而控制有功和无功交换。电抗器取太大无功响应变慢系统动态性能差取太小开关纹波电流很大波形难看器件电流应力也高。工程上常见做法是取装置额定阻抗的0.1到0.2倍。基准阻抗为Z_base U² / S (10kV)² / 5Mvar 20Ω取0.15pu也就是3Ω。对应的电感量为L 3 / (2π × 50) ≈ 9.55mH载波移相角方面6个H桥级联采用单极性倍频SPWM调制时各H桥的三角载波相位依次错开π/N即30°。这样整相输出的等效开关频率大幅提高低次谐波被很好地抑制并网电流的谐波集中在高频段后级电抗器可以用更小的体积实现同样的滤波效果。仿真中对这部分不敏感的话可能看不出太大差别但在调试谐波时它的影响会非常明显。主电路参数整理如下表方便直接参考参数名称数值说明电网线电压10kV50Hz三相交流装置额定容量±5Mvar可感性、容性双向连续调节每相级联数N6单相全桥模块串联单桥直流侧电压1700V3300V器件方案直流电容3200μF允许纹波约5%并网电抗器9.55mH约0.15pu载波频率1000Hz载波移相30°3. 控制策略有功通道与无功通道分开再解决直流电压均衡3.1 电流指令的生成方式dq坐标系下的无功与有功解耦级联H桥型STATCOM接在电网上本质上是一个电压源通过调节输出电压的幅值和相位来控制注入电网的电流。稳态分析时如果忽略电阻STATCOM与电网之间的有功交换取决于二者电压的相位差无功交换取决于幅值差。但在仿真控制里更通用的做法是在同步旋转dq坐标系下分解电流。用三相PLL锁住电网电压相位并把电网电压矢量定向到d轴那么交流电流的d轴分量对应有功电流q轴分量对应无功电流。于是控制目标变得非常清晰无功电流的指令值iq_ref由系统的无功补偿需求决定。比如负载无功为感性2MvarSTATCOM就输出容性无功iq_ref相应设为目标值。有功电流的指令值id_ref由直流侧平均电容电压的偏差决定。电容电压低于目标值时STATCOM需要从电网吸收少量有功来给电容补充能量电容电压高于目标值时让装置向电网释放少量有功。这样做的好处是无功补偿和直流电压维持变成了两条相对独立的控制通道动态响应不会互相拖累。3.2 电流内环PI控制与解耦补偿在dq坐标下三相电流之间是存在耦合的因为电感上会感应出ωL i_q和ωL i_d的交叉项。直接把两个PI控制器分别打在id和iq上动态过程中会出现d轴和q轴互相干扰表现为无功阶跃时有功通道抖动。所以需要在电流内环加入解耦项。设网侧电压d、q分量为ed、eqSTATCOM输出侧电压为vd、vq电感为L等效电阻为R则vd ed R·id L·(did/dt) - ωL·iqvq eq R·iq L·(diq/dt) ωL·id写成控制律时把ωL·iq和ωL·id作为补偿前馈项配合PI调节器的输出就能实现近似解耦。PI参数可以先按连续域工程整定法给初值电流环带宽取2000rad/s左右则Kp约为L×2000≈19Ki约为R×2000≈200然后在仿真里逐步微调。要注意的是这个初值是基于9.55mH电感和0.1Ω等效电阻的直接换到别的装置上需要重算。3.3 直流侧电容电压分层均衡平均值控制加调制波微调接下来是整个项目里最容易崩的部分——直流侧电容电压均衡控制。我把这部分控制分成两级来理解。第一级是平均值控制也就是电压外环。取同一相所有H桥电容电压的平均值和设定值1700V做比较经过PI调节器输出id_ref控制整相与电网的有功交换把平均电压稳定在目标值。这一级保证了“整体不亏”。第二级是均衡控制处理每个H桥之间的偏差。对第n个H桥计算它的电容电压Udc_n与该相平均电压Udc_avg的偏差经过比例调节器生成一个调制波修正量Δm_nΔm_n K_bal × (Udc_avg - Udc_n)然后将这个修正量叠加到该相总的调制波信号上。叠加上去以后电压偏高的模块会被稍微压一下电压偏低的模块会稍微多吸收一点能量通过这种方式把各模块电压往平均值上拉。这里有两个实操细节值得注意。第一个是修正量必须限幅我习惯限在±0.05的调制波幅值范围内否则某个模块电压偏差过大时会把调制波推到过调制区反而引发额外谐波。第二个是平均电压环的调节速度要放慢时间常数取几十毫秒级别均压环速度可以快一些但也不能比电流内环更快否则容易引起系统震荡。我在Matlab里写的均压环实现逻辑大致如下% 输入Udc_n 当前模块电压Udc_avg 相平均电压 % 输出delta_m 该模块调制波修正量 error Udc_avg - Udc_n; delta_m K_bal * error; if delta_m 0.05 delta_m 0.05; elseif delta_m -0.05 delta_m -0.05; end4. Matlab 2015a建模仿真模型搭建与参数落位4.1 2015a环境下的模块库路径与版本差异Matlab 2015a里的电力电子仿真模块还属于SimPowerSystems体系在库浏览器里的路径通常是Simscape/SimPowerSystems/Specialized Technology。现在网上很多新教程写的是Simscape Electrical路径和模块名称都有变化如果你手头只有2015a直接照新教程找模块会找不到这点很容易卡住。我搭模型时的核心模块有这几个Three-Phase Source表示10kV电网一般设为理想电压源串一个小内阻。Three-Phase V-I Measurement测量接入点电压电流。Series RLC Branch做并网电抗器要注意把串联电阻设置为较小值比如0.1Ω防止数值振荡。H桥子模块需要自己封装不能直接用Universal Bridge当级联模型用。Powergui是必须放的仿真模式要设置为离散。4.2 H桥子模块与载波移相PWM的实现方式单个H桥子模块我在Simulink里用4个IGBT/Diode搭建。IGBT选型可以直接用SimPowerSystems里的IGBT/Diode模块驱动信号分为两组左上和右下桥臂一组右上和左下桥臂一组同组内互补导通留0.5μs死区时间。PWM部分我建议不要直接用Simulink自带的PWM Generator而是用Repeating Sequence生成三路三角载波分别给三相使用。每相内部的6个H桥使用同一路三角载波频率但相位偏移不同。在Matlab 2015a里给每个Repeating Sequence的相位参数设置为载波周期的分数即可。例如载波频率fc1000Hz周期1ms6个H桥的载波相位依次错开周期/6约0.1667ms等效移相角30°。调制波由控制部分生成是一个三相调制信号。每个H桥的比较逻辑是调制波信号加上该模块的均衡修正量Δm后与三角载波比较产生PWM脉冲如果调制波大于载波左上桥臂导通否则关断。反相后经过死区电路驱动另一组IGBT。这里有一个我在2015a里踩过的坑Repeating Sequence的采样时间如果设置不当生成的三角波会带有明显的阶梯感和连续三角波对比后PWM输出会有毛刺。解决办法是把Repeating Sequence的Sample Time设为和仿真步长一致让三角波按固定离散点刷新这样在离散仿真里反而是最平滑的。4.3 无功目标切换与观测变量设置为了验证无功补偿的动态响应我在模型里加了一个阶跃切换的q轴电流指令。先在0到0.2s设iq_ref0装置只维持直流电压0.2s时切入感性补偿指令设为-2Mvar对应的电流0.5s时再切到容性补偿指令设为2Mvar对应的电流。这样能完整观察装置从空载到感性、再到容性补偿的全过程。观测变量方面除了常见的电网三相电压、三相电流我额外把以下信号导出到Scope各H桥的直流侧电容电压Udc_1到Udc_6用于观察均压效果。三相总平均电容电压用平均值模块算出。系统侧无功功率和功率因数用Three-Phase Active Reactive Power模块测量。并网电流的FFT分析结果用于检查谐波是否在合理范围内。5. 波形验证与调试中的典型坑5.1 怎么看补偿效果先关装置再开装置验证无功补偿效果时我习惯先跑一组“不投STATCOM”的基准波形。把STATCOM的PWM脉冲全部封锁只保留负载在运行可以看到系统侧电流明显滞后于电压功率因数在0.85附近波动。随后解除封锁让装置投入工作经过第一个动态过程后系统侧电流相位会逐渐向电压靠拢功率因数稳定到0.99以上。从波形上看电网侧电流会从感性电流变成接近纯有功电流这个视觉差异非常直观。如果补偿后电流和电压之间仍然有明显相位差说明无功指令的方向或者dq变换的符号约定反了需要回到控制部分检查。直流侧电容电压在稳态时应当稳定在1700V左右纹波不超过设计值。6个H桥的电压波形应该基本重合如果看到某一条曲线明显偏离其他曲线说明均压环没有生效这是重点关注对象。5.2 直流电压发散这个坑我几乎每次都会遇到第一次做整个仿真联调时我把6个H桥电容的初始电压分别设成了1700V、1690V、1680V等不同值模拟真实工况下电容电压的不一致性。结果一合闸某个模块的电压直接往上冲另一个模块的电压一路往下掉整个仿真很快就因为过压保护而中断了。排查过程我建议按这个顺序来能省下大量时间先把无功指令设为零只让平均值电压环和均压环工作看各电容电压能否收敛。这时候如果还在发散问题基本在均压控制本身。检查PWM相位。载波移相角度如果错位会导致同一相内不同模块的导通时间明显不均衡电压自然无法稳定。检查调制波修正量的符号。均压环算出来的Δm方向如果反了控制不仅不能抑制偏差反而会放大偏差导致电压快速发散。如果仿真一切正常但收敛速度非常慢先临时增大K_bal系数把均压环调得激进一些看到波形收敛后再把系数回落。这是一个很实用的定位方法。5.3 电流毛刺、谐波超标与仿真步长的关系还有一个频率出现的现象是无功补偿没问题直流电压也稳定但并网电流的波形毛刺特别多FFT分析显示谐波分量完全压不下去。这往往是仿真步长和PWM载波频率的配合出了问题。我在Matlab 2015a里用离散求解器跑这个模型仿真步长Ts5μs。如果步长放到50μsPWM脉冲的上升沿/下降沿定位精度就会损失很大出来的电流波形毛刺明显增加。反过来如果步长设成1μs波形确实漂亮但5Mvar容量的仿真模型跑一次几百毫秒的暂态要等很久。我的建议是稳态拉长波形观察用5μs步长够用做短期暂态分析、看精细开关过程时再把步长缩到1μs到2μs。另外一个辅助手段是在IGBT上并联RC缓冲支路虽然会略微增加损耗但能显著抑制仿真中的数值振荡。5.4 电压外环参数调不好的两个现象电压外环PI参数我也会单独拿出来说因为它的调节质量直接影响无功补偿的动态过程。电压外环调的太慢直流电压在无功阶跃后会长时间偏移表现为补偿电流动态过程拖尾调的太快容易和电流内环耦合出现直流电压的振荡。调试时建议先断开均压环只用平均值电压环和电流内环跑空载状态把电压外环调到“合闸后电压经过一个平滑过渡稳定到1700V、几乎没有超调”的程度再投入均压环。这样分开调试出问题时定位会快得多。6. 从仿真到工程接下来值得继续深入的方向模型能稳定跑出±5Mvar无功补偿、直流侧电容电压纹波控制在5%以内之后整个仿真项目算是完成了第一阶段目标。但说实话仿真模型和实际工程装置之间还有一道很宽的沟如果想继续往深做我个人觉得有几个方向是很自然的延伸方向。第一个方向是电网电压不平衡的情况。实际10kV母线难免有单相负载过大、系统电压不平衡的问题此时dq坐标系下会出现负序分量普通的电流环会表现出“补不稳”的缺陷。要做负序电流提取和正负序分离控制模型里需要增加陷波器或者DSOGI之类的前端滤波控制复杂度上一个台阶。第二个方向是装置的启动预充电过程。级联STATCOM不能直接解锁PWM去给直流电容充到1700V通常要先通过限流电阻给所有H桥的直流电容并联充电充电到一定阶段后再闭合旁路接触器、解锁控制。这个过程的仿真可以帮助你理解装置实际投运时为什么有“先充电、再使能”的时序。第三个方向是模块冗余和容错控制。工程装置往往按N1配置模块某个模块故障后需要快速旁路同时降低整相输出电压让装置继续运行。这种工况下的均压策略和正常运行时完全不同但如果你能把正常工况下的均压逻辑彻底搞明白再去看故障工况就轻松很多。我最后想分享的一点个人体会是Matlab 2015a这套环境虽然版本老但做级联H桥型STATCOM的建模验证完全够用关键是主电路参数计算和控制环路的层次要清楚。如果哪天你把自己的模型稍作修改把每相N从6改成8甚至改成10发现均压环参数需要重新调整说明你已经真正理解了这个系统的运行逻辑。这件事值得花时间折腾从“波形能跑”到“参数有依据”才是这个仿真项目对你的最大价值。