☰
级联H桥STATCOM无功补偿仿真:从拓扑到直流电压平衡控制
2026/10/18 9:36:22 网站建设 项目流程

级联H桥型STATCOM这个方向,我在Matlab 2015a上前前后后折腾了小半年,从最开始只看懂原理图、连仿真模型都搭不利索,到最后能稳定跑出无功补偿和直流电压平衡的完整波形,中间踩的坑和攒下的经验,我觉得值得好好写一篇。这篇文章不打算做成论文式的说明书,而是按照我实际做项目时的推进顺序来梳理:先讲清楚为什么非得用级联H桥、它的拓扑和调制原理,再展开控制策略里最关键的两块——dq旋转坐标系下的无功补偿控制和直流电压平衡控制,最后落到2015a这个版本里模型怎么搭、参数怎么调、波形怎么判。内容有一定深度,但我会尽量把原理和实操掰开揉碎讲。

1. 为什么无功补偿方案里,级联H桥STATCOM成了绕不开的选择

1.1 传统无功补偿手段的短板

电力系统里无功功率不是一个"可有可无"的量。异步电机、变压器、电弧炉这类感性负载运行时,都需要从电网吸收滞后无功来建立磁场。无功功率不足,直接后果就是功率因数低、线路压降大、电网末端电压被拖得很低。过去解决这个问题的办法无非是几类:并联电容器组、并联电抗器、同步调相机,再进阶一点是SVC(静止无功补偿器)。

并联电容器组本身只能输出固定的容性无功,想调节容量就得靠机械开关投切,动作速度慢,而且投切瞬间的涌流和过压冲击是个麻烦。SVC用晶闸管去控制电抗器和电容器,可以做到连续调节,早期在冶金、矿山这些场合应用挺多,但它本质上属于阻抗型补偿装置,输出电流和系统电压线性相关——系统电压跌得越厉害,它能提供的无功反而越少,这在高电压穿越场景下非常不友好,而且SVC自身会产生大量谐波,通常需要配滤波器组。

STATCOM之所以能兴起,核心在于它把思路从"调阻抗"换成了"调电压源与电网之间的功角差"。一个理想的STATCOM可以看作一个幅值可调的三相交流电压源,通过连接电抗并入电网。只要控制STATCOM输出电压的幅值和相位略区别于电网电压,二者之间就会产生无功功率交换:输出幅值大于电网电压时,STATCOM向电网输出容性无功;反之则吸收感性无功。响应速度比SVC快一个数量级以上,谐波可控性强,而且在电网电压跌落时具有更好动态支撑能力。

1.2 级联H桥拓扑的关键价值

传统两电平或三电平STATCOM要往中高压走,要么用庞大笨重的耦合变压器升压,要么用多重化变压器实现移相整流来抵消谐波,成本和占地面积都很高。级联H桥在这个背景下就成了替代方案。

所谓级联H桥,就是把若干单相全桥单元——每个单元由4个IGBT(带反并联二极管)和直流侧一个悬浮电解电容组成——在交流侧串联起来,形成一相链节(chain link)。N个H桥串联,每相输出相电压的阶梯电平数就是2N+1。比如每相5个单元,就能输出11电平,输出波形已经很接近正弦了,滤波要求大幅降低。

级联H桥结构有两个天然优势。第一,不需要注入耦合变压器,直接通过连接电抗器并入中高压电网,主电路体积和重量大大降低。第二,模块化程度非常高,每个H桥从结构到控制板完全可以做成标准模块,工程上做冗余容错也容易——损坏一个单元,可以旁路掉,剩下的单元降额运行,整个装置不会立刻停机。而且,级联结构的开关频率可以压到很低(每个单元几百赫兹),但等效输出开关频率等于单元数乘以各自开关频率,开关损耗控制住的同时还能保证波形质量。

1.3 这个项目适合谁、能解决什么问题

如果你正在做电力电子方向的课程设计、毕业设计,或者刚接手STATCOM相关课题,这篇博文适合你。我用的环境是Matlab 2015a,Simulink + SimPowerSystems(后来的版本改叫Simscape Electrical),你如果用的是更新版本,操作路径略有差异,但核心模型结构、控制思路、参数整定方法是完全相通的。

做这个项目的目标是两个:一是在Simulink里搭出一套级联H桥STATCOM主电路模型,能实现三相电网的连续无功补偿(即动态调节无功功率输出);二是解决级联H桥最棘手的直流侧电容电压均衡问题——每个H桥的直流电容是悬浮独立的,如果不加控制,电压会慢慢漂移,轻则波形质量恶化,重则电容过压炸掉。这两个目标,基本涵盖了STATCOM工程应用中最核心的问题域。

2. 级联H桥STATCOM的拓扑与调制机制拆解

2.1 核心拓扑结构

先把主电路结构说清楚。三相级联H桥STATCOM最常见的接法是星型(Y型)连接,三相各有一串H桥链节,一端共同接到星点,另一端分别通过连接电抗器接电网。也有人用三角形接法,三角形接法的优点是可以提供零序电流通路,对不平衡补偿有利,但主电路和控制系统都更复杂,我这次仿真用的是Y接,这也是目前工程应用的主流。

每一相内部,就是若干个H桥单元简单的交流侧首尾串联。

A相:电网A相 → 连接电抗Lc → [H桥1] → [H桥2] → ... → [H桥N] → 星点

每个H桥单元内部关键元件是4个IGBT和直流侧电容。四个开关管构成全桥结构:S1和S2是左桥臂上下的管子,S3和S4是右桥臂上下的管子。H桥交流侧输出是三电平波形——当S1、S4导通,输出+Vdc;S2、S3导通输出-Vdc;S1、S3或S2、S4导通(上下桥臂各导通的管子在同一侧)时输出0电平。

直流侧电容是关键储能元件。STATCOM与电网交换无功功率时,瞬时功率在交流侧和直流侧之间来回流动——电容上的电压会有周期性波动,但平均值必须维持恒定。电容参数选取和直流电压波动率有关,容值越大波动越小,但也带来成本和体积问题。

我仿真时用的是每相5个H桥单元,即N=5,三相交流侧共15个H桥。之所以选5个单元,一方面能保证每相输出11电平,波形质量较好;另一方面2015a里搭15个功率模块Simulink还能吃得消,仿真速度可控。直流侧电压参考值设定需要一个合理的权衡——级联H桥每单元耐压一般不高,选择Vdc_ref=200V,5个单元串联的相电压峰值能力约1000V,考虑一定的调制裕度后,10kV(相电压220V)和380V系统都能覆盖。我在380V低压配电网场景下跑,这个配置完全够用。

2.2 载波移相PWM到底怎么工作

级联H桥的调制策略有很多种,最经典也最实用的就是载波移相PWM(Carrier Phase Shifted PWM,CPS-PWM)。它的核心思路非常简单:N个H桥单元共用一个正弦调制波,但各自使用的三角载波的相位依次错开一个固定角度。

具体来说,对于一个PWM周期,相邻两个H桥单元的三角载波相位差为:

Δθ = 360° / N

比如N=5时,每个单元载波相位依次为0°、72°、144°、216°、288°。同一时刻里,5个H桥在每个开关周期内交替导通,最终级联后的等效开关频率是单个单元开关频率的N倍,这是级联H桥在低开关频率下还能保持高输出波形质量的根本原因。

为什么波形质量会变好?可以这样理解:单个H桥输出的电压是一个从+Vdc到-Vdc以一定占空比脉宽调制的方波序列,谐波主要集中在开关频率附近。但5个H桥的载波相位各不相同,它们各自输出中同一阶次的谐波在相位上互相抵消了一部分,叠加后的总输出波形里低频谐波分量大量减少,剩下的主要谐波被推高到等效开关频率(N×fs)附近。宏观效果就是:每相输出电压波形呈现11电平阶梯状,非常接近正弦波,只需要一个很小的滤波器——甚至连接电抗本身就承担了滤波作用——就能得到正弦度非常好的电流。

在Matlab 2015a里实现CPS-PWM的方式有两种常见做法。最直接的办法是用Repeating Sequence模块生成三角载波,将每个单元载波的Phase offset参数依次设为0、72、144、216、288(N=5时),然后把同一个调制波和这5路载波分别做比较。另一种是用S-Function或者Matlab Function模块,自己写载波生成逻辑。我建议第一次搭模型用第一种,逻辑直观,也方便调试查看每一路载波。

2.3 连接电抗和直流电容怎么取值才合理

连接电抗器在STATCOM里身兼数职。其一,它是STATCOM输出电压与电网电压之间的缓冲元件,二者之间通过它的阻抗进行功率交换——可以说它就是无功功率从STATCOM流到电网的"管道"。其二,它能滤除PWM产生的高频开关谐波。数值选取时,如果电抗太大,无功调节能力被削弱,动态响应变慢;太小则高频谐波电流过大,对IGBT和电容不利。

工程上有一个经验公式,连接电抗的标幺值通常取系统阻抗基值的10%~20%。对于三相380V、额定容量约50kVar的仿真系统,基值阻抗大约是:

Zbase = U²/S = 380² / 50000 ≈ 2.888 Ω

取标幺值15%左右,则Lc大约为:2.888 × 0.15 / (2π×50) ≈ 1.38mH,我最终取整到Lc=2mH。在仿真中,连接电抗器用Three-Phase Series RLC Branch或单相RLC串联支路分别串在每一相上。

直流电容的取值主要看允许的直流电压波动率。级联H桥带无功负载时,直流侧会有二倍工频的功率脉动,电容电压会以50Hz的两倍频率(100Hz)上下波动。允许波动率一般取额定直流电压的5%~10%,于是电容容值可以用一个简化公式估算:

C = S_N / (2 × ω × Vdc × ΔVdc)

其中SN是单元额定容量(这里每单元约分担系统功率的1/5),ω是电网角频率(2π×50),Vdc是直流电压参考值(200V),ΔVdc是允许波动幅值。取允许波动8%即16V,算出来单单元电容约在几百微法到一千微法之间。实际仿真中我试过2200μF到4700μF,前者波形波动略大但控制响应快,后者更平稳但模型数值计算更重,最终取了3300μF。如果只是做研究性质的仿真,这个容值范围内都能跑通,不用太过纠结精确值。

3. 无功补偿的dq解耦控制策略:从三相到旋转坐标系

3.1 为什么要做dq变换

三相静止坐标系下,STATCOM的输出电压、电网电压、电流都是时变的交流量,而且三相之间耦合严重。如果直接在三相坐标系里设计PI控制器,稳态时积分项无法消除交流误差,会有静差;而且三个通道之间存在强耦合,你调A相会影响B、C相。这给控制器设计带来很大麻烦。

解决办法是坐标变换。先把三相abc坐标系变换到两相静止αβ坐标系(Clarke变换),再把αβ坐标系变换到以电网基波角频率同步旋转的dq坐标系(Park变换)。经过这两步,基波正弦量在dq坐标下变成了直流量——d轴有功分量和q轴无功分量被解耦开。

这里有个很容易混淆的地方。dq坐标系下d轴和q轴的方向定义并不是唯一的。通常令d轴与电网电压空间矢量同方向,那么d轴电流就对应有功功率,q轴电流对应无功功率。此时STATCOM输出无功功率可以简洁地写成:

Q = 1.5 × (uq × id - ud × iq)

如果按d轴定向于电网电压矢量,使得uq=0,则上式进一步简化为Q = -1.5 × ud × iq。也就是说,只需要控制iq电流,就能线性地控制STATCOM发出或吸收的无功功率。如果想要STATCOM向电网输出容性无功(即补偿感性负载),就把iq控制在正值;想要吸收感性无功就控制为负值。这个线性关系远比三相坐标系下的烦琐推导简洁,也是STATCOM控制的基本功。

3.2 电流内环与电压外环的设计

STATCOM控制系统采用经典的双闭环级联结构:外环是直流电压环,内环是电流环。

外环的作用是维持级联H桥所有单元总的直流电压平均值恒定。STATCOM本身不是理想的无损耗装置,IGBT通态损耗、开关损耗、电容漏电流等都会消耗有功,这些有功损耗如果不补充,直流电容电压就会慢慢下降。外环检测总直流电压之和(或平均值),与参考值比较,经过PI调节器后输出有功电流指令id_ref。直流电压低于参考值时,id_ref为正,STATCOM从电网吸收少量有功功率给电容充电;电压偏高时则反向调节。这相当于给STATCOM装了一个"有功自动补给系统"。

电流内环负责快速跟踪id_ref和iq_ref。指令值给了之后,内环通过PI调节器控制实际id、iq实时跟随。内环的输出再做交叉解耦和前馈补偿,得到dq坐标系下的电压指令vd_ref、vq_ref,再经Park反变换得到三相调制波信号,送给CPS-PWM发生器。dq轴之间的交叉项ωL×iq和ωL×id需要叠加到PI输出上,物理含义是抵消连接电抗器带来的旋转坐标系耦合电压,让两个轴的控制真正"解耦"。这一步如果漏了,动态性能会明显变差,甚至可能引起振荡。

整个控制链路的工作流程可以概括为:

电压采样 → 总直流电压PI → id_ref 无功指令给定 → iq_ref 实际三相电流 → abc/dq → id, iq 电流PI解耦控制 → vd_ref, vq_ref → dq/abc → 三相调制波 调制波通过CPS-PWM → IGBT门极脉冲

3.3 PLL锁相与参考电流整定

dq变换的关键前提是坐标系的旋转速度和方向必须和电网电压完全一致。如果同步不准确,d轴和q轴的分解就会产生偏差,控制精度大打折扣。这就需要用锁相环(PLL)来实时跟踪电网电压的相位。

在Matlab 2015a里,SimPowerSystems库提供了现成的Three-Phase PLL模块,可以直接拖出来用。它的原理本质是一个基于dq变换的PI反馈结构:把三相电压变换到dq坐标系,令q轴参考值设为0,通过PI调节器调整坐标系角度,使q轴电压始终为0,此时d轴就自动定向于电压矢量。仿真中需要注意PLL的PI参数,带宽不宜太高,否则电网电压畸变时反而会把谐波引入相位信息;一般取50~200Hz带宽足够。

无功电流指令iq_ref的来源有两种模式。最常用的是固定无功给定,也就是你直接输入一个目标无功电流值或目标功率因数,STATCOM维持这个输出;另一种是恒定电压控制模式,即在检测到电网电压波动时自动增减iq_ref来支撑电压,这属于更高层级的自动电压控制。对于初学者,建议先从固定无功指令入手,重点观察STATCOM在不同阶跃指令下的响应。

4. 直流电压平衡控制:级联H桥仿真里最难啃的硬骨头

4.1 直流电压为什么必然失衡

级联H桥STATCOM的每个H桥单元都有自己独立的直流悬浮电容,这些电容之间没有任何电气连接。理想情况下,各单元的器件参数完全一致、开关动作完全对称,那么每个电容的充放电量相等,电压自然均衡。但实际上绝无可能达到这种理想状态。

首先,功率器件的导通压降、开关时间存在分散性,损耗不可能一致;其次,直流侧电容的实际容值和等效串联电阻不同;再者,CPS-PWM中载波相位错开,导致每个单元在一个基波周期内的瞬时功率分配并不完全对称。这些因素累计下来,直流电压就会出现单元间和相间的偏移。更麻烦的是,这种偏移具有自放大效应:某个单元电压偏高,其调制比会变大,输出更多功率,进一步拉大电压差异。不采取措施的话,电压发散只是时间问题,严重时电容和功率器件都会损坏。

在仿真里,直流电压不平衡主要来自三相不对称的工况。比如故意让某一相连接的负载不平衡,或者线路参数不一致,这种工况下即使各单元参数完全一致,三相之间也会出现明显的电压偏置。所以,直流电压平衡控制不能只在理想工况下验证,必须在非理想工况下看效果。

4.2 三层平衡控制框架

工程上处理直流电压平衡问题时,通常将问题拆成三个层面逐层击破。

第一层是总直流电压控制。这个由外环PI完成,原理在前面已经讲了,它保证的是三相所有H桥单元总电压的平均值跟参考值一致。

第二层是相间直流电压平衡控制。因为三相链节吸收的有功功率不同,一相之间的总电压可能会偏离平均值。解决思路是在三相调制波中注入一个零序电压分量。零序电压有一个很巧妙的特点——它对三相线电流不产生影响(三相三线制系统里零序电流没有通路),但它能改变各相瞬时功率的分配。通过在零序电压上叠加适当的基波分量,可以让电压偏高那相输出的有功功率减小、电压偏低那相增大,这样就实现了三相之间的能量再分配。具体做法:检测每相所有单元的直流电压平均值,与三相总平均值比较,误差经PI调节后生成零序电压补偿量,叠加到三相调制波上。这个补偿量是基波频率的分量,相位和幅值由PI输出决定。

第三层是相内各单元之间的电压平衡控制。补偿方法是对每个单元的调制波做微调:电压偏高的单元,在其调制波上叠加一个与电流同相的小幅值电压(在正常工作时相当于减少该单元向系统输送的有功),电压偏低的单元则反向叠加。这个微调后的调制波再和该单元的移相载波比较。因为叠加的幅值很小,对输出波形的影响有限,但足以通过一个基波周期内的微小功率差异把单元电压拉回均衡。

三层控制最终输出的调制波是这样的:

该单元最终调制波 = 主调制波(来自无功/有功控制) + 零序注入分量(相间平衡) + 单元级微调分量(相内平衡)

很多同学做仿真时,只做了总电压外环和电流内环,忽略了相间和相内平衡,结果看到直流电压漂移就以为是PI没调好,其实问题出在缺少平衡控制算法。这一点必须重视。

4.3 相间平衡和单元间平衡的具体实现思路

实际在Simulink里实现零序电压注入,我采用的做法是:将三相直流电压平均值Va_avg、Vb_avg、Vc_avg分别和三相总平均值Vdc_avg做差,误差各自过一个PI调节器,得到一个基波分量的幅值指令,再根据当前电网电压相位生成A、B、C三个调制波修正项时,在三个调制波上统一叠加一个共同的零序分量u0。需要注意,零序分量对三相调制波的叠加方式是u_a' = u_a + u0,u_b' = u_b + u0,u_c' = u_c + u0,三相同加同一分量,才能保证它是零序性质。

相内单元间平衡,在仿真中的实现步骤大概是:以A相第k个单元为例,检测该单元直流电压Vdc_Ak,与A相所有单元的平均电压Vdc_Aavg比较,误差经过一个(通常较慢的)PI调节器后输出一个电压修正系数或直接输出修正电压δV_Ak。将这个修正电压叠加到该单元的调制波上,叠加方向由该单元输出电压电流的相位关系决定——一般是将δV_Ak与主调制波同相叠加即可,因为主调制波本身与电流近似同相,所以同相叠加相当于调整该单元与系统交换的有功功率。如果单元电压偏高,则PI输出为负,减小该单元的输出有功,电压回落;反之增大。

需要特别提醒的是,这层平衡控制的PI带宽必须显著低于电流内环带宽,一般在5~20Hz以内,不要试图调得很快。因为单元间电压均衡本质上是缓慢的热过程量,你把PI响应速度调快反而可能在控制回路里引入新的相互作用,导致系统振荡。这是很多仿真一直调不稳的一个重要原因——不是反馈方向错了,而是时间尺度没有拉开。

5. Matlab 2015a仿真落地:从模型搭建到参数整定

5.1 主电路模型搭建步骤

先说环境。Matlab 2015a对应的是SimPowerSystems库(这个库从2016a开始并入Simscape Electrical名下,功能模块基本没变)。模型我建议全部在Simulink里搭,用零散的电力电子模块组合,不要直接用Universal Bridge做单个H桥,因为后续要测每单元电容电压和调制信号,用Universal Bridge耦合反而麻烦。更合理的做法是每个H桥用两个Universal Bridge模块配置成单相全桥——当然这在2015a里配置起来不算特别直观。更普适的做法是:每个H桥直接用4个IGBT/Diode模块(或2个Leg)搭出来,直流侧接Parallel RLC Branch(选择电容模式),交流侧接到串联母线上。

仿真主电路的顶层结构大致是:

Three-Phase Source(380V/50Hz) → 线路阻抗(可加可不加,建议保留,模拟真实电网内阻) → 连接电抗Lc(每相2mH) → STATCOM主电路:三相Y接级联H桥链节 → 各部分加上合适的电压、电流测量模块 → 送Powergui、Scope等

Powergui模块的设置非常关键。在2015a中,Powergui支持连续和离散两种求解模式。我建议仿真步长设为20~50μs的离散模式。为什么不用连续模式?因为电力电子电路里存在IGBT开关这种强非线性环节,连续模式求解器在切换瞬间容易产生数值刚性或收敛失败,仿真速度也会非常慢。离散模式用固定步长模拟开关状态,虽然精度略低,但稳定性好得多,对于验证控制策略完全够用。Solver选的离散模式后,要记得把仿真步长和Powergui的采样时间设成一致,比如都设20μs。

5.2 控制系统的Simulink实现

控制系统我建议单独做一个子系统(Subsystem),把主电路和控制器分开,方便后期调试和排错。子系统内部大致分四块:

一、测量与坐标变换模块。用电压电流测量模块把三相电网电压Va/Vb/Vc和STATCOM三相输出电流ia/ib/ic送入子系统,用PLL模块输出电网电压同步角度θ,然后用Clarke-Park变换模块(或者用Fcn模块自己写坐标变换公式)得到ud/uq、id/iq。在2015a里可以直接用Machines库下的dq变换模块(例如abc_to_dq0 Transformation),但要注意统一dq参考坐标的旋转方向(q轴超前还是滞后d轴)和PLL输出是否匹配,我在这里曾经栽过跟头:PLL的输出角度默认放在d轴与A相电压同向,而abc_to_dq0模块可能默认q轴与A相电压同向,二者如果不转换,控制方向就是反的。解决办法是实际给一个纯阻性负载观察稳态的id和iq,哪个轴对应有功一目了然,再调整坐标变换参数。

二、外环电压控制。把三相所有15个H桥的直流电压测量值求和(或先各相加和再求平均值),送入总电压PI环节,输出id_ref。iq_ref由外部给定,可以在模型里用Step模块按时间设置不同的无功指令,模拟阶跃工况观察动态响应。

三、电流内环与解耦。id、iq分别与id_ref、iq_ref比较,各自过PI调节器,然后加上交叉解耦项和电网电压前馈,得到vd_ref、vq_ref。这里的PI参数是控制系统的灵魂,具体数值后文会详细说。

四、调制波生成与平衡控制。dq反变换得到三相基础调制波,然后依次叠加相间零序分量和相内单元修正分量,最终分别与5路移相三角载波比较,输出15路PWM信号给15个H桥的IGBT门极。

5.3 关键参数设置参考与调试顺序

把仿真中我最终定下来的关键参数列一张表,方便直接参考:

参数数值备注
电网线电压380V / 50Hz三相
每相H桥单元数N5三相共15个单元
直流电压参考值Vdc_ref200V每单元
直流电容3300μF每单元
连接电抗Lc2mH每相
载波频率fs2000Hz每单元
等效输出开关频率10kHzN×fs
仿真步长20μs离散模式
电流内环Kp/Ki2.5 / 150适配电感2mH
电压外环Kp/Ki0.3 / 12慢于内环
相间平衡PI0.1 / 3更慢
相内平衡PI0.05 / 1最慢

调试顺序非常重要。我给后来者的建议是:先开环后闭环,先内环后外环。第一步要确认主电路搭完后,直接给固定调制比的三相调制波(不接任何PI控制器),观察H桥输出电压和电流波形是否正确,验证CPS-PWM载波移相角度没有错误。第二步再短接外环,只给一个固定的id_ref、iq_ref,测试电流内环能否稳定跟踪指令。第三步闭合外环电压控制,让直流电压自动稳定在参考值。最后才加相间和相内平衡控制。跳步调试是绝大多数仿真不收敛或者波形发散的原因——你都还没验证内环方向对不对,就全闭环,出了问题根本不知道是哪一层引入的。

6. 仿真波形解读与实战避坑

6.1 典型工况下的波形怎么看

仿真跑稳定后,重点关注三类波形。

第一类是电网侧A相电压和电流的相位关系。无功补偿前,给电网接一个感性负载(比如三相异步电机或大电感),电流会明显滞后电压。STATCOM投入并给出正的iq指令后,电网电流相位会逐渐向电压靠拢,功率因数趋近于1——这个波形变化是判断无功补偿是否生效的最直接证据。

第二类是STATCOM输出的相电压波形。它是呈阶梯状的11电平波形,阶梯的每一步对应一个H桥单元的电压。如果波形阶梯清晰工整,说明CPS-PWM工作正常。如果某个单元对应的电平出现缺失或形状异常,多半是那一路PWM信号有问题,要回到载波比较环节检查。

第三类是15个H桥直流电容电压的波形。理想情况下,每单元电压稳态都稳定在200V附近,有100Hz的波动(约5%~8%),各单元波形几乎重叠在一起。如果某些单元电压持续高于或低于其他单元,说明相内平衡控制还没有起作用;如果整相电压偏高、另一相偏低,说明相间平衡没调好。调试平衡控制时,我会人为在某一相的电容初始电压设偏5V,观察系统能否在几百毫秒内把这种初始偏差拉回来——这个瞬态过程比稳态波形更能说明平衡控制器的性能。

6.2 那些年仿真中踩过的坑

第一个大坑是载波移相角度用错了单位。Matlab里Repeating Sequence模块的Phase offset参数单位是秒,不是弧度也不是度数。如果N=5,载波频率2000Hz,周期0.5ms,那么相邻载波的延迟应该是0.5ms/5=0.1ms。我第一次做的时候直接把45°当成延时加进去了,结果载波相位完全错乱,输出波形惨不忍睹。这个错误很隐蔽,因为模型不会报错,但波形明显不对。

第二个坑是解耦项方向搞反。电流内环的交叉解耦项应该和PI输出的符号相反。我当时想当然地以为是同号叠加,结果系统在跟踪阶跃指令时出现明显的超调和振荡。判断解耦是否正确的办法很简单:断开解耦项先整定PI参数,系统稳定后再把解耦项加进去,如果动态响应明显变好,说明方向正确;如果变得更差,说明符号搞反了。

第三个坑是初始电压问题。仿真一开始所有电容电压都是0,而直流电压外环要电压建立起来之后才能正常工作。如果直接上全闭环仿真,外环会输出很大的id_ref试图快速给电容充电,结果电流内环饱和、系统剧烈振荡,甚至仿真直接发散。解决办法有三种:给电容设置合适的初始电压(在电容模块初始电压参数里设为200V附近);或者在仿真启动的头200ms用一个预充电回路(串联电阻),把电容压抬到参考值附近再切入主控制;或者把外环PI的输出限幅设得再低一点让它慢慢充。我比较推荐第一种,简单且可控,缺点是没办法验证启动冲击过程,但如果你关心启动暂态,就用预充电方案。

第四个坑是PLL初始角度和电网电压的同步问题。如果PLL的初始角度设置不当,或者电网三相电源模块里初始相角没和PLL对齐,启动瞬间会有几个周波的电流冲击。解决办法是把三相电源模块的Phase参数设为0,同时PLL内部积分器初始值设0,让锁相环从0开始自同步。

6.3 个人经验

最后再分享一点我自己的体会。做这种多H桥级联系统的仿真,模型规模其实不小——15个H桥、每桥4个IGBT、加控制系统,2015a在普通笔记本上跑一次0.5秒的仿真可能要花几分钟到十几分钟。调试期间频繁改参数、反复跑仿真非常熬人。我的建议是先把单元数暂时降下来,比如N=3做功能验证,系统跑通了再改回N=5做完整仿真,效率能高很多。

另一个建议是强烈依赖Matlab脚本做批处理调参。把模型里的核心参数暴露成Matlab工作区变量(在模型里直接引用变量名),然后在M脚本里用循环或手工列表设置参数、运行仿真、记录结果。这样调PI参数的时候就不用每次打开模块双击改数值了,还能保存多组对比结果。

整个项目做下来,我对级联H桥STATCOM的感受是:拓扑结构本身并不复杂,难点确实集中在直流电压平衡这个工程性问题上。仿真中多花时间把平衡控制的各种时间尺度捋清楚,后面搭硬件或者做动态实验的时候会少走很多弯路。希望这篇分享对你有实际帮助。

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

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

立即咨询