电网电压不平衡这件事,做并网逆变器的人迟早都会撞上。不管是分布式光伏、储能变流器还是充电桩,现场接的电网往往没有那么“理想”,单相负载分配不均、线路阻抗不一致、甚至雷击或故障引起的短暂不平衡,都会让逆变器输出电流跟着变形。这个课题——《不平衡电网下基于延时相消算法的T型三电平LCL并网逆变器控制策略研究(Simulink仿真实现)》,本质上就是在回答一个问题:电网电压不对称时,怎么让逆变器还能保持稳定、输出高质量的电流。我前前后后在Simulink里搭了两套模型来复现和验证这套策略,整个过程有不少值得记录的坑和经验。这篇文章就把整个思路和实现细节摊开来讲,适合正在做光伏/储能并网仿真、搞毕业设计或者刚接触并网逆变器控制的人参考。
1. 先把项目拆开:这个课题到底在解决什么问题
1.1 不平衡电网对逆变器的真实影响
先说说不平衡到底是怎么发生的。电网三相电压不平衡,一般分两种来源:一种是事故性的,比如两相短路、单相接地导致某相电压骤降;另一种是稳态性的,比如大容量单相负载(电焊机、充电桩、照明负荷)接入公共电网,造成某一相的压降比其他两相大。工程上用电压不平衡度来衡量,常见定义是负序分量与正序分量的比值,国标一般要求小于2%,但实际现场环境经常到5%甚至更高。
电网电压不平衡之后,逆变器会遇到三类麻烦。
第一类是与直流侧耦合的问题。逆变器的交流侧和直流侧之间存在功率交换,负序电压和正序电流相互作用会产生2倍工频(100Hz)的瞬时功率波动,这个波动直接体现在直流母线电容上,形成二次纹波电压。直流母线不稳,后面的电压环就会跟着抖,严重时甚至引发保护动作。
第二类是并网电流质量问题。如果不做特殊处理,逆变器在负序电压作用下会往电网注入负序电流,导致三相并网电流不对称,某一相电流明显偏大,轻则降低电能质量、引起变压器局部过热,重则触发过流保护。很多现场“逆变器莫名其妙跳闸”,实际上就是负序电流累积的结果。
第三类问题出在同步环节。传统SRF-PLL(同步旋转坐标系锁相环)在三相不平衡时,Park变换出来的q轴分量里会叠加100Hz的波动,导致锁相环输出的相角出现振荡,控制坐标系跟着偏,电流波形进一步恶化。
所以这个课题的核心目标很明确:在电网不平衡的条件下,让逆变器输出的三相电流依然保持对称、稳定,同时保证直流侧电压平稳。这里就引申出了控制策略的两种取向——一种是不让负序电流进入系统(负序电流参考值给0,也叫平衡电流控制),另一种是允许负序电流存在但用它来补偿瞬时功率波动。延时相消算法在这两种策略里都能用,区别在于负序电流参考值的选取方式,我后面会展开说。
1.2 为什么选“T型三电平+LCL”这套组合
先聊拓扑。两电平桥式逆变器最经典,结构简单、控制成熟,但它在高电压场景下的短板很明显:开关器件承受的电压应力高、输出谐波大、dv/dt大。三电平拓扑把直流母线分成三电平,器件只承受一半直流电压,等效开关频率提升,谐波性能明显改善。
三电平又分I型和T型。I型(也叫NPC型,中点钳位型)每相由4个开关管加2个钳位二极管组成;T型每相是2个开关管串联成桥臂,再通过两个反向串联的开关管连接到中点,像一个“T”字。这几年T型三电平在中低压并网逆变器里更受欢迎,核心优势是损耗分布更均衡、所用器件数目更少、效率更高,尤其在中功率段(几十kW到几百kW)表现突出。当然它也有自己的难点,最典型的就是中点电位平衡问题,仿真里可以通过调制策略去压制,这个我在后面会专门提。
再聊LCL滤波器。L滤波器的原理最简单,就是一个电感,高频衰减速率只有-20dB/dec,要达到THD要求就得把电感做很大,体积、重量、成本全上去了。LCL滤波器是“L+C+L”结构,高频段按-60dB/dec衰减,同样滤波效果下电感总量能小很多。代价是它会引入一个谐振峰,控制不好就会在谐振频率附近放大谐波,甚至导致系统不稳定,所以必须配阻尼策略。
把“T型三电平”和“LCL”放在一起,正好对应工业界中功率并网逆变器的主流工程方案:拓扑上追求高效率低谐波,滤波上追求体积紧凑加高衰减。这套组合选得并不花哨,是非常务实的工程取向。
1.3 延时相消算法在整体控制中的定位
延时相消算法,全称是Delayed Signal Cancellation,简称DSC,是处理不平衡信号的一个经典工具。它的核心功能很简单:在静止坐标系(αβ系)里,通过把信号延时一个固定时间并做加减运算,把正序分量和负序分量分离开来。
用一个具体场景来理解。正序分量在αβ系里是一个正向旋转的矢量,负序分量是反向旋转的矢量。假如我把当前的电压信号延时1/4个工频周期(T/4,也就是5ms),正序分量旋转了90度,负序分量旋转了270度(也就是反方向90度)。此时把原信号和延时信号做组合运算,就能让其中一个分量相加放大、另一个分量相减抵消。这就是“延时相消”四个字的由来。
在整套控制策略里,DSC承担的是“信号级预处理”的角色:它先把电网电压的正负序分离开来,正序分量送给锁相环做同步,正负序分量再分别交给电流环去控制。如果没有这一步,后面的锁相环、正负序电流控制全都无从谈起。可以说,DSC是整个控制链路的起点。
2. 核心算法拆解:延时相消、正负序控制与三电平调制
2.1 延时相消算法的数学原理与参数选择
DSC的运算在αβ静止坐标系里进行。设电网电压三相不平衡,经Clark变换后得到:
[ v_\alpha = v_{\alpha p} + v_{\alpha n} ]
[ v_\beta = v_{\beta p} + v_{\beta n} ]
其中下标p代表正序分量,n代表负序分量。在αβ系里,正序分量以角频率ω正向旋转,负序分量以角频率ω反向旋转。对信号延时T/4后,正序分量相位超前变为滞后90度,负序分量相位变化相当于反向旋转90度。延时信号的表达式分别是:
[ v_\alpha(t - T/4) = v_{\alpha p} \cos(-90°) + v_{\alpha n} \cos(90°) ]
把原信号和延时信号相加,正序分量相互增强(此时正序分量的延时值与原值大小相同、方向旋转了90度,如果用矢量运算,实际是两者相加使正序分量幅值不变、相位偏移),负序分量相互抵消。再用相移矩阵做校正,就能把纯净的正序αβ分量提取出来。
在实际工程里,我们通常用一个“延时单元+加减法组合”的模块来实现DSC。关键参数就一个:延时时长T_delay。取T/4(工频下为5ms)是最常见的,因为在αβ系下T/4延时刚好能让正负序分离;也有取T/6的变体,用于特定谐波抑制。取T/4时,基波正序提取的增益为1,但动态响应会有一个固定的T/4延时,也就是说电网发生突变时,正负序分离结果要等5ms才能跟上。这个延时是DSC算法固有的代价,如果系统要求更快的暂态响应,就得考虑SOGI(二阶广义积分器)或者双二阶广义积分器之类的替代方案。
仿真实现时有一个特别容易踩坑的细节:Simulink里做固定延时,不推荐用Variable Time Delay直接填“5ms”,因为连续变采样步长下这个模块的处理方式会造成插值误差。更稳妥的做法是把延时量换算成离散采样周期数,用单位延迟链实现。比如采样周期Ts=10μs,T/4=5ms,那么需要延时500个采样周期。离散DSC的公式就变成:
[ DSC_out = \frac{1}{2} \left[ v(t) + j \cdot v(t - T/4) \right] ]
但注意这是矢量运算,实际Simulink里要按α、β两个分量分别处理。
2.2 正负序分离后的双电流环控制策略
分离完成之后,正序分量和负序分量分别进入两套坐标系进行控制。
正序分量转到正序同步旋转坐标系(dq⁺)里,变成直流量,用PI控制器就能做到无静差跟踪。负序分量则要转到负序同步旋转坐标系(dq⁻)里,它也是直流量,同样用PI控制。整体控制结构就是双电流环——正序电流环和负序电流环并行工作。
这两套环路的参考值怎么定?如果目标是“输出三相电流平衡”,就把负序电流参考值设为0,也就是强制抑制负序电流;如果目标是“抑制直流侧功率振荡”,那就需要根据电网电压的正负序分量实时计算负序电流参考值。大多数项目里做的是前一种,也就是负序电流参考给0,这样并网电流严格对称,控制实现也最简单。
具体到Simulink里的搭建方式,我用了以下结构:
- 三相电网电压经Clark变换到αβ系;
- 对αβ电压同时过DSC模块,得到正序αβ分量,再用正序αβ分量算负序分量(总分量减正序分量即可);
- 正序αβ分量经Park变换(角度来自PLL)进入dq⁺系,送入正序电流环;
- 负序αβ分量经Park变换(角度为负的PLL角度)进入dq⁻系,送入负序电流环;
- 两个电流环输出的dq电压指令各自反变换回αβ系,相加得到总的调制电压;
- 总调制电压送入SVPWM或载波PWM模块,输出T型三电平开关信号。
这套结构的优点是把不平衡问题拆解成了两个“对称”子问题,每个子问题都可以沿用经典的PI控制设计方法,参数整定也相对成熟。缺点是需要消耗一定的计算资源,DSC本身还有固有的暂态延时,所以动态性能不是最快的。
2.3 T型三电平的调制方法与中点电位平衡
T型三电平逆变器每相能输出三种电平:+Vdc/2、0、-Vdc/2。零电平是通过中线开关管把输出端接到直流母线中点实现的。调制上最常用的是基于载波的PWM方法:两个三角载波层叠,与调制波比较生成PWM脉冲,再通过逻辑组合输出正确的开关序列。
在Simulink里搭T型三电平桥,有两个选择。一是用Simscape Electrical自带的Three-Level Bridge模块,直接选“T-type”拓扑,内部IGBT和反并联二极管都已经建好,省事;二是自己用Universal Bridge搭建,但要把钳位管拓扑接对,很容易出错。我的建议是前者,因为控制策略研究的重点在算法和环路,不在器件建模本身。
中点电位平衡是T型三电平绕不开的问题。如果上下电容电压不平衡,输出波形会畸变,甚至导致器件过压损坏。在仿真里,最简单的处理方式是采用SVPWM调制,利用冗余小矢量来调节中点电流方向。不过在载波PWM里实现稍麻烦一些,常见做法是在调制波里注入零序分量,通过闭环反馈调节中点电位。在Simulink里这一步可以用一个简单的PI控制器实现:以中点电位偏差为输入,输出零序电压校正量,叠加到三相调制波上。
2.4 LCL滤波器的参数设计与谐振抑制
LCL不像L滤波器那么“傻大个”,但多出来的谐振峰需要认真对待。参数设计一般按以下步骤来:
- 确定总电感值。根据并网电流纹波要求来定,一般用经验公式:L_total = (Vdc / (8 × f_sw × ΔI_max)) × (2/3),ΔI_max取额定电流的10%~20%左右。
- 分配两侧电感。通常逆变器侧电感L1取总电感的60%~70%,网侧电感L2取其余部分。L1大一些,可以把开关纹波压在逆变器侧,L2小一些可以减少滤波电容对网侧的无功影响。
- 选择滤波电容Cf。电容太大无功电流大,太小高频衰减不足。一个常用约束是电容产生的无功功率不超过系统额定无功的5%。公式是:Cf ≤ 5% × P_n / (3 × 2πf × E_g²),E_g是相电压有效值。
- 校验谐振频率。谐振频率f_res = 1 / (2π√(L1L2/(L1+L2) × Cf)),应满足:10f_g < f_res < f_sw/2,大约在1kHz~3kHz之间比较安全,避开低频控制带宽和高频开关附近。
谐振峰的处理,最实用的方案是电容电流反馈有源阻尼。原理是用一个比例系数把电容电流引入调制波,等效在谐振频率附近产生一个虚拟电阻,把谐振峰压下去。仿真里实施很简单:用互感器(Simscape里用Current Sensor)测电容支路电流,乘以系数K后叠加到调制电压上。这个K的整定方法各家有各家的公式,我习惯直接在Bode图里看谐振峰衰减幅度,调到峰值低于0dB为最低标准。
3. Simulink仿真实现:完整搭建过程与参数设置
3.1 模型总体结构与模块划分
我这套模型在Simulink R2022b里搭建,整个模型划分为四块:主电路、采样与坐标变换、控制算法、调制与触发。
主电路用Simscape Electrical组建:
- 三相电网用Three-Phase Source,幅值设为311V(相电压峰值),频率50Hz;
- 电网电压不平衡通过在三相Source的某相串联一个小电阻或用Three-Phase Programmable Voltage Source实现,我直接在前两相加了5Ω电阻来模拟压降,效果直观;
- LCL滤波器用三个电感模块、三个电容模块搭,电容接成星形,中性点悬空(这是工程上最常见的接法);
- T型三电平逆变器用Three-Level Bridge模块,类型选“T-type”,开关器件选IGBT+Diode;
- 直流侧用两个电容串联,中点与三电平桥的中点N相连,直流电源用DC Voltage Source给定,电压设为800V(模拟光伏Boost后的母线电压)。
控制算法部分我单独建了一个子系统,输入是三相电网电压、三相并网电流、直流母线电压,输出是六路PWM脉冲。这样做的好处是想换控制策略时,只需要改子系统内部逻辑,不影响主电路。
3.2 控制环路的Simulink实现细节
整个控制逻辑用离散模式实现,采样周期Ts=10μs,对应100kHz。求解器选离散电源,仿真步长固定10μs,保证PWM载波与控制的同步。
锁相环这部分,我先把三相电压过DSC提取出正序电压,再做常规SRF-PLL。PLL的PI参数设置:Kp=50,Ki=500这在电压不平衡输入下依然能稳定锁相。
电流内环:正序dq系里,d轴控制有功电流,q轴控制无功电流。要求功率因数接近1,所以q轴参考值给0。PI参数用典型二阶整定方法确定,Kp=12、Ki=600,再给了一个电压前馈(电网正序电压d轴分量)来增强抗扰性能。负序电流环参考值给0,PI参数适当降低增益,Kp=8、Ki=400,因为负序环的主要任务是抑制不平衡电流,过高的增益容易引入噪声。
外环直流电压环:直流母线电压经低通滤波后与800V参考比较,输出d轴电流参考值。PI参数Kp=2、Ki=50,带宽设在10Hz左右,比较慢,避免外环和内环互相干扰。
DSC模块的离散实现:用Memory模块串成延时链。我设置延时5ms,采样周期10μs,需要500个采样周期。用一个500长度的Buffer加Unit Delay组合,或者直接用Tapped Delay配合索引运算,都能实现。注意用Fixed-Step Discrete求解器时,Tapped Delay的长度必须精确等于延时长除以采样周期,少一个周期错得很隐蔽,电流波形上会出现轻微抖动,十有八九就是这里多一格少一格。
3.3 调制与PWM信号生成
T型三电平的载波PWM,我用三层调制实现。核心思路是:两个三角载波上下层叠,调制波与两个载波分别比较,得到两路中间信号,再通过逻辑变换转换成12路驱动信号(每相4个IGBT)。
实际上为了省事,我在Simulink里用了基于SVPWM等效的载波注入法:先通过坐标反变换得到三相调制波,然后叠加零序分量,简化成与单载波比较。具体模块连接如下:
- 三相调制波v_a、v_b、v_c,叠加零序电压v_0;
- 三角载波用Repeating Sequence Staircase生成,频率10kHz,幅值±1;
- 比较器用Relational Operator,大于时输出高电平,小于时输出低电平;
- 生成的逻辑信号经过Logical Operator组合,再通过Dead Time模块(比如设置死区2μs)输出12路PWM。
注意T型三电平同一相的最上管和最下管不能同时导通,逻辑上要保证互补。死区设置如果在三电平桥里直接配置,有些Simulink版本支持自动加死区,但我遇到过一次版本兼容性问题导致脉冲错误,后来就全部手动接死区模块,踩过的坑后面细说。
4. 调试经验与高频问题排查
4.1 微分环节导致仿真发散的问题
我第一次搭模型时用了连续求解器(ode23tb),一启动就报“Singularity”错误,电流波形直接发散。排查后发现两个主要原因:一是电网电压理想的电压源直接并联LCL电容,构成了刚性系统;二是IGBT开关瞬间的du/dt过大,数值求解困难。这个问题通过两招解决:第一,LCL电容串联一个0.01Ω的阻尼电阻(仿真里可以加,等效于无源阻尼,也符合工程实践);第二,将求解器改为Powergui内建的Discrete模式,步长固定10μs,并把电源都设成离散模式。改完之后模型稳定运行,波形干净。
4.2 负序电流抑制效果不理想,波形THD偏高
现象是三相电流虽然看起来对称,但波形中间有明显的振荡,THD在8%左右,没有达到设计预期。逐个环节排查:
第一步查DSC的正负序分离效果。用三段电压频谱观察,发现负序分量分离后残留了少量基波正序分量。原因是我的延时链长度计算错误。我把采样周期当作10μs,但Simulink里离散电源默认步长是5e-6,两处不一致导致延时误差接近5%,分离精度直接受影响。修正步长一致后,负序残留明显下降。
第二步检查电流环参数。负序环PI增益给过高会把开关噪声放大,电流谐波不降反升。把Ki从800降到400,波形明显改善。
第三步检查采样延时。实际数字控制系统在采样和PWM更新之间会有一拍滞后,仿真里如果不加这个延时,系统等效相位裕度比实际偏大,导致参数整定偏激进。我的做法是在电流采样后加一个Unit Delay模拟一拍延时,之后再进控制器。加上这一拍之后,原参数出现了轻微振荡,稍微降低Kp之后达到稳定。
4.3 直流母线二次纹波压不掉
控制策略跑通后,我观察到直流母线电压存在明显的100Hz纹波,幅值约5V。这在纯仿真环境下看起来不大,但实际工程中母线纹波会进一步传导到前级,影响光伏组件的最大功率点跟踪效果。
理论上讲,如果负序电流被完全抑制,交流侧瞬时功率应该恒定,直流侧纹波也就不存在。但仿真结果显示纹波依然存在,说明负序电流抑制并不彻底。进一步查发现,DSC模块输出的正序电压幅值总比真实值偏小约0.5%,导致网侧电流参考值计算时引入误差。这是离散延时链的截断误差在累积。解决方法是提高采样频率或者采用一阶滤波器对DSC输出做幅值矫正,我采用后者,把正序电压幅值系数修正为1.005,纹波压到了1.5V以内。
4.4 LCL谐振表现为特定频率的纹波振荡
另一处典型问题是并网电流波形在f_res≈1.8kHz附近叠加了稳定的振荡,从频谱看是单根尖峰。这是LCL谐振峰没有被有效阻尼的典型表现。我当时的参数里阻尼系数留得很小,只在仿真层面靠计算步长“硬扛”。后来我加了电容电流反馈有源阻尼,再观察Bode图,谐振峰被压到-8dB,波形振荡消失。如果不用有源阻尼,可以通过电容串联电阻做无源阻尼,阻值按R_d = 1/(3 × 2πf_res × Cf)经验估算,但效率会损失1%左右,有源阻尼更值得优先尝试。
4.5 三电平桥中点电位偏移引发波形畸变
仿真运行到0.2秒后,我发现三相电流出现缓慢漂移,每相波形不再对称。检查直流侧上下电容电压,发现上电容电压升到420V,下电容只有380V,说明中点电位明显偏移。这是T型三电平不带中点电位控制时常见的“职业病”。
我的修法是在SVPWM等效调制波里注入零序分量闭环校正。具体实现:检测上下电容电压差,过PI控制器后输出零序电压修正量,叠加到三相调制波上。PI参数Kp=0.5,Ki=20,调整后两个电容电压恢复平衡,电流波形恢复正常。三电平仿真如果忽略中点电位控制,后面做长时间的工况测试(比如低电压穿越仿真)就会出问题,这个环节不能省。
5. 仿真参数速查表与工程建议
5.1 关键参数参考
这里整理一份我用过的参数,可以作为起步参考。工程参数按10kW样机设计。
| 类别 | 参数 | 数值 |
|---|---|---|
| 电网 | 相电压幅值 | 311V |
| 电网 | 频率 | 50Hz |
| 直流侧 | 母线电压 | 800V |
| 直流侧 | 电容Cf1/Cf2 | 2200μF(分上下两个) |
| LCL | 逆变器侧电感L1 | 0.5mH |
| LCL | 网侧电感L2 | 0.25mH |
| LCL | 滤波电容Cf | 10μF |
| LCL | 谐振频率 | 约1.8kHz |
| 控制 | 采样/开关频率 | 10kHz |
| 控制 | 电流环Kp/Ki | 正序12/600,负序8/400 |
| 控制 | 电压环Kp/Ki | 2/50 |
| PLL | Kp/Ki | 50/500 |
| DSC | 延时长度 | 5ms(500个采样周期) |
| 调制 | 死区时间 | 2μs |
这套参数在仿真里可以运行,但具体工程调试时要根据实际开关频率、电网阻抗重新整定。LCL参数尤其要结合网侧阻抗变化鲁棒性校验,因为实际电网的等效电感会变化,谐振频率会飘,有源阻尼的鲁棒性不容忽视。
5.2 一个实用的调试顺序建议
这套仿真涉及多个模块联动,一上来就全系统联合调试,出了问题很难定位。我的做法是分步验证:
第一步,不带LCL,逆变器直接接一个阻性负载,验证三电平桥和PWM调制是否正确。只看相电压波形和电流波形是否正常。
第二步,加入LCL和电网,断开DSC,只用理想电网电压测试锁相环和电流环。此时电网三相对称,能验证主控是否工作正常。
第三步,加入不平衡电网条件,此时电流大概率开始畸变。再加入DSC和负序电流控制,观察电流是否恢复对称。如果畸变照旧,优先检查DSC的延时量和正负序坐标系的方向。
第四步,调有源阻尼参数,压谐振峰。
第五步,做工况切换测试,比如从平衡电网突变到不平衡电网,观察动态响应和控制稳定性。
这套顺序能让你快速定位是主电路、调制、锁相、DSC还是电流环出的问题,避免“全拆了重来”的窘境。实际调试中我遇到过几次“看着像DSC问题,查半天其实是PWM接线错位”的情况,按步骤走能省下大量时间。
最后分享一点个人体会。做这类课题,最大的收获不是跑通仿真本身,而是理解了不平衡系统里“旋转方向”这个概念的工程意义。很多人一开始把Clark变换、Park变换、正负序当成纯粹的数学工具,但真正调过DSC之后会发现:正序和负序在物理上就是两个往相反方向旋转的矢量,延时相消不过是利用了这个方向性把它们“掰开”。算法本身不复杂,工程落地时的坑却不少——离散化延时的精度、采样步长的统一、坐标系正负方向的定义,这些看起来都是小细节,但任何一个出错,结果都指向同一个表现:电流畸变。希望这篇记录能帮你少走一些弯路,把精力放在真正有价值的环节上。