做风储并网仿真,绕不开一个问题:新能源上得越多,电网里旋转电机的比例就越少,系统惯性掉得厉害。传统PQ控制只负责把功率送出去,不关心电网频率跌了怎么办;而VSG(虚拟同步发电机)的思路,就是让逆变器学着同步发电机那样,自带惯量和阻尼,电网有点风吹草动,它也能“扛”一下。这篇文章我以“风储VSG-基于虚拟同步发电机的风储并网系统Simulink仿真”这个项目为主线,把从控制原理、参数设计到Simulink建模和调试的完整过程捋一遍,适合正在做新能源并网仿真、写大论文或者做工程验证的朋友参考。
1. 项目解读与整体设计思路
1.1 风储VSG是什么,为什么要做这个仿真
风储VSG,说直白一点,就是把风电和储能两个单元组合到一个联合系统里,然后用虚拟同步发电机算法去控制这台系统对外输出功率和电压。风力发电本身是靠风吃饭,出力波动大;储能的作用就是削峰填谷,把不稳定的风能“缓冲”一下,让联合对外呈现一个相对平稳、可控的输出特性。而VSG的核心价值在于,它让这套联合系统不是简单地“并网送电”,而是像一台真实的同步发电机一样参与电网的频率调节和电压支撑。
做这个仿真的原因很现实。现在的并网标准越来越强调新能源场站要有“主动支撑能力”,不再是你发多少、电网收多少就行。电网频率掉下去的时候,场站要能立刻释放能量来阻止频率继续下跌;电压波动的时候,场站要有无功输出能力。这些能力直接在真实系统里验证成本极高,在Simulink里先搭一套仿真模型,把控制逻辑、参数整定、边界工况都试一遍,是性价比最高的做法。
1.2 系统级架构:从风机到电网的能量路径
先讲清楚整个风储联合系统的拓扑结构,不然后面看模型肯定会懵。这个项目里,风电部分和储能部分不是各自独立并网,而是先汇聚到同一条直流母线,再由一个VSG控制的逆变器统一并网。
能量路径是这样走的:
- 风能推动永磁同步发电机(PMSG)转动,发出频率随转速变化的交流电,经过机侧变流器整流成直流。
- 储能单元通过双向DC/DC变换器挂在同一条直流母线上,既可以吸收多余功率,也可以补充不足的功率。
- 直流母线统一供电给一台三相逆变器(VSG逆变器),逆变器后面接LCL滤波器,再并入三相电网。
这个结构最大的好处是“一个并网点、一套控制”,储能和风电在直流侧自然耦合。VSG算法控制逆变器完成交直流变换,而储能侧的DC/DC变换器负责维持直流母线电压稳定和功率平衡。整套系统对外看起来就是一台“虚拟发电机”,具备惯量、阻尼、有功调频和无功调压能力。
1.3 为什么不用传统PQ控制,非要上VSG
传统PQ控制(有功无功解耦控制)是目前绝大多数新能源并网逆变器采用的方式,它把功率指令作为输入,通过电流内环跟踪指令电流。PQ控制的优点是算法成熟、调试简单、电流波形质量好;但缺点是它本质上是“跟屁虫”,电网频率跌了,它没有任何主动响应,只有等调度下发新的功率指令才动。
VSG控制的不同之处,是它复制了同步发电机的转子运动方程和励磁调节特性。频率一旦变化,VSG系统会像真实同步机一样,先通过“虚拟惯量”吸收或释放动能,对电网频率起到缓冲作用;电压变化时,它又会通过无功-电压控制环调整并网电压幅值。对于带储能的系统来说,储能电池可以短时间内提供功率支撑,这正好弥补了风机出力不可控的短板。把VSG算法用在风储联合系统上,等于给新能源场站装上了一副“同步机”的心跳和肌肉。
2. VSG核心算法与参数设计逻辑
2.1 有功-频率环:转子运动方程的工程理解
VSG控制最核心的部分是有功-频率控制环。它用一组微分方程来模拟同步发电机的转子运动:
J * dω/dt = Pm - Pe - D * (ω - ω0)
其中,J是虚拟惯量,D是阻尼系数,ω是虚拟角频率,ω0是额定角频率,Pm是虚拟机械功率,Pe是实测电磁功率。转速积分得到相位角,θ = ∫ω dt,这个θ就是PWM调制的参考相位。
从工程角度怎么理解这个方程?Jdω/dt这一项表示当功率不平衡时,角频率会发生变化,J越大,频率变化速率越慢,惯性就越大;D(ω - ω0)这一项则模拟了阻尼绕组作用,频率一旦偏离额定值,它会产生一个阻止频率继续变化的“阻力”。这个方程让逆变器对外呈现的频率响应特性,和一台真实的同步发电机非常接近。
风机侧通常工作在最大功率跟踪(MPPT)模式,对外输出的Pm实际上是风速决定的出力;储能侧则负责平衡MPPT出力和VSG实际输出之间的差额。所以VSG的Pm指令并不是一个固定值,而是反映“风储联合系统当前应发功率”的动态参考值。
2.2 无功-电压环:虚拟励磁系统在做什么
同步发电机的励磁系统负责调节机端电压,VSG中的无功-电压控制环就是模拟这一功能的。控制方程通常写成:
E_ref = E0 + n * (Q_ref - Q_e) + K_U * (U_ref - U_meas)
E_ref是虚拟内电势的幅值,E0是空载电势,Q_ref和Q_e是无功指令与实际无功,U_ref和U_meas是电压参考值与实测值,n是无功下垂系数。
这里面要特别注意,无功环输出的E_ref决定了VSG内电势的幅值,而内电势与电网电压之间的矢量差,就决定了无功功率的流向。如果电网电压跌落,U_meas减小,(U_ref - U_meas)这一项会变大,E_ref就会升高,系统发出更多无功去支撑电压。这个特性对弱电网、长距离输电场景特别重要。
2.3 关键参数计算:J、D、无功下垂系数怎么定
VSG调参是整个仿真里最费时间的环节之一。参数不能瞎拍,每个量都有物理意义和整定依据。我以一套额定容量500kW的风储并网系统为例,把计算过程拆开讲。
首先是虚拟惯量J。真实同步发电机的惯性时间常数H一般在2~10秒之间,H和J的关系是:
J = 2 * H * Sn / ω0²
假设取H = 2.5s,Sn = 500kW,ω0 = 2π * 50 ≈ 314 rad/s,算出来:
J = 2 * 2.5 * 500000 / 314² ≈ 25.4 kg·m²
这个值给出了系统在功率扰动下频率变化速率的“物理边界”。J取太小,频率跌得飞快,和没惯量没区别;J取太大,功率振荡衰减极慢,甚至会出现低频振荡。
阻尼系数D的设计思路,一般按照1%频率偏差对应额定功率变化来确定。比如允许频率偏差为0.5Hz,对应角频率偏差为2π*0.5 ≈ 3.14 rad/s,那么:
D = Sn / (ω - ω0) = 500000 / 3.14 ≈ 159000
仿真中D的单位是瓦秒每弧度,这个数值直接参与功率差计算,量级不能错。调参的时候我会先把D设大一些让系统稳定,再逐步减小观察动态特性。
无功下垂系数n,一般取2%~5%的电压偏差对应满无功输出。假如额定相电压有效值220V,无功额定值200kVar,取3%电压偏差为6.6V,则:
n = 6.6 / 200000 ≈ 3.3e-5 V/Var
这三个参数是VSG控制环的“骨骼”,定好之后再去整定电压电流环的PI参数,才能少走弯路。
2.4 储能侧功率分配与直流母线稳压策略
储能侧的设计是风储系统区别于单一风电并网的关键。机侧风电出力随风速波动,VSG并网功率要跟随指令,中间功率差额就得靠储能来平抑。我在模型里用了一个双向DC/DC变换器控制直流母线电压:当直流母线电压升高,说明风电出力大于VSG发出功率,储能进入充电模式;反之,储能放电补充功率缺口。
具体控制方式是电压外环加电流内环:直流母线电压参考值(比如750V)与实测值比较,经过PI调节器输出储能变换器电流参考,再通过电流内环控制电感电流。这套控制必须比VSG的功率环响应更快,否则直流母线电压会在大扰动时剧烈波动。
这里有一个容易踩的坑:储能电池模型如果直接用Battery模块,要注意SOC限制和充放电电流限幅。仿真中如果储能SOC到0或者到100%,电池模型会自动切到开路状态,整个直流母线电压会瞬间崩溃。所以我在模型里对储能功率指令做了限幅处理,并且给DC/DC控制环加了一个功率前馈,从VSG功率指令和风电实时功率差直接算出储能需要的功率参考,这样电压环压力就小很多。
3. Simulink仿真模型搭建与关键环节实现
3.1 模型总览与版本选择
Simulink里做电力电子仿真,必须用Simscape Electrical库(老版本叫SimPowerSystems),里面提供了三相电网、开关器件、变压器、滤波器和测量模块。我用的是MATLAB R2021b,库的结构相对稳定,如果你的版本更高,模块名称基本兼容。
整个模型从顶层看分为四块:
- 风电机组子模型(含风机机械模型、PMSG、机侧整流器)
- 储能子模型(电池、双向DC/DC变换器及控制)
- VSG并网逆变器子模型(逆变桥、LCL滤波器、并网开关)
- VSG控制子模型(功率计算、VSG核心控制、电压电流双闭环、PWM调制)
为了调试方便,每个子模型里都加了Goto/From标签信号,把并网电压、电流、功率、直流母线电压、VSG角度和频率这些关键量引到顶层Scope统一观察。
3.2 主电路搭建:风电、储能、VSG逆变器与LCL
风电机组部分,如果重点研究VSG控制本身,可以把风机模型简化处理。我的做法是用永磁同步电机模块(Permanent Magnet Synchronous Machine)加上风机转矩模型,由风速输入计算机械转矩,经过机侧不控整流加Boost电路,或者用可控整流,把风机出力送到直流母线。想更简化的时候,也可以用受控电流源直接模拟风机输出功率,只保留功率变化特征。
储能部分用Simscape里的Battery(锂离子)模块,额定电压按直流母线电压的60%~70%选择,再通过双向Boost/Buck变换器连接到750V直流母线。变换器开关频率设10kHz,电感和电容参数按电流纹波20%设计。
VSG并网逆变器采用两电平三相桥(Universal Bridge模块,选MOSFET或者IGBT都可以),直流侧接母线电容(我选的是10mF,按直流电压纹波要求算出来的),交流侧接LCL滤波器。LCL参数我给出一个可以参考的组合:逆变器侧电感L1=1.2mH,网侧电感L2=0.3mH,滤波电容Cf=20μF,阻尼电阻Rd=2Ω。谐振频率算下来约1.5kHz,在10倍基波(500Hz)和0.5倍开关频率(5kHz)之间,符合设计准则。
3.3 VSG控制环建模实操:从功率计算到PWM调制
VSG控制环是整套仿真的灵魂,我按信号流顺序拆解建模型的步骤。
第一步是瞬时功率计算。用三相电压电流测量模块,采样并网点电压和逆变器输出电流,经过dq变换计算有功功率P和无功功率Q。这里要注意,功率计算的滤波时间常数不要太大,一般取一阶惯性1ms左右就够了,太大了会引入明显相位滞后,影响VSG的动态响应。
第二步是有功-频率环。用Simulink的Integrator、Gain、Sum模块把转子运动方程搭出来:功率差(Pm - Pe)经过1/(Js)积分得到角频率偏差,再经过1/s积分得到相角。阻尼项D(ω - ω0)用Gain模块实现。搭建时我建议把额定角频率314作为初值给到积分器,这样VSG起动就能平滑跟踪工频。
第三步是无功-电压环。按照E_ref = E0 + n*(Q_ref - Q_e) + K_U*(U_ref - U_meas)搭建,输出作为电压环参考幅值。如果想把控制做得更细,还可以叠加一个虚拟电抗补偿项,模拟同步发电机的同步电抗,对并联运行的均流特性会有改善。
第四步是电压电流双闭环。VSG内电势参考值(三相正弦信号)与输出电压比较,经过电压外环PI调节器得到电流参考,再与电感电流比较,经过电流内环P(比例)调节器生成调制波,最后用PWM发生器产生驱动信号。电压环带宽一般取200~500Hz,电流环带宽取1~2kHz,两个环的响应速度差一个数量级才能稳定。
调制部分可以用Simulink自带的PWM Generator模块,也可以用SVPWM算法搭一组调制波发生器。SVPWM直流电压利用率比SPWM高15%,工程上更常用,但仿真中二者差异不大,初学者可以先从SPWM入手。
3.4 仿真参数设置:求解器、步长、初始条件
电力电子仿真最让人头疼的就是数值发散和仿真速度。我在这个模型里用的求解器是ode23tb,这种变步长求解器对刚性系统(存在开关器件和不同时间常数的系统)处理能力明显更好。最大步长设置不要超过1e-4秒,否则开关动作的时刻很容易被漏掉,波形会出现锯齿状毛刺。相对容差设1e-3,绝对容差设1e-4,两者搭配能保证精度同时不会太慢。
还有一个容易被忽略的细节是初始条件。如果让系统从零状态直接合闸并网,VSG输出相位和电网相位不一致,会产生很大的冲击电流。我的做法是把连接VSG和电网的并网断路器(用Three-Phase Breaker实现)在初始状态设置为断开,让VSG先以空载或带本地负载的方式启动,等锁相环捕捉到电网相位、预同步控制把相位差压到很小的范围之后,再在预设时刻闭合断路器完成并网。
这个“先建压、再同步、后并网”的操作顺序,和真实同步发电机并网时的操作完全一致,也是工程经验的体现。
4. 调试心得:常见问题与排查实录
4.1 波形振荡发散:先查参数还是先查模型
VSG仿真最常见的故障就是功率波形发散或者高频振荡。遇到这种情况,我的排查顺序是:先看模型是否违背了物理约束,再看控制器参数是否合理。
有一次我的仿真里电流波形出现3kHz左右的高频振荡,先想到是不是LCL谐振引起的。检查滤波电容支路的阻尼电阻,发现Rd设成了0.01Ω,和无源阻尼没两样,改回2Ω后振荡明显减弱。另一次是功率低频振荡(1Hz左右),频率很低但幅度不衰减,检查VSG参数,发现J取值过大,阻尼D又偏小,导致系统阻尼比不足。把D从159000加到220000之后,振荡在2个周期内就收敛了。
经验是:高频问题先查电路和调制环节,低频问题先查VSG的J/D参数,不要一上来就调PI。把这条顺序记牢,能少走至少半天弯路。
4.2 并网瞬间冲击过大:预同步与软启动
并网冲击是另一个高频问题。现象是断路器闭合瞬间,电流波形猛地冲上去一大截,严重的时候会触发过流保护。根本原因是合闸瞬间VSG输出电压的幅值、相位和电网电压不一致,相当于两个电压源直接并联,压差通过很小的线路阻抗强行拉平,产生冲击电流。
解决办法是加一个预同步模块。用PLL锁相跟踪电网电压的幅值、频率和相位,然后通过一个比例积分调节器调整VSG的频率参考和电压参考,让ε = θ_vsg - θ_grid逐渐趋近于0,幅值误差也同时消除。当相位误差小于0.1度、幅值误差小于1V时,再合闸并网。我实测过,加了预同步之后,并网冲击电流降到了额定电流的5%以内。
4.3 仿真速度慢、收敛性差:实用优化清单
Simulink仿真动辄跑几十分钟很折磨人,尤其是变步长算法在开关动作处会反复迭代。我总结了一套提速办法:
- 把IGBT/MOSFET开关器件换成理想开关模型或平均模型,仿真速度能提升3~5倍。
- 风速输入不要用细时间步长的白噪声信号,用一个平滑的阶跃或斜坡信号模拟风速变化,避免频繁触发变步长。
- 储能和风机的电力电子部分如果不需要精确分析开关纹波,可以用受控源等效模型,省掉大量开关事件。
- 观测器和Scope采样率不要设置得太高,波形显示分辨率够用就行,高采样率会拖慢仿真。
收敛性方面,遇到“Error in Simscape”类报错,优先检查直流母线电容有没有加初始电压,LCL滤波器有没有设置合理的初始电流,这些初始值不匹配会让求解器第一步就失败。
4.4 参数灵敏度:J、D变化对波形的影响规律
调试过程中我把J和D对系统动态的影响做了一个小结,写在模型注释里,方便后续快速调整:
- J增大:频率变化率降低,惯性增强,但功率振荡周期变长,收敛变慢。太大会出现类似同步发电机“低频振荡”的慢爬坡现象。
- D增大:频率偏离被抑制得更强,功率振荡衰减更快,但D过大会让频率偏差在静态时拉大,有功调频精度变差。
- K_U增大:电压支撑能力增强,但可能引发无功环和电压环之间的耦合振荡,调试时从0开始逐步加大。
这几个参数的本质是一组权衡,不存在“越大越好”或者“越小越好”,要紧的是根据你的仿真场景确定优先目标——如果重点研究频率扰动响应,J优先;如果重点研究功率振荡抑制,D优先。
最后再分享一个小技巧。VSG控制环里的积分器初值,一定要把额定角频率和电网初始相位设进去;预同步的参数先粗调让系统稳定,再细调追求精度。我每次开一个新版本的模型,都会先做一次空载启动测试,确认VSG电压建立得又稳又准,再去做并网和扰动试验。这套流程看着笨,但能避免把“并网冲击发散”和“VSG参数错误”混在一起排查,省下的时间远超多花的那几分钟。