做光伏MMC并网系统的仿真,最绕不开的一件事就是故障穿越。我这两年接过几个类似的模型需求,两级式光伏+MMC并网、交流侧对称和不对称故障、Simulink仿真,这几个关键词放在一起,看似各管各的,实际上是一个完整的闭环:拓扑决定控制,控制决定故障响应,故障响应最终要在仿真里复现出来。这篇我就顺着这个思路,把两级式光伏MMC系统在交流故障穿越场景下的模型搭建、控制策略和调试经验,按我实际做项目的顺序完整拆一遍。无论是做课题研究、工程预研,还是想验证控制器在低电压穿越期间的逻辑,这套东西都适用。
1. 两级式拓扑怎么拆:前级DC-DC和后级MMC各管什么
1.1 两级式的分工逻辑
两级式结构在光伏并网里很常见,前一级是DC-DC升压电路,后一级是MMC逆变器。光伏阵列的输出电压随光照和温度变化很大,最大功率点电压可能从五六百伏跳到三百多伏,如果直接把光伏阵列接到MMC直流侧,直流母线电压会被光伏电压拽着走,MMC的调制比、电容电压平衡全会乱套。加一级DC-DC之后,前级负责把光伏升压到稳定的直流母线电压,同时完成最大功率点跟踪,后级只盯着直流母线电压和并网功率,控制目标解耦,这是两级式最大的好处。
对比单级式结构,两级式的代价是多了一套变换器、损耗略高、成本也高一些,但换来的是控制自由度。单级式方案在交流故障穿越时特别尴尬:电网电压跌落、逆变器输出功率受限,直流侧光伏还按最大功率往上送,能量堆在直流母线电容上,电压飙升,就只能靠切除光伏或加卸荷电路被动泄放。两级式的前级DC-DC可以在故障期间主动限功率,甚至直接把光伏工作点拉向开路方向,配合卸荷电路,故障穿越要从容得多。所以做MMC这种中高压大容量并网系统,基本都走两级式路线。
我在模型里把前级简化为Boost电路加MPPT控制器,后级是MMC,前后级之间用直流母线电容耦合,这对研究交流侧故障穿越已经足够了。如果想深入分析故障期间光伏阵列自身的响应,再在Boost前加详细的光伏阵列模型也不迟。
1.2 MMC子模块、桥臂电感和调制方式怎么选
MMC区别于两电平逆变器的核心,在于每相桥臂由一堆子模块串联而成,典型的是半桥子模块:上管导通时子模块输出电压等于电容电压,下管导通时输出电压为零,通过每个桥臂投入不同数量的子模块来逼近正弦波。仿真模型里子模块数量不可能做到工程现场那种几十上百个,也没必要,Per每个桥臂放4到8个子模块就能把MMC的核心特性复现出来:电容电压波动、桥臂电流、环流、子模块均压这些关键现象都在。子模块数太少会偏离实际波形,太多则仿真速度感人,这是个权衡。
桥臂电感不能省。它的第一个作用是抑制桥臂间环流,第二个作用是限制故障瞬间的电流冲击。取值一般按0.05到0.1倍的桥臂阻抗基准来定,我常用的做法是先算出系统的阻抗基准值,再反推电感值,大概在额定电压、额定功率下折算出来,再乘上0.06左右的系数。仿真模型里桥臂电感不能取得太小,否则故障时电流上升率太猛,控制还没来得及响应,仿真就发散了。
调制方式上,子模块数少的时候用载波移相PWM最直观。每个子模块一路载波,载波之间移相一个固定角度,通过比较正弦调制波和载波来生成驱动信号。子模块数多了以后,最近电平逼近更合适,因为它不需要那么多的高频开关信号,计算量低。我做故障穿越仿真时强烈建议用载波移相PWM,因为故障期间需要观察子模块电容电压波动细节,载波移相下的开关行为更接近实际情况,而且均压控制也更容易实现。
2. 对称故障与不对称故障:先看清故障期间系统在经历什么
2.1 电压跌落时的物理过程
电网发生交流故障,本质上是并网点电压幅值瞬时下降。对称故障时三相电压以相同幅度一起跌落,系统里只存在正序分量,三相仍然对称,MMC的工作状态没有本质变化,唯一的问题是:电网电压低了,逆变器输出同样功率时电流必然变大,当跌落深度超过一定限度,交流电流就会逼近开关器件能承受的极限。同时,因为交流侧能送出去的功率少了,直流侧光伏功率送不出去,直流母线电压会迅速上升,这是对称故障下最危险的两个现象。
不对称故障就复杂多了,单相接地、两相短路、两相接地都属于这一类。这类故障发生之后,电网电压除了正序分量,还会出现负序分量,具体到某相可能是电压深度跌落,另外几相电压可能抬高。负序电压作为扰动源,会在MMC内部激励出负序电流,使得三相电流严重不平衡;更麻烦的是,负序电流和正序电压相互作用,会在瞬时功率里产生二倍频的振荡分量,这个二倍频会顺着直流侧传上去,造成直流母线电压二倍频脉动、子模块电容电压波动加剧,桥臂电流里还会叠加二倍频环流。
我在调试中感受最深的是,不对称故障对MMC的威胁往往不是第一瞬间的过流,而是故障持续期间那个持续的功率振荡。如果不做负序抑制,MMC子模块电容电压波动会越来越大,最终导致均压失效、电容过压或逆变器过流跳闸。这也是为什么研究不对称故障穿越时,控制上的核心不是“扛住第一下”,而是“在故障期间稳住内部能量平衡”。
2.2 对称与不对称故障的关键差异
把两类故障对MMC的影响放一张表格里,差异就很清楚:
| 对比维度 | 对称故障 | 不对称故障 |
|---|---|---|
| 电压分量 | 只有正序电压跌落 | 同时出现正序、负序,严重时还有零序 |
| 三相电流 | 对称增大,但相位关系不变 | 幅值不等,相位失衡,可能单相过流 |
| 瞬时功率 | 平均值下降,无振荡 | 出现二倍频功率振荡 |
| 直流母线 | 电压持续上升为主 | 电压上升叠加二倍频脉动 |
| 子模块电容 | 电压波动加剧但相对均匀 | 波动加剧甚至三相不均,均压压力大 |
| 控制重点 | 限制过流、限制功率、无功支撑 | 负序电流抑制、负序功率控制、过流限制 |
不对称故障里零序分量要不要管,取决于系统接线。如果是三角形连接或者变压器一次侧无接地,零序没有通路,可以忽略;如果是带中性点接地回路,零序会对保护配置有影响。仿真模型里我通常在电网侧用隔离变压器,并在故障设置时有意识地加接地阻抗,这样零序通路是明确的,控制上只需要处理正负序。
2.3 故障穿越的基本要求:不掉网只是底线
故障穿越不是一个“能不能坚持运行”的简单判断题。并网导则对低电压穿越有明确的电压-时间曲线要求:电压跌落到一定深度时,逆变器必须保持并网一段时间,不能随意脱网;脱离这个要求,电网故障时大量光伏集中脱网,会对电网恢复造成二次冲击。所以仿真模型里必须把这个“穿越窗口”放进故障模块的设置里。
穿越期间无功支撑是硬指标。跌落越深、无功电流就要越多,一般按跌落深度百分比折算无功电流参考值,比如电压跌落到额定值的一半,无功电流要达到额定电流的接近一半左右。系统在故障期间要优先保证无功输出,有功电流降额,这样做有两个作用:向电网提供电压支撑,同时降低直流侧的功率堆积压力。这些指标在仿真里是通过故障期间切换电流内环参考值来实现的,具体的实现方式我放在后面控制策略部分讲。
3. 故障穿越控制策略:正负序分离、限流与无功支撑怎么实现
3.1 正负序分离:不对称故障绕不开的第一关
不对称故障发生后,采样到的三相电压电流是正序、负序分量的叠加,如果想对负序电流进行抑制,第一步就是把正负序干净地分离开。工程上常用延时法、二阶广义积分器法,或者基于陷波器的方法。仿真里最经典也最稳妥的是延时法:对αβ坐标下的采样信号延时四分之一个工频周期,再利用三角函数关系做代数运算,就能把正序和负序分离出来。原理不复杂,只要保证延时精确,波形中残余的高频纹波再用低通滤一下就行。
延时法实现起来只是一条memory模块加几个运算,但它有一个天生的缺点:延时期间输出相对滞后,故障刚发生时的一两个毫秒里,分离出来的正负序分量是过渡状态,不准确。如果故障发生时刻控制逻辑已经按这个不准确的值计算,电流环容易出现超调。我一般会在分离出来的信号后面再加一个截止频率几十赫兹的低通滤波器,或者把故障检测和模式切换单独做,不依赖正负序分离的动态过程。
如果对分离精度要求更高,可以用双二阶广义积分器加正交信号发生器结构,每个轴上都生成一对正交信号,然后通过延迟算子或复数滤波器实现正负序提取。这个方案动态响应比延时法快,但参数整定也麻烦,两个SOGI的谐振频率都要对准电网基频,阻尼比一般取0.5到0.707。仿真模型里我建议先用延时法跑通整个系统,再升级到SOGI,便于定位问题是出在控制策略还是出在分离算法上。
3.2 正负序双电流环与直流母线控制
MMC在正常工况下是一个并网逆变器,控制结构是典型的双闭环:外环控制直流母线电压和无功功率,内环控制交流电流。直流母线电压的参考值由系统设计决定,外环PI输出作为有功电流参考值id_ref,无功电流参考值iq_ref则根据并网需要另外给定。内环电流PI的输出再经过坐标反变换,生成三相调制波,送到载波移相PWM。
故障穿越时这套结构要增加“负序电流环”和“限流模块”。负序电流环的参考值取零,意味着控制器主动把负序电流压到零,这样三相电流能重新恢复平衡,功率振荡也会明显减小。负序电流环用的也是d-q坐标下的PI,只不过要在负序旋转坐标系里做,PI参数可以比正序环略微保守一点,因为负序分量的带宽要求没有正序高。故障期间无功电流优先,有功电流让位,具体实现是故障标志位激活后,把id_ref直接切换为“按跌落深度计算出的安全值”,iq_ref切换为“按跌落深度要求的无功电流值”。
直流母线电压在故障期间必须加限制逻辑,否则前级Boost送来的功率会把电容电压推上去。两级式的优势在这里就体现了:当MMC检测到故障并降低有功输出时,前级Boost的MPPT可以退出,转而限制光伏输出功率,有意让光伏工作点偏离最大功率点,甚至可以直接停止开关,让光伏阵列处于近似开路状态。如果这两级之间的通信或协调逻辑做得不好,可以在直流母线侧加一个卸荷电路模拟能量泄放,这虽然不是最经济的工程方案,但仿真里作为保护备用和故障穿越的兜底手段,简单可靠。
3.3 故障检测、模式切换和限幅逻辑
故障穿越能不能正常工作,一半取决于控制参数,另一半取决于“什么时候切到故障模式”这个判据。我在模型里用的是并网点电压幅值检测:对三相电压做dq变换,在同步旋转坐标系下计算正序电压幅值,当它低于正常值的某个阈值,比如0.9 pu,并且持续检测时间超过一个防抖延时,比如10毫秒,就置位故障穿越标志。
这个防抖设计是避坑关键。如果不加延时,电网正常运行时稍有一点电压波动,就会误触发故障模式切换,切换瞬间电流参考值突变,实际电流冲击比真正故障还要大。我见过不止一次模型在正常运行到故障前的时间段里就因为误触发振荡起来。防抖时间也不能太长,否则故障发生后控制系统响应滞后,过流风险上升。10到20毫秒是我试过的比较合适的区间,故障穿越要求的时间尺度是几百毫秒,这个防抖不会耽误正事。
限幅逻辑放在电流内环参考值和调制波的出口处。内环参考值限幅的意义是防止PI控制器在故障期间积分饱和,输出过大的电流指令;调制波限幅的意义是防止载波移相PWM出现过调制。故障瞬间电网电压跌落导致功率传送能力下降,外环PI为了维持功率会拼命增大电流指令,这时候如果限幅器不做限制,电流环的PI输出会冲到最大值,控制器进入深度饱和,故障结束时需要很长时间才能退出来。另外,调制波幅值一旦超过1,MMC输出电压能力跟不上,电容电压平衡会迅速恶化,所以必须在调制波生成后加一个硬限幅器。
4. Simulink建模实操:从模块选型到参数标定一整套流程
4.1 仿真模型整体框架与模块清单
Simulink中搭建这个系统,我习惯按物理结构分子系统,每个子系统有明确的接口,否则故障穿越调试时,波形一乱你根本不知道是哪一层出的问题。整个模型的顶层框图是:光伏阵列和Boost作为一个子系统,直流母线电容单独放在顶层,MMC三相桥臂做成一个子系统,桥臂出口接电抗器和升压变压器,变压器高压侧接电网,故障模块接在变压器高压侧和电网之间,控制算法全部集中在一个control子系统。
光伏阵列可以直接用Simscape里的PV Array模块,里面有现成的光伏组件参数库,也可以按单二极管模型自己搭。如果研究重点是故障穿越,PV Array用厂家参数模式就够用,不需要自己在S函数里重新实现电池模型。Boost部分用一个IGBT加二极管和电感电容组成,控制信号来自MPPT控制器。
MMC是我们自己搭的重点。每相上下两个桥臂,每个桥臂由4个子模块子系统串联,每个子模块就是一个半桥加电容,门极信号来自调制子系统。控制子系统里包含:正负序分离、锁相环、外环、正序电流环、负序电流环、环流抑制、载波移相PWM生成、故障检测与模式切换。这些子模块在故障穿越调试时都可以分别观察波形,这是Simulink建模相比纯数学仿真的核心优势。
4.2 关键参数的计算思路与参考取值
参数是整个模型能不能收敛的关键。我以一个100千瓦级系统为例,把各环节参数的标定思路捋一遍。光伏阵列侧:组件开路电压额定值、最大功率点电压、短路电流、最大功率点电流这四项从组件参数表里取,光伏阵列的串并联数决定总容量,MPPT电压范围要覆盖整个光照变化区间,Boost输出端的直流母线电压定为800伏。
MMC侧参数要先定直流电压和调制比。800伏直流配4个子模块的半桥,每个子模块承受约200伏,电容电压波动范围按5%到10%设计。子模块电容值按能量常数思想估算:MMC桥臂存储的能量和额定功率之间存在一个经验比例,容量越大电容越大,按这个比例算出来的电容量级通常能保证电压波动在合理范围。桥臂电感按前面说的0.05到0.1pu选取,配合桥臂电流和环流抑制的预期效果。这些参数之间是互相耦合的,不可能一次算对,我通常先给一个初值,跑稳态仿真看波形,再根据子模块电容电压波动百分比和桥臂电流纹波微调。
载波频率选1到2千赫兹就够仿真用了。太高的载波频率会大幅拖慢仿真速度,而故障穿越关注的功率和控制动态,时间尺度都在基波以上,载波频率对故障响应的直接影响很小。子模块数多一点时载波移相会形成等效多电平的阶梯波,如果每个桥臂只有4个子模块,载波移相之后波形台阶感较强,但不影响故障穿越结论的准确性。
4.3 求解器、步长和仿真时长的选择
故障穿越仿真涉及电力电子开关器件、快速电流环和电网暂态过程,求解器选不对,模型不是发散就是慢到怀疑人生。我统一用变步长ode23tb算法,它是针对刚性问题的隐式算法,适合这种带开关器件和高频控制环节的系统。ode15s也能用,但ode23tb对振荡型响应更友好。最大步长设成1e-4秒,这样既能保证开关动作时刻的分辨率,又不至于每一步都卡在极小步长上。如果发现故障瞬间波形毛刺严重,把最大步长降到5e-5秒试试。
故障模块里需要设置两个切换时间:故障开始时间和故障结束时间。仿真时长整体设为2到3秒,前0.5秒让系统从启动进入稳态,1秒时投入故障,故障持续600到700毫秒后切除,再观察几百毫秒恢复过程,这样一个仿真窗口能把故障前、故障中、故障后三个阶段完整记录。诊断故障穿越性能时主要看故障期间并网点电压、MMC输出电流、直流母线电压、子模块电容电压这几路波形。
故障类型通过Three-Phase Fault模块配置,想模拟三相短路就在三相上同时设接地,想模拟单相接地就只选某一相,想模拟两相短路就选两相之间短路。这个模块里有一个转移电阻参数,我建议设成一个小电阻而不是纯理想短路,这样仿真收敛性会好很多,也避免理论上的无穷大电流直接把数值解算爆炸。
5. 调试过程实录:我遇到过的典型问题与处理办法
5.1 模型上电就发散:先查电容初始与预充电
我做第一个版本时,模型一启动,子模块电容电压直接飞上天,仿佛电容上瞬间积蓄了几百伏能量。排查下来发现是MMC子模块电容没有设初始电压。MMC启动时子模块电容从零开始充电,如果控制环一上来就按额定电压计算调制信号,实际输出电压和期望差了一大截,桥臂电流就会猛冲。解决方法是给所有子模块电容设置一个合理的初始电压,比如额定电压的80%,并让系统先空载稳态运行一段时间,再合闸并网。仿真里这不是偷懒,而是等效于工程现场的预充电过程。
Boost侧同样有启动问题。光伏阵列刚接入时MPPT控制给出的占空比可能让输出电压迅速冲高,我习惯在MPPT的输出加一个速率限制器,让占空比变化率受到约束,避免启动瞬间前级输出过冲,把直流母线电压顶出控制范围。
5.2 故障切入后过流:限幅和PI限幅器的配合
故障切入的一瞬间,MMC输出电流尖峰几乎不可避免,但如果尖峰大到让仿真发散,就要检查限幅逻辑是否在电流环PI内部。我遇到过一次比较典型的情况:外环PI没限幅,故障后电压跌落,PI为了维持功率把id_ref推到三倍额定电流,内环跟着输出高调制比,桥臂电流直接冲到保护限值。处理方式是给外环PI增加输出限幅,限幅值设为额定电流的1.1到1.2倍,同时给外环PI所有的积分环节加积分限幅,防止积分深度饱和。这样一来,故障后id_ref能迅速退到安全范围,故障清除后也能快速恢复。
还有一个细节:限幅之后电流环参考值的变化很陡,相当于给内环一个阶跃指令。虽然限幅器本身有动态特性,但我在电流环参考值入口处加了一阶惯性环节,时间常数取几毫秒,平滑过渡,实测效果比裸限幅好很多,既避免过大的d/dt把桥臂电感电压推高,也不会明显拖慢故障穿越的响应速度。
5.3 负序抑制失效或振荡的几个原因
负序电流环最常出问题的是分离环节带宽不够。如果正负序分离用延时法,输出的负序分量残留大量二倍频纹波,负序PI控制器会把这些纹波当成反馈误差,控制器输出自己也带上二倍频,再叠加到调制波里,反而把振动放大。我后来在负序分离输出端加了一个带宽约50赫兹的低通滤波器,把二倍频分量压一压,负序电流环才稳定下来。滤波器带宽也不能太低,否则负序电流环的响应速度不够,无法在故障持续期间抑制住负序。
环流抑制和负序电流抑制的耦合也要注意。不对称故障时桥臂电流里的二倍频环流会被误识别成负序电流的一部分。虽然理论上前者在桥臂内环路、后者是交流出口电流,但仿真里如果都是从桥臂电流测量点采样,两者就会混在一起。我的做法是环流抑制取三相桥臂电流的双倍频坐标变换,负序电流环取交流出口电流的正负序分离值,两条链路分开采样、独立控制,这样就不会互相打架了。
5.4 常见问题速查表
| 现象 | 常见原因 | 处理手段 |
|---|---|---|
| 启动即发散 | 子模块电容无初始电压 | 设置额定值80%左右的初值,模拟预充电 |
| 正常波形正常,故障瞬间发散 | 故障阻抗为零、步长过大 | 故障电阻设小阻值、最大步长降到5e-5 |
| 不对称故障时直流母线二倍频过大 | 负序电流未抑制或抑制带宽不够 | 增加负序电流环并检查分离滤波器带宽 |
| 故障消除后电流环长时间回不到稳态 | 外环PI积分饱和 | 给外环PI加输出限幅和积分限幅 |
| 三相电流故障期间不平衡严重 | 负序前馈缺失或负序参考不是零 | 负序电流环参考值设为0,需验证带符号 |
| 子模块电容电压漂移 | 均压算法未按载波移相的相位处理 | 检查均压控制循环,必要时改为排序均压 |
| 故障检测误触发 | 判据无防抖或阈值过小 | 加10到20毫秒防抖,阈值设0.9pu |
5.5 关于模型复杂度的一点体会
最后给正准备动手的同行一个建议:第一版模型一定不要贪全。先把两级式主电路搭起来,光伏侧用恒压源替代,MMC用最简单的电流内环加电压外环跑通,确认桥臂电流、子模块电容电压都稳定了,再加MPPT和真实光伏阵列;确认对称故障穿越正常了,再上不对称故障和负序电流环。每加一层之前,先确保上一层波形是干净的,不然调试时你根本分不清振荡是来自MPPT、电流环、负序抑制还是环流控制。
我实际做完的感受是,这类仿真模型的难点从来不是单个模块的搭建,而是故障穿越模式下多控制环同时切换时的相互作用。对称故障考验的是功率平衡和过流限制逻辑,不对称故障考验的则是坐标变换、正负序分离和负序电流环的配合。把这些链路一层层理顺,模型自然就能复现出教科书里那张故障穿越响应曲线。后面如果你想往下扩展,可以在MMC桥臂里加进更详细的器件损耗模型,或者把前级Boost换成隔离型DC-DC变换器,故障穿越的底层逻辑并不会变,变的只是能量管理链路的具体约束条件。