ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

光伏MMC并网系统Simulink交流故障穿越建模与仿真

光伏MMC并网系统Simulink交流故障穿越建模与仿真 做光伏并网仿真的朋友应该都体会过那种感觉调好的模型在稳态下完美运行一碰到电网故障就各种崩——直流母线电压飞起来、子模块电容电压散掉、电流波形乱成一片。尤其当你做的是MMC这种多电平拓扑问题会成倍放大。这篇内容我围绕“光伏MMC并网系统两级式”在Simulink环境下的交流故障穿越建模展开把对称故障和不对称故障两条线都走一遍覆盖拓扑设计、控制策略、参数整定、仿真踩坑几个关键环节适合正在做新能源并网方向毕业设计的研究生以及刚接触MMC仿真、想快速搭建一套能跑故障穿越工况的工程师参考。这套模型的完整形态是这样的光伏阵列经过Boost升压后接MMC直流母线MMC逆变后通过滤波电感和变压器接入电网。两级式的价值在于MPPT和并网逆变控制相互解耦但它也带来一个麻烦——交流故障时能量怎么协调涉及前后两级的配合不是单独调一个控制器就能搞定的。接下来我按搭建顺序来讲从架构划分到故障穿越策略把每一步为什么要这么做讲清楚。1. 两级式光伏MMC系统的整体架构与故障穿越边界1.1 为什么选两级式MPPT和逆变控制解耦光伏并网系统有单级式和两级式两种主流结构。单级式把光伏阵列直接接到逆变器直流侧逆变器一个控制器同时扛MPPT和并网控制两件事结构简单但耦合严重——MPPT扰动会影响直流母线电压逆变器功率变化又会反过来干扰MPPT追踪。两级式在中间加了一个DC/DC变换器通常用Boost电路这样前级只管升压和MPPT后级MMC只管直流到交流的变换和并网控制各自的控制环路相对独立设计调试都要清爽很多。从我实际的仿真经验来说两级式的另一个好处是光伏阵列的工作电压选择更自由。单级式为了配合逆变器直流侧电压阵列串联数就要受到限制。两级式则可以把阵列电压设计得比较低比如200V~500V区间用Boost升压到MMC所需的700V或者更高这在实际工程中意味着组件配置和MPPT电压范围的灵活性都大幅提升。仿真层面两级式也方便单独验证前后级的逻辑排错效率更高。两级式的代价是系统效率略低多一级变换就多一级损耗同时控制环路变多故障穿越时需要协调的动作也变多了。但对于故障穿越仿真研究来说两级式是更好的分析平台——你会更清晰地看到功率从光伏侧注入、经过直流母线、再由MMC送出的完整链条故障时每一步的能量失衡都在波形上有明确映射。1.2 故障穿越到底要“穿越”什么交流故障穿越FRTFault Ride-Through的定义很简单电网电压因为短路、接地等原因跌落时并网逆变器不能立刻脱网必须保持并网运行一段时间同时按标准要求向电网注入无功功率支撑电压恢复。实际在仿真里这个问题被拆成了三个具体考验第一是直流母线过压。交流侧电压跌落MMC能外送的有功功率骤降但光伏侧Boost还在源源不断地把功率送过来能量在直流母线电容和子模块电容上堆积电压就会往上飙。如果不限制直流母线电压可能冲到额定值的1.5倍以上直接击穿器件。第二是交流过流。MMC的电流内环在故障瞬间如果想维持原来的有功功率指令电流就会因为电压骤降而急剧增大超过IGBT的耐受范围。所以低电压穿越期间必须快速限制有功电流同时按照电压跌落深度计算无功电流指令。第三是不对称故障特有的问题——负序电流和功率振荡。单相接地、两相短路这类故障会产生负序电压分量在同步旋转坐标系下表现为二倍频扰动如果不做正负序分离和负序抑制三相电流会出现严重不平衡直流侧还会出现二倍频功率波动恶化电容电压均衡。所以故障穿越的“穿”不是单纯扛住故障时段而是要在一个明确的时间窗口内通常从故障发生到故障清除后恢复常见配置是故障持续0.4s~0.625s完成功率指令切换、电流限幅、无功支撑、故障后恢复这一整套动作。1.3 关键设备参数与Simulink配置概览我用的这套模型参数可以作为参考基线你做仿真的时候可以直接套用或者按比例缩放。这是仿真研究里很关键的一步——参数不合理后面控制策略调得再好也是白搭。参数数值说明光伏阵列开路电压370V组件串联数决定光伏阵列短路电流7.2A组件并联数决定最大功率点功率约2.4kWMPPT追踪目标Boost电感3mH保证电流连续直流母线电压700VBoost升压目标直流母线电容3000uF抑制母线电压波动MMC子模块数/桥臂5个仿真合理值子模块电容5mF按能量法折算桥臂电抗4mH约0.1 p.u.电网线电压380V/50Hz经滤波电感和变压器接入滤波电感2mH抑制高频谐波子模块电容取值有个经验公式按桥臂储能与额定功率之比来估算C 2HS/(N·Vc²)H通常取20~40msS是额定功率N是每臂子模块数Vc是子模块额定电压。这个式子保证在功率阶跃或者故障穿越时子模块电压波动能被限制在合理范围内。我取5mF做出来正常工况电压波动在±5%左右故障期间在±10%以内基本满足分析需求。2. 前级Boost与MPPT在故障期间的“角色反转”2.1 Boost的常规控制MPPT与定电压模式前级Boost在正常工况下的核心任务是执行MPPT。最常用的算法是扰动观察法PO原理简要来说就是不断微调占空比观察光伏输出功率的变化方向如果功率增加就继续同方向扰动否则反向。在Simulink里实现非常直接取光伏阵列输出电压和电流算功率用一个Memory模块保存上一拍的值比较后输出占空比修正量经过限幅后作为Boost的控制量。除了MPPT模式Boost还有一个定电压模式在光伏仿真里也比较常用。当光伏系统需要限功率或者直流母线电压需要精准可控时会切换到恒压控制。正常并网时通常用MPPT模式最大化发电量但故障穿越场景下这个逻辑就要反转了——不能继续追最大功率否则直流侧会过压。2.2 故障穿越期间为什么要切MPPT这是两级式系统故障穿越最容易忽略的环节。我见过不少模型只做了MMC侧的低电压穿越控制Boost还是死脑筋地跑MPPT。结果就是交流故障导致MMC外送功率骤降但前级仍然以最大功率往直流母线上灌能量直流母线电压以肉眼可见的速度飙升。这时候不管MMC侧控制得多好系统都扛不住过压。正确的逻辑是故障穿越期间Boost要从MPPT模式切换为限功率模式。具体做法是检测到交流电压跌落超过阈值后把MPPT的功率参考值替换为一个降额后的值——可以按跌落深度线性计算也可以直接设一个安全功率上限。更稳妥的做法是配合直流母线电压环当母线电压超过阈值时把Boost的电流指令切成由母线电压外环输出这样形成一个动态钳位母线电压越高前级送进来的功率越少。2.3 Simulink里如何实现模式切换模式切换的实现方式有多种我用的是比较直观的Switch逻辑判断方案。用“Three-Phase Fault”模块的故障信号状态或者右侧电网电压有效值检测生成一个故障标志位Fault_Flag1表示故障中。正常时Fault_Flag为0选择MPPT输出的占空比故障时Fault_Flag为1选择限功率控制器输出的占空比。限功率控制器可以用一个直流母线电压外环Boost电流内环的简单结构电压环参考值设得比正常母线电压略高一点比如730V这样故障时母线电压一旦越过这个点限功率环就开始起作用不会跟正常MPPT抢控制权。限幅参数也要注意。Boost占空比正常工作在0.3~0.6之间故障切换瞬间如果占空比跳变过大会让Boost输出电流出现尖峰。我给占空比加了一个速率限制器Rate Limiter这样模式切换时是斜坡过渡而不是阶跃突变整体波形会平滑很多实测效果很明显。3. MMC换流器建模子模块拓扑、调制和均压的三个关键选择3.1 子模块数怎么取舍MMC仿真的第一道选择题是每个桥臂放几个子模块。实际工程中一个桥臂可能有200~400个子模块仿真直接照搬的话Simulink模型规模会爆炸仿真速度慢到没法看。对于故障穿越这种偏控制策略的研究每桥臂4~6个子模块是比较常用的折中选择。子模块少仿真步长可以相对大一些控制逻辑和故障穿越策略的验证速度快。缺点也很明显输出电平数少波形谐波大等效电容变大故障穿越时的动态特性和高子模块数场景会有偏差。如果偏重波形质量或系统级谐波分析建议子模块数取到8~10个仿真时间会拉长但还在可接受范围。如果目标是验证几百个子模块工况下的算法性能那就不能再用详细开关模型得切换到平均值模型或者基于Thevenin等效的加速模型这是另一个话题了。3.2 调制策略CPS-PWM还是NLMMMC的调制方式主要有两类载波移相正弦脉宽调制CPS-PWM和最近电平逼近调制NLM。在Simulink仿真里选哪个主要看子模块数。CPS-PWM的实现思路是每个子模块使用同一个正弦调制波但三角载波依次错开2π/N相位然后比较得到PWM脉冲。它的优势在于子模块数少的时候等效开关频率高波形质量好而且每个子模块的开关动作天然均匀分布便于电容电压均衡。我这套模型子模块数只有5个用CPS-PWM很合适。NLM则是把调制波就近取整到最近的离散电平输出阶梯波。子模块数多的时候NLM的优势明显——不需要高频载波比较计算量小、动态响应快。但子模块数少于10个时NLM输出的台阶太少谐波含量大得让人难以接受所以子模块数少时默认采用CPS-PWM。Simulink里搭CPS-PWM有几个细节容易出错一是载波初始相位要准确N个载波相位依次错开2π/N二是调制波要加上桥臂环流抑制产生的修正量而不是直接用相电压参考三是生成的PWM脉冲要配合电容电压排序结果做最终投切决策。我之前跳过环流抑制直接调制结果桥臂电流里二倍频分量很大三个桥臂之间电流分配很不均匀。3.3 排序均压的简化实现电容电压均衡是MMC控制的核心问题。每个子模块电容独立充放电如果有的子模块一直处于投入状态、有的一直切除电容电压就会分化严重时某些模块过压损坏。经典的均压策略是排序法每一控制周期采样桥臂内所有子模块电容电压按从小到大排序然后根据桥臂电流方向决定投入还是切除电压最高或最低的一组子模块。桥臂电流给电容充电时优先投入电压低的子模块放电时优先投入电压高的子模块。在Simulink里实现排序法最直接的方式是用MATLAB Function模块写一段排序逻辑function [gates, sortedIndex] balancing(vcap, igate, N, n_on) % 输入子模块电容电压向量vcap(1:N)桥臂电流igate当前周期需要投入的子模块数n_on % 输出各子模块的开关信号gates(1:N) [~, idx] sort(vcap); % 电压升序排列 gates zeros(1, N); if igate 0 % 充电状态优先投入电压低的子模块 gates(idx(1:n_on)) 1; else % 放电状态优先投入电压高的子模块 gates(idx(N-n_on1:N)) 1; end上面的代码是简化逻辑实际模型里还需要考虑上一拍开关状态避免同一子模块频繁投切导致开关损耗增大。通常的做法是加入一个“最小开关次数约束”在排序结果基础上尽量保持原来已投入的子模块不变只调整少数需要变化的。这个逻辑写起来略绕但能显著降低等效开关频率波形也会更干净。排序均压的计算量随着子模块数指数级上升这也是为什么子模块数不能无限加的原因之一。4. 对称故障穿越直流过压的机理与应对4.1 三相短路时功率流向对称故障最典型的就是三相金属性短路或带过渡电阻的三相短路。故障瞬间电网电压大幅跌落MMC输出端电压骤降输出功率近似为P ≈ 1.5·Ud·IdUd塌了之后能送出去的有功功率几乎归零。但光伏侧Boost还在以MPPT模式向直流母线输送功率这时就出现一个典型的能量失衡进来的功率出不去直流母线上的电容和所有子模块电容都在被充电。母线电压和子模块电压一起抬升如果不干预几毫秒内就可能超过IGBT安全阈值。这个机理是理解对称故障穿越的关键——核心矛盾在直流侧不是交流侧。4.2 控制策略组合前后级联动针对上述机理对称故障穿越的控制策略分为三个层面顺序执行第一层是MMC侧的有功电流限幅。检测到电压跌落后有功电流指令需要快速降低给boost侧争取响应时间。电流内环必须有饱和限幅逻辑否则故障瞬间电流指令超过限制内环会饱和积分恢复时间被拉长。第二层是MMC侧的无功电流支撑。根据电压跌落深度计算出无功电流指令。一个常用原则是电压跌落越深无功电流越大通常按无功电流增量与电压跌落深度成正比来设计。参考Iq k·(1-Ug)·In这样的形式k一般取1~2。对称故障期间优先保无功支撑有功功率排在其次。第三层是前级Boost的限功率切换。这层前面已经说过了就是把MPPT切换成限功率模式从源头减少功率注入。同时如果直流母线电压仍然偏高可以配合卸荷电路Chopper吸收多余能量。卸荷电路在Simulink里建模很成熟一个比较器、一个IGBT、一个卸荷电阻就能搭出来卸荷电阻的功率和阻值要根据故障时最大盈余功率来选。4.3 Simulink故障设置与仿真观察对称故障在Simulink里用“Three-Phase Fault”模块配置模型里注意几个点故障类型选三相短路3-Phase Fault或Three-Phase To Ground。故障时间设置常用0.5s切入、0.9s切除持续0.4s。这个窗口符合故障穿越验证的时间尺度需求。过渡电阻设置要注意金属性短路R0太刚烈故障瞬间的数值冲击会很大建议先设R0.01Ω试跑确认系统能稳定再降。观测波形时重点关注三个信号直流母线电压应该被钳在设定范围内、MMC三相输出电流应该有限幅效果、子模块电容电压故障期间波动增大但不应失控。我实测的典型曲线是故障瞬间直流母线有一个快速抬升尖峰约1.1倍额定值随后被限功率环拉回到许可范围内故障切除后有小幅回落再恢复至额定值。这个形态基本符合理论预期。5. 不对称故障正负序分离与负序电流抑制5.1 不对称故障为什么比对称故障复杂不对称故障——单相接地、两相短路、两相接地——在电力系统分析中可以用对称分量法分解成正序、负序和零序三个分量。对于MMC换流器来说零序分量通常被变压器Δ/Y接线阻断影响集中在正序加负序的组合上。负序分量在同步旋转dq坐标系里是个麻烦的东西正序分量在d轴q轴上表现为直流量但负序分量在正序dq变换下会表现为二倍频的交流量。这意味着如果在不对称故障时还用传统正序dq坐标系下的PI控制器负序分量会让电流内环出现稳态误差和两倍频振荡三相电流畸变、直流母线二倍频波动、子模块电容电压周期性振荡整个系统就像在打摆子。5.2 正负序分离的两种常用实现要处理负序先得把正序和负序分量分离开来。Simulink里有几种做法最常见的是延时信号消除法DSCF。在三相静止坐标下正序分量是一个旋转相量负序分量反向旋转。把当前采样值和四分之一周期前的值做特定组合可以构造出正负序分离。计算式上对静止αβ轴的电压做Va_p 0.5·(Va - j·Vb延时的交叉项)就能得到正序分量。这个方法实现简单一个Memory栈加几个运算模块就能搭出来代价是引入了四分之一周期的延时动态响应稍慢。另一种是SOGI二阶广义积分器或者双SOGI-FLL结构。SOGI本身是一个自适应滤波器可以在静止坐标系下对αβ轴分别构造正交信号然后通过瞬时对称分量法分离正负序。SOGI的优点是带宽可调动态响应比DSCF快对频率波动也有一定适应能力。代价是模型复杂度高一些参数阻尼比和中心频率需要调。5.3 负序电流抑制的控制结构分离出正负序之后控制结构有两种选择双dq电流控制和静止坐标系下的比例谐振PR控制。MMC仿真里双dq电流控制最直观正序dq坐标系下用一组PI控制器控制正序电流负序dq坐标系下用另一组PI控制器控制负序电流。负序电流指令设为零这样负序电流环会主动把负序电流压下去得到尽可能平衡的三相电流。双dq控制在Simulink里的实现要点正负序的Park变换角度不同——正序用θ负序用-θ。两个坐标系下的电流误差分别通过PI控制器输出的电压指令变换回静止坐标后相加作为最终调制波。需要注意的是负序电流环的PI参数通常会比正序环稍微低一些因为负序是交流量在正序dq坐标系下看是二倍频会有一定的跟踪误差实际控制目标不是完全消除负序电流而是把它抑制到可接受范围。我实际跑下来的效果纯对称故障模型改成不对称故障模型后如果不加负序抑制三相电流不平衡度可能到30%以上直流母线电压出现明显的100Hz纹波加上负序电流抑制后三相电流恢复对称100Hz纹波被大幅压缩子模块电压波动也显著减缓。整体控制效果改善非常明显。5.4 一个容易忽略的点锁相环在不对称故障下的表现不对称故障时电网电压存在负序分量如果锁相环PLL不做滤波处理输出的相位角θ本身就带有二倍频振荡后面所有Park变换和电流控制都会跟着振荡。所以做不对称故障穿越时PLL内部也要做滤波——通常是在PLL环节加入陷波器滤除二倍频分量或者用前面提过的DSCF先做正序电压提取再用正序电压给PLL供电。我在早期版本里没注意这个PLL输出相位一直在抖电流内环怎么调都压不住后来才反应过来问题出在源头。6. Simulink建模中实际踩过的坑与仿真效率优化6.1 求解器与步长选择故障穿越模型涉及开关器件Boost、MMC子模块我建议用离散定步长求解器Discrete, fixed-step步长根据子模块数和开关频率来选择。我常用的配置是1e-5秒10微秒载波频率5kHz每个开关周期有20个采样点精度足够。有些朋友习惯用变步长求解器稳态时跑得飞快一到故障瞬间步长自动缩到极小仿真速度反而崩了。而且变步长在故障这种大扰动场景下容易出现数值不收敛。如果模型里用了理想开关V-I特性是刚性的变步长更容易触发数值振荡。所以故障穿越仿真优先固定步长。6.2 Three-Phase Fault模块的配置细节Simulink的故障模块有几个隐蔽的坑一是“Transition Time”的设置。如果从0开始仿真就让故障模块在线初始状态和故障切入时间要配置对否则模型一开始就处于故障状态稳态阶段等于白跑。我习惯把故障起始时间设在0.5s过渡时间设很小但不为零避免数值跳变过大。二是故障模块的内部电阻。三相接地故障中接地电阻的设置对仿真结果影响很大。金属性短路R0会让故障电流冲击很猛初期调试建议用0.1Ω左右的电阻等控制策略跑通了再逐步调小逼近更严峻的工况。三是故障状态信号的使用。Three-Phase Fault模块自带一个故障状态输出端口这个信号直接用作控制逻辑里的Fault_Flag比自己去算电压有效值再判断简单得多。我在模型里直接把这个信号引出接到前级Boost限功率切换和MMC侧无功指令切换上逻辑清晰又不容易出错。6.3 仿真速度优化故障穿越模型跑一次几十秒的仿真如果子模块用的是带IGBT开关的详细模型可能要跑好几分钟甚至更久。几个加速技巧实测有效第一尽量用平均值模型或者Thevenin等值电路替代详细IGBT模型。子模块里IGBT二极管的组合在Simulink里是最耗计算资源的组件。用受控电压源和电容的组合来等效子模块行为在故障穿越这种系统级动态研究里误差可以接受速度提升却能达到数倍。第二数据记录别图省事直接所有信号都接Scope。我在模型里把所有子模块电容电压、所有桥臂电流都接到了输出端口数据量巨大仿真时光写数据就占了大量时间。后来改成只记录关键信号其余用逻辑分析器按需查看速度快了一大截。第三如果模型规模实在太大可以考虑把模型切分成光伏Boost部分和MMC部分分别调试通过后再联合。两级式的好处就在这里——先单独验证Boost在限功率切换下的响应再单独验证MMC的故障穿越控制最后联调排查问题的效率高很多。6.4 故障穿越结果的评估清单仿真跑完如何判断故障穿越是否合格我列一个检查清单故障期间是否脱网看并网断路器状态和三相电流是否始终存在。直流母线电压峰值是否被限制在允许范围内我按1.2倍额定值作为验收线超过就要调限功率响应速度。子模块电容电压故障期间最大波动不超过正负15%比较合理。无功响应速度从故障发生到无功电流达到目标值的时间一般要求控制在几毫秒级别。故障切除后的恢复有功功率是否平滑恢复有没有二次冲击或振荡。不对称故障额外检查三相电流平衡度、直流侧二倍频分量幅值。这几个指标都过了这套故障穿越模型基本就算合格。做这套模型最深的体会是故障穿越不是某一级控制器单独能搞定的它是整个系统的协同作战——光伏侧要懂事地降功率MMC侧要快速响应支撑电网子模块电容要扛住能量冲击PLL要在污染的信号里稳住方向。Simulink的价值就在于把这些不同时间尺度的动态全部放在一个平台里让你能直观看到哪一环出了问题。如果你正在做这个方向我建议先从对称故障开始跑通再叠加不对称故障的正负序分离控制每走一步都盯住直流母线和电容电压这两个关键量这样排查起问题来会顺畅得多。
返回列表