ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

风光储协同并网Simulink建模:共直流母线拓扑与能量管理策略

风光储协同并网Simulink建模:共直流母线拓扑与能量管理策略 直驱永磁风机的全功率变流器、光伏阵列Boost、储能双向DCDC、并网VSC这几个词放到一起的时候十有八九是在做同一件事风光储协同并网。我在帮人审模型、调发散的过程中有个很深的体会单个子系统跑通不算难难的是把它们接到同一条直流母线上之后母线电压、功率分配、状态切换还能稳得住。而且这类模型最容易翻车的地方不在PI参数而在拓扑选型和能量管理边界的设定。这篇就把我从拓扑搭建、各单元建模、并网控制整定到C代码生成前准备完整过一遍。如果你现在正准备搭“永磁风机光伏储能”的Simulink并网模型或者已经搭了一半但合起来就发散这篇文章应该能替你省下至少两三个月的排查时间。内容不偏向某个特定的商业例程而是按主流的“共直流母线统一并网变流器”结构来讲这也是目前风光储场站仿真里最好落地、最适合做研究生课题的结构。1. 拓扑选择决定成败共直流母线和交流母线到底怎么选1.1 为什么我强烈推荐先做共直流母线结构风光储协同并网的拓扑表面上看是个接线问题实际上决定了你后面所有控制策略的复杂度。常见的做法有两种一是三个单元各带一个并网逆变器在交流侧并联后统一升压并网这叫交流母线结构二是先把三路功率在直流侧汇合只用一个网侧变流器负责和电网交换功率这叫共直流母线结构。交流母线结构看起来更接近真实场站但它一上来就要处理多台逆变器之间的功率均分、环流抑制、锁相协调、虚拟同步或者下垂控制等问题。这些内容单独拿出来都能写一篇硕士论文如果只是为了研究“风光储三者之间怎么分配功率”其实是把问题复杂化了。共直流母线结构的优势特别直接风机变流器、光伏Boost、储能双向DCDC各管各的功率输入输出直流母线电压统一由一台并网VSC维持能量管理的所有逻辑都落在一条母线上故障定位和调试都要直观得多。我建模型通常选用1500V直流母线。这个电压等级在大型光伏电站和储能电站里都是常见的直流侧电压设备选型资料也好找。风机机侧整流器输出接1500V母线光伏Boost从大约500V的阵列电压升到1500V储能电池侧电压取800V通过双向DCDC接入母线。母线容量按2.5MW设计对应额定交流电压690V再经一台690V/10kV的变压器并入10kV电网。1.2 这套模型里的容量配比和参数选择给一个我实际用过的额定参数表方便直接往Simulink的模块参数里填。这套参数不是随便拍的是按“风光总装机略大于并网变流器、储能负责差额功率动态调节”的逻辑配的。单元额定参数说明永磁直驱风机1.5MW / 690V / 17rpm / 56极对全功率变流器机侧可控整流光伏阵列0.5MW / Vmp 430V / Imp 1160A单峰MPPTBoost升压接入直流母线储能系统0.5MW / 0.75MWh / 电池侧800V双向DCDC支持充放电直流母线1500V风电光伏储能汇流点网侧并网VSC2.5MW / 交流侧690VLCL滤波后经变压器并入10kV电网模拟10kV / 50Hz无限大电源模拟并网点风机加光伏满载时是2.0MW储能最多补充或吸收0.5MW并网变流器容量取2.5MW刚好留了余量。这个配比的另一个好处是任意时刻并网功率都不会超过VSC容量仿真中不容易因为功率越限触发保护逻辑。很多模型发散其实不是控制发散是功率容量约束没在初始阶段设计好。1.3 什么时候应该转向交流母线结构不是说交流母线结构没价值。如果你后续要研究多机并联的孤岛运行、微网黑启动、多逆变器环流抑制那必须要走交流母线结构。但从“协同运行”的模型研究角度说共直流母线能把表面上的系统级问题拆成三个单机问题加一个协调问题每个问题都能独立验证这对仿真调试极其重要。我的建议是先把共直流母线版本跑透再往交流母线扩展不要一上来就做两端口的虚拟同步机并联。2. 永磁风机侧建模从风速序列到功率外特性的完整链路2.1 风速模型的构造方式风机侧模型能不能反映真实运行状态很大程度取决于风速输入。许多初学模型的人直接给一个恒定风速结果风机始终运行在同一个工作点MPPT曲线和桨距角控制根本没法验证。我习惯把风速拆成四部分基本风、渐变风、阵风、随机风。在Simulink里可以直接用Signal Builder或者MATLAB Function写一个风速生成函数。一个比较实用的公式组合是V V_base V_ramp V_gust V_noise 其中 V_base 10 m/s 基本风速 V_ramp 斜率 * (t - t0) 渐变风段 V_gust A * exp(-((t-tc)/T)^2) 阵风 V_noise 低通白噪声实际仿真时我会让风速从8m/s开始在10秒内抬升到12m/s中间叠加几段阵风。这样做的好处是8m/s到额定风速附近刚好覆盖了MPPT区间到了12m/s左右又能触发桨距角限功率逻辑一篇文章里的控制策略就都能演示到了。2.2 PMSG数学模型和机侧整流器控制永磁同步发电机的模型在Simulink里可以直接用Simscape Electrical的PMSG模块关键是理解它的控制对象。dq坐标系下的定子电压方程写出来就是ud Rs*id Ld*did/dt - ωe*Lq*iq uq Rs*iq Lq*diq/dt ωe*Ld*id ωe*ψf其中ψf是永磁体磁链ωe是电角频率。机侧变流器采用零d轴电流控制也就是让id0这时电磁转矩和iq近似成正比控制回路干净直接。外环是转速环转速指令来自MPPT曲线内环是电流环输出就是机侧整流器PWM的d轴和q轴电压。MPPT部分不要用爬山搜索直驱风机惯量大爬山法在转速环上又慢又容易抖。正确的做法是用最优转矩曲线风机最优叶尖速比λopt和最大风能利用系数Cpmax是已知的此时最优转矩为T_opt 0.5 * ρ * π * R^5 * Cpmax / λopt^3 * ω^2 可以简写为 T_opt K_opt * ω^2以一个1.5MW、风轮半径55m的风机为例如果Cpmax取0.48、λopt取8.1那么K_opt算出来大约在4.5×10^5这个量级单位按rad/s算。把这个公式放进转速外环的参考值计算模块里风机就能在没有风速测量的情况下自动追踪最大功率点。这一点非常关键风速是前馈扰动最优转矩曲线是反馈跟踪后者在仿真里要稳得多。2.3 桨距角控制在额定风速以上的作用当风速超过额定值之后转速环的输出会达到额定转矩上限这时再有超额的风动能就会造成转速失控。所以要加一套桨距角控制转速偏差经过PI之后输出桨距角指令桨距角增大风能利用系数下降风机功率被限制在额定值附近。在Simulink里桨距角控制可以用一个简单的饱和PI加一阶惯性环节来模拟变桨执行机构。注意桨距角执行机构的时间常数不要设得太小取0.2到0.5秒比较合理否则仿真里会出现桨距角抖动反而看着不真实。3. 光伏阵列和储能单元两个柔性单元怎么挂上同一条母线3.1 光伏阵列建模与Boost升压光伏阵列的模型我推荐直接用Simulink自带的PV Array模块但要改默认参数。自带的模块是基于单二极管物理模型实现的给定光照、温度、串联模块数、并联支路数就能输出I-V曲线。你要做的重点是把阵列工作电压设计在Boost能够升压的合理范围内。拿500kW阵列举例我常把单块组件参数设成开路电压约50V、最大功率点电压约43V每串22块、并联约30串。这样阵列最大功率电压在430V到450V之间送到1500V母线时Boost占空比大约在0.7到0.72之间。占空比太接近1会让电感电流断续严重太接近0则MPPT范围太小0.7左右是工程上最舒服的区域。Boost的MPPT算法不需要太复杂扰动观察法就够用。核心逻辑是每隔一个固定步长给参考电压加一个扰动ΔV比较扰动前后的功率变化如果功率增大就继续同方向扰动否则反向。实际操作里有几个值得注意的地方扰动步长取阵列最大功率电压的0.5%到1%也就是2到4V左右。步长太大稳定后会在最大功率点附近来回振荡功率波动可以到几kW步长太小跟踪速度慢光照突变时反应不过来。MPPT的更新周期要和直流母线电压环的时间尺度错开。我一般设MPPT每0.01秒更新一次参考电压而母线电压环是毫秒级这样两者不会互相打架。Boost占空比要加限幅建议限制在0.1到0.95之间。仿真中如果不限幅启动瞬间占空比冲到1电感电流直接飞起来母线电压跟着冲高。3.2 储能电池模型的精度取舍储能电池的建模精度要看你的研究目标。如果重点是系统功率分配不需要给电池做电化学级建模用带SOC的二阶RC等效电路模型就够了。这个模型包含一个内阻R0加上两个RC网络分别模拟电池的动态响应和扩散过程。Simulink自带的Battery模块可以直接选锂离子、额定容量和初始SOC内部就实现了类似的等效电路。唯一要特别注意的是SOC初值和SOC积分限幅。初始SOC设在50%到70%比较合适不要设在100%或0%。我在调试中见过太多次因为初始SOC设成100%并网瞬间储能系统无法吸收多余功率母线电压被顶到保护值整个模型在零点几秒内发散。SOC的积分器在达到上下限后要冻结不能继续积分越过边界否则状态变量跑到物理范围外后面的PI控制都是白搭。3.3 双向DCDC的Buck/Boost模式切换储能接到1500V母线必须通过双向DCDC放电时是Boost模式电池侧800V升压到母线侧1500V充电时是Buck模式母线侧降压给电池充电。模式切换是踩坑重灾区。最简单可靠的做法是把电流指令的方向作为切换条件并且加滞环。电流指令为正放电时用Boost模式电流指令为负充电时用Buck模式中间留一个±5A左右的滞环区间防止模式在零电流附近高频切换。PWM生成也要跟着模式切换放电时下管常通、上管PWM充电时上管常通、下管PWM。在Simulink里用两个Switch加一个滞环比较器就能实现不需要写复杂的逻辑状态机。储能外环的控制目标有两类一是定功率控制按能量管理指令执行充放电二是下垂控制按直流母线电压偏差调整功率。定功率控制适合研究功率分配下垂控制更适合研究母线电压支撑。实际模型里我通常两套都做通过一个Switch在协调层决定用哪套指令。4. 直流母线稳压与并网变流器整定全网最核心的一个环4.1 母线电压为什么要由网侧VSC来管这里要专门纠正一个很常见的错误认知很多人以为直流母线电压应该由储能系统来维持因为储能看起来像个“电压源”。但在共直流母线结构里真正负责母线稳压的是网侧并网VSC储能只是功率平衡的参与者。原因很简单网侧VSC直接连接电网它可以随时向电网送出或从电网吸收功率是唯一一个能双向快速调节母线功率的环节。风机和光伏都是功率源储能虽然有双向能力但容量有限如果让储能来稳压当母线电压跌落时储能必须立刻放电如果SOC不够或者功率越限母线电压就失控了。网侧VSC的电压外环会把直流母线电压维持在1500V风机、光伏只负责按自己的MPPT功率输出储能只负责按能量管理指令充放电各司其职系统逻辑就非常清晰。4.2 网侧VSC双闭环控制的整定顺序网侧VSC采用电压外环加电流内环的dq解耦控制。外环输入是直流母线电压参考值和实际值的偏差输出是有功电流指令id_ref另一个外环是无功功率环输出iq_ref。内环是dq轴电流环输出经过前馈解耦之后得到VSC的调制电压。整定的顺序必须是先内环后外环。电流环的带宽决定VSC响应速度通常取开关频率的1/10到1/20。LCL滤波器的谐振峰也必须避开电流环带宽否则会引发谐振。电压环带宽再比电流环低5到10倍这样才能避免两个环路之间相互作用。环路比例系数Kp积分系数Ki整定依据电流内环0.5~1.550~100电流环带宽取开关频率的1/10~1/20电压外环2~520~50电压环带宽比电流环低5~10倍锁相环0.1~0.55~20带宽10~30Hz响应要快于电流环指令变化这些参数只是起步值实际需要根据LCL参数和电网阻抗调整。我的习惯是先把电流环参数整到阶跃响应不超调再接通电压外环最后再接PLL。顺序反过来的话出了问题根本分不清是哪个环在振荡。4.3 LCL滤波器的参数选择与谐振处理VSC输出侧不能直接并联电网必须经过滤波。LCL比单L好因为它对高频开关纹波的衰减能力更强相同滤波效果下总电感更小。但LCL会引入一个谐振峰设计不当的话逆变器输出电流在这个频率附近会振荡。谐振频率的计算公式是f_res sqrt((L1 L2) / (L1 * L2 * Cf)) / (2π)设计规则是谐振频率要大于10倍基波频率10×50500Hz小于0.5倍开关频率。如果开关频率取5kHz谐振频率选在1.5kHz到2.5kHz之间比较合适。再在电容支路串联一个阻尼电阻电阻值取谐振频率处电容阻抗的1/3到1/5左右可以显著抑制谐振峰。一个我常用的参数组合是L1取0.15mHL2取0.1mHCf取120μF阻尼电阻取0.15Ω。算下来谐振频率大约1.7kHz在5kHz开关频率的1/3附近阻尼效果和滤波效果比较均衡。实际项目中这个组合还要根据短路容量和电网阻抗做微调但仿真研究用它起步很稳。5. 协同运行的核心是能量管理不是PI参数5.1 功率分配优先级与限幅逻辑模型里各个控制器都稳定之后整个系统的“行为”就由能量管理层决定了。能量管理不需要做复杂的优化先把功率分配逻辑说清楚。我用的策略是“风电光伏优先、储能差额调节”。具体可以拆成三层第一层风机和光伏各自按MPPT满发这两路是不需要能量管理系统干预的。第二层计算“风光总功率-P并网友好功率”的差额这个差额由储能来补偿。储能处于放电状态时填补缺额处于充电状态时吸收多余功率。第三层如果储能SOC已经到了上限、无法继续充电而风光总功率仍然大于并网需求就需要给风机或光伏发限功率指令优先切光伏MPPT因为光伏响应速度快、限功率实现简单。并网友好功率不是固定的一般取一个经过平滑处理的目标值。最简单的平滑算法是一阶低通滤波P_ref P_last (P_target - P_last) * (dt / T_f)时间常数T_f取30到60秒能有效平抑光伏和风机快速波动。这样并网功率变化率就会被限制在可接受范围内储能充放电也不会被高频波动打满。5.2 用Stateflow做状态切换并预留C代码生成能量管理逻辑里最值得拿出来说的一点是不要用一堆Goto/From和If模块拼逻辑而是用Stateflow建状态机。这不是形式主义是因为充放电切换、SOC保护、限功率指令这些逻辑之间存在明显的前后依赖关系状态机表达更清晰而且Simulink状态机可以直接生成C代码。状态设计我一般分四个稳压运行态、储能充电态、储能放电态、SOC保护态。每个状态里只允许执行该状态下的功率指令计算状态之间的迁移条件写清楚SOC上下限、功率差额方向、母线电压偏差范围。这样做的好处是仿真中不会出现“充电和放电指令同时有效”的混乱局面。既然提到了C代码生成顺便说一下模型准备阶段的几个硬性要求模型必须使用离散求解器、固定步长Powergui也要设置成离散模式。连续求解器的模型虽然能仿真但生成不了嵌入式C代码。所有的状态量必须是离散状态不能有带连续时间积分的纯Simulink积分器。储能SOC如果用了连续积分器代码生成时会报“unsupported continuous state”。数据类型要统一能定点就用定点至少把所有开关量定义成boolean把功率指令定义成int16或single避免生成代码里出现大量隐式类型转换。很多研究生的模型到后期想部署到实时仿真机或者生成代码做硬件在环结果发现模型从头到尾都是连续求解器全部推倒重来。如果你有这个打算从一开始就按离散化标准搭模型后面会省非常多事情。5.3 下垂控制作为兜底手段母线电压的稳定除了靠网侧VSC电压外环还可以在能量管理层加一个下垂系数作为兜底。当直流母线电压偏离1500V时储能和风机的功率指令自动做出微调。这个逻辑实现起来只需要一行公式P_cmd P_base K_droop * (Vdc - Vdc_ref)下垂系数K_droop取正值表示母线电压升高时增加吸收功率这里注意正负号。这个兜底逻辑平时不显眼但一旦电网侧发生扰动导致母线电压波动它能大幅降低系统发散的概率。对做协同运行研究的读者来说加不加这个兜底仿真结果的稳定裕度差别是很明显的。6. 仿真调试实录最容易发散的几个位置和排查思路6.1 从“单机验证”到“并联联调”的正确步骤多单元并网模型调试最大的忌讳就是所有子系统一起上电、一起闭环然后靠肉眼看波形找问题。正确做法一定是分步投运先在直流母线上只挂网侧VSC让母线电压稳定再投入储能双向DCDC用定功率指令验证它能在充放电之间切换然后投入光伏Boost观察它在MPPT过程中对母线电压的影响最后才投入风机变流器因为风机带转速环和桨距角动态最慢放在最后才不会干扰前面已经调好的环节。每一步投运时都给前面的环节留够稳定时间。我在实际调试中每一步之间通常会等母线电压波动小于0.5%之后再继续。这个过程看起来很慢但排查问题的速度反而最快。如果一上来全部投运母线电压一波动你会同时看到光伏MPPT在动、储能在充放电、风机转速在变根本分不清是谁引起的。6.2 常见发散现象与根因对照下面这个表格是我在帮人调模型过程中整理的高频问题基本覆盖了绝大多数共直流母线风光储模型的发散原因。现象根本原因解决方向启动后0.1秒内直流母线电压冲到1800V以上网侧VSC电压环未投入或PI参数太小无法及时送出功率先单独验证VSC稳压再投其他单元光伏Boost启动后母线电压出现持续振荡MPPT扰动周期与母线电压环响应时间接近把MPPT更新周期放慢到10ms以上储能SOC到上限后系统功率失去平衡SOC积分器没有设置积分冻结在SOC模块输出端加饱和和保持逻辑并网电流起动瞬间有过冲尖峰PLL初始相角与实际电网相角不一致把PLL初始角设为0或先用理想锁相稳态再接入风机转速在额定点附近来回振荡桨距角PI参数过大或执行机构时间常数过小降低桨距角PI增益执行机构时间常数设0.3s左右电网侧电流含有明显的高频谐振LCL谐振频率落在电流环带宽附近调整L1、L2、Cf使谐振频率低于电流环带宽的一半6.3 离散仿真步长的选择离散仿真步长看起来是个小问题实际影响非常大。步长太大会丢失开关纹波和高频动态步长太小则仿真速度慢到无法跑完一组天气场景。对5kHz的开关频率来说仿真步长取10μs是经验下限。如果你想看到PWM开关过程和LCL滤波效果10μs是可以接受的。如果模型规模比较大可以把开关管理想化仿真步长放宽到50μs这时开关过程不再逐周期复现但母线电压和功率波形依然准确。我的做法是研究能量管理和功率分配用50μs研究并网电流谐波和LCL谐振时切到10μs重新跑短时间段落。6.4 初始化脚本的必要性Simulink模型里的参数如果全靠手动填换一组参数之后很可能忘记同步某个模块。我习惯把所有电气参数和控制参数写在模型初始化脚本里用一个m文件统一赋值。这样模型里的每个模块都显示变量名而不是数字想改参数时只改初始化脚本。Vdc_ref 1500; fsw 5000; Ts_sim 50e-6; L1 0.15e-3; L2 0.1e-3; Cf 120e-6; Rd 0.15; Kp_iac 1.0; Ki_iac 80; Kp_vdc 3.0; Ki_vdc 30; SOC_init 0.6;设置方法是在模型资源管理器的InitFcn回调里加载这个脚本每次模型启动之前都会自动运行一遍。这样整套参数都有据可查改起来也快。很多模型是靠人肉记住参数值的一旦换电脑或换版本数值对不上各种莫名其妙的发散就来了。6.5 最后一个容易被忽略的问题限幅与饱和所有PI控制器的输出都必须要限幅这句话值得单独拿出来强调。电流环输出要被限制在调制比允许范围内电压环输出要被限制在储能和风机变流器允许的功率范围内桨距角指令要限制在0到90度之间。更关键的是PI积分器在输出饱和之后要停止积分否则就会出现积分饱和控制器输出顶着限幅值迟迟下不来系统超调一次比一次大最终发散。在Simulink里用带积分限幅的离散PI控制器模块就能直接处理这个问题。我见过太多模型发散最后查出来根本原因是PI输出撞到限幅之后积分项还在累积控制器已经失去了调节能力。这个东西花十分钟加上能帮你省掉无数通宵查问题的夜晚。从最开始选定共直流母线拓扑到每一路功率单元的建模再到并网VSC的双闭环整定、能量管理的状态机设计最后到仿真的步长选择和初始化脚本规范这整套流程走下来风光储协同并网模型基本就不会再出现“合起来就跑不了”的尴尬局面。我个人的体会是这类系统级仿真模型的难点从来不在某一个控制环的精妙设计上而在各个单元之间的时间尺度和功率边界是否匹配。建议你现在就打开Simulink先把网侧VSC单独挂到母线上跑稳再把储能接到母线上一步一步来。如果你也是那种喜欢一开始就把所有子系统一起投运、然后盯着波形找问题的风格不妨试试这个顺序大概率会发现自己以前走了一条特别绕的路。
返回列表