光伏储能配虚拟同步发电机这个方向我盯了挺久。如果你去查近两年的电网运行准则和新能源并网技术规定大概率会反复看到“新能源场站应具备主动支撑能力”、“一次调频”、“惯量响应”这类硬性条款——而虚拟同步发电机简称VSG正是实现这些功能的代表性控制策略。简单说VSG让光伏/储能逆变器在电网面前表现得像一台真实存在的同步发电机电网频率一波动它能靠“转子惯量”顶住电压一跌落它能像励磁系统一样给出无功支撑。这篇文章就直接拆一个完整的“光伏储能VSG仿真模型”从拓扑结构、数学模型、Simulink搭建到参数整定、常见坑点全部过一遍。适合正在研究新能源主动支撑控制、或者准备拿VSG做毕业设计/横向课题的同学也适合已经在做储能PCS控制、想快速验证VSG算法效果的工程师。1. 架构设计与建模思路1.1 光伏储能为什么要“抱团”VSG先想清楚一个问题单台光伏逆变器能不能直接做VSG能做但效果会大打折扣。光伏的出力取决于光照和温度是一个典型的间歇性能源。当你要让逆变器对外提供与同步机类似的“摇摆能量”时需要直流侧有真实的功率缓冲能力。如果直流母线前级只挂着一个光伏组件当VSG命令输出功率突增时光伏无法立刻增加出力直流母线电压就会迅速跌落逆变器进入保护甚至停机。所以工程上稳妥的做法是构建“光伏储能”的混合直流源结构光伏通过Boost电路接入直流母线储能电池通过双向DC/DC接入直流母线然后由一台两电平三相逆变器作为VSG的功率接口实现并网。储能在VSG动态过程中承担功率差额光伏则承担稳态功率输入。这个拓扑最大的好处是VSG对外表现的惯量和阻尼特性不会因为光照突变而失效——这正是国内很多VSG并网示范工程采用的配置。1.2 两层控制架构底层P/Q外环与VSG核心仿真模型需要明确提出控制功能的层级关系否则很难收敛、也难调试。我们这套模型分三层底层控制VSG算法输出的调制波经SPWM或SVPWM调制后驱动IGBT。逆变器开关频率设10kHz。中层控制电压电流双闭环电流内环是PI控制电压外环也是PI控制。VSG给出的电压幅值和相位参考值在这里被“落地”为驱动信号。上层控制就是VSG核心算法。它接收电网侧的频率、自身有功功率、无功功率反馈通过“转子运动方程”和“励磁调节方程”输出虚拟电压指令的幅值U和相位θ。如果你之前做过传统的PQ控制或VF控制你会发现差异点集中在最上层。VSG不是替代双闭环而是给双闭环提供动态参考。1.3 为什么不用构网型GFM而用VSG术语这里有必要澄清一个概念陷阱。在学术论文和厂家标书中构网型控制、下垂控制、VSG经常混用。严格来说VSG属于构网型控制的子集核心特征在于模拟了同步发电机的转子惯量和阻尼绕组效应下垂控制只是转子运动方程在静态情况下的一种简化体现。在Simulink中验证时应该有意识地保留完整的二阶模型不要做降阶简化——因为如果你把惯性项去掉整个VSG就退化为下垂控制仿真结果看起来也能带载、也能调频但惯量支撑特性完全没有了反而不符合“虚拟同步”的真实需求。这一点在论文外审和工程验收时会成为关键指标考察点。2. VSG核心数学模型2.1 转子运动方程VSG的数学模型来源于同步发电机的二阶机电暂态方程[ J\frac{d\omega}{dt} P_{ref}/\omega_0 - P_e - D(\omega - \omega_0) ]其中J是虚拟转动惯量D是虚拟阻尼系数P_ref是有功功率参考值P_e是瞬时有功功率ω0是电网同步角速度100π rad/s。这个公式告诉我们的物理含义是当系统检测到输出功率 P_e 比参考有功 P_ref 小的时候,转速ω会上升而转速一旦与电网同步频率产生偏差阻尼项D 会把这个偏差往回拉从而模拟出同步机“惯性加阻尼”配合的响应过程。在Simulink里可以直接用积分模块搭建不需要s函数。这里有个细节要注意参与积分计算的J和D的量纲。如果直接用有名值构造转动惯量J会是一个非常大的数比如十几万在数值求解上会有动态范围问题所以我更建议采用归一化的“惯性时间常数”和“阻尼比”来表达。2.2 电气方程与励磁调节方程VSG的虚拟“励磁调节”方程为[ E E_0 K_q(Q_{ref} - Q_e) K_u(U_{ref} - U_g) ]其中E是虚拟内电势幅值Kq是无功调节系数Ku是机端电压调节系数。实际绝大多数仿真模型中Kq和Ku一个控制的是无功稳态误差一个控制的是电压稳态偏差。你仔细分析就会发现如果只取Kq无功—电压呈下垂特性如果Kq足够大Q_ref基本等于Q_e无功就完全跟指令走适合PQ恒功率并网场景但这削弱了电压支撑能力。因此我常用的参数分配是有功—频率环主要靠J和D构成虚拟摇摆特性提供惯量和阻尼。无功—电压环以电压支撑为主无功跟随为辅。这种配合比较贴近“电网需要什么 VSG就给什么”的思路也便于后续验证惯量支撑、一次调频和电压调节三种功能。2.3 预同步控制如果你要做的模型只涉及并网无限大母线可以在0.3秒时直接合闸并网VSG在稳态下会自动锁相。但是要做“孤岛转并网”或者“离并网无缝切换”那就必须加预同步环节。预同步的目标是让VSG输出的电压幅值、频率、相位与电网保持一致。频率和相位通过调节虚拟转速ω完成幅值通过调节E0完成。在Simulink实现时一般用三相锁相环测电网相位θ_g然后与VSG自身相位θ_vsg做差经过一个PI调节器生成频率补偿量Δω附加到转子运动方程中同理电网电压幅值与VSG输出电压幅值之差经过另一个PI生成E0补偿量。我之前看到不少仿真模型完全不处理并网冲击合闸瞬间波形出现极大的尖峰电流其实大多不是模型错误而是没有正确做预同步。这类“功能缺失”在论文里不够会被审稿人揪出在工程里则直接导致并网断路器跳闸。3. Simulink模型搭建全流程3.1 模型架构与模块选型这里我以 Matlab R2021b 为例Simulink版本较老也能建但Specialized Power SystemsSPS2021a之前叫SimPowerSystems模块库路径有变化的话需要相应调整。建立模型可以按下面几个子系统来组织光伏单元光伏PV阵列模块 Boost变换器 MPPT控制器。MPPT可以采用扰动观察法也可以直接封装一个PO算法S函数。储能单元锂电池模型 双向DC/DC变换器 恒压/恒流控制器。逆变器三相两电平逆变器 直流母线电容。VSG控制算法有功频率环 无功电压环 电压电流双闭环。电网与测量三相电网电源、变压器、断路器、电压电流测量模块、PLL。截图级的细节很难在这里全画出来但有几点强烈建议照做逆变器功率器件选用“Universal Bridge”默认参数导通压降与阻值默认即可不用先去精细标定。直流母线电容按经验公式选取这里给一个参考公式 [ C_{dc} \frac{P_{rated}\cdot T_r}{2\cdot U_{dc}\cdot \Delta U_{dc}} ] 假设P为100kW电压1000V允许波动2%控制响应时间0.01s电容约2.5mF实际可取3mF。3.2 光伏储能前级模型细节这个部分很多人会偷懒——直接用直流电压源代替整个前级来完成VSG算法验证。如果是纯做VSG算法的并网特性验证这种替代没有问题效率还高但如果你的题目中有“光伏储能系统”这几个字评审时会被认为模型完整度不足。所以我建议仿真至少有一版是带着光储动态的。光伏阵列参数参考100kW系统这样设置可以起到好的示范效果开路电压Uoc480V最大功率点电压Ump400V需串联两个260V组件串。短路电流Isc300A最大功率点电流Imp280A。MPPT用扰动观察法步长取0.5%的参考电压步进。储能单元用锂电池模型额定电压设定为600V直流母线电压1000V时需要通过Boost升压到匹配电压。储能的容量参数由你要仿真的时长决定如果仿真时长超过10s电池容量至少50Ah否则SOC变化会过大甚至出现直流母线电压失控。双向DC/DC控制器设计需注意外环控制直流母线电压内环控制电感电流两个PI串联。外环带宽通常是内环的1/10防止环路交互振荡。也就是说若电流内环带宽1000rad/s电压外环带宽在100rad/s左右即可。3.3 VSG算法Simulink实现这部分可以说是整个模型的灵魂。为了说明清晰我把VSG算法拆成下面几个环节有功—频率环节用Memory或Unit Delay构造状态比较清晰。J、D的传递函数形式为[ \frac{\omega(s)}{P_e(s)} -\frac{1}{J s D} ]模型建议采用H(s) 1/(J*s D)的标准二阶惯性环节加上限幅模块。在并网模式下Δω会改变VSG输出电压相位即θ ∫(ω)dt从而实现有功调频。无功—电压环节E_vsg E0 Kq(Q_ref - Q) Ku(U_ref - Ug)组成E是内电势这里注意后续双闭环控制针对的电压参考值并不是E而是逆变器出口滤波电容电压参考值。很多刚做VSG的小伙伴混淆了内电势与输出电压的关系导致波形偏大。虚拟阻抗和内电势使能模型会带来额外的电压降落如果你的VSG算法没有加虚拟阻抗通常在滤波电容电压处直接生成参考电压会比E低一些。我的做法是正常并网工况下E0取为额定电压的1.05~1.08倍比如线电压400VE0可以设310V~320V相电压峰值这个抬升量用于补偿滤波电感上的压降。双闭环电压环采用PI控制参数可这样初调Kp 0.5Ki 20带宽约300-500Hz高于工频50Hz十倍左右以免影响基波跟踪。电流内环Kp 2Ki 100带宽2000Hz以上。在没有LC参数准确值的情况下这个粗调组合在许多模型里能稳定工作。3.4 关键参数一览为了让你参数设置有直接可抄的起点我把仿真中使用的关键参数整理如下表参数数值说明额定功率100 kWVSG额定功率额定电压400 V逆变器输出线电压有效值直流母线1000 V光伏储能共用电网频率50 Hz相电压峰值约311V转动惯量J1.2 kg·m²仿真中没有传动机构J为虚拟值阻尼系数D30 N·m·s/rad对应阻尼比约0.37滤波电感L0.35 mH电感压降约3%滤波电容C100 μF对应截止频率约850HzKq0.0002无功100kVar时电压降约2%Ku0.1电压跟随附加系数直流母线电容6 mF由三组2mF并联开关频率10 kHz通用逆变器默认值需要注意J、D的取值必须与功率基准匹配非常紧密。假如你把J调到20以上会发现频率“驰豫时间”特别长输出功率爬升速度极慢这会带来执行机构饱和风险。4. 逆变器与网侧连接细节处理4.1 滤波与变压器接入VSG逆变器输出需要经过LC或LCL滤波器再接入电网。在仿真中用LCL比较能反映真实性但LCL调谐振是个麻烦事很多方案靠加无源阻尼电阻解决。我建议仿真阶段用LC滤波器电感值按下式粗算[ L \frac{U_{dc}}{8 \cdot f_{sw} \cdot \Delta I_{L max}} ]设直流母线1000V开关频率10kHz电流纹波限额定电流的20%额定相电流约145AΔI_Lmax取29A电感约0.43mH。取0.35mH也可以算出来纹波稍大一点但在可控范围内。LC的谐振频率选择一般设在开关频率的1/10到1/5之间即12kHz。计算式[ f_{res} \frac{1}{2\pi \sqrt{LC}} \frac{1}{2\pi\sqrt{0.35\times 10^{-3}\times100\times10^{-6}}} \approx 851\text{ Hz} ]这对电压电流双闭环设计比较友好不会和控制器带宽装车也很少出现稳定性问题。4.2 变压器接线和连接方式在PSCAD/Simulink里做VSG并网请一定不要忽视变压器的接线方式。如果采用Dyn11接法三角形侧会为3次谐波电流提供通路会让相电压波形好看一些。中性点不接地或经消弧线圈接地时电压测量与单相故障逻辑需要调整。我一般在400V VSG出口加一台升压变压器变比0.4kV/10kV容量150kVA短路阻抗UK6%。变压器的漏抗加入总电感计算时能让短路比更真实地反映电网强度。4.3 电网短路容量对VSG动态的影响电网强度很重要而在Simulink中通常是通过调短路比SCR来模拟。用10kV理想电压源串联电感即可等效一定SCR。设定SCR5对应的电感可这样算三相短路容量S_sc 5×0.1MVA 0.5MVA换算到400V侧后等效电感约为[ L_g \frac{U_n^2}{\omega_0 \cdot S_{sc}} \frac{400^2}{314\times 500000} \approx 1.02\text{ mH} ]不建议在这里用一个内阻极大、短路容量过小的电压源来模拟弱电网因为很容易让VSG出现QR耦合振荡反而分不清模型问题还是电网问题。5. 运行工况设定与仿真结果分析5.1 工况一光照突变下的惯量支撑能力仿真规划总时长2秒。0.5秒前系统工作在稳态光伏出力80kW储能不充不放VSG并网输出80kW。0.5秒时模拟云层遮挡光照突降至300W/m²光伏出力锐减至30kW系统瞬间缺额50kW。这时候可以得到两个层次观察结论直流母线电压在储能电流内环的调节下先下降约20V然后在0.1秒内恢复到1000V附近电网侧频率仅下降0.02Hz左右且下降速率较慢这表明储能通过VSG释放能量提供频率支撑。我们可以进一步用阻尼系数D进行对比仿真D30时频率最大偏差0.05Hz恢复时间约0.3sD10时频率最大偏差0.09Hz振荡衰减明显变慢。这个对比实验适合写到报告的结果讨论里用来验证“阻尼提供功率振荡抑制惯量提供频率变化率抑制”。5.2 工况二并网功率指令动态响应很多人测试VSG模型会直接给功率指令一个阶跃。实际工程中功率管理系统PMS不会给阶跃但仿真中这种激励最容易暴露控制器问题。给出以下流程参考在1秒时将有功参考Pref从80kW阶跃到100kW同时保持Qref不变观察VSG输出功率的变化。预期结果是功率不是瞬间达到100kW而是以类似同步机功角振荡的形式超调后收敛。在J1.2、D30时响应时间约30ms超调量大概在10%以内振荡次数大约1次。如果你测到的功率响应几乎无惯性直接跳到目标值八成是你的转子运动方程没起作用检查一下反馈通道P_e是取瞬时有功还是经过滤波后的功率。5.3 工况三孤岛切负荷与频率稳定做孤岛仿真时必须把断路器模块的三相合闸控制设在正确的时间。一个可取的方法是0.5s前并网0.5s时启动断路器断开信号让VSG切换为孤岛运行模式同时连接一个20kW的本地RLC负载该负载在1秒时切除。这种情况下VSG的调频功能才会被完整展现。如果没有其他储能控制或卸荷电路负荷突变后系统频率上升范围可以直接反映J和D的配合效果。我在做这组实验时的体会是空载到阻性负载的切换会让电压下垂效应非常显著此时Ku的电压支撑作用会更加明显。这个实验也是验证VSG从构网型转离网运行的“金标准”。6. 常见问题与排查技巧实录6.1 模型启动即发散PLL锁相失败最常见的现象仿真一开始就报“Nonlinear iteration is not converging”或者波形出现数值NaN。排查方案先不接VSG闭环只用三相电压源直接给PLL供电确认PLL输出稳定。检查VSG初始相位是否与电网相位一致。如果初始相位差为180°合闸必然出冲击。将Powergui的仿真步长从默认改为固定步长典型值设10μs或20μs。如果使用变步长很多功率电子开关的尖峰会被求解器误当成真实事件。6.2 算法正确但输出有功波动很大模型参数全对VSG给出的波形却持续振荡例如2Hz左右、衰减不明显的低频功率振荡。我在实验室做半实物仿真时遇到过类似问题。最后定位到原因是有功功率反馈计算使用了瞬时有功P1.5(u_d i_d u_q i_q)但没加滤波高频纹波被送入转子运动方程相当于给虚拟惯量一个剧烈抖动扰动。解决办法在有功反馈后加截止频率为20~50Hz低通滤波器一阶模拟真实测量环节中的抗混叠滤波特性。这里就是你搜索时看到的“simulink一阶滤波模块”实际应用场景——在VSG控制里一阶低通滤波不仅是信号调理还会显著影响系统阻尼特性。滤波时间常数的选择原则是小于控制器带宽的1/5但大于开关频率纹波对应的周期。按我经验取5ms~20ms之间的时间常数均可行。6.3 直流母线电压振荡无法抑制带光伏前级时直流母线电压出现几Hz振荡调储能控制器PI也压不下来。通常情况下不是储能控制参数问题而是光伏MPPT步长与储能电压环路带宽耦合产生负阻效应。解决方向将MPPT的扰动周期调慢如每0.05秒扰动一次而储能电压环的带宽至少大于10Hz两者拉开距离。或者在直流母线电容处增加电压前馈提供给储能电流内环使其“预判”电压变化。检查电池模型SOC变化是否合理如果初始SOC设在1%或99%电池内阻变化会让电压环等效增益明显下降。6.4 并网合闸电流尖峰过大0.3s断路器合闸时电流瞬间超过额定值2倍以上。排除硬件电路初始条件的原因之外最重要的是VSG的预同步没有把相位调零。加一个监视模块可以“看到”误差将电网三相电压角度和VSG输出的虚拟角速度θ差做差。接入PI环输出Δω加到角速度设定值上。直到θ差绝对值小于0.01rad再进行合闸。如果你偷懒不起预同步模块简单的替代做法是直接让θ的初始向量与电网一致这在只做并网稳态仿真时是有效的但不要把它包装成“无缝切换”的离网实验。6.5 常见问题速查表故障现象核心原因解决方案启动即发散PLL相位不可用、初始相位错误检查初始条件和PLL独立性有功功率2Hz振荡功率反馈无滤波有功反馈加截止频率20-50Hz低通滤波直流母线持续振荡MPPT与储能电压环带宽耦合MPPT扰动周期设0.05s及以上并网冲击电流过大预同步未正常工作相位差小于0.01rad后再闭合断路器SOC对控制干扰严重电池容量太小、内阻变化选用50Ah以上电池模型变压器波形畸变接线模式、饱和模型参数不当默认磁饱和放开先近似线性变压器仿真速度极慢固定步长过小、开关频率过高先调低频率验证再提升回10k电压外环饱和电压限幅设置不合理电压限幅设为额定的1.1倍直流电压以上7. 仿真与实验联动经验很多论文写“仿真验证了控制策略的正确性”但工程里最终要落的是半实物或物理样机验证。在做RT-LAB或者快速控制原型RCP测试之前务必先在Simulink中选好“离散求解器 固定步长”否则控制器C代码生成时会遇到代数环或连续状态变量过多的问题。另一个值得留意的是“模型标定”思维。仿真里的J和D可以随意设置但实物样机中的惯量支撑能力受储能容量和电池倍率限制。比如你只有100kW/100kWh的储能却把虚拟惯量J设置到能支撑50kW扰动长达5秒的理想水平实际系统中电池早已触SOC下限或功率上限。建议在搭建模型时同步建立一个简单的能量约束监测模块积分VSG输出功率变化量对比储能可用能量区间超出就提示“虚拟惯量超限”。有约束的VSG仿真才更接近可落地的系统。8. 模型后续扩展我最后给你留一个我常建议学员尝试的扩展路线第一换掉理想电网加入三相不平衡负载会让VSG的输出电压包含负序分量。一般VSG不带负序补偿效果会较差这时正好试试在控制中加入正负序双通道控制或者比例谐振控制替代PI电压环。第二把单台VSG改成两台并联你会发现有功均分效果取决于虚拟阻抗取值功角偏差导致低频环流是必然的。这一块会牵出VSG并联稳定性著名的功率分配与环流抑制问题做透彻很发文章。第三加入故障穿越需求。当电网电压骤升或骤降时VSG的电流限幅策略需要限制故障期间输出电流否则功率器件过热损坏。如何在故障期间保持同步性而不失步是目前构网型控制研究的核心热点。从我操作层面说打牢基础、弄清原理比刷更多仿真算例重要得多。VSG的建模过程是“一通则百通”的把转子运动方程、阻尼功率、虚拟阻抗、预同步这几点在Simulink里跑通以后无论做风电VSG研究还是储能构网型样机改造核心逻辑都是同一套。用这套模型做几个典型工况后再回头修改成自己的参数和控制目标就能省去大量从空白模型开始的重复工作了。