光伏储能虚拟同步发电机Simulink仿真建模与并网控制
2026/9/15 8:46:39 网站建设 项目流程

这几年做光伏储能并网仿真的项目,绕来绕去最后都会撞到同一个需求:不上传统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 mH(0.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轴分量,再用功率方程P=1.5*(vdid+vqiq),Q=1.5*(vqid-vdiq)算瞬时功率。注意这里Park变换的角度是VSG自己生成的角度θ,而不是电网PLL锁出来的角度,这是VSG和传统PQ控制在信号流上最本质的区别之一。

频率生成模块就是用运动方程搭积分链。有功功率给定Pset和实测有功Pe做差,再加上频率下垂系数Kp * (ω0 - ω)(有的文献写作Dp*(ωref-ω)),算出不平衡功率,乘1/J积分得到角频率ω,再积分得到相角θ。Simulink中直接添加积分器模块,注意初始值要设成电网同步角速度314.16 rad/s,否则启动瞬间会有很大的暂态冲击。

阻尼系数D的取值理论上由系统的临界阻尼决定。我自己常用一个经验公式:D=2ξ√(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不接虚拟阻抗的时候,并网点电压受电网阻抗影响严重,尤其在弱电网下会出现电压支撑不足、有功无功解耦性差。虚拟阻抗通常取带阻性分量的复阻抗,我这里是Ru=0.5Ω,Lu=4mH。实现方式是在电压环的参考值上减去虚拟阻抗上的压降: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 场景一:负荷投切时的频率支撑能力

第一个必测场景是并网点的负荷突增。我在t=2s时投入一个5kW的纯有功负荷,观察电网频率、VSG有功输出和频率变化率的响应。

正常情况下,纯光伏系统面对这种负荷突变,如果有功备用不足,频率会直线下滑。而在VSG模型里,负荷突然增加导致Pe上升,转子运动方程立刻产生一个有功增量去补偿负荷,同时频率曲线会出现一个光滑的下垂过渡,最低频率大概在49.8Hz附近,然后重新恢复到额定频率。这个频率最低点就是虚拟惯量作用的结果——J设得越大,频率最低点越低(或者说频率变化越平缓),但恢复时间也越长。看到这条平滑的曲线,就说明VSG的惯量响应真的生效了。

5.2 场景二:光照突变时的储能补偿动态

第二个场景用前面设的光照突变,在t=1s时光照从1000W/m2降到600W/m2。光伏侧输出功率瞬间减少,如果没有储能,直流母线电压会马上抬升或崩溃。我实测在纯光伏模式下,母线电压波动能到±40V,后端VSG输出有功也跟着剧烈波动。

加了储能DC-DC之后,母线电压的波动能控制在±5V以内,VSG有功出力的波动限制在2%以内。这个响应过程体现了储能和VSG配合的核心优势:储能负责“填坑”,VSG负责“扛频”。而且要特别注意,这里的“填坑”并不需要储能响应速度极快,因为VSG自身转子方程已经提供了动态缓冲,储能只需要在几十毫秒的时间里把功率缺口补上就行。

5.3 场景三:三相短路的暂态穿越与电流限制

第三个更考验模型质量的场景是并网点三相短路故障。我设置t=3s时发生三相短路,持续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.5,I取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主逆变器到并网开关之间的每一个控制环节,都得像齿轮一样严丝合缝地配合起来。这套模型跑顺之后,后面再做微电网日前优化调度、构网型变流器对比,甚至跨到汽车和电力系统联合仿真,都会顺手很多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询