光伏储能虚拟同步发电机Simulink仿真建模与并网控制

光伏储能虚拟同步发电机Simulink仿真建模与并网控制 这几年做光伏储能并网仿真的项目绕来绕去最后都会撞到同一个需求不上传统PQ控制想让逆变器像同步发电机一样“撑”住电网。尤其你在微电网、分布式电源或者构网型储能方向做研究大概率会用到虚拟同步发电机(VSG)这个概念然后就得在Simulink里把它从数学方程变成能出波形的仿真模型。这篇文章我直接把一套光伏储能虚拟同步发电机并网仿真模型的搭建思路、控制链路、参数整定和踩坑经验从头到尾讲清楚适合正在做毕设、课题或者工程预研的电气工程师参考仿真平台以MATLAB/Simulink为主版本R2021b之后基本都能跑。1. 为什么光伏储能系统需要虚拟同步发电机1.1 逆变器并网遇到的“惯性”问题传统光伏逆变器大多采用电流源型PQ控制说白了就是把光伏板上那点直流功率当成恒功率送进电网电网电压频率是啥样它就跟着啥样走。这种控制在光伏渗透率不高的时候没毛病但一旦光伏和储能装置的容量占比上来了麻烦就出现了电力系统频率波动时需要的是同步发电机的转子惯量来缓冲而PQ控制的逆变器在本质上没有这个物理响应过程。电网侧一个负荷突变频率掉下去的速度远比纯火电系统快得多很多地区的分布式光伏并网规范就是被这类问题逼着改的。构网型储能系统配置规范里反复强调“具备惯量响应和一次调频能力”本质上就是想让电力电子变换器从“跟网型”变成“构网型”。虚拟同步发电机技术解决的就是这个痛点在控制器里实时模拟同步发电机的转子运动方程把机械转动惯量转成电气层面的虚拟惯量让光伏储能系统对外呈现出一个带惯性的电压源特征而不是一个冷冰冰的功率源。1.2 VSG到底模拟了什么从同步机方程说起VSG的核心就是同步发电机的二阶运动方程。我对这个原理的理解是这样同步发电机的转子有质量电磁功率和机械功率不平衡时转子转速不会突变而是按转动惯量缓缓调整。对应的表达式是J * dω/dt Pm - Pe - D * (ω - ω0)其中J是虚拟转动惯量对应同步机的转动惯量ω是逆变器输出电压角频率Pm是等效机械功率输入由有功指令和频率下垂共同决定Pe是逆变器实时输出有功功率D是阻尼系数对应同步机阻尼绕组的作用。这个方程在Simulink里实现并不复杂一个积分器外加一个增益就能搭出来难的是怎么把它的输出和整个电力电子主电路的控制无缝衔接。VSG输出的是频率和幅值都可控的三相参考电压内层再叠加电压电流双闭环来维持这个参考电压使得逆变器输出特性非常接近一台电压源同步机。2. VSG控制链路与主电路拓扑的整体设计2.1 双极式拓扑前级斩波后级VSG并网变流器要给光伏储能配VSG控制首先得想清楚主电路拓扑。目前我项目里最常用的是两级式结构光伏组件先接boost变换器实现MPPT控制储能电池接双向DC-DC变换器来稳定直流母线电压两级变换器都在直流母线侧汇集再经过一个三相两电平逆变器并网。这套拓扑比较成熟模块化程度高仿真模型拆开看也非常清晰。很多刚上手的人会问为什么不用单级式也就是光伏板直接接逆变器输入端。我的回答是VSG本质上是一个电压控制型变流器它的前提是直流母线要有一个相对稳定的电压支撑光伏板的电压随光照变化特别剧烈如果后端逆变器既要维持交流侧电压又要应付直流侧电压波动控制带宽会严重冲突。有了储能双向DC-DC扛住直流母线电压VSG才能踏踏实实干自己“模拟同步机”的活。2.2 储能双向DC-DC的控制衔接与光伏MPPT的配合储能侧双向DC-DC一般有降压充电和升压放电两模式在仿真里这个控制做起来有个细节容易踩坑电压外环需要参考VSG给出的有功功率波动来调整。我采用的惯例是直流母线电压外环加功率前馈电流内环走PI控制这样光伏输出突变导致直流母线出现微小跃升时储能能快速吸收功率把电压拉回设定值。光伏侧boost的MPPT我用的是扰动观察法它的输出功率变化是天然的快变扰动源正好用这个扰动去考验储能DC-DC的动态响应能力。直流母线电压参考值设多少取决于后级逆变器的调制比。我一般把母线电压设定在700V左右逆变器交流侧线电压有效值按311V设计这样调制比留有余量给VSG在电压跌落时留出抬升电压的空间。母线电容参数按“半载时电压环带宽引起的波动不超过额定电压5%”这个经验估算100kW模型我取9000μF左右实际仿真可以微调。2.3 并网滤波器与VSG等效输出阻抗的关系后级逆变器并网滤波器我用的是LCL型LCL在高频谐波抑制方面确实有优势但对VSG来说它带来一个问题LCL在谐振频率附近会产生负阻尼效应影响VSG的虚拟惯量表现。简单说VSG输出的等效阻抗是虚拟阻抗加上滤波器网络阻抗的合成设计时需要注意基波频率下的阻抗幅值不能压得太低。具体参数上逆变器侧电感L1取0.6 mH0.09 pu网侧电感L2取0.2 mH滤波电容Cf取15μF。LCL谐振频率fsw在f_res和10倍基频之间一般取1.5kHz上下。如果直接仿真发现电流波形毛刺多优先检查LCL谐振峰必要时在控制环中加陷波器或者给滤波电容串一个1Ω左右的阻尼电阻虽然损耗大一点但仿真收敛性和稳定性会大幅提升。3. VSG核心算法在Simulink里的建模细节3.1 有功-频率环节与转子运动方程的模块化实现这部分是整个模型的关键。我习惯用三个模块来组合实现有功计算模块、频率生成模块、电压参考生成模块。有功计算模块采并网点的三相电压电流用Clark变换和Park变换得到d、q轴分量再用功率方程P1.5*(vdidvqiq)Q1.5*(vqid-vdiq)算瞬时功率。注意这里Park变换的角度是VSG自己生成的角度θ而不是电网PLL锁出来的角度这是VSG和传统PQ控制在信号流上最本质的区别之一。频率生成模块就是用运动方程搭积分链。有功功率给定Pset和实测有功Pe做差再加上频率下垂系数Kp * (ω0 - ω)有的文献写作Dp*(ωref-ω)算出不平衡功率乘1/J积分得到角频率ω再积分得到相角θ。Simulink中直接添加积分器模块注意初始值要设成电网同步角速度314.16 rad/s否则启动瞬间会有很大的暂态冲击。阻尼系数D的取值理论上由系统的临界阻尼决定。我自己常用一个经验公式D2ξ√(J*Kp)ξ取0.7左右Kp按有功-频率下垂系数0.02 pu即频率变化2%对应有功变化100%折算。算好后的D在运行过程中如果发现频率振荡可以再加大一点。3.2 无功-电压环节与虚拟励磁调节无功-电压环节对应同步发机的励磁系统它的任务是维持并网点的电压幅值。控制框图和同步发电机励磁电压调节器非常像q轴电压给定Vset与实际电压幅值做差经过无功下垂系数Kq的调节叠加在无功功率指令Qset上最终生成VSG参考电压的幅值E。仿真模型里这里有一个特别容易踩的坑电压幅值的计算方式。很多新手会直接对三相电压最大值或瞬时值做处理结果得到的是带纹波的电压幅值进到无功环里会产生6倍频波动。正确做法是对d、q轴电压做平方和开方运算也就是sqrt(vd²vq²)同时在前面加一个带宽大约50Hz的低通滤波器滤除高频谐波后再参与电压环调节。3.3 电压电流双闭环与虚拟阻抗的整定有了VSG出来的电压幅值E和相位θ下一层就是输出电压的跟踪控制。这套双闭环我采用的惯例是电压外环PI控制逆变器滤波电容电压电流内环P控制部分文献也建议用PI滤波电感电流。控制器输出就是调制波和三角载波比较后生成PWM信号。这里有一个容易忽略的环节虚拟阻抗。VSG不接虚拟阻抗的时候并网点电压受电网阻抗影响严重尤其在弱电网下会出现电压支撑不足、有功无功解耦性差。虚拟阻抗通常取带阻性分量的复阻抗我这里是Ru0.5ΩLu4mH。实现方式是在电压环的参考值上减去虚拟阻抗上的压降Uref_virtual Uref - (Rvio Lvdio/dt)。用Simulink实现时io是VSG的输出电流直接采样后做运算即可。3.4 VSG与PQ、传统下垂控制的差异化定位做仿真报告的时候十几个人问我最多的问题就是VSG、PQ控制和下垂控制到底差在哪。我把核心差异整理成一个表方便对比控制方式对外特性惯量响应频率支撑能力适用场景PQ控制电流源无差光伏最大功率并网传统下垂控制电压源但无惯量无一般微电网孤岛模式VSG控制电压源虚拟惯量有强高渗透率微电网、构网型储能下垂控制本质上是静态的P-f和Q-V关系频率变化多少有功就变多少没有动态缓冲过程。VSG在下垂关系的基础上嵌套了一个转子运动方程频率变化率被惯量拦住频率变化轨迹上会出现一个低频最小值然后再慢慢回到新稳态这个动态过程非常接近真实同步发电机也是它可以向电网提供惯量支撑的根本原因。4. Simulink模型搭建的分步实操4.1 仿真环境与器件库选型我用的是Simulink外加Simscape Electrical的Specialized Power Systems库。主电路器件选择三相两电平逆变器Universal Bridge即可光伏阵列直接用光伏模块按参数填入组件开路电压Voc、短路电流Isc、最大功率点电压Vmp和电流Imp光照和温度设为步骤输入方便观察动态特性。储能电池用默认的锂离子电池模型额定电压和容量按系统容量匹配。在搭建之前有一个关键设置把求解器改成离散定步长步长取1e-6秒或者2e-6秒这直接影响到PWM开关脉冲的分辨率。如果步长太大了载波比较模块生成的脉冲会失真导致仿真出来的电流谐波特别大。电力电子开关管部分用理想开关模型可极大加速仿真但在验证VSG暂态特性时建议还是用带管压降的详细模型。4.2 光伏阵列与储能单元的参数化建模光伏参数设置要结合您想研究的场景来定。我以一个10kW光伏5kW储能的微网模型为例光伏阵列选250W组件每串串联6块并联10串标况输出大概15kW这样留出一点功率裕量给电池充电。温度设置为25℃固定不变光照用Signal Builder导入一段1.5秒从1000W/m2跌到600W/m2再回升的波形方便观察VSG的功率补偿能力。储能电池建模时最常忽略的是SOC初值。如果仿真初始SOC设成100%电池只能放电不能充电储能DC-DC会很快失去调压能力导致模型崩掉。我一般把SOC初始值设在70%~80%左右这样充放电双向都有余量。电池内阻对VSG的动态响应也有不小影响内阻设置太大时高频功率波动会在电池内部产生明显压降造成直流母线电压波动建议按厂商推荐值填入。4.3 控制子系统搭建要点与采样保持问题VSG控制算法我建议全部放在一个独立子系统里输入为并网点三相电压、三相电流、直流母线电压输出为PWM驱动信号。这样做的好处是后续做参数扫描或者跟其他拓扑复用模型时只需换主电路不用改控制。特别强调一下采样问题Simscape电力电子仿真中电压电流采样模块默认输出的是连续时间信号但这些信号里包含丰富的高频开关纹波。如果直接把这些信号送进PI控制器控制器会在一堆谐波里挣扎甚至完全发散。我的做法是采样后都要过一阶低通滤波器截止频率1000Hz左右或者在离散控制器里设置采样时间让控制环节以固定的采样步长工作。另外在运动方程反馈回路中加一个Unit Delay模块来打破代数环否则Simulink每次仿真都要迭代求解代数环不仅慢还容易报错。4.4 并网运行与预同步逻辑的实现方式并网模式下VSG要和真实电网无缝对接就必须考虑预同步问题。仿真实操中如果开始仿真就直接合闸并网开关VSG输出相位和电网相位不一致会产生很大的冲击电流严重时候仿真一步都跑不下去。我的模型里加了预同步逻辑在并网开关闭合前用PLL检测电网角度和VSG自身角度做差把角度差经过PI调节器微调VSG的频率参考值使相位差趋于零同时比较电压幅值差触发放大励磁调节器快速修正电压幅值。等相位差和电压差都落到阈值内我常设相位差小于0.01rad、电压差小于5V再触发并网开关闭合。这个逻辑在Simulink里用Stateflow状态机或者简单的Fcn模块都能实现。5. 关键仿真场景设计与结果解读5.1 场景一负荷投切时的频率支撑能力第一个必测场景是并网点的负荷突增。我在t2s时投入一个5kW的纯有功负荷观察电网频率、VSG有功输出和频率变化率的响应。正常情况下纯光伏系统面对这种负荷突变如果有功备用不足频率会直线下滑。而在VSG模型里负荷突然增加导致Pe上升转子运动方程立刻产生一个有功增量去补偿负荷同时频率曲线会出现一个光滑的下垂过渡最低频率大概在49.8Hz附近然后重新恢复到额定频率。这个频率最低点就是虚拟惯量作用的结果——J设得越大频率最低点越低或者说频率变化越平缓但恢复时间也越长。看到这条平滑的曲线就说明VSG的惯量响应真的生效了。5.2 场景二光照突变时的储能补偿动态第二个场景用前面设的光照突变在t1s时光照从1000W/m2降到600W/m2。光伏侧输出功率瞬间减少如果没有储能直流母线电压会马上抬升或崩溃。我实测在纯光伏模式下母线电压波动能到±40V后端VSG输出有功也跟着剧烈波动。加了储能DC-DC之后母线电压的波动能控制在±5V以内VSG有功出力的波动限制在2%以内。这个响应过程体现了储能和VSG配合的核心优势储能负责“填坑”VSG负责“扛频”。而且要特别注意这里的“填坑”并不需要储能响应速度极快因为VSG自身转子方程已经提供了动态缓冲储能只需要在几十毫秒的时间里把功率缺口补上就行。5.3 场景三三相短路的暂态穿越与电流限制第三个更考验模型质量的场景是并网点三相短路故障。我设置t3s时发生三相短路持续0.2s后切除。VSG在这个场景里表现出的行为和真实同步发电机非常相似短路瞬间有功功率急剧升高频率收到冲击后缓慢回落短路切除后有功功率出现反冲经过一段阻尼振荡后回稳。但这里必须提个醒如果不加电流限制环节短路电流峰值能到额定电流的3~5倍这在实际逆变器里早就炸管了。所以在VSG控制中一定要加入限流机制通常做法是检测电流幅值超限后切换为电流源模式或者限制电压环输出。Simulink里可以用饱和限幅模块加一个使能信号实现别嫌麻烦这个环节不加后续做故障穿越研究一切免谈。5.4 结果波形怎么读虚拟惯量J和阻尼D的时域表现仿真跑完后的波形解读能力才是区分新手和老手的地方。这里我有几个经验看频率曲线的最低点最低点越低说明惯量J越小频率支撑能力越弱。但J也不是越大越好J过大会让频率恢复时间过长影响二次调频。看频率振荡次数如果系统频率在负荷突变后震荡了多次才稳定说明阻尼D不足要增加D。但如果D过大频率响应会变迟钝输出功率超调也变大。看有功功率的初始变化率PV曲线在突变瞬间的斜率其实就是虚拟惯量J的直观体现。斜率越陡J越小只不过这个斜率在录波上往往被滤波器抹平了我一般用dP/dt找峰值时刻来反推J的取值范围。6. 仿真调试中的常见坑与调参经验6.1 仿真发散的两大常见原因第一个是控制环采样率与主电路步长不匹配。我把控制器的离散采样时间设成20μs而主电路步长还停留在1e-5s以上结果数字控制器相当于每两个开关周期才更新一次参考值系统自然发散。解决方法是让控制采样时间等于主电路步长的整数倍最常见的就是两者一致我先统一成5e-6s再跑稳得很。第二个是LCL滤波器和阻抗参数搭配不当导致的谐振。表象是电流波形高频振荡明显频率大约在谐振点附近。判断方法很简单把电流波形FFT分析一下看到高频谐波峰值集中在某个频率附近基本就是LCL谐振无疑了。这个时候先不要慌着改控制器先加大阻尼电阻或者在前向通道里加一个中心频率等于谐振频率的陷波器谐振压下去之后再重新调PI参数。6.2 参数标幺化与控制器PI参数整定的次序我开始做VSG仿真时犯过一个典型错误一上来就用实际数值去整定PI参数结果调半小时都调不出来。后来改成标幺化控制效率高了很多。具体做法是把功率基准取额定容量电压基准取额定相电压幅值电流基准取额定相电流幅值整个控制环全部在标幺值下运行。控制器的系数范围就会变得非常“规则”电压外环P大概在0.5~2之间I在50~200之间电流内环P取0.1~0.5I取10~50这个量级好调太多了。调参顺序上也讲究按从内向外的顺序来先调电流内环让阶跃响应快速且无超调再调电压外环保持电压跟踪准确且稳定最后再调VSG运动方程的虚拟J和D。如果前面内环没调好就去动J和D你会发现无论惯量给多少系统都是“带病运行”频率波形乱七八糟很难定位问题。6.3 弱电网下VSG的谐振风险与改进方向弱电网大电网阻抗大环境下做VSG仿真很容易发现低频振荡本质上是VSG的虚拟阻抗和电网阻抗的交互作用。模拟弱电网的方法很简单在理想电网源前串联一个较大的电感值比如几毫亨甚至十毫亨然后观察VSG并网点的波形。我在弱网下试过很多次最有效的改进方法是增加虚拟阻抗中的电阻分量Ru。阻性虚拟阻抗能显著提高系统阻尼抑制低频振荡。但Ru也不能过大否则VSG输出电压会明显偏低导致并网点电压越限。一般来说Ru取0.5~1.5Ω对10kW的模型是够用的。这时候你会发现VSG比想象中“挑剔”虚拟阻抗的设计几乎是整个控制参数设计中感性与理性交织最深的一个环节。6.4 我在多次调试后总结的实用建议最后分享一点个人经验我觉得对正在做光伏储能VSG仿真的人会有帮助第一整个仿真系统跑通之前不要直接上光伏板和电池的详细模型。先把光伏用恒压源代替、电池用理想直流源代替只跑VSG逆变器并网部分确认控制算法没问题之后再逐步接入光伏和储能的动态模型。这种“剥洋葱”式的建模思路能省下大把排查错误的时间。第二仿真中SVG的虚拟功率采样很容易被高频开关噪声污染我最终在功率计算后面加了一个巴特沃斯低通滤波器截止频率设200Hz。这样做对基波分量几乎没有影响但能大幅提升波形平滑度控制环稳定性提升非常明显。第三如果你做的是构网型储能方向建议把VSG模型和储能优化配置结合起来做场景分析。热搜词里的“储能优化配置”“构网型储能系统配置规范”现在都是行业高频方向VSG模型能不能准确反映不同配置容量下的频率支撑水平直接决定了你方案的说服力。仿真模型本身的灵活性这时候就非常重要我一般把储能容量设成可调参数方便做容量-惯量灵敏度的扫描。每次做完这些仿真场景我都会把波形数据和参数记录保存下来方便后续写报告或者做对比分析。光伏储能VSG这类模型真正的难点其实并不在于某个单一算法有多高深而在于从光伏板、储能DC-DC、VSG主逆变器到并网开关之间的每一个控制环节都得像齿轮一样严丝合缝地配合起来。这套模型跑顺之后后面再做微电网日前优化调度、构网型变流器对比甚至跨到汽车和电力系统联合仿真都会顺手很多。