风储VSG并网仿真从原理到Simulink落地:参数整定与踩坑全记录
2026/9/12 3:08:24 网站建设 项目流程

风电并网做仿真,绕不开VSG,但很多人卡在"原理都懂,模型搭不出来"这一步。特别是做风储联合系统时,既要处理风电机组的波动功率,又要让储能配合VSG完成并网控制,稍有不慎就发散,波形飞得你怀疑人生。这篇博文我结合自己搭建风储VSG并网系统的完整过程,从控制原理、架构选型到Simulink分模块实现、参数整定和踩坑记录,一次性讲清楚。文章适合正在做新能源并网仿真、写毕业论文或者准备项目验收的电力电子方向同学,也适合刚从PQ控制切换到VSG控制的工程师,看完可以直接按这个思路落手搭模型。

1. 风电并网为什么需要VSG:先搞清楚要解决什么问题

1.1 传统变流器PQ控制的"先天短视"

常规风电并网逆变器用的是PQ控制,本质是"我发多少有功、多少无功,我说了算"。对于电网来说,这种变流器像一个"透明人"——它不提供惯性,不参与调频,也不主动支撑电压。风速正常时没什么感觉,但当系统里新能源占比高了,电网故障或者大负荷切换时,频率跌落的速率(RoCoF)会明显变大,因为原本的同步发电机组数量变少了,没人替电网"扛"住这第一波冲击。

PQ控制还有一个特点:它的锁相环决定电流输出相位,系统一旦削弱,锁相环容易跟着电压相位抖动,控制性能反而变差。很多做仿真的同学可能遇到过,PQ控制的模型在强电网下跑得很好,换到弱电网(短路比SCR低于2~3)就开始振荡,就是这个问题。

1.2 VSG本质上是给变流器"装了一台虚拟的同步电机"

VSG的思路很直接:在控制算法里模拟同步发电机的转子运动特性。同步机为什么能天然支撑电网?因为它有转子惯性——负荷突然增加时,转子动能释放,转速略微下降,随后调速器动作恢复频率,整个过程是物理上"自动完成"的。VSG就是把这段物理过程数字化,让变流器对外呈现相同的"惯量+阻尼+下垂"外特性。

这样一来,风储系统不再是一个被动的电流源,而是一个电压源。电网频率下降,VSG自动多输出有功;电网电压偏低,VSG自动多输出无功。这一"自动"恰恰是把新能源推到电网主力位置必须具备的能力。

1.3 为什么风储要联合,单风机不行吗

单靠风机做VSG有个根本矛盾:风机输入功率取决于风速,风吹多大发多少。你让风机在频率跌落时多出力,风速不变它能从哪儿多掏功率?空转动能顶多撑一两秒,后面就露馅了。所以必须配储能,利用电池的快速功率吞吐能力补足VSG调频所需的瞬间能量平衡。

所以风储VSG的架构里,储能不是"可选附件",而是整个系统能运转的物理基础。这部分我后面会详细讲架构选型,先记住这个前提:风电机组负责长期能量供应,储能负责短时功率支撑,VSG控制负责让它们合成的功率呈现"同步机式"的动态响应。

2. VSG控制的内在数学逻辑:从转子方程到控制框图

2.1 转子运动方程是VSG的"心脏"

VSG最核心的部分是虚拟转子运动方程:

J·dω/dt = Pm/ω - Pe/ω - D·(ω - ω_ref)

这个方程对应同步机的转子摇摆方程。J是虚拟转动惯量(单位kg·m²),D是阻尼系数(单位N·m·s/rad),ω是虚拟角速度,Pm是虚拟机械功率(由有功指令和一次调频叠加),Pe是逆变器实际输出有功。

把这个方程用在Simulink里,你会看到它就是一个带反馈的积分结构:

  • 输入:Pm(有功给定 + 频率偏差修正)、Pe(实测输出有功)
  • 处理:差值除以ω,减去阻尼项,乘以1/(J·s)积分得到ω
  • 输出:ω积分得到虚拟功角θ,作为后续电压合成的相位基准

很多人搭VSG失败的关键在于:直接把Pm当常数。实际上Pm = P_ref + Kf·(f_ref - f),因为VSG必须参与一次调频,P_ref只是基准功率,频率偏差了得有修正项,否则跟电网频率始终有偏差,稳态就拉不回来。

2.2 无功-电压下垂:VSG的"励磁系统"

同步机的励磁调节维持机端电压稳定,VSG用无功-电压下垂来模拟:

Q_ref - Q = Kq·(V_ref - V)

也就是说,检测输出无功Q和额定无功基准Q_ref的差,用无功电压下垂系数Kq换算成电压偏差,修正电压幅值指令。这样系统电压跌了,VSG自动增发无功支撑电压,这跟PQ控制"无功照着参考发、电网电压我都得受着"形成了鲜明对比。

电压幅值指令和相位一起合成了内电势参考值e_ref,形式如下:

e_ref = V·sin(θ)

这里的θ由转子运动方程积分而来,V由无功下垂得到。这个参考电压再经过虚拟阻抗和电压电流双闭环,最终生成PWM调制波。

2.3 虚拟阻抗与双闭环:不能省略的"中间层"

只有转子方程和无功下垂还不够,直接拿e_ref去做PWM,输出会带有较大谐波,因为逆变器开关死区和滤波电感会让输出波形明显偏离指令。工程实现上,必须在e_ref和PWM之间加三层:

第一层是虚拟阻抗环。它的作用是在VSG输出和电网之间人为增加一个"等效阻抗",用来抑制功率振荡、改善并联均流特性。虚拟电阻Rv、虚拟电感Lv不需要额外硬件,直接在前向通路上计算电压跌落:

e_inner = e_ref - (Rv + jωLv)·i

第二层是电压双闭环。电压外环控制滤波电容电压,电流内环控制滤波电感电流,通常都是PI控制器,输出电压高动态性能。第三层是SVPWM或SPWM调制。三相系统建议直接用SVPWM,直流电压利用率比SPWM高约15%,相同直流母线电压能输出更高的交流电压。

2.4 完整控制链路速查表

控制环节输入信号输出信号物理类比
有功-频率P_ref, P_meas, f_meas虚拟角速度ω调速器+转子惯量
转子运动方程Pm, Pe功角θ转子摇摆
无功-电压Q_ref, Q_meas, V_meas电压幅值V励磁调节
虚拟阻抗e_ref, i_meas内环电压指令定子阻抗
电压外环V_ref, V_c电流指令自动电压调节器
电流内环I_ref, I_L调制电压励磁绕组快速跟踪

这张表建议搭模型时贴在手边,每个环节的输入输出对不上,后面调试会浪费大量时间。

3. 风储联合系统的架构选型与参数设计

3.1 两种主流拓扑,建议先选直流侧耦合

风储VSG在工程上有两种典型接法:

  • 拓扑A:风电机组通过机侧变流器整流成直流,储能经过双向DC/DC变换器并联在直流母线上,网侧用一个VSG控制的逆变器统一并网。这是直流耦合方案。
  • 拓扑B:风机和储能各自带一套并网变流器,分别用VSG控制,交流侧并联后接入电网。这是交流耦合方案。

我推荐先做拓扑A,原因有三个方面。第一,设备少、控制复杂度低,一个VSG控制的网侧逆变器,省去两套变流器之间的功率协调算法,对仿真起步很友好。第二,直流母线本身就是天然的功率枢纽,风电的多发少发直接反映在母线电压上,储能DC/DC稳住母线电压就能保证网侧功率平衡,物理概念清晰。第三,拓扑A的参数整定只需要关注一套VSG、一个DC/DC,问题定位容易。拓扑B适合研究两台VSG之间的功率分配和环流特性,等拓扑A跑明白了再扩展不迟。

3.2 储能容量与功率等级怎么定

储能在风储VSG里的任务是"短时补缺"。容量不必大到把风机甩掉,得参考VSG的调频需求来定。常见做法是按风电额定容量的20%~30%配置储能功率,储能时长15~30分钟。比如2MW风机,储能配0.5MW/0.25MWh,可以支撑VSG以10%额定功率连续调频半小时。

电池模型建议直接用Simulink Simscape Electrical里的Battery模块,参数设置时重点看三个:额定电压(铅酸/锂离子),初始SOC(建议设80%,别设100%,因为过充和过放区间电池内阻变化明显,仿真容易出怪问题),以及内阻(室温下取典型值,不用刻意精确)。如果是为了验证控制策略,不建议一开始就用复杂的电化学模型,一个受控电压源加内阻的简化模型足够了,等控制方案验证完毕再替换精细化模型。

3.3 虚拟转动惯量J和阻尼系数D的计算方法

J和D是VSG最核心的参数,很多人随便给,然后波形振荡就不知道怎么办。这里给一个可操作的整定思路。

先确定系统允许的角速度变化范围。电网频率波动通常限制在±0.2Hz(±0.4%),也就是ω最大变化约1.256 rad/s。再根据要求的调频响应时间t_s,估算J:

J = (P_ref_max - P_ref_min) / ((ω_max - ω_min) · (2π/t_s))

举个例子:2MW逆变器,允许频率偏差0.2Hz,希望3秒内完成一次20%额定功率的调频响应。P差=0.2×2e6=400kW,ω差=2π×0.2≈1.256rad/s。J≈400000/(1.256×2.094)≈152000 kg·m²。

阻尼系数D通常按临界阻尼来选:D = 2√(J·Kp),这里的Kp是频率下垂系数,单位是W·s/rad。Kp由一次调频的功率-频率静态特性决定,比如每0.5Hz偏差输出100%额定功率,则Kp = P_rate / (2π×0.5) ≈ 2MW/3.14 ≈ 637000 W·s/rad。得到D≈2√(152000×637000)≈622000 N·m·s/rad。

实际仿真时这两个值不需要一次到位,在这个基准值附近做微调就好。J太小,惯性不足,频率变化率大;J太大,响应慢,系统容易跟电网产生低频振荡。D太大,相当于强阻尼刹车主,响应迟钝;D太小,振荡衰减慢。

3.4 直流母线电容与电压等级的配合

直流母线电压等级要根据逆变器输出交流电压反推。如果并网侧是690V(相电压峰值约977V),考虑SVPWM的电压利用率,直流母线电压一般取1100~1200V。直流母线电容的取值原则是满足能量缓冲需求:

C > (P_rated · Δt) / (2·U_dc·ΔU_dc)

P_rated是额定功率,Δt是允许的功率波动持续时间(一般取5~10ms),ΔU_dc是允许的母线电压波动(一般取±5%)。以2MW、1200V母线、允许波动5%即60V、波动持续时间5ms计算:

C > 2e6 × 0.005 / (2 × 1200 × 60) ≈ 69400uF

实际仿真里可以适当放大到这个值的1.5~2倍,但不宜过大,电容太大会拖慢母线电压动态响应,储能DC/DC的调节压力也跟着变大。

4. Simulink模型搭建:分模块落地实操

4.1 整体拓扑的搭建顺序

我的习惯是从网侧往回搭,先把"电网-并网开关-滤波电感-网侧逆变器-DC母线电压源"这条主电路跑通,再做储能DC/DC和风电接入。这样做的好处是目标明确:先把VSG的并网波形调好,再往直流母线上挂波动源,每一层问题都能独立定位。

打开Simulink后,用Simscape Electrical搭建主电路:

  • 三相电网用Three-Phase Source,设成无穷大系统(短路容量拉大,等效内阻调小)
  • 并网开关用Three-Phase Breaker
  • 滤波电感L=0.2mH(2MW系统典型值),等效串联电阻取0.01Ω
  • DC母线用大电容并联一个受控电压源,前期调VSG时可以临时用直流电压源代替储能系统,方便单独验证网侧控制

等你看到并网电流波形正弦、调频响应正确,再把受控电压源替换成储能DC/DC和风电机组。

4.2 风电机组建模:从"能跑"到"像真"

风机的模型没必要一上来就是完整的传动链加PMSG气动方程。我分三个层级渐进:

第一级,最简单:用Stakable Signal Editor给一个阶跃/斜坡功率信号,相当于把风力看成"受控功率源"。适合验证储能和VSG协调逻辑,不涉及风机细节。

第二级:加平均风速模型。用相对风速和风机功率特性P=Cp(λ,β)·0.5·ρ·A·V³计算出机械功率,再经过一个一阶惯性环节模拟叶轮和传动轴的延迟,输出到机侧变流器。机侧变流器用常规MPPT(最大功率点跟踪)控制,根据最优叶尖速比λ_opt计算转速指令,转速外环+电流内环完成。

第三级:如果要看风机内部风湍流的影响,用Simulink TurbWind模型生成湍流风速序列,再把气动模型完整做出来。这一级复杂度上得比较快,仿真步长需要降到定步长10~50微秒,计算量明显增大,但不做这个级别你就看不到风速波动下的直流母线电压毛刺。

调试时建议从第二级开始,够用且速度合适。我自己的做法是先用第二级完成主控制验证,再叠加第三级风湍流做极限测试。

4.3 储能DC/DC建模:母线电压稳住才有VSG的好波形

储能DC/DC双向Buck-Boost建模相对成熟。主电路用两个IGBT加一个电感,交替工作:Buck模式(电池充电,母线向电池送功率)和Boost模式(电池放电,电池向母线送功率)。控制上就一个电压外环+电流内环,母线电压给定U_dc_ref,电压外环PI输出电池电流指令,电流内环PI输出占空比。

这里最容易翻车的是DC/DC电感电流的初始值和PI限幅不匹配。启动瞬间母线电容充电电流很大,如果电流环PI的输出限幅给得太宽,占空比直接顶到上下限,电流飙升,仿真直接发散。我的习惯是把电池电流限幅设到1.1倍额定值,同时把电压环PI的输出限幅(也就是电流指令限幅)单独设deadzone,别跟电流环限幅混在一起。

4.4 VSG控制器的Simulink实现:模块搭还是写函数

VSG控制器有两类实现方式。一类是直接用Simulink常用模块搭:增益、积分器、求和、三角函数,整个控制器可视化,适合教学和逻辑验证,缺点是模型显得比较臃肿,参数修改要一个一个点开看。另一类是用MATLAB Function或S-Function写控制律,输入是采样电压电流,输出是PWM调制波,优点是干净整洁、改参数方便,缺点是逻辑被封装起来,别人接手时理解成本高。

我给的建议是折中策略:物理方程(转子运动方程、无功下垂)用独立的S函数或MATLAB Function封装,双闭环用现成的PID模块在Simulink里搭。因为转子方程逻辑短但是关键参数多,独立封装不容易被误改;双闭环是标准结构,用可视化模块反而清晰,参数也方便在线调试。

4.5 三个必须注意的测量与时间步长细节

第一,有功和无功测量不能直接用乘法器做瞬时有功P=u_a·i_a+u_b·i_b+u_c·i_c然后滤波,那样动态响应太慢,VSG的功率反馈环节会产生明显滞后。建议直接用Simscape的Three-Phase Dynamic Active and Reactive Power模块,或者用dq坐标系下的瞬时功率公式P=1.5(u_d·i_d+u_q·i_q),直接给控制器用,不必再额外滤波。

第二,电压和电流采样的单位统一。Simscape电气模块输出来的是国际单位(V、A),而PI控制器可能在标幺值下工作,不做单位折算,PI参数会在一个完全错误的量级上,怎么调都调不好。

第三,求解器设置。这种含PWM的高速开关仿真,建议用定步长ode3(Bogacki-Shampine),步长取1~10微秒。变步长求解器在开关切换点会自动缩小步长,看似快,实际PWM高频动作时反复重启步进,仿真速度反而更慢,而且容易在快速开关处报数值问题。

5. 仿真结果分析与典型波形解读

5.1 并网合闸瞬间的冲击控制

VSG并网最怕的是合闸瞬间电流冲击。原因是合闸前VSG输出电压和电网电压存在相位差、幅值差,开关闭合瞬间电流会冲得很高。正确做法是仿真正序:先让VSG空载运行,控制输出电压跟踪电网电压(幅值、相位、频率都对齐),再在电压差小于1%额定值时闭合并网开关。

我在模型中加了一个比较器来判断压差和频差:当幅值差<5V且频率差<0.01Hz时,给的是合闸允许信号。实际仿真跑下来,合闸瞬间电流冲击能控制在额定电流的10%~15%以内。如果合闸时电流有尖锐尖峰,优先检查合闸前的预同步算法是否真的把相位差压到接近零,而不是急着调PWM参数。

5.2 负荷突增时VSG的有功和频率响应

设置场景:t=2s时电网侧有功负荷增加20%,观察VSG的有功输出和系统频率变化。

理想波形应该呈现两阶段特征:阶段一,由于VSG惯性,有功输出快速跃升,频率只是小幅下降,频率变化率被明显抑制,这是惯量支撑的直观体现;阶段二,频率偏差经过一次调频环节反馈到有功指令上,有功慢慢稳定到新的平衡点,频率恢复到一个略低于额定值的稳定值(由于下垂特性,不能恢复回额定频率,这是VSG与孤岛模式的区别)。

如果负荷突增时有功输出出现持续振荡,大概率是J和D参数匹配不当。降低J或增大D都能增加阻尼,但D过大会让调频响应变得迟钝,通常调节顺序是先保持D不变、微调J,观察振荡频率变化,再反过来固定J、调D,观察衰减速度。这个交替整定方法比盲目试参数高效得多。

5.3 风速波动下直流母线电压的动态表现

这个工况最考验系统整体性能。设置风速从11m/s在t=4s时阶跃下降到8m/s,看储能怎么接住这个功率缺口。

风电输出突然下降,直流母线电压有下跌趋势,此时储能DC/DC检测到母压跌落,立即增大放电电流,母线电压得以稳住,网侧VSG因此感受不到风机的突然"撤火",输出功率平稳过渡。如果储能响应慢或者容量不足,母线电压会掉到DC/DC最低工作电压之下,VSG输出电压幅值跟着下降,并网电流畸变甚至保护动作。

从波形上判断储能配合好坏的标准:母线电压波动幅度是否控制在设定范围(±5%)内,恢复时间是否在1~2个工频周期内。波形上出现明显跌落尖峰且恢复时间长,多半是电压环PI响应速度不够,增大Kp、减小Ki试一下,同时确认电流限幅没有触顶。

6. 调试过程中最容易踩的坑:排查链路与教训

6.1 启动瞬间的不收敛问题:先查初始值

现象:仿真一运行就报"Error in 'xxx/Integrator'. Initial conditions are Inf or NaN"或功率直接出现NaN。

排查链路:先查转子运动方程积分器的初始值,ω初值要设成电网频率对应的角速度(50Hz对应314.159 rad/s),功角θ初值要设成0,这里的0对应A相电压过零点相位,千万别默认成0.5或别的值,相位初始对不上,并网瞬间就会冲出巨大冲击电流然后数值爆掉。

第二要查母线电容的初始电压,设成额定直流母线电压值(比如1200V),不要留空作0。电容初始为0,等效成合闸短路,电流直接冲保护。

第三查PWM调制度初始值。SVPWM调制波幅值范围是0~1,如果控制器初始输出饱和在1,等效于满占空比冲击,也会爆。给控制器输出加一个初始斜坡,让调制波从0.5缓慢爬升到额定值,能有效降低启动冲击。

6.2 仿真速度慢到无法忍受:暴力降步长的代价

定步长1微秒跑一个5秒的仿真,PWM开关频率高的情况下要跑一晚上。速度慢,人会急躁,一急躁就容易做傻事——有人直接把步长改成20微秒或者直接换变步长,结果数值发散或者波形毛刺。

我的经验是分工况管理步长:

  • VSG控制参数调试:用理想开关开关或者平均模型,步长可以放到10~20微秒,速度很快
  • 验证并网谐波和滤波器特性:必须用详细IGBT模型,步长1~5微秒
  • 长时间运行(10秒以上)看调频效果:用平均模型跑,几分钟就能完成

另外把PWM载波频率从10kHz降到5kHz,仿真速度能提升接近一倍,对控制策略验证的影响很小。

6.3 锁相环与虚拟功角的"相位打架"

这是风储VSG多机或PLL参数不当出现的典型怪现:VSG自己有虚拟相位,PLL又在检测电网相位,两套相位一旦有细微偏差,控制器的dq变换老是跟真实相位差一个角,就会出现难以理解的功率振荡。

排查链路:第一步,把VSG里的PLL输出跟虚拟相位θ做差,打印成波形。正常应该是一个接近0的定值,如果波形呈现持续的斜坡或者振荡,说明PLL带宽和VSG虚拟惯量产生了交互。第二步,降PLL带宽(减小PLL的PI比例系数),通常能快速消除交互振荡,但副作用是PLL动态变慢,弱电网下跟踪变差。第三步,更优方案是采用自同步VSG(Self-synchronized VSG),不再显式用PLL,而是通过虚拟功率计算自动同步相位,这部分我后续可以单独写一篇展开讲。

6.4 储能SOC越界导致仿真结果失真

刚开始搭储能模型时,我把电池SOC设在90%,跑了一个长工况后,储能持续放电,SOC掉到30%以下,电池模型内阻急剧变化,母线电压开始出现不该有的波动,VSG波形也跟着乱了。我一度以为是控制参数出了问题,排查了很久才发现是SOC进入非线性区间导致的模型失真。

此后的经验是:

  • 仿真前把SOC初始值设在50%~80%之间,远离非线性区
  • 控制储能DC/DC的放电深度,当SOC低于40%时切换成母线电压控制优先级(优先保住母线电压,而不是追踪SOC设定)
  • 观察波形前先确认SOC一直在线性工作区间内

6.5 参数整定的顺序:从内到外,从电压环到VSG环

好多同学拿到VSG模型第一时间先调J和D,然后发现不管怎么调波形都不对。其实VSG是多环级联结构:电流内环的带宽必须高于电压外环,电压外环的带宽必须高于VSG功率环。不遵循这个顺序,功率环看起来振荡其实是内环没调好。

我的整定顺序是四步:

  1. 只保留内环路,让电流快速的跟踪指令,整定电流环PI
  2. 闭合电压外环整定电压环带宽,确认电压波形在0.5~1个工频周期内跟踪到位
  3. 闭合虚拟阻抗环,确认电压指令经虚拟阻抗修正后没有明显畸变
  4. 最后才调转子和下垂参数

每一步都需要在线用Bode图或阶跃响应验证带宽指标,不要跳过。这样整出来的参数,在任何工况下都不会出现"内环先崩"的情况。

7. 从单机到风储:扩展思路与我的实操总结

单机无穷大系统跑顺以后,往风储联合系统扩展就是一个"拆东墙补西墙"的过程——把直流侧理想电压源替换成风机加储能再配合DC/DC控制,然后逐步加入更复杂的风速模型、负荷突变模型甚至电网故障模型。但有一点我必须提醒:每从理想模型替换一个实物模型,都要重新观察所有波形,特别是母线电压和并网电流的谐波特性。风机整流器的注入电流纹波、储能DC/DC的开关纹波,都会在直流母线上汇合,给VSG的稳定运行引入新的扰动源。这时候想解决问题,别盯着VSG控制参数死磕,先看直流母线电压是否已经被纹波污染了。

再分享一个实测有效的小技巧:在做长工况仿真前,先做一个"冻结测试"——把风速、负荷、储能SOC全部设成常数,跑一个稳态工况,确认各环节波形一条水平线、纹波可控,再开始做动态工况。这一步能帮你把"模型本身的稳态精度问题"和"控制动态响应问题"彻底分开,避免动态仿真时把两类问题混在一起定位,来回折腾。我每次接手一个别人搭的模型,第一件事就是先跑这个冻结测试,往往能快速暴露一堆潜在的数值问题。

最后,VSG的参数标定没有一步到位的魔法公式,J、D和下垂系数之间本来就是互相制约的关系。我的做法是把每个参数的可接受范围先通过理论计算框定,然后在这个范围内做小步长扫描仿真,把波形表现最优的区域找出来。这个"理论定边界、仿真定细节"的组合拳,比漫无目的地试参数高效得多,你可以直接拿去用。

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

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

立即咨询