1. 从“电力电子变流器”到“虚拟同步发电机”:这套仿真模型到底在做什么
做新能源并网仿真的人,十有八九都遇到过同一个问题:逆变器在电网眼里就是个“没脾气”的电流源,电网电压跌一下、频率抖一下,它要么傻乎乎地继续按原策略输出功率,要么立刻保护跳闸。这在光伏渗透率越来越高的今天,已经是电网稳定性的巨大隐患。而虚拟同步发电机(VSG)技术的核心思路,就是用控制算法让逆变器“装”成一个有惯量、有阻尼、能参与一次调频和一次调压的同步发电机,让新能源电站像传统火电/水电一样,对电网表现出友好的“发电机性格”。
我最近在Simulink里搭建了一套完整的光伏储能虚拟同步发电机并网仿真模型,包含光伏阵列、Boost升压电路、储能双向DC/DC、三相逆变器、LCL滤波器、VSG控制算法、预同步控制以及并网断路器逻辑。整套模型从直流侧到交流侧、从功率控制到电压电流双闭环,全部打通。这篇文章我把整个模型的架构思路、核心控制参数怎么定、仿真过程中踩过的坑、以及如何把这个模型扩展成你自己的版本,从头到尾拆开讲清楚。如果你正在做新能源并网仿真、研究VSG控制策略,或者写毕业论文需要一套能跑通的光储VSG系统,这篇文章可以直接当参考。
需要说明的是,这篇文章不会贴出一整份几百行的完整工程代码,而是把控制链路、参数整定逻辑、关键模块配置方式这些复现必需的干货讲透。你拿到的是一张“图纸”,而不是一堆“零件”,我觉得这比直接丢给你一个跑起来不知道对不对的模型要有用得多。
2. 模型整体架构:为什么光伏必须配储能,而不是光伏单独接VSG
2.1 光伏直接做VSG的问题出在哪
先说一个最核心的设计前提:光伏阵列的输出功率是随光照和温度剧烈波动的,而VSG控制的前提是“直流侧有可控的功率源”。如果光伏板直接接逆变器直流母线,光照一变化,直流母线电压就会剧烈波动,VSG算出来的有功功率指令根本无法稳定执行——你让逆变器输出50kW,但光伏板此刻只能给出30kW,直流母线电压就会往下掉,整个控制系统直接失去平衡。
更麻烦的是,光伏的最大功率点跟踪(MPPT)本身是一个动态过程,它只对直流侧“负责”,完全不知道电网此刻需要多少有功、多少无功。让一个“只顾自己发多少”的电源去模拟“顾全大局”的同步发电机,本质上就是逻辑不自洽的。
所以工程上通用的做法是:光伏+储能组成一个“可控直流源”。光伏板按MPPT模式尽量多发电,储能系统负责吸收或补充功率差额,维持直流母线电压稳定,逆变器只管按照VSG算法把直流母线上的功率“翻译”成符合电网要求的交流功率输出。这就是标题里“光储”两个字的意义,也是整仿真模型的第一个设计决策点。
2.2 系统的整体拓扑和能量流动关系
我这套模型采用经典的两级式拓扑,从上到下链路如下:
- 光伏阵列 → Boost升压电路 → 直流母线
- 储能电池 → 双向Buck-Boost电路 → 直流母线
- 直流母线 → 三相两电平逆变器 → LCL滤波器 → 并网开关 → 电网
两条直流支路在直流母线电容处汇合,母线电压额定值设为700V,逆变器通过LCL滤波器接入380V/50Hz的三相电网。
在这套拓扑里,光伏Boost负责跟踪最大功率点,储能双向DC/DC负责稳住母线电压——光伏发的功率大于逆变器指令需求时,储能充电吸收;光伏功率不足时,储能放电补充。同时VSG有功指令由“电网频率偏差下垂+MPPT给定”共同决定,储能单元再根据母线电压的波动自动响应。整个系统里,储能扮演的角色相当于同步发电机中的原动机调速器,它维持的是直流侧的能量守恒,而不是直接控制输出功率。
2.3 为什么不采用单级式拓扑
也有文献做单级式光伏VSG,就是光伏板直接接逆变器,通过改变逆变器的工作点来实现MPPT。
这种方案少了一级变换器,效率高、成本低,但控制自由度很差:VSG要调节输出功率,光伏工作点就被迫偏移,无法保证光伏时刻在最大功率点;反过来,光伏功率随光照波动,母线电压必然大幅波动,VSG输出的电能质量会很差。对于需要同时兼顾“光伏高效利用”和“VSG稳定并网”的研究场景,两级式是更稳妥的选择。
注意:如果你的仿真属性和我不同——比如直流母线是400V、电网是220V——整个模型的功率环参数、调制波幅值、LCL参数都需要重新计算,不能直接套用。后面第4节我会专门讲参数整定方法。
3. 虚拟同步发电机核心控制链路拆解
3.1 有功-频率控制:模拟转子的“惯量”和“阻尼”
VSG控制最核心的部分就是有功-频率控制环。它本质上是在复现同步发电机的转子运动方程:
J * dω/dt = Pm - Pe - D * (ω - ω0)
拆开来看这每一项的含义:
- J是虚拟惯量,对应同步发电机的转子转动惯量。它决定了系统对频率变化的“抵抗力”。J越大,频率变化越平缓,但响应越慢,动态过程中的频率偏差持续时间越长;J太小,频率会快速波动甚至震荡。
- D是虚拟阻尼系数,代表转子在转速偏离额定值时的机械阻尼效应。它直接决定频率振荡的衰减速度,D太小系统会来回震荡,D太大会让动态响应变得呆滞。
- Pm是机械功率输入,仿真中由“有功功率参考值+一次调频下垂量”计算得到。
- Pe是电磁功率输出,即逆变器实际注入电网的有功功率。
仿真中用积分模块对J做积分就能得到角频率ω,再积分一次得到电角度θ。这个θ就是VSG合成电压矢量的相位,它是PWM调制波和坐标变换的角度基准。整个VSG控制的“灵魂”就在这里:通过这个二阶运动方程,逆变器的输出相位不是直接由PLL锁出来的,而是由功率差额“转”出来的,天然就带有同步发电机的摇摆特性。
有功-频率控制方程具体展开为:
Pm = Pref + Kf * (f0 - fgrid)
其中Pref是额定有功功率指令(通常由光伏MPPT功率和储能荷电状态决定),Kf是一次调频下垂系数。fgrid是电网实测频率,f0是额定频率50Hz。电网频率跌落时,Pm自动增大,逆变器增加有功输出,这就是对电网一次调频的模拟。
这里分享一个我实际调参过程中的心得:很多仿真模型把Pref设成固定值就完事了,但光伏场景下更合理的做法是让Pref跟随MPPT输出、并和储能SOC联合决策。光照充足时Pref提高,让逆变器多发有功;光照不足时Pref降低,避免储能过度放电。这样可以防止电网频率波动时VSG指令功率高于直流侧能提供的功率,导致母线电压崩溃。
3.2 无功-电压控制:给电网一个“软电压源”的外特性
同步发电机的第二个外特性是电压调节能力。VSG的无功-电压控制环模拟的是励磁调节器的功能,控制方程为:
E = E0 + Kq * (Qref - Qe) + Ki * ∫(Qref - Qe)dt
其中E是VSG虚拟电动势的幅值,E0是空载电动势额定值,Kq是无功下垂系数,Qref和Qe分别是无功功率参考值和实测值。这个式子同时实现了无功下垂和电压无差调节。
具体区别在哪里:
- 只有下垂项Kq * (Qref - Qe):输出无功和电压偏差呈线性关系,类似发电机的外特性下垂曲线。实现简单,但电网电压偏离额定值时会有稳态无功偏差。
- 加入积分项Ki * ∫(Qref - Qe)dt:相当于在自动电压调节器里加入了积分环节,可以消除稳态误差,让并网点的电压基本恢复到额定值附近。
我做仿真时是两部分都用的,Ki取得比较小,主要起微调作用,Kq是主要的无功分配比例,这样电压调节的响应速度和稳定性可以兼顾。
还有一个细节是,无功环输出的E不能超过逆变器的调制能力上限,需要加限幅。仿真中我用饱和模块把E限制在0.9~1.1倍的额定相电压幅值范围内,不然调制波会过调制,输出电压波形会出现明显的削顶畸变。
3.3 电压电流双闭环:把虚拟电动势变成真实的并网电流
VSG计算出来的E和θ合成三相参考电压,但这只是“参考”,真正送到PWM调制器之前,还需要经过电压外环和电流内环的校正。这套双闭环的作用是让逆变器实际输出电压跟踪VSG给的参考电压,同时提供足够的动态响应速度。
电压外环:将参考电压与滤波电容电压的差值送入PI控制器,输出内环电流参考值。它的作用是保证滤波电容上的电压精确跟随VSG给定电压。
电流内环:将电压环输出的电流参考与逆变器侧电感电流的差值送入PI控制器,输出调制波电压。它决定了整个环路的响应速度,通常带宽设计在电压环的5到10倍以上。
工程实现中电流内环常用PI控制,考虑到三相静止坐标系下的交流量存在稳态误差,我在仿真里把电流环放在同步旋转dq坐标系下实现,也就是做Park变换后在dq轴下分别用PI控制,这样交流量变成了直流量,PI控制可以实现无静差跟踪。
提示:dq旋转坐标系下,d轴和q轴电流之间存在耦合项ωLiq和ωLid,如果忽略的话高速工况下电流环动态会变差。我习惯在控制框图里加上解耦补偿项,虽然对仿真精度影响不大,但是更接近实际工程做法。
3.4 预同步控制:比想象中更关键的模块
很多做VSG仿真的人第一次并网时都会遇到这个场景:VSG启动、输出正常,合上并网开关的瞬间,电流“砰”地一下冲上天,仿真直接报错。根本原因就是VSG输出电压和电网电压之间存在相位差或幅值差,合闸瞬间相当于把两个不同步的电压源硬接在一起。
解决方案是预同步控制。核心逻辑很简单:在并网开关闭合之前,实时检测VSG输出电压和电网电压的幅值差、相位差,通过调节VSG的频率给定(微调ω)和电压幅值给定(微调E),让两侧电压逐渐逼近,误差小于阈值后再闭合并网开关。
仿真中我用两个PI控制器分别控制相位和幅值:
- 相位预同步:Δθ = θVSG - θgrid,通过PI调节输出Δω叠加到VSG角频率ω上,让θVSG逐渐追上θgrid。
- 幅值预同步:ΔE = EVSG - Egrid,通过PI调节输出ΔE叠加到VSG电动势幅值E上。
预同步使能信号只在并网前有效,并网完成后自动切到正常VSG控制。我在仿真里用一个Manual Switch手动控制预同步模块的投入和切除,方便观察并网前后不同阶段的控制逻辑切换。
4. 参数整定过程:哪些可以算,哪些必须靠试
4.1 LCL滤波器参数:给硬件选型一个交代
LCL滤波器的设计目标是:在满足并网谐波要求的前提下,尽量减小体积和成本。仿真中虽然不用关心温升和体积,但是参数不合理会导致谐振尖峰、控制不稳定。
我用的LCL参数是:逆变器侧电感L1 = 2mH,网侧电感L2 = 1mH,滤波电容Cf = 10μF。这里有个关键参数是谐振频率:
fres = 1 / (2π * sqrt(L1 * L2 * Cf / (L1 + L2)))
代入数值算出来大概是2.75kHz。设计规则是谐振频率要远高于基波50Hz、又远低于开关频率的二分之一(我的开关频率是10kHz,奈奎斯特频率5kHz),同时避开5次、7次谐波频段。2.75kHz落在了合理区间。
实际仿真中LCL谐振会给电流环带来很大的相位滞后,典型表现是并网电流波形有谐振毛刺甚至发散。我建议在电流环PI参数不好收敛时,优先检查LCL参数和开关频率的匹配关系,这个比重调PI效率高得多。
4.2 虚拟惯量和阻尼系数:用二阶系统的视角来定
J和D的整定可以借鉴二阶系统单位阶跃响应的思路。把转子运动方程整理成标准二阶形式:
s² + (D/J)s + (Kf * ω0 / (2H * Sbase * J)) = 0
等效阻尼比和无阻尼自然振荡角频率为:
ωn = sqrt(Pe_max / (J * ω0)),ζ = D / (2 * J * ωn)
一个直观的设计方法是:根据允许的最大频率变化率和期望的振荡衰减速度来选择J和D。
- 频率变化率要求:J ≥ Pe_max / (ω0 * (dω/dt)_max)。额定功率100kW的系统,如果要求频率变化率不超过1Hz/s,那么J大约需要40左右。这个值对应的是同步发电机惯性时间常数H在2~4秒的量级,换算下来和一台中小型同步发电机相当。
- 阻尼比期望:工程上一般取ζ在0.6到0.8之间,因为此时超调量不大且调节时间短。确定了ζ和ωn之后,D = 2ζJωn。
我在仿真里用J = 42,D = 1530,整套参数做电网频率阶跃扰动测试时,有功功率的动态响应大约在1.5秒内稳定,没有明显超调,频率振荡衰减情况良好。
注意:J和D不是拍脑袋定完就不动的。我强烈建议把D设置成模块内可调变量(在MATLAB脚本里用变量名赋值的方式),然后跑一次参数扫描,对比几组J/D取值的频率响应曲线,你会对“惯量和阻尼到底分别影响动态的哪个方面”有非常直观的认知。这个训练比看十篇论文都有效。
4.3 下垂系数的计算依据
一次调频下垂系数Kf的意义是:电网频率每变化1Hz,有功输出变化多少瓦。参考实际电力系统频率调节的规范,并网逆变器的频率下垂系数通常取额定功率的2%~5%对应额定频率的1%偏差。
我的模型额定功率100kW,额定频率50Hz,如果定义频率偏差0.5Hz时功率变化100%(即满载参与调频),按线性关系Kf = 100kW / 0.5Hz = 200kW/Hz。但在并网场景中,逆变器容量相对于电网很小,过大的下垂系数容易导致有功功率来回震荡,所以我最终取了50kW/Hz,频率偏0.5Hz时输出功率变化25kW,既体现了调频特性,又不会让逆变器功率越限。
无功下垂系数Kq的设计逻辑类似。参考值取额定无功功率Qn = 50kVar时输出电压幅值偏差2%左右,Kq = Qn / (0.02 * 311V) ≈ 8000,仿真里再根据电压动态响应微调。
4.4 储能双向DC/DC的参数选择
储能支路的核心参数是电池模型和双向DC/DC的PI控制器。电池我用的Simplorer自带锂离子电池模型,容量设置为200Ah,额定电压500V。这样配置的目的是母线电压700V时Buck-Boost变换器不需要太大的占空比变化,通流能力也比较从容。
DC/DC控制器的设计目标非常明确——把母线电压稳定在700V。外环是母线电压环,PI输出是电池电流参考值;内环是电池电流环,通过PWM控制开关管占空比。这里有一个很多仿真新手容易踩的坑:母线电压环和电流环的响应速度必须和VSG的功率动态匹配。VSG发力时,母线电压会在短时间内被抽走大量能量,如果储能DC/DC的响应太慢,母线电压就会跌出允许范围、逆变器输出电压波形畸变。我的做法是把电流环带宽设计在储能开关频率的十分之一(开关频率20kHz对应带宽2kHz),电压环带宽设为电流环的五分之一左右,基本可以保证VSG整体动态过程中母线电压纹波控制在±2%以内。
5. 核心仿真模块配置:Simulink怎么搭才不容易报错
5.1 主电路的搭建方式和器件选型
我的模型是2021b版本Simulink里搭建的,主电路用的全部是Simscape Electrical(以前叫SimPowerSystems)里的元件。搭建顺序是先搭光伏Boost支路、再搭储能支路、然后逆变器和LCL、最后才是并网变压器和电网。
搭建过程中有几个关键设置直接影响仿真稳定性:
- 逆变器功率管用的平均模型(Average-Model)而不是详细开关模型。平均模型仿真速度极快,适用于验证控制策略;如果需要看开关纹波,再切换为详细IGBT模型。新手建议先用平均模型跑通整个控制链路,再逐步加详细开关和驱动电路。
- 直流母线电容取5000μF,这是根据“母线电压波动限制在2%、负载阶跃100A、动态恢复时间10ms”这几个条件估算出来的,不是瞎填的。
- LCL滤波器的初始值(电感Initial current、电容Initial voltage)建议设为零,避免仿真起步瞬间出现明显的暂态冲击。
5.2 VSG控制器的模块化封装思路
VSG控制器我用的是纯Simulink模块搭建,不涉及S-Function,这样初学者更容易读懂每一路信号从哪里来到哪里去。整体封装成了一个子系统,输入端口包括:电网三相电压、逆变器三相电流、滤波电容电压、有功/无功功率参考值、使能信号;输出端口包括:三相PWM调制波。
子系统内部又拆分成三个小块:功率计算块、VSG主算法块、电压电流双闭环块。功率计算块用三相电压和电流通过dq变换求瞬时有功和无功,这个值同时用于VSG算法反馈和外部监控。
VSG主算法块是整个系统的核心。内部结构为:
- 锁相环锁电网相位和频率,作为预同步和下垂控制的输入
- 频率偏差乘以Kf得到有功调整量,累加至Pref得到Pm
- 根据转子运动方程求出ω和θ,θ送积分生成相位
- 无功环计算出电动势幅值E
- E和θ合成三相参考电压
这些我全部用普通数学运算模块实现,没有用Simscape的特殊库。控制链路完全透明,断点调试时可以看到每一个中间变量。
5.3 功率计算环节:瞬时功率理论和dq变换的配合
功率反馈计算的正确性直接决定VSG控制精度。很多仿真模型功率反馈用的是三相瞬时功率理论:
P = UaIa + UbIb + Uc*Ic Q = (1/sqrt(3)) * [(Ub-Uc)Ia + (Uc-Ua)Ib + (Ua-Ub)Ic]
这套公式虽然简单,但在电网电压不平衡或含有谐波时会有明显误差。我在模型里用的是dq同步旋转坐标系下的方法:电压电流都变换到dq轴后,P = 1.5 * (UdId + UqIq),Q = 1.5 * (UqId - UdIq),计算出来的功率比较平滑,不需要额外加低通滤波器就能直接作为VSG反馈量。
要提醒一下:dq变换以哪个角度为基准很关键。我的锁相环锁的是电网电压矢量A相相位,dq变换也全部基于这个相位,这样坐标系始终和电网电压同步,Uq基本为0,功率计算就简化成P = 1.5 * Ud * Id、Q = -1.5 * Ud * Iq,非常清晰。
5.4 Simulink求解器设置:选错求解器,仿真必炸
这个很多人根本不重视,但实际影响非常大。VSG并网模型是一个带LCL滤波器的多时间尺度非线性系统,如果使用默认的变步长求解器ode45,仿真速度慢不说,还有可能因为开关动作和连续状态切换导致不收敛或者结果振荡。
我最终选用的是:
- 求解器:ode23tb(stiff/TR-BDF2),适合带开关器件和快动态的电力电子系统
- 最大步长:1e-5s(对应开关周期10kHz,至少一个开关周期采10个点以上)
- 相对容差:1e-3
- 仿真时长:根据场景设置,并网动态观察通常跑2~4秒足够
如果模型里用了详细IGBT开关模型,建议把最大步长进一步降到2e-6s,不然开关瞬间的电压电流跳变会被步长滤波器抹掉,波形看起来“很平滑”,但那不是真实物理。
6. 关键仿真结果与工况设计
6.1 工况一:并网预同步过程
仿真前0到0.5秒VSG运行在独立模式,输出电压和电网电压存在约30度的相位差。0.5秒时投入预同步控制,可以清楚看到VSG输出电压矢量相位逐渐向电网相位逼近,大约在0.9秒时相位差小于0.1度,此时控制并网开关闭合。
记录到的波形显示,合闸瞬间并网电流没有出现冲击尖峰,电流从0平滑过渡到额定值,这说明预同步模块的稳态精度是够的。如果把预同步增益调太大或者积分饱和限幅不对,合闸电流会有一个比较明显的瞬态脉冲,这个在波形上非常直观。
6.2 工况二:电网频率阶跃扰动
并网稳定运行后,在1秒时刻把电网频率从50Hz阶跃降到49.8Hz,模拟一次电厂侧的频率扰动。观测VSG的有功输出波形可以看到:
- 0到0.3秒,有功功率从初始的60kW逐渐上升,时间常数和虚拟惯量J匹配
- 0.5秒左右达到新的稳态功率约72kW,稳态功率增量约12kW,对应下垂系数Kf=50kW/Hz乘以0.2Hz频率偏差
- 整个过程中储能DC/DC母线电压波动控制在±10V以内,说明储能支路的响应速度能够支撑VSG的有功调节
这个工况最直观地验证了VSG“无缘无故”多发出的那部分功率是从哪里来的——答案是储能电池放出来的。光伏MPPT并没有感知频率变化,是储能系统默默承担了调频的功率差额。
6.3 工况三:光照阶跃变化
3秒时光照强度从1000W/m²突降到400W/m²,光伏输出功率瞬间从80kW降到32kW。此时如果逆变器的有功参考值不改变,母线电压会出现明显跌落(超过50V),储能系统检测到母线电压跌落,自动从充电模式切换为放电模式,补足功率差额。
这个工况检验的是直流母线电压控制和储能能量管理的协调逻辑。模型正常工作时,光伏功率跌落事件中母线电压波动幅度不超过15V,逆变器交流侧输出功率基本不受光伏波动影响。如果储能容量小、响应慢,交流侧功率会出现一个明显的凹陷,这在对比实验里看得非常清楚。
6.4 如何自己设计对比实验
如果你要基于这个模型做研究,我建议把重点放在“控制参数变化对动态特性的影响”上。
- 改变J的大小(比如J=10、42、100三组),对比有功功率阶跃响应的超调量和调节时间
- 改变D的大小,观察频率振荡的衰减速率
- 改变下垂系数Kf,看一次调频能力的响应差异
- 对比有无预同步控制的并网冲击电流大小
这种参数对比实验做起来其实很快,但出图效果和数据说服力非常强。做论文用这个模型作为验证基础是完全够的。
7. 我踩过的坑:Simulink建模仿真中的高频报错与排查技巧
7.1 模型初始化报错和代数环问题
Simulink中VSG控制最常见的问题之一是代数环(Algebraic Loop)。表现形式是仿真一开始就报错,提示检测到代数环,或者模型可以运行但速度极慢。
VSG控制中特别容易出现代数环的位置是功率计算环节:有功功率由电压电流计算得出,但电压电流又受VSG控制器的输出调制波影响,形成了“控制器输出→电压电流→功率→控制器输入”的反循环。如果控制链路中所有环节都是纯比例或代数运算,没有积分或延迟打断循环,就形成了代数环。
我排查的办法是在功率计算环节的输出端加一个Memory模块(或者一阶惯性滤波),人为地在反馈回路上添加一个采样保持延迟,把代数环打断。这个操作对控制精度的影响非常小,但能极大提升仿真稳定性和速度。
7.2 数据字典缺失和模型文件打不开的坑
很多从网上下载的Simulink模型会报“找不到数据字典xxx.sldd”或者“找不到工作区变量”的错误。这不是模型本身损坏,而是模型依赖的变量和参数在别人的MATLAB工作区里定义过、没存到模型文件里。
我的模型全部参数都是通过一个初始化脚本(.m文件)赋值到工作区的,模型文件里没有内嵌参数。如果你拿到一个别人的模型,第一件事应该是去模型资源管理器(Model Explorer)看模型的回调函数(Callbacks),通常是InitFcn或PreLoadFcn里定义了参数加载逻辑。找不到初始化脚本时,模型里的每个参数都会变成未定义变量,模型自然跑不起来。
这也提醒我写模型时组好习惯:所有参数集中放在一个脚本里,文件名写清楚版本和用途,模型内调用的变量名和脚本里保持一致。用到的参数包括系统额定功率、额定频率、直流母线电压、LCL参数、VSG的J/D/Kf/Kq、电压电流环PI参数等,全部集中管理。
7.3 LAPACK加载错误和求解器崩溃问题
使用较老版本MATLAB搭建的模型在新版本中打开时,有较大概率遇到“LAPACK加载错误: mllapack.dll”的报错,这通常和Simscape Electrical的库版本兼容性有关,也可能是模型引用了一些已经从库中移除或改名的模块。
遇到这种情况,我的处理方式是:先尝试重新选择求解器并复位求解器配置,看能否绕过报错;如果不行,就用故障隔离法——把模型分成几个子系统,逐个禁用(在子系统上右键→注释掉),找出来是哪个子系统引用了出问题的模块,再针对性地替换为新版本的等效模块。这个方法虽然土,但90%的报错都能定位。
7.4 仿真速度慢到难以忍受怎么优化
VSG并网模型如果含两套DC/DC开关模型和一套逆变器开关模型,仿真速度会非常慢。我的优化顺序是:
- 第一步:把DC/DC变换器改成平均模型。双向DC/DC的开关行为对母线电压稳定性的影响主要体现在平均功率传输上,平均模型足够准确。
- 第二步:逆变器和并网开关保持PWM详细模型,因为VSG控制的输出质量和开关纹波有关系,这里需要真实的PWM效果。
- 第三步:把功率电路仿真步长和处理采样时间解耦。控制系统的采样时间可以根据控制周期设定(PWM周期10kHz对应采样时间100μs),功率电路步长保持更小,这样可以减少不必要的高频计算量。
优化之后我的模型跑2秒仿真时间大概需要4分多钟,属于完全可接受的范畴。
8. 模型扩展方向:离网切换、故障穿越、多机并联
8.1 并网与离网无缝切换
我的模型是纯并网运行的,但VSG的大优势之一就是在并网和孤岛两种模式下能够无缝切换。扩展方案是增加一个离网模式切换开关:离网状态下VSG不再跟踪电网相位,而是完全由本地给定频率和电压参考值,此时储能成为系统的平衡节点,负载由逆变器和储能共同供电。
并网转离网的难点在于切换瞬间的控制策略过渡——锁相环要迅速切换到自由振荡模式,电压控制要从电流源模式转变为电压源模式,这些在仿真是可以加切换逻辑实现的。如果你有这方面的需求,建议在现有模型基础上加上第三组断路器模拟离网负载,再用状态机控制不同运行模式之间的切换逻辑。
8.2 低电压穿越控制
电网故障是并网研究绕不开的话题。把模型扩展成低电压穿越(LVRT)场景的方法并不复杂:在电网侧加一个可编程电压源(Programmable Voltage Source),预设电压跌落事件,比如在1秒时跌落到额定电压的20%,持续0.625秒后恢复。
但因为VSG控制本身带有惯性,电压跌落时会出现功率不平衡和过流风险。为了应对LVRT工况,需要给VSG算法增加限流保护和无功优先控制。电压跌落时检测到正序电压幅值低于阈值,优先输出无功功率支撑电压恢复,有功功率相应降低。这一块内容多,但直接把现有模型的参考电压给定逻辑改一下就能做初步验证。
8.3 多机并联和微电网组网
VSG的另一大应用场景是多台逆变器并联组成微电网。因为每台VSG本质上都是一个电压源,多台并联时需要解决功率均分和环流抑制问题。仿真的扩展方法是复制你搭建好的VSG子系统,通过公共交流母线并联运行,每台VSG的功率参考可以设置为不同的值,然后观察功率均分精度和环流情况。
如果做并联系研究,我建议优先关注无功均分问题。有功均分靠频率下垂天然解耦,但无功均分受线路阻抗影响严重,通常需要引入虚拟阻抗或改进下垂控制,这和VSG本身的参数整定是两个层面的问题。
9. 最后说几句实在话
这套光储VSG并网模型前前后后花了我不短的时间才搭到稳定运行,中间踩过的坑我在前面几节基本都提到了。说实话,VSG控制策略的理论论文一大堆,但真正能在Simulink里跑通闭环并输出漂亮波形的模型,往往比论文里描述的复杂得多。最典型的例子是预同步模块,理论上一句话就讲完了,实际做起来涉及信号切换、限幅、PI参数协调,任何一个环节处理不好并网瞬间就是电流爆炸。
个人体会最深的一点是:VSG仿真模型和传统PQ控制逆变器模型有个本质区别——VSG的控制器内部存在一个“闭环振荡器”,频率和相位是由功率控制的积分结果演化出来的,而传统解耦电流控制锁相环只负责跟踪电网相位。这个本质差异决定了VSG模型在调参逻辑和故障响应上都完全不同,必须建立“功率—相位—电压—电流”层层嵌套的思维,而不是在传统逆变器控制思路上打补丁。
如果你正在复现类似的模型,我建议按照“先无源开环、再有源闭环、最后并网”的顺序分阶段调试,前两个阶段不出问题再上电网。心急吃不了热豆腐,VSG模型尤其如此。模型跑通之后,建议把J、D、Kf、Kq这几个参数做成可调变量,系统性做几组对比实验,你对这个控制策略的理解会比只看论文强出一个量级。