ARTICLE · INTELLIGENCE

战地情报 · 详情页

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

风光储协同并网Simulink建模与仿真控制策略

风光储协同并网Simulink建模与仿真控制策略 1. 为什么值得搭一套风光储协同模型——从并网现场的痛点说起1.1 新能源并网的第一性问题不是缺电源而是缺可控性我最早接触风光储并网是从一次现场调研开始的。当时一个风电场里风机在满发但因为电网调度要求限制出力场站被迫弃风。而另一边光伏电站中午出力峰值过高变压器反向过载运维人员只能干瞪眼。这两个场景放到一起就是一个非常本质的问题风电和光伏的出力不可控电网要的是可预测、可调节、可支撑两者天然不匹配。储能就是来解决这个矛盾的。但储能不是接上去就完了——它要跟风机、光伏在同一个时间尺度上配合把波动平抑掉把峰值填平或削减甚至在低电压穿越等故障场景里参与支撑。要做到这些单靠手写传递函数或者静态功率计算是远远不够的必须有一套能在时域里模拟毫秒级动态的仿真平台。Simulink正是干这个的。我做的这套模型核心不是把风、光、储三个模块堆在一起而是让它们作为一个整体响应并网功率目标。项目背景是全球范围内风电场和光伏电站普遍配置储能的新趋势模型的结构、控制策略、参数整定方法基本可以平移应用到实际的场站设计与控制器开发中。1.2 为什么发电机选永磁直驱而不是双馈不少同行问我为什么风机部分不直接用双馈异步发电机DFIG的现成模型我的答案是永磁直驱同步发电机PMSG在协同仿真里的优势非常明显。全功率变流器隔离了发电机与电网之间的故障传递。电网侧的电压跌落、谐波、频率波动不会直接冲击发电机控制可以解耦成机侧只管发电网侧只管并网这对多电源协同太重要了。PMSG没有滑环和电刷结构数学模型里少了很多磨损和接触电阻的变量仿真收敛性更好。直驱机组可以采用变速恒频控制在风速变化时通过调整转速捕获最大风能MPPT的特性跟光伏MPPT在逻辑上很相似控制代码可以复用一套框架。永磁直驱的dq轴数学模型是标准的ud Rs·id Ld·(did/dt) – ωe·Lq·iquq Rs·iq Lq·(diq/dt) ωe·(Ld·id ψf)其中ψf是永磁磁链ωe是电角速度。机侧变流器用转子磁链定向让id0电磁转矩就和iq成正比Te 1.5·p·ψf·iq。这个线性关系让控制器设计非常直观。1.3 仿真模型在项目链条里的真实角色一个风光储并网项目从预研到落地通常要经历容量配置论证 → 主接线方案比选 → 控制策略开发 → 半实物仿真验证 → 现场调试。这套Simulink模型在前四个阶段都能发挥作用但不同阶段对模型的精度要求完全不同。做容量配置时可以用秒级甚至分钟级步长的能量平衡模型只算功率流不管电力电子开关。做控制策略开发时要用毫秒级步长的详细模型变流器IGBT开关、PWM、电流环都要在模型里。做半实物验证时模型要能生成C代码部署到控制器里跑这又要求模型的采样步长固定、离散化彻底。我在设计这套模型时特意把精细仿真版和部署简化版两套逻辑分开。精细版保留IGBT和PWM用于波形分析简化版把变流器等效为受控电压源用于能量管理和策略验证。两者共用同一套协同控制框架切换非常方便。这是我在工程实践里最想强调的一点模型架构比模型细节更重要因为不同阶段需要不同粒度的模型但如果架构是乱的后面每一步都要返工。2. 系统拓扑与三大子系统的Simulink建模细节2.1 整体拓扑交流母线耦合才是工程常态搭建风光储模型的第一步不是拖模块而是先把主接线定下来。目前工程上主要有两种拓扑直流母线耦合型风机背靠背变流器的直流侧、光伏Boost输出、储能双向Buck-Boost输出全部接到同一条直流母线上再统一经过一台大容量逆变器并网。优点是变流器数量少、直流母线电压可以统一调度缺点是任何一台设备故障都会影响整个直流系统工程实施和扩容都比较复杂。交流母线耦合型风机、光伏、储能各自经过自己的变流器逆变到低压交流母线再经过升压变压器并入中压电网。这是目前风光储场站的主流方案模块化强、便于独立调试和灵活扩容。我选用的是交流母线耦合型拓扑具体结构是一台2MW永磁直驱风机发电机出口690V经背靠背变流器接至690V母线、一座1MW光伏阵列经Boost逆变器接入、一套0.5MW/1MWh储能系统电池侧经双向变流器接入三者并联在690V交流母线上经一台0.69kV/10kV升压变压器接入电网。这个容量配比风2MW、光1MW、储0.5MW/1MWh是参照实际风光储场站常见的新能源装机容量10%-20%配储能的配置思路设计的。在Simulink环境下我推荐用Simscape Electrical库里的模块来搭建主电路。这个库的电气网络求解器是基于物理拓扑的能够正确处理变流器开关状态和电感电容的动态特性比纯数学模块堆出来的模型可靠得多。2.2 PMSG风机子系统从风速到并网的完整链路风机的建模我把它拆成四段风速模型、气动模型、传动链与发电机、变流器与控制系统。风速模型。真实风速通常由四个分量叠加而成基本风恒定分量、阵风短时脉冲、渐变风缓慢变化和随机风湍流扰动。在Simulink里我用一个MATLAB Function模块生成这四个分量的组合信号也可以通过Signal Builder来做周期性的风速场景。做协同控制时阵风和渐变风是考验储能响应能力的关键输入一定要设置多组不同变化速率的工况。气动模型。风力机捕获的机械功率为Pm 0.5·ρ·π·R²·Cp(λ, β)·v³其中λ是叶尖速比β是桨距角Cp是风能利用系数。我用的是经典公式λi 1 / (1/(λ0.08β) – 0.035/(β³1))Cp 0.5176·(116/λi – 0.4β – 5)·exp(-21/λi) 0.0068λ这个公式的好处是参数全部来自实验数据拟合最大Cp约0.48在仿真里能比较真实地反映风机在不同风速下的捕获效率。传动链与发电机。传动链我用两质量块模型把风轮惯量和发电机惯量分开中间用等效刚度系数连接。虽然单质量块模型更简单但两质量块能捕捉到传动链的扭振模态这个模态在风速突变时会和轴系相互作用直接影响机侧变流器的功率输出。发电机本体我用的不是Simulink里现成的永磁同步电机模块而是自己搭建了dq轴的电压方程和磁链方程因为现成模块的磁链饱和、温度特性往往封装得过死并不适合并网动态分析。变流器与控制。背靠背变流器分机侧整流器和网侧逆变器。机侧采用转子磁链定向id0控制让发电机的电磁转矩精度来自iq的线性控制网侧负责维持直流母线电压恒定同时控制并网无功功率。直流母线电压控制是外环电流是内环经典的双闭环结构PI参数可以通过极点配置法整定。2.3 光伏阵列子系统工程数学模型与MPPT的搭配光伏阵列在Simulink里有两种建模方式一种是直接用Simscape Electrical里的PV Array模块它会根据光照、温度、串并联数自动计算I-V特性另一种是根据光伏电池的单二极管模型自己搭函数。我两种都用过结论是快速验证用现成模块精细研究用自定义模型。单二极管模型的输出电流表达式为I Iph – I0·[exp((V I·Rs)/(a·Vt)) – 1] – (V I·Rs)/Rsh其中Iph是光生电流I0是反向饱和电流Rs和Rsh是串并联电阻Vt是热电压a是理想因子。实际工程里厂商提供的组件参数通常就是Voc、Isc、Vmp、Imp需要反向推算出I0和Rsh等内部参数。我建议第一次建模时先用厂商标准工况数据做标定保证模型在STC条件下输出正好等于组件铭牌功率否则后面MPPT效率怎么算都不对。光伏阵列的电气配置我设置为每块组件开路电压45V短路电流8A最大功率300W串联20块组件串输出电压约600V并联10串总装机1MW。这个电压选择不是随意的——Boost变换器的升压比不能太大1.5到2倍比较合适否则低压侧电流过大、开关器件损耗高逆变器直流输入侧也不容易匹配。MPPT控制我用的是电导增量法INC相比扰动观察法在光照快速变化时不会误判方向。实现时每0.01秒执行一次MPPT计算通过调整Boost变换器的占空比来追踪最大功率点。这里有个关键细节MPPT的步长不能太大否则会在最大功率点附近持续振荡但也不能太小否则响应速度跟不上光照突变。我工程里的经验值是占空比步长约0.001实测兼顾了收敛速度和稳态精度。2.4 储能系统电池模型、双向变流器与SOC管理储能部分我用了Simscape Battery库里的电池模型等效电路是Thevenin形式一个理想电压源串联内阻再并联一个RC网络模拟极化效应。这个精度对并网协同研究已经足够——不需要电化学级模型但比单纯用理想恒压源电阻的粗略模型更能反映充放电过程中端电压的缓慢变化。电池组的容量配置是1MWh额定电压700V由多个电芯串并联构成。SOC计算采用安时积分法注意在仿真初始时设定SOC初值我一般习惯设到60%这样在测试充电和放电两个方向时都有足够的裕量。储能变流器PCS是双向AC-DC变换器电池侧通过双向DC-DCBuck-Boost稳定直流母线电压然后公用交流侧的逆变桥。控制上分了三个层级最底层是电流环控制电感电流跟踪指令中间是功率环根据功率指令计算电流指令最顶层是SOC保护和模式切换逻辑这块我用了Stateflow状态机来管理因为充放电模式切换、SOC越限保护这些逻辑用状态机描述比梯形图或纯逻辑模块清楚得多。储能最核心的建模难点是模式切换平滑。当储能从充电模式切换到放电模式时功率方向反转如果电流环PI的控制方向没有平滑过渡母线电压会瞬间过冲或者塌陷。我的做法是功率环输出加上一个一阶惯性环节惯性时间常数取0.1秒让功率指令变化不是阶跃而是斜坡这样电流环就不会被突然反转逼出大的超调。2.5 并网接口与电网侧别在最后一步忽视等效阻抗很多初学者在搭并网模型时电网侧就用一个理想三相电压源直接接上。这在仿真里也许能跑但结果没有参考意义——实际电网是有等效阻抗的功率交换会在阻抗上产生压降和相位偏移直接影响并网点的电压稳定。我在电网侧用的是等效阻抗模型三相电压源内阻线路阻抗升压变压器漏抗。阻抗值根据短路容量比估算比如10kV母线短路容量设为500MVA那么等效阻抗约Z U²/Sk 10.5²/500 ≈ 0.22Ω。变压器容量选3.15MVA短路阻抗百分数6%折算到高压侧的漏抗约X 10.5²/3.15 × 0.06 ≈ 2.1Ω。这些参数按实际工程典型值设置不仅让仿真更可信也方便后续做低电压穿越测试时直接调整故障点位置和故障阻抗大小。3. 协同控制的核心链路从内环电流到储能响应3.1 为什么控制架构要选风光MPPT 储水平衡风光储协同系统的控制架构大致有三种选择主从控制、下垂控制和下垂集中调度混合控制。我做的这个模型采用的是风光MPPT 储水平衡的主从架构。理由很简单风机和光伏的首要任务是尽可能多发电它们的变流器功率控制环跟踪的是各自的最大功率点储能是唯一的快速可控电源它负责弥补风光出力与并网目标之间的差额。储能本质上是缓冲器或镜子——风光的每一步波动都会被储能吸收或释放。这种架构在工程上最容易落地因为不需要风机或光伏变流器大规模改造。并网功率目标的设定有两种方式一种是由上层调度下发固定的功率指令另一种是本地实时计算——把风光总出力经过低通滤波后的结果作为并网功率目标储能只负责补偿高频波动分量。我用的是后一种因为它在没有调度通信的条件下也能独立运行更贴近场站本地控制的实际需求。一阶低通滤波器的截止频率我设为0.01Hz也就是平滑时间为100秒。低于这个频率的功率变化由电网承担高于这个频率的由储能吸收这样储能动作幅度可控SOC不会在几分钟内耗尽。3.2 风机与光伏的MPPT在协同架构里怎么处理主从架构里风机和光伏貌似只是无脑跟踪MPPT但实际上它们的MPPT动态特性对储能的影响非常大。MPPT是一个不断搜索和尝试的过程每次扰动都会让输出功率出现小的阶跃变化这些扰动如果太频繁储能PCS的功率跟踪环就会一直处于忙乱状态。我的做法是在风机GS和光伏MPPT之间设置了一个功率平滑缓冲层风机和光伏各自的功率测量值不直接作为储能的补偿输入而是先经过一个短时间常数2秒的滤波再送进储能功率指令计算环。这个短滤波不会损失快速的真实波动但能把MPPT的高频扰动和测量噪声隔离开储能的运行平稳得多。在风速超过额定值或者光伏光照极强的场景风机和光伏会进入限功率模式。风机通过增大桨距角β来限制捕获功率光伏通过MPPT输出与调度限功率指令的较小值来降容运行。这个逻辑我在风机气动模型和光伏Boost控制中都做了保证模型在满发和限发两种模式下都可以正确运行。3.3 储能PCS的功率响应与SOC约束的配合储能PCS的功率控制指令可以写成P_bat_ref P_grid_ref – P_wind – P_pv P_filter其中P_grid_ref是并网功率目标P_wind和P_pv是风光的实际输出功率。这个公式的本质是让储能补差。但直接这样做有一个严重隐患如果风光实际输出长时间大于并网目标储能会持续充电直到SOC顶到100%之后储能无法再充电并网功率就会失去控制。所以我对功率指令做了两重保护SOC限幅保护SOC高于90%时限制充电功率让多余功率自然溢出到电网SOC低于20%时限制放电功率防止储能亏电。这个保护不改变控制结构只是在功率指令上加一个随SOC变化的饱和系数简单且可靠。功率变化率限制储能PCS的功率变化率限制在每秒10%额定功率以内避免功率指令阶跃导致PCS过流。这两点在Simulink里都用很简单的模块就能实现但我见过很多仿真模型不做结果就是跑短时间波形看起来没问题跑长时间工况时电池SOC要么清零要么爆表整个协同逻辑瞬间崩溃。3.4 直流母线电压联动这个间接控制最容易忽略交流母线耦合拓扑里三个变流器在直流侧的电压控制理论上各自独立但实际情况并非如此。风机的网侧逆变器需要把直流母线电压稳定在1100V光伏的Boost需要把光伏阵列电压提升到800V以上储能的PCS需要维持自己的直流电压在700V左右。它们各自有闭环但在电网电压发生跌落的瞬间并网点电压骤降导致所有变流器功率输出能力受限三个直流侧的电压会同时波动。如果三个电压环的PI参数没有做过联动测试可能会出现风机直流侧电压升高、光伏直流侧电压降低、储能拼命充电这种互相打架的状况。我在这个模型里专门加了直流电压满意度监测逻辑——实时计算三相直流电压的偏移量一旦任意一路的偏移超过设定阈值就触发协同告警并把功率指令切换到更保守的模式。这个逻辑在纯单机仿真中完全不需要但在多电源协同里非常必要。也是做半实物仿真时最容易发现的问题之一。3.5 电网不平衡时的正负序控制搜索引擎里正负序控制 simulink这个词的热度一直很高说明很多人在做并网仿真时遇到过电网电压不平衡的问题。电网电压不平衡的成因主要是单相大负载投切或不对称故障此时并网点电压会出现负序分量。负序分量会让并网电流产生畸变和附加发热传统的正序dq坐标系PI控制器对负序分量的抑制能力先天不足。我的模型里对网侧逆变器做了正负序分离处理先用陷波器Notch Filter在2倍基频处把dq分量里的100Hz脉动滤掉提取纯正序分量负序分量通过延时信号消除DSC方法分离。正序分量继续用PI控制器跟踪电网正序电压相位负序分量在静止坐标系里用PR控制器谐振控制器实施抑制目标是让并网电流中的负序分量趋近于零。在Simulink里搭建这套控制逻辑并不复杂核心就是用两套坐标变换分别处理正序和负序。调试时我个人体会最大的坑是陷波器滤波会造成相位延迟延迟再加上PLL的响应滞后很容易让控制环路出现高频振荡。我最终的解法是提高陷波器的品质因数Q值调到1.5左右并且在负序电流控制环降低增益先保证稳定再追求性能。4. 仿真工况设计与结果判读的关键波形4.1 典型工况脚本让模型在多种天气和电网状态下接受考验仿真模型的验证不能只在额定工况下跑一条漂亮的曲线就结束。我设计了一组标准的工况脚本用MATLAB脚本批量设置参数并运行工况A风速阶跃基本风速10m/st5s时阶跃到12m/st15s时回落。考验风机功率突变时储能的快速补偿能力。工况B光照渐变光照从1000W/m²以每秒50W/m²的速度线性下降到200W/m²同时叠加小幅随机波动。考验光伏出力缓慢变化时储能功率跟踪的平滑性。工况C负荷投切公共母线接入一个0.3MW的冲击负荷持续时间5秒。考验并网功率和母线电压的响应。工况D电网电压不平衡在变压器出口设置单相接地故障故障持续0.5秒后切除。考验正负序控制逻辑在不对称故障下的表现。在Simulink里批量跑这些工况我用的是在模型初始化脚本里定义结构体数组循环调用sim()函数并把关键波形以MAT文件保存。这样一次就能跑完所有工况不需要每次手动改参数。4.2 关键节点怎么判读不是只看像不像样判读仿真结果我总结了一套标准的体检流程直流母线电压稳定运行时的电压纹波应小于2%。如果纹波过大要么是电压环PI带宽过高要么是直流侧电容选小了。母线在负载阶跃后的恢复时间应在50ms以内。并网功率看低通滤波前后的对比储能投运后并网功率的高频波动幅值应显著减小。以我测的一个典型工况为例风速突变时光出力从1.8MW跳变到1.45MW在储能响应前并网功率突变量为0.35MW储能投入后并网功率的最大偏差减小到0.08MW波动率降低了约77%。SOC曲线SOC应在20%-90%范围内平滑变化不能出现快速跳变。如果SOC跳变说明储能功率指令瞬时过大需要检查功率变化率限制环节。MPPT效率风机和光伏的实际输出功率与理论上最大可用功率之比应超过98%。如果低于这个值MPPT振荡太严重需要调整步长参数。4.3 我这套模型跑出来的典型数字这里贴一组我测试工况C的仿真结果表格参数是这么设置的风速12m/s恒定光照800W/m²并网功率目标1.5MWt10s接入0.3MW冲击负荷。项目无储能协同有储能协同并网功率最大偏差0.30 MW0.07 MW母线电压最大偏差4.8%1.9%储能动作功率峰值无0.24 MW动态恢复时间约300ms约80ms这个结果直观地说明储能协同不是让储能承担大功率而是让储能及时动作起来抵消功率差额的瞬时波动。0.3MW的负荷冲击储能只需要出到0.24MW就能把并网功率偏差压制到原来的四分之一以下。后面做容量配置的时候这个表格可以作为储能出力曲线与电网波动指标的典型参考数据。5. 反复返工后沉淀的实用排错清单5.1 求解器与步长第一个要踩的坑Simulink里跑电力电子模型默认的变步长求解器ode45面对PWM高频开关信号时往往会在每个开关沿附近进行大量零交叉检测和收缩步长仿真速度慢到怀疑人生。我一开始满载仿真模型带了三套变流器的完整IGBT开关ode45跑10秒仿真时间耗时超过半小时。后来我把求解器改成ode23tb这是Simscape Electrical官方推荐用于电力电子模型求解的算法它在处理刚性问题上比ode45好得多。同时把PWM载波频率设计为10kHz而不是常用的20kHz——10kHz对并网仿真已经足够但仿真步长上限可以放松很多。如果你不是非要看IGBT开关细节建议直接把变流器等效为受控电压源平均模型那速度还能再快十倍。5.2 直流母线电容初始电压不设就仿真一开始就爆这是一个典型的看起来是小问题、实际上是灾难的错误。模型的直流母线电容初始电压如果不设置仿真启动瞬间电容相当于短路变流器会在开始几个毫秒内承受巨大的冲击电流电压波形直接溢出模型报Singularity或数值不收敛。我在模型里对每一个直流电容都显式设置了初始电压风机网侧直流母线1100V光伏Boost输出侧800V储能PCS直流侧700V并且把初始电压的相位与交流侧电压过零时刻对齐保证启动瞬间没有大的过渡过程。这个细节直接影响仿真能否从第0秒稳定起步。5.3 PF参数整定dq轴解耦的残留dq轴的PI参数我一开始用经验公式算结果电流环响应有超调直流母线电压波动明显。后来改用极点配置法电流环带宽设为500Hz电压环带宽设为50Hz两者相差十倍以上保证内环响应远快于外环、不会互相激励。dq轴之间的交叉耦合电压项ωL·id和ωL·iq虽然在前向通路里做了前馈补偿但在模型里我发现补偿系数比理论值偏小一点效果反而更好——因为实际电感值随电流饱和会略有下降完全按理论补偿会导致负相位裕度。5.4 光照从零开始时的MPPT陷阱光伏MPPT最尴尬的场景是仿真开始时组件温度高、光照为0此时Iph接近0光伏阵列输出电压基本等于开路电压而MPPT算法如果用扰动观察法去试探扰动方向很容易把工作点带到短路区——表现为光照刚恢复时MPPT长时间无法回到最大功率点。我最后做了两件事一是MPPT的初始占空比根据模块参数预先算出一个估计值而不是从0慢慢搜二是MPPT算法里加了一个光照突变检测如果光伏输出功率在相邻两步之间变化超过20%直接重置搜索方向为升压方向。这个逻辑在电导增量法里实现很简单却是光照快速变化场景下能稳定追踪的关键。5.5 从仿真模型迁移到实时控制器外部模式与C代码生成的实践做协同控制模型做到最后总要考虑这个模型能不能跑到真正的控制器里。这个环节我和很多同行交流时发现大家普遍卡在三个问题上。仿真模型用的是变步长连续求解器控制器跑的是固定步长离散采样。所以迁移前必须把模型里所有连续积分环节替换为离散版本步长设为控制器采样周期。模型的信号很多是连续的模拟信号控制器里全是周期采样的数字量需要在接口处添加零阶保持器和匹配的信号缩放。Simulink的外部模式External Mode调试起来非常有用——模型部署到目标机之后可以通过Simulink实时调整参数而无需重新编译。我在测试储能SOC保护阈值时就用外部模式在线修改过限值效果很好。用Embedded Coder生成C代码也是一条成熟的路径生成的代码可以直接部署在实时仿真机或控制器上。另外提到实际工具箱的使用我在这套模型里用到的比较关键的包括Simscape Electrical主电路、Simscape Battery电池模型、Stateflow模式切换逻辑、Motor Control BlocksetPMSG电机侧控制器的参考架构、Embedded Coder控制器代码生成。有同学问Simulink Toolbox功能列表应该怎么选我的建议是不要贪多先把Simscape Electrical吃透剩下的都是锦上添花。5.6 联合仿真的接口经验顺带提一句热搜词里有carsim和simulink联合仿真那套思路和风光储建模其实异曲同工——都是解决多个物理域模型在同一个时间轴上协同的问题。规律是相通的不同工具联合仿真时必须统一求解步长和通信周期必须避免代数环必须在接口处做好单位换算和信号时序对齐。我做风光储模型时的接口处理方法和做车辆动力学联合仿真时几乎一样这套方法论可以跨领域迁移。最后说点我个人体会。搭这套风光储协同模型最深的感受是协同仿真的难点从来不在某个模块本身而在模块与模块之间的沟通协议——谁负责平衡功率、谁负责稳定电压、谁的带宽快谁的带宽慢、谁的优先级高谁在极端情况下让路。只要这些底层的分工明确了Simulink建模本身反而不是特别难的事情。另一个很有价值的扩展方向是把这套协同控制逻辑从本地功率补偿升级到场站级能量管理再加上多台风机的聚合模型和光伏电站的子阵级控制就可以直接作为风光储基地级仿真平台的核心引擎。这个模型目前跑10秒仿真大约需要3分钟已经够我日常做策略验证用如果你要大规模参数扫描建议把变流器全部换成平均模型仿真速度能快一个数量级。
RELATED READING

延伸阅读

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