ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

两级式光伏MMC并网系统交流故障穿越仿真建模与排坑指南

两级式光伏MMC并网系统交流故障穿越仿真建模与排坑指南

做光伏并网仿真的人应该都有个体会:光伏MMC并网系统(两级式)听起来是个很窄的题目,但真上手做交流故障穿越仿真时,却处处都是坑。电网对称/不对称故障怎么注入、故障期间控制策略怎么切换、MMC子模块电容电压会不会发散、直流母线会不会过压,这些问题环环相扣,哪一步都没法糊弄过去。

这篇文章我以一套实际调通的Simulink仿真模型为例,把两级式光伏MMC并网系统的设计思路、关键参数、故障穿越控制策略以及建模排坑过程完整拆开来讲。适合正在做新能源并网仿真、准备写相关论文或做项目验证的开发者参考,也适合想搞懂MMC故障穿越本质的初学者。

1. 两级式光伏MMC并网系统的整体设计思路

1.1 为什么选“两级式”而不是单级式

光伏并网系统常见的拓扑有单级式和两级式。单级式结构就是光伏阵列直接接一个逆变器,中间没有DC-DC环节,好处是器件少、损耗低,但问题也很明显:光伏阵列输出电压随光照和温度变化很大,逆变器必须兼顾MPPT和并网控制,两者的控制耦合在一起,故障穿越时很难腾出手来做功率平衡。

两级式结构则把任务拆开了:前级Boost电路专门负责MPPT,把光伏阵列的电压抬升并稳定到某个合适的直流母线电压;后级MMC只负责直流到交流的变换和并网控制。我实际搭模型时最大的体会是,两级式在故障穿越场景下的优势特别突出。电网电压跌落时,MMC需要快速限制输出功率,这时候前级Boost可以同步切换到限功率模式,防止直流母线电压被顶起来。如果把MPPT和并网控制强行塞在同一个变换器里,故障瞬间很难处理这种双向耦合。

所以选择两级式不是因为它更先进,而是因为它把"最大功率跟踪"和"并网电能变换"这两个任务解耦,故障穿越时的控制逻辑会清晰很多。

1.2 MMC在低压并网验证中的角色

MMC(模块化多电平换流器)在实际工程里主要用于中高压场合,比如柔性直流输电、高压 STATCOM。实验室仿真做低压光伏并网也用MMC,主要是看中它的模块化结构和多电平输出特性。

MMC的每个桥臂由若干个子模块(半桥结构比较常用)串联而成,通过控制子模块投入和切除的数量,输出侧可以逼近正弦波。子模块数量越多,电平数越多,谐波特性越好。仿真模型里一般用4个子模块每臂、或者6个、8个,再高仿真速度就明显变慢了。实测下来4个每臂已经能看到多电平阶梯波和良好的均压效果,验证故障穿越策略完全够用。

1.3 交流故障穿越到底解决什么问题

交流故障穿越,简称为FRT,核心要求是:电网发生电压跌落时,光伏并网逆变器不能立刻脱网,必须在规定时间内保持并网状态,并根据跌落深度向电网注入无功电流,支撑电网电压恢复。

对称故障指三相电压同时跌落,比如三相短路、三相接地短路。不对称故障则指单相接地、两相短路、两相接地这类情况,此时三相电压不再对称,会同时出现正序、负序分量,严重时还有零序分量。

不对称故障比对称故障麻烦得多。负序分量会导致并网电流中出现负序分量,进而引起交流瞬时功率的二倍频振荡,这个振荡会通过MMC传递到直流侧,造成直流母线电压出现明显的2倍频(100Hz)波动。所以做不对称故障穿越仿真时,负序电流抑制是绕不开的课题。

2. MMC主电路参数计算与子模块设计要点

2.1 桥臂子模块数量N的确定

MMC每相有上下两个桥臂,每个桥臂由N个子模块串联。输出相电压的电平数为N+1,线电压电平数为2N+1。仿真中N的取值直接决定模型复杂度和仿真耗时。

我建议你做验证性仿真时先取N=4。这个数量下,载波移相PWM的移相角为180°/N=45°,已经能实现较好的多电平效果,子模块电容电压均衡策略也能完整验证,仿真速度还可以接受。N再大,比如取到10以上,详细开关模型的仿真步长会被压得很小,跑一次1.2秒的故障穿越仿真可能要几个小时。

子模块拓扑推荐用半桥结构,每个子模块由一个IGBT半桥和一个直流电容组成。半桥子模块结构简单,成本低,在不需要输出负电平的场景足够用。如果你后面要扩展到负电平输出、或者做直流故障阻断,再考虑全桥子模块,但故障穿越仿真用半桥完全够。

2.2 桥臂电感和子模块电容的经验设计

桥臂电感的主要作用是抑制MMC桥臂间的环流和限制故障电流上升率。桥臂电感太小,环流压不住,电容电压容易发散;桥臂电感太大,电感上的压降增大,调制比裕量不够,而且动态响应变慢。

工程上桥臂电感标幺值通常取0.1到0.2之间。我惯用的估算方法是,先确定系统额定容量和直流母线电压,再根据目标环流纹波幅值反推电感值。比如系统额定线电压380V、直流母线700V、额定功率10kW时,桥臂电感取2mH到3mH量级就比较稳妥。你可以先按0.15 p.u.估算,然后在仿真里观察环流波形,如果二倍频环流纹波超过额定电流的5%,就适当加大电感。

子模块电容则根据允许的电容电压波动范围来选。电容越大,电压波动越小,但成本和体积也越大;电容太小,故障穿越瞬间功率突变会直接把电容电压顶出安全范围。

经验公式一般是按照“子模块电容储能与桥臂额定输送能量的比值”来估算。工程上常用的储能等效时间常数为30ms到40ms左右,对应的电容电压波动控制在5%到8%。我测试用的一组参数是:子模块电容3mF,直流母线700V,N=4,额定功率10kW,正常并网时电容电压波动约60V左右,故障穿越期间约80V,整体在可接受范围内。

2.3 直流母线电压与前级Boost的配合

两级式系统的直流母线电压需要留出足够的调制裕量。对于MMC,直流母线电压必须高于交流侧线电压峰值对应的直流需求,同时考虑调制比上限。一般调制比留0.85到0.9的裕量。

我的做法是:交流侧线电压380V(有效值),峰值约537V,考虑到MMC输出相电压需要叠加一定的调制裕量和控制裕量,直流母线电压定在700V左右比较合适。前级Boost把光伏阵列输出电压从200V左右(模拟参数)抬升到700V,同时维持直流母线稳定。如果直流母线电压波动太大,Boost的控制带宽需要适当提高,或者加一点前馈补偿,否则故障穿越时母线容易过压或欠压。

3. 故障穿越控制策略与正负序分离

3.1 MMC正常工况下的控制结构

MMC正常并网采用双闭环控制:外环控制直流母线电压和无功功率,内环控制电流。外环的输出作为内环的电流指令,内环在旋转坐标系下用PI控制器实现d轴和q轴电流的解耦控制。

在同步旋转坐标系下,d轴电流对应有功功率,q轴电流对应无功功率。外环直流电压控制器输出d轴电流指令,无功功率控制器输出q轴电流指令。内环电流PI控制器输出电压调制指令,再经过调制策略得到每个子模块的投入和切除信号。

MMC还有一个独有的控制目标——环流抑制。MMC桥臂之间的环流是二倍频负序分量,只在三相桥臂之间流动,不流到交流侧。如果不加环流抑制器,环流会增大子模块电容电压波动和桥臂电流应力。我常用的环流抑制方法是在电流环基础上加一个二倍频负序旋转坐标系下的PI控制器,把桥臂环流中的二倍频分量压到接近零。

3.2 对称故障穿越的实现方式

对称故障时,电网三相电压同时跌落到某个深度,比如跌到额定值的20%,此时MMC需要维持并网,并按照跌落深度输出无功电流。并网导则通常要求无功电流优先,有功电流要被限制。

我实现的对称故障穿越逻辑分两步:

第一步,故障检测。用交流侧正序电压幅值作为判据,当正序电压幅值跌到额定值的90%以下时,判断进入故障穿越状态。这个判断要带一点延时滤波,防止瞬时毛刺误触发。

第二步,控制切换。故障穿越状态下,外环从"定直流电压控制"切换为"定无功电流控制",有功电流指令按照"最大电流限幅减去无功电流分量"来设定。公式上就是:

[ I_{d_ref} = \min(I_{d_max}, \sqrt{I_{max}^2 - I_{q_ref}^2}) ]

[ I_{q_ref} = K \times (1 - U_{pos}) ]

其中K是无功支撑系数,一般取2左右,Upos是正序电压标幺值。举个例子,电压跌到0.2 p.u.,无功电流指令就是1.6 p.u.,这种情况下有功电流基本被压到很小,但为了保证直流母线不过压,前级Boost必须同步限制光伏输出功率。我在模型里做的方法是,检测到故障后,把Boost的MPPT切换为定电压限功率模式,让光伏输出功率快速降下来。

直流母线过压的兜底手段是直流侧卸荷电路,也就是在直流母线并联一个带IGBT的泄放电阻,母线电压超过保护阈值就自动投入。仿真里可以把这个电路加上,虽然可能不会真的触发,但能防止极端参数整定失误时模型跑飞。

3.3 不对称故障:负序分量与功率二倍频振荡

不对称故障里,最典型的是单相接地短路。这种情况下电网电压出现负序分量,负序电压在电流环的PI控制器里表现为一个100Hz的扰动,如果控制器带宽不够,负序电流会被放得很大,导致过流。

处理负序电流的方法有两种思路:

一种思路是在静止坐标系下用PR控制器,对基波正序和负序分量分别谐振控制。PR控制器对负序分量有足够的增益,不需要做正负序分离,结构相对简单。

另一种思路是双旋转坐标系解耦控制,把正序和负序电压电流分别变换到各自的旋转坐标系下,用两套PI控制器分别控制。这种思路物理概念清晰,但需要用到正负序分离算法来提取正负序分量。

我最终在模型里用的是双旋转坐标系方案。正负序分离用延迟信号消除法实现,将三相电压延迟1/4个工频周期(5ms),与原信号做加减运算,就能分离出正序和负序分量。这个方法实现简单,仿真里用延时模块加增益就能搭出来,配合PLL使用效果很稳。

控制目标上,不对称故障穿越可以选择负序电流抑制为零,也就是让并网电流保持三相对称。这样的好处是交流功率中的二倍频波动被消除,但代价是交流电流可能会出现某一相过流。另一种目标是不对称电流控制,即允许负序电流注入,以抵消负序电压引起的功率波动,但控制复杂度和过流风险都更高。

我做仿真验证时,默认采用负序电流抑制策略,即控制目标为负序电流等于零。在这个目标下,直流母线电压的二倍频波动已经能得到明显改善,工程实现也更简单。

3.4 锁相环在故障期间的改进

不对称故障时,电网电压中的负序分量会通过PLL造成锁相角振荡。PLL锁相角不准,坐标变换就会出错,电流控制就会乱。

常用的改进方案有解耦双同步坐标系PLL和双二阶广义积分器PLL。DSOGI-PLL的思路是把三相电压变换到静止坐标系后,通过两个二阶广义积分器分别提取正序和负序分量,再用正序分量PLL锁相。仿真里搭建DSOGI-PLL虽然多花一点时间,但故障穿越的稳定性提升非常明显。

我自己实际测试的体会是:普通同步旋转坐标系PLL在对称故障时问题不大,但在单相接地这种不对称故障里,锁相角会有明显的100Hz振荡,严重时直接把并网电流波形带歪。换上DSOGI-PLL之后,情况大幅改善,电网电压跌到20%时依然能保持锁相稳定。所以做不对称故障穿越仿真,PLL这一环一定不能省。

4. Simulink仿真建模全流程与实操细节

4.1 前级光伏阵列与Boost电路搭建

仿真模型的前级我用光伏阵列模块模拟,配一组标准工况参数:开路电压约250V,短路电流约8A,最大功率约10kW。光照强度用阶跃信号控制,比如0.4s时从1000W/㎡降到800W/㎡,用于模拟光照变化。

MPPT算法用扰动观察法,通过S-Function或Matlab Function模块实现。扰动观察法的逻辑是:实时采样光伏输出功率,如果功率比上一时刻增大,就保持扰动量方向不变,否则反向扰动。这个算法实现简单,稳态时会在最大功率点附近小幅度振荡,对于验证故障穿越策略足够用。

Boost电路用Simscape Electrical里的IGBT和二极管搭,开关频率10kHz。Boost的输出接直流母线电容,母线电容大小取几千微法拉,用于稳定母线电压。

有一点要注意:MPPT的步长不能太大也不能太小。步长太大功率振荡明显,步长太小动态响应慢,光照突变时半天追不上最大功率点。我用的扰动步长是0.5%占空比,效果比较均衡。

4.2 MMC主电路与子模块封装

MMC部分我建议用Simscape Electrical搭建详细开关模型。先做一个半桥子模块的封装:子模块内部包括两个IGBT(带反并联二极管)和一个电容,定义输入为控制信号g1和g2,输出为子模块端电压和电容电压。把封装做好后,每个桥臂复制N个,串联成桥臂,再做上下桥臂的组合。

三相共六个桥臂,每相上下桥臂通过桥臂电感接到交流侧。交流侧通过一个小的滤波电感或者直接接三相电压源(带内阻)模拟电网。MMC输出侧不需要额外的变压器,模型里直接对接即可,实际工程接变压器的情况可以通过调整电压幅值来等效。

这里有一个我踩过的坑:子模块封装的电容初始电压必须设置到Vdc/N,也就是直流母线电压除以每臂子模块数。如果初始电压不匹配,通电瞬间电容充电电流会非常大,容易触发仿真过流保护甚至不收敛。

4.3 调制策略与环流抑制实现

调制策略我用载波移相PWM。每相上下桥臂各N个子模块,共2N个载波,载波相位依次错开一个固定角度。对于常见的最近电平逼近调制,子模块数较少时阶梯波畸变大,波形质量不好,所以N=4时更推荐载波移相PWM,波形质量好很多。

载波移相PWM的具体实现是:生成N个频率相同(比如2kHz)、相位依次错开180°/N的三角载波,然后与同一相的子模块调制波比较,得到各子模块的开关信号。上下桥臂的调制波互为反相,实现桥臂间的补尝输出。

环流抑制器加在电流环输出后面,检测上下桥臂电流之和的一半作为环流,提取其中的二倍频分量,经PI控制器后叠加到内环输出电压指令上。具体调试时可以先用示波器观察桥臂电流,如果看到明显的二倍频波形,就调环流抑制器的参数。

4.4 电网故障模块设置与故障参数

电网故障用Simscape Electrical里的三相故障模块实现。故障模块可以设置故障相别、接地电阻、故障时刻和持续时间。

我做故障穿越仿真时,典型的工况序列是这样的:0到2s正常运行,2s时投入故障,2.1s故障切除,之后运行到3s结束。故障类型分别配置三相对地短路、单相接地短路和两相短路,通过切换故障模块的参数来控制。

短路阻抗要设置得足够小,才能模拟出深度跌落的故障。一般情况下过渡电阻设为0.01Ω,对应金属性短路,电压会跌到接近零。如果实验平台上需要模拟轻度跌落,比如跌到50%,可以适当增大过渡电阻,但作为故障穿越验证,深度跌落更有说服力。

我在配置故障时刻时还发现一个细节:故障投入瞬间,如果故障模块的初始状态和当前电路状态衔接不好,仿真会出现一个尖峰。解决办法是给故障模块设置合理的缓冲电阻,或者把故障过渡电阻从大往小渐变,这比一步切换到0.01Ω要平滑得多。

4.5 波形观测与指标验证

仿真跑完后,重点观测以下波形:

第一,并网电流波形。对称故障下,电流在故障期间应保持正弦且不超限;不对称故障下,采用负序电流抑制时三相电流基本对称,或至少不出现明显的畸变和放大的负序分量。

第二,直流母线电压波形。正常工况下稳定在700V附近,故障瞬间允许一定波动,但幅度不宜过大。对称故障下主要出现过压风险,不对称故障下要观察有没有100Hz波动。

第三,子模块电容电压波形。每个子模块的电容电压应在Vdc/N附近保持均衡,波动幅度按设计控制在10%以内。如果某一相或者某几个子模块的电压明显偏离,说明均压策略或者调制策略有问题。

第四,无功电流波形。故障期间q轴电流应该快速上升到设定值,满足无功支撑要求。这个指标是验证故障穿越策略有效性的核心之一。

第五,有功功率和无功功率的响应过程。正常并网时有功功率跟踪光伏输出,无功功率按指令输出,故障期间无功功率上升、有功功率受限,故障恢复后功率恢复到原状。

5. 常见问题与排坑实录

5.1 子模块电容电压发散怎么办

这是MMC仿真里最常遇到的问题。现象是仿真运行一段时间后,某个或某几个子模块电容电压持续升高或降低,最终被顶到上限或跌到零。

排查思路按优先级来:

第一,检查电容初始电压是否设置正确。每个子模块电容初始电压为Vdc/N,这是最容易忽略的一步。第二,检查载波移相角度是否计算正确。N个载波相位差为180°/N,错一位都会导致子模块投入时间不均。第三,检查均压策略。如果模块间电容电压差异较大,需要补充排序均压算法,在每个控制周期内对子模块电容电压排序,根据电流方向决定哪些子模块优先投入。

我亲测下来,前两个原因排掉之后,大部分发散问题都出在均压策略上。半桥子模块的均压原理是:桥臂电流给电容充电时,优先投入电压较低的子模块;放电时优先投入电压较高的子模块。在载波移相PWM的基础上叠加排序均压逻辑,电容电压基本能稳定。

5.2 故障瞬间并网电流冲击过大

故障瞬间电网电压骤降,控制环路来不及响应,电流很容易出现尖峰。

我的处理方法是分级限幅。电流内环的输出加一个限幅器,同时故障穿越状态下对外环输出的电流指令也做限幅。限幅值按IGBT的安全工作区设置,一般取额定电流的1.2倍左右。此外,故障检测的延时不能太长,否则故障期间控制器还在按正常模式运行,负序电流会越来越大。故障检测用电压正序分量幅值做判据,延时控制在5ms以内。

还有一个容易被忽视的点:故障切除时同样会有冲击。电网电压恢复瞬间,如果无功电流指令还在高位,会导致过流或者过压。所以故障恢复逻辑也要有,检测到正序电压恢复到90%以上后,把无功电流指令逐步降下来,而不是瞬间切除。

5.3 不对称故障下直流母线电压100Hz波动

这个问题的根源在于负序电流抑制不彻底。即使控制目标设成负序电流为零,实际中由于控制带宽有限和正负序分离算法的误差,直流侧还是会残留部分二倍频功率波动。

有几个手段可以改善:一是提高内环电流控制的带宽,让负序电流控制器响应更快;二是增加直流母线电容,通过储能来平滑二倍频功率波动;三是优化正负序分离算法,减少分离误差。

我在模型里加了前馈补偿:把根据负序电压和正序电流计算出的二倍频功率前馈到直流电压环的输出,能进一步压低母线电压的波动幅值。实测下来直流母线电压波动从原来的8%以上压到了3%左右。

5.4 仿真速度太慢,怎么提速

详细开关模型的MMC,每个桥臂4个子模块、总共24个子模块,每个子模块两个IGBT,加上PWM高频开关,仿真步长要压到微秒级,跑一次3秒仿真要很长时间。

提速的几个思路:

第一,把求解器改成离散固定步长,步长选择在5e-5到1e-4之间,注意不要太大,否则开关事件会丢失。

第二,适当降低载波频率。仿真用的载波频率不一定要和工程一致,降到1kHz甚至更低,波形精度影响不大,但仿真速度提升明显。

第三,先用平均模型跑控制策略。把MMC子模块用受控电压源等效,电容电压用均值表示,这样仿真速度快很多。等控制策略验证差不多了,再切成详细模型验证电容电压和均压逻辑。这个方法论我觉得是最实用的,能省掉大量等待时间。

第四,关闭不必要的波形显示和Scope记录。Scope模块的history设置别留太多点,数据量大了仿真也会变慢。

5.5 几个容易被忽略的小细节

第一个,故障模块的接地电阻。三相短路故障时如果接地电阻设成0,仿真容易出现奇异,通常给过渡电阻留一个很小的值(比如0.001Ω)能避免这种问题。

第二个,PLL的初始相位要和电网电压源初始相位一致。如果两者相位对不上,启动瞬间会有一个很大的涌入电流,需要很长时间才能衰减。解决办法是让PLL的初始角等于电网电压源的初始相位角。

第三个,Boost的MPPT和MMC的直流电压环存在交互。两级式系统里,前级Boost控制光伏电压,后级MMC控制直流母线电压,两者的动态响应时间尺度不要靠太近,否则可能出现不稳定振荡。一般把MMC直流电压环的响应速度调快一些,Boost的MPPT跟踪速度调慢一些,运行起来就很稳。

6. 我用这套模型做完仿真后的几点体会

我个人做完这套模型后有个很深的感受:做故障穿越仿真,控制策略的设计和主电路参数的设计是分不开的。好多时候波形不对,不是因为控制逻辑写错了,而是因为桥臂电感或子模块电容参数不合理,导致控制器根本没有足够的调节空间。所以调试的时候别一味地调PI参数,先检查一下参数设计环节是否留足了裕量。

另外一个体会是,故障穿越仿真的价值在于"在错误中看到规律"。比如不对称故障下的负序电流,如果只是看书,很难直观感受到它如何在坐标变换中表现为100Hz扰动,也很难理解为什么PI控制器对它抑制能力有限。一旦在仿真里亲眼看到波形,再倒过来看公式和推导,很多概念一下子就通了。

如果你正准备搭自己的模型,我建议按照这样的顺序推进:先跑通正常并网,再跑对称故障穿越,最后再碰不对称故障。每一步都确认波形符合预期再进入下一步。前级Boost的MPPT也建议先单独调好,再接上MMC联调。这样踩坑的位置会更可控,排起错来也有章法。

最后再分享一个小技巧:故障穿越的仿真结果不一定要追求波形“完美”,更重要的是记录不同故障深度、不同故障类型下的关键指标,比如无功电流响应时间、直流母线电压最大偏差、电容电压最大波动值。把这些数据整理成表格,你会发现在论文或者项目报告里,这些数据比任何一大段文字描述都有说服力。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进