风储VSG并网仿真:虚拟同步发电机控制参数整定与发散排查 做风储并网仿真的同行应该都对“电网越来越软”这句话深有体会。风机、光伏经变流器并网后系统里的旋转惯量被电力电子接口一点点抽走遇到负荷突变频率掉得快、跌得深电压支撑也变差。最近我把风储VSG-基于虚拟同步发电机的风储并网系统Simulink仿真这套模型完整捋了一遍从控制原理、模型搭建到参数整定再到发散排查踩了不少坑也攒了不少能直接复用的经验。这篇文章不打算堆 PPT 式原理就讲实际动手时会遇到的那些事VSG 在风储并网系统里到底解决了什么问题、模型各环节怎么搭、控制参数怎么给、工况怎么设计、结果怎么判读以及模型发散时该怎么一步步找原因。适合正在做新能源并网友好性仿真、储能变流器控制研究或者刚接触虚拟同步发电机概念的读者。1. 为什么风储并网系统需要VSG被“电子化”夺走的惯量该怎么还1.1 从同步发电机说起VSG模拟的是哪三个特性传统电力系统里同步发电机有一个非常宝贵的“物理外挂”转子是实实在在转动的质量块。系统频率一旦波动转子会通过自身动能吞吐能量缓和频率变化率这就是惯量支撑。同时调速器根据频率偏差调整原动机出力提供一次调频。励磁系统根据机端电压调整励磁提供无功支撑。还有同步电抗把输出功率和功角关系绑定让各机组之间天然有“默契”。换成风机和储能变流器就完全不一样了。变流器是静止设备没有物理转子IGBT 开关状态由控制器的 PWM 信号决定输出特性完全取决于代码。如果不额外做处理它就是一个“跟着指令走的执行器”电网频率跌了它感知不到也不会有任何惯性反应。除非你参考“跟网型”的 PQ 控制靠 PLL 锁相、电流内环输出功率但那只是跟着电网跑不是帮电网。VSG虚拟同步发电机的思路就是用控制算法把同步发电机最核心的几个外特性“演”出来。具体来说在控制环里加一个转子运动方程给系统一个虚拟惯量 J让变流器输出功率随频率变化率动态调整。加一个阻尼/下垂系数 Dp模拟一次调频的稳态调差特性。加一个无功-电压下垂环模拟励磁调节的电压支撑能力。这样一来从电网侧看过去这台风储变流器就像一台“电子同步机”有惯量、有阻尼、有调差能在系统扰动时主动出力。1.2 风储联合里谁当“同步机”储能才是最合适的执行者这里要澄清一个容易误解的地方标题叫“风储 VSG”但实际执行 VSG 算法的通常不是风机本身而是储能变流器或者风储共用的网侧变流器。原因是风机出力的物理特性摆在那。风机的原动力来自风和叶片属于不可控的一次能源。你让风机做 VSG 的一次调频需要它在频率跌落时增发有功可如果风机正在满发根本没有向上调节的裕度。除非预先减载运行牺牲一部分发电量否则“风机直接构网”就是空谈。而且风速突变时风机出力本身就剧烈波动再把调频任务压给它控制难度会陡增。储能则天然适合干这件事。电池可以双向充放电出力调节速度快从零到额定功率的响应时间可以做到几十毫秒级别。让储能执行 VSG 算法风机只负责把能量送到直流母线储能根据 VSG 的功率指令快速补偿差额——这个分工既符合物理规律又容易在仿真里实现。我在模型里就是按这个思路搭的风机侧作为功率源储能侧承担 VSG 的构网和控制职责。2. 顶层模型怎么搭风电机组、储能单元与VSG主电路的边界划分2.1 风机侧的建模策略研究VSG时没必要死磕气动细节很多初学者一上来就想把风轮、齿轮箱、PMSG、机侧整流、MPPT 全套搭进模型结果仿真速度慢得离谱而且一旦数值发散你根本分不清是 VSG 的问题还是风机模型的问题。我的建议是研究重点放在风储并网接口和 VSG 控制上风机侧用“等效功率源”或者“简化风速-功率模型”就够了不需要死磕气动细节。风机输出的机械功率可以用经典公式P 0.5 × ρ × π × R² × v³ × Cp(λ, β)其中 ρ 是空气密度约 1.225 kg/m³R 是风轮半径v 是风速Cp 是风能利用系数λ 是叶尖速比β 是桨距角。对于定桨距、工作在最优叶尖速比附近的简化模型Cp 可以直接取最大值 0.46~0.48然后把计算出的功率经过一个低通滤波器注入直流侧。我在仿真里采用了一套 10 kW、380V 的基准参数风轮半径取 2.5m额定风速 12m/sCp 取 0.48额定功率约 10kW。风速信号用 Mangoldt 组合或直接给阶跃/斜坡序列都行比如 12m/s 降到 9m/s功率会按风速三次方比例掉到约 4.2kW这个动态足够让储能体现补偿作用。如果你非要搭完整的 PMSG 直驱风电机组Simscape Electrical 里有现成的风机模块和永磁同步电机模块机侧用背靠背变流器加 MPPT 控制。但我强烈建议你先用简化模型跑通整体流程等 VSG 部分稳定了再把风机侧升级成完整模型否则两边一起调参痛苦翻倍。2.2 储能与直流母线双向变换器是电压的“压舱石”风储并网系统里直流母线电压稳定是一切控制的前提。风机侧功率是波动的VSG 输出功率也在随时变化母线电容上的功率如果不平衡母线电压就会迅速漂移甚至崩溃。储能单元通过双向 DC/DC 变换器挂在直流母线上它的控制目标就是维持母线电压在额定值附近。最简单的做法是用理想直流源直接替代储能省事但看不到母线动态也没法模拟储能 SOC 限制带来的影响。稍微进阶一点用 Simscape 的 Battery 模块加一个双向半桥 DC/DC控制结构采用电压外环、电流内环电压外环的给定是额定母线电压比如 750V输出作为电感电流给定电流内环控制 DC/DC 的电感电流实现电池充放电方向的自动切换。要特别注意电池模型的时间常数很大SOC 变化很慢在 10 秒级仿真里 SOC 基本不动。如果你只关心动态响应完全可以用一个可调直流电压源加一个可控电流源来等效电池和 DC/DC 的组合电流源的指令就是“维持母线电压平衡所需的功率除以母线电压”这样仿真速度能快很多而且不影响 VSG 的暂态特性验证。2.3 VSG变流器与并网通道受控电压源必须串联阻抗VSG 的出口环节本质是一台三相变流器。仿真模型里可以选开关级模型用 Universal Bridge 搭 IGBT 三相桥也可以选平均模型用受控电压源模拟桥臂输出的基波电压。二选一的话我建议先用平均模型调通控制逻辑最后再换回开关模型验证波形质量这样能省大量仿真时间。这里有一个非常关键的工程细节VSG 受控电压源的输出一定要串联阻抗电抗再接电网不能用理想电压源直接并网。同步发电机之所以能和电网稳定分配功率靠的是同步电抗上的功角特性P ≈ (E × Ug / X) × sinδX 是同步电抗δ 是功角。如果 X 趋于零功角特性变成一条垂直线任何微小功角误差都会导致功率剧烈摆动甚至直接发散。所以我模型里的并网通道是VSG 受控源 → 滤波电感 L12mH等效电阻 0.05Ω→ LCL 电容支路 → L22mH→ 并网接触器 → 电网等效阻抗 → 三相电压源。总电感接近 0.09pu既起了滤波作用又充当了“虚拟同步电抗”。顺便说一下 LCL 滤波的阻尼问题。LCL 在谐振频率附近有比较明显的增益峰如果不加阻尼仿真波形上会看到高频纹波振荡严重时控制器被谐波干扰导致发散。常用的解决办法是电容支路串联阻尼电阻我一般取 1Ω 左右或者在控制器里加有源阻尼算法。对仿真研究来说串个小电阻最直接有效代价是增加一点高频损耗但 10Hz 以下的 VSG 动态完全不受影响。2.4 一套可以直接作为起点的初始参数表下面这组参数是我在 10kW 风储 VSG 仿真里实际用过的起点值不敢说最优但能保证模型先动起来、不轻易发散。后续细化时再根据工况慢慢调。参数数值说明额定功率 S10 kVA基准容量交流线电压380 V50 Hz直流母线电压750 V两电平变流器滤波电感 L1/L22 mH 2 mH串联等值电阻 0.05Ω滤波电容 Cf5 μF阻尼电阻 1Ω直流母线电容 Cdc5000 μF提供功率缓冲虚拟惯量 J0.5 kg·m²对应惯性时间常数约 2.5s虚拟阻尼 Dp10 N·m·s/rad相当于 1% 频率偏差对应约 1pu 功率无功下垂系数 Dq20 pu无功变化 1pu 对应电压指令变化 5%开关频率10 kHz开关模型时设置电网等效内阻抗R0.1Ω, L10mH模拟弱电网场景3. VSG控制环的数学内核与Simulink落地细节不是把公式拖进去就完事3.1 转子运动方程J和Dp是惯性支撑的“油门”与“刹车”VSG 控制的核心就是同步发电机的转子运动方程写成最常用的形式J × (dω/dt) Tm − Te − Dp × (ω − ωn)其中 ω 是 VSG 输出的虚拟角频率ωn 是额定角频率100π rad/sTm 是机械类比的驱动力矩由有功功率给定换算而来Te 是电磁转矩由实际输出功率换算Dp 是虚拟阻尼。把这个方程搬进 Simulink 非常容易用两个积分器串联即可第一个积分器输出虚拟频率 ω第二个由 ω 积分得到 VSG 相位 θ。但难点在于参数 J 和 Dp 的物理意义要搞清楚否则你会陷入“发散了加阻尼加了阻尼响应又变慢”的死循环。J 决定了 VSG 对频率变化率的敏感程度。J 越大频率变化越平缓惯性支撑越强但响应速度变慢有功功率振荡的超调也会变大。J 太小惯量支撑不足频率像“自由落体”一样掉下去储能来不及出力。初值选定后我一般用惯性时间常数 H 来衡量更直观H J × ωn² / (2 × S)S 是额定容量。对于 0.5kg·m² 的 JH 大约为 2.5s这对一台 10kW 的小系统来说已经很“重”了。Dp 有两个作用一是提供阻尼衰减功角振荡二是模拟调速器的一次调频稳态特性。Dp 越大频率偏差引起的功率响应越强但阻尼过大很容易把系统拖得“过紧”。如果你发现有功功率曲线在阶跃后持续振荡三五拍不衰减多半就是 Dp 偏小如果功率纹丝不动但相位一直缓慢漂移反而是 Dp 太大导致响应死区。3.2 有功-频率下垂与储能功率前馈一次调频怎么“动”起来在实际 VSG 里机械功率指令 Tm 不是固定不变的而是要叠加一次调频功率Tref Tset (fn − f) × Kdroop其中 fn 是额定频率f 是 VSG 虚拟频率你也可以用并网点实测频率Kdroop 是一次调频系数。这个环节的意义在于当系统频率低于额定值时VSG 自动增加出力就像同步机的调速器动作一样。这里要特别强调一点在并网模式下VSG 的虚拟频率始终会被电网频率“拽住”最终趋于同步所以一次调频的稳态出力由频率偏差决定。但在扰动瞬间储能功率前馈会先动起来我模型里把 VSG 的功率指令直接作为储能 DC/DC 的功率前馈信号让电池立刻按指令出力而不是等母线电压变化后才被动响应。这样“指令前馈 电压反馈校正”的双通道结构储能响应速度能比纯反馈快 50ms 以上VSG 的惯量特性才能真正体现出来。3.3 无功-电压环无静差的实现与滤波陷阱VSG 的电压幅值指令由无功-电压下垂加调节器生成E E0 Dq × (Qref − Q) PI校正项其中 Q 是 VSG 变流器实际输出的无功功率Dq 是无功下垂系数相当于励磁调节的外特性。当系统电压降低时无功需求上升VSG 自动增发无功抬高机端电压。这个环节在仿真里最容易出问题的地方是无功功率的测量纹波。瞬时无功功率里有明显的高频分量尤其在 PWM 开关模型里纹波幅值很大。如果你把原始 Q 直接送进下垂环和 PI 调节器控制器会被纹波“带偏”出现高频振荡。我的做法是在 Q 采样后加一个截止频率约 100Hz 的巴特沃斯低通滤波器滤掉 2 倍频和开关纹波。代价是滤波会带来相位滞后无功环的 PI 参数不能给太快否则容易形成低频极限环振荡。如果你受够了调 PI 参数可以先只用下垂不加积分环节让无功稳态有一定偏差把系统先跑稳再逐步加入积分项消除静差。我实际调试时Dq20pu 的下垂斜率已经能保证大部分工况下电压偏差在可接受范围内PI 积分项更多是为了研究精度。3.4 三相参考电压生成与调制波的送出得到 VSG 的电压幅值 E、虚拟相位 θ 和虚拟频率 ω 之后下一步是合成三相参考电压va E × sin(θ)vb E × sin(θ − 120°)vc E × sin(θ 120°)这三路参考电压可以直接作为调制波发送给 PWM 模块如果用平均模型就直接馈入受控电压源。但更完整的做法是再经过一层电压电流双闭环如图内常见的电容电压外环、电感电流内环把 VSG 出来的“内电势”转换成变流器实际的调制电压。电压环保证输出电压跟踪指令电流环限制暂态电流、改善阻尼。这里常有人犯一个错误把 VSG 输出的 E 和 θ 直接接到电压源型逆变器的 PWM 输入认为这就是“虚拟同步机”了。其实从 E、θ 到实际并网电压之间还有滤波器、变压器阻抗如果不加电压电流环系统的动态特性会被滤波器和线路阻抗“扭曲”VSG 的转子运动方程算得再准在端口也看不到预期效果。所以完整的 VSG 控制结构一定是“转子运动方程 电压电流双闭环”三层架构。3.5 Simulink模块选择与实际搭建顺序具体到 Simulink 操作层面我习惯把整个模型按子系统划分风功率源子系统、储能 DC/DC 子系统、VSG 主电路子系统、VSG 控制器子系统、电网与负载子系统。控制器内部再分成有功-频率环、无功-电压环、参考电压生成、电流环四个子模块这样排查问题的时候可以单独看每一级波形。搭建顺序上我建议先从稳定的理想直流源版本开始把储能 DC/DC 先替换成理想电压源VSG 直接挂在直流母线上先把 VSG 和电网的并网友好性调通再替换回储能 DC/DC。如果一上来就是完整系统那一旦发散你都不知道是哪个环节的问题。代数环是这个模型里最容易出现的高频坑。功率测量、电压采样、控制计算、PWM 输出形成闭环Simulink 在同一个采样步里找不到计算顺序就会提示检测到代数环导致仿真极慢或结果抖振。解决方法很粗暴在测量功率与控制器之间插入一个 Unit Delay 或者 Transport Delay延迟一个采样周期一般 50μs 以内用一拍延时打断代数环代价是增加约 1~2 个采样周期的相位滞后对 VSG 这种低频特性来说完全可承受。4. 仿真工况设计与结果判读从动态调频到电压支撑4.1 电网频率扰动与负荷阶跃一次调频怎么动起来前面说过如果直接把电网设成理想无穷大电压源频率永远锁定 50Hz你根本观察不到 VSG 的惯量响应。所以我的第一个工况里电网电压源本身带一个频率扰动信号t1s 时电网频率从 50Hz 以 5ms 的斜坡降到 49.8Hz维持到 t3s 再恢复。在这个扰动下VSG 的虚拟频率会跟随电网频率偏移频率偏差达到 −0.4%按照 Dp10 的阻尼系数电磁功率大约会额外增加 0.4pu 左右也就是 4kW 左右的有功输出。这部分功率从哪来电压电流环先让变流器从直流侧抽取能量直流母线电压短暂跌落储能 DC/DC 检测到母线电压偏低立刻从电池释放功率补充。整个过程中你能在示波器上看到一条清晰的“有功上升 → 母线电压略降 → 储能功率上升 → 母线电压恢复”的链条。如果你更关心负荷阶跃场景就在并网点并联一组三相 RLC 负载t1s 时投入额定功率 20% 的负荷。此时 VSG 输出有功瞬时增加虚拟频率出现一个短暂的低谷但因为有线路阻抗和电网源牵制频率不会像孤岛系统那样大幅偏移。别忘了在并网点看功率潮流这里的功率分配能直观反映 VSG“主动出力”和 PQ 控制“被动跟随”的区别。4.2 风速突变储能顶上去的整个过程第二个工况是风速阶跃。初始风速 12m/s风电机组约满发 10kWt2s 时风速降到 9m/s风功率按三次方关系掉到约 4.2kW。如果只有风机没有储能掉落的 5.8kW 功率会直接导致直流母线电压下跌网侧输出功率跟着缩水并网点频率和电压都会受到影响。加入储能并配置 VSG 后控制器的功率指令前馈立刻给储能一个“补差”信号电池以约 5.8kW 的功率放电母线电压几乎看不出明显跌落网侧 VSG 输出功率维持稳定。这个工况最大的看点有两个一是储能功率响应速度与 VSG 功率指令前馈的匹配程度如果储能 DC/DC 的电流环带宽不够母线电压会有一个明显的凹陷二是风机功率回收时风速从 9m/s 回升到 12m/s储能切换为充电模式你会看到电池电流方向翻转的动态过程。建议在储能侧加一个电流方向的示波器观察窗口这是检验 DC/DC 双向控制是否合格的关键信号。4.3 电网电压跌落无功支撑与暂态恢复第三个工况用 Three-Phase Fault 或电压跌落源在并网点制造一个 0.85pu、持续 0.5s 的电压跌落。VSG 的无功-电压环会在电压跌落瞬间增大 E 的幅值指令变流器进入无功优先模式向电网注入容性无功电流把并网点电压“托”回去一点。判读这个工况的结果时不要只盯着电压曲线。你要同时看无功功率 Q 的响应速度、无功指令是否限幅、有功功率是否在暂态过程中被拉低。VSG 毕竟容量有限如果无功加得太多有功能力就会受到影响。模型里务必给无功指令加限幅比如额定容量的 ±50%否则跌落 0.5pu 的极端工况下无功环会“要” 2pu 无功控制器疯狂追指令结果就是电流过限然后保护跳闸仿真直接“崩”。这个工况也能检验你电压电流双环的 PI 参数。如果电压环带宽太低电压跌落时 VSG 的无功响应慢半拍你会看到电感电流先冲上去再被电流环压回来波形上出现一个大的尖峰。如果电流环带宽太高又会放大测量噪声和开关纹波。我在这组参数下电压外环 Kp0.5、Ki20电流内环 Kp2、Ki50单位标幺下基本能兼顾响应速度和稳定性。4.4 结果怎么判读参数化指标比截图更有说服力做仿真不能光“看波形很漂亮”要落到指标上。我每跑完一个工况都会把波形数据导出到 MATLAB 工作区用脚本算三个参数频率最低点Nadir/频率最大偏移衡量 VSG 支撑后的频率峰值偏差。频率变化率 RoCoF取频率跌落初始段 100ms 内的平均斜率这是惯量支撑的核心指标。同一扰动下RoCoF 越小说明虚拟惯量补偿越到位。调节时间有功功率从阶跃开始到进入 5% 误差带的时间反映阻尼和响应速度。如果你想把“无 VSG”和“有 VSG”的差异画在同一条图上建议把电网频率扰动工况做成对比组一组是常规 PQ 控制的并网变流器另一组是 VSG。你会在 RoCoF 和频率最低点上看到明显差异PQ 控制的变流器只是“听话地”维持指令功率而 VSG 变流器会主动改变出力储能功率波形出现一次明显的“冲锋”。5. 调参、发散与精度一份能直接抄的排查清单5.1 发散与振荡的常见根因定位Simulink 模型发散时先别急着怀疑“是不是 VSG 算法不对”按下面这张表逐条排查大部分问题都能定位到具体环节。现象最常见原因处理对策仿真一开始就报“NaN”或“Inf”功率测量出现零除或 J0 时积分器除零给 J 一个合理初值避免从 0 启动功率计算分母加小常数有功功率高频振荡、发散代数环没有打断实测功率直接反馈形成同拍闭环插入 Unit Delay 延迟一拍步长控制在 50μs 以内频率和功角缓慢漂移不收敛虚拟频率初始值与电网频率不一致预同步环节并网前让 VSG 相位跟踪电网再闭合断路器无功功率出现几十赫兹的低频振荡无功采样滤波太弱或 PI 参数过大降低低通滤波截止频率到 100Hz减小 Ki母线电压快速跌落储能 DC/DC 未接入或前馈功率没跟上确认母线电容容量确认储能功率指令是否在控制器闭环内开关模型波形毛刺巨大步长太大PWM 开关谐波没有被观测到开关模型步长降低到 5μs 级别或换成平均模型5.2 参数整定路径由“能动”到“调好”的顺序参数整定千万不要一上来就“五马分尸”地同时调 J、Dp、Dq、PI谁都扛不住这种调法。我总结的顺序是第一步先用最保守的参数把模型跑稳。J 取大一点比如 1 kg·m²Dp 取中等值无功环只留下垂不加积分。这时的目标是“不炸”哪怕响应慢一点也无所谓。第二步调 Dq 和电压环 PI。只做无功-电压工况让电压跌落响应达到预期的调节时间和超调范围。电流环参数保持保守等无功环稳定后再提升带宽。第三步调 J 和 Dp。做电网频率扰动和负荷阶跃工况观察有功功率曲线的超调、振荡次数和调节时间。J 主要改超调和 RoCoFDp 主要改衰减速度和稳态偏差。第四步把储能 DC/DC 的响应速度和 VSG 的功率前馈做匹配。看母线电压跌落深度如果母线电压跌超 5%就加大直流母线电容或者提高储能电流环带宽。这套顺序的好处是每次只动一组参数变量的耦合关系被最小化你清楚知道每个参数改完以后波形到底发生了什么变化。5.3 平均模型与开关模型的灵活切换我在这套系统上跑过平均模型和开关模型两种版本。平均模型用受控电压源等效桥臂基波输出没有 PWM 开关纹波仿真步长可以放到 20~50μs一天能跑几十组参数扫描适合研究 VSG 的惯量、阻尼、调差等低频特性。开关模型加入 PWM 和 IGBT 开关过程波形更真实能看到电压电流纹波和 LCL 滤波效果但仿真速度慢一个量级而且步长必须缩到微秒级。我的建议是先平均模型调通所有控制逻辑和参数再用开关模型做最后 1 到 2 个典型工况的波形验证。如果开关模型下出现平均模型看不到的振荡优先怀疑 LCL 谐振和 PWM 采样延迟而不是 VSG 核心算法有问题。5.4 边角问题最后提一嘴有几个边角问题容易在长时间仿真里突然冒出来。一是虚拟频率 ω 信号直接送给积分器会产生很大的数值Simulink 的积分器在长时间仿真时会积累数字误差建议在 ω 里减掉额定值 100π 再积分积分结果就是功角偏移量数值稳定得多。二是并网预同步阶段必须让 VSG 的相位跟踪电网相位后再合闸并网断路器否则合闸瞬间会有巨大冲击电流。三是如果你在系统里保留了 PLL 模块记得它只用于监测和预同步不能把 PLL 输出当成控制环的主要相位来源否则 VSG 的自同步特性会被 PLL 的锁相延迟“污染”弱电网下很容易振荡。这些坑我最初都踩过花了一整天才定位到原因写出来就是希望你能绕过去。最后分享一个我个人的习惯每改完一组参数我会把系统响应指标RoCoF、Nadir、调节时间、超调量存成一个结构体变量配上一张简单的响应曲线图按日期归档。这样当你把 J 从 0.5 调到 2 再调回 1 的时候还能清晰地看到每一步变化带来的影响而不是像没头苍蝇一样在几个参数之间反复横跳。仿真研究的本质是“建立直觉”而直觉是靠一次次有记录、有对比的调试积累起来的。