
风电并网做仿真绕不开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估算JJ (P_ref_max - P_ref_min) / ((ω_max - ω_min) · (2π/t_s))举个例子2MW逆变器允许频率偏差0.2Hz希望3秒内完成一次20%额定功率的调频响应。P差0.2×2e6400kWω差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滤波电感L0.2mH2MW系统典型值等效串联电阻取0.01ΩDC母线用大电容并联一个受控电压源前期调VSG时可以临时用直流电压源代替储能系统方便单独验证网侧控制等你看到并网电流波形正弦、调频响应正确再把受控电压源替换成储能DC/DC和风电机组。4.2 风电机组建模从能跑到像真风机的模型没必要一上来就是完整的传动链加PMSG气动方程。我分三个层级渐进第一级最简单用Stakable Signal Editor给一个阶跃/斜坡功率信号相当于把风力看成受控功率源。适合验证储能和VSG协调逻辑不涉及风机细节。第二级加平均风速模型。用相对风速和风机功率特性PCp(λ,β)·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 三个必须注意的测量与时间步长细节第一有功和无功测量不能直接用乘法器做瞬时有功Pu_a·i_au_b·i_bu_c·i_c然后滤波那样动态响应太慢VSG的功率反馈环节会产生明显滞后。建议直接用Simscape的Three-Phase Dynamic Active and Reactive Power模块或者用dq坐标系下的瞬时功率公式P1.5(u_d·i_du_q·i_q)直接给控制器用不必再额外滤波。第二电压和电流采样的单位统一。Simscape电气模块输出来的是国际单位V、A而PI控制器可能在标幺值下工作不做单位折算PI参数会在一个完全错误的量级上怎么调都调不好。第三求解器设置。这种含PWM的高速开关仿真建议用定步长ode3Bogacki-Shampine步长取1~10微秒。变步长求解器在开关切换点会自动缩小步长看似快实际PWM高频动作时反复重启步进仿真速度反而更慢而且容易在快速开关处报数值问题。5. 仿真结果分析与典型波形解读5.1 并网合闸瞬间的冲击控制VSG并网最怕的是合闸瞬间电流冲击。原因是合闸前VSG输出电压和电网电压存在相位差、幅值差开关闭合瞬间电流会冲得很高。正确做法是仿真正序先让VSG空载运行控制输出电压跟踪电网电压幅值、相位、频率都对齐再在电压差小于1%额定值时闭合并网开关。我在模型中加了一个比较器来判断压差和频差当幅值差5V且频率差0.01Hz时给的是合闸允许信号。实际仿真跑下来合闸瞬间电流冲击能控制在额定电流的10%~15%以内。如果合闸时电流有尖锐尖峰优先检查合闸前的预同步算法是否真的把相位差压到接近零而不是急着调PWM参数。5.2 负荷突增时VSG的有功和频率响应设置场景t2s时电网侧有功负荷增加20%观察VSG的有功输出和系统频率变化。理想波形应该呈现两阶段特征阶段一由于VSG惯性有功输出快速跃升频率只是小幅下降频率变化率被明显抑制这是惯量支撑的直观体现阶段二频率偏差经过一次调频环节反馈到有功指令上有功慢慢稳定到新的平衡点频率恢复到一个略低于额定值的稳定值由于下垂特性不能恢复回额定频率这是VSG与孤岛模式的区别。如果负荷突增时有功输出出现持续振荡大概率是J和D参数匹配不当。降低J或增大D都能增加阻尼但D过大会让调频响应变得迟钝通常调节顺序是先保持D不变、微调J观察振荡频率变化再反过来固定J、调D观察衰减速度。这个交替整定方法比盲目试参数高效得多。5.3 风速波动下直流母线电压的动态表现这个工况最考验系统整体性能。设置风速从11m/s在t4s时阶跃下降到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动态变慢弱电网下跟踪变差。第三步更优方案是采用自同步VSGSelf-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功率环。不遵循这个顺序功率环看起来振荡其实是内环没调好。我的整定顺序是四步只保留内环路让电流快速的跟踪指令整定电流环PI闭合电压外环整定电压环带宽确认电压波形在0.5~1个工频周期内跟踪到位闭合虚拟阻抗环确认电压指令经虚拟阻抗修正后没有明显畸变最后才调转子和下垂参数每一步都需要在线用Bode图或阶跃响应验证带宽指标不要跳过。这样整出来的参数在任何工况下都不会出现内环先崩的情况。7. 从单机到风储扩展思路与我的实操总结单机无穷大系统跑顺以后往风储联合系统扩展就是一个拆东墙补西墙的过程——把直流侧理想电压源替换成风机加储能再配合DC/DC控制然后逐步加入更复杂的风速模型、负荷突变模型甚至电网故障模型。但有一点我必须提醒每从理想模型替换一个实物模型都要重新观察所有波形特别是母线电压和并网电流的谐波特性。风机整流器的注入电流纹波、储能DC/DC的开关纹波都会在直流母线上汇合给VSG的稳定运行引入新的扰动源。这时候想解决问题别盯着VSG控制参数死磕先看直流母线电压是否已经被纹波污染了。再分享一个实测有效的小技巧在做长工况仿真前先做一个冻结测试——把风速、负荷、储能SOC全部设成常数跑一个稳态工况确认各环节波形一条水平线、纹波可控再开始做动态工况。这一步能帮你把模型本身的稳态精度问题和控制动态响应问题彻底分开避免动态仿真时把两类问题混在一起定位来回折腾。我每次接手一个别人搭的模型第一件事就是先跑这个冻结测试往往能快速暴露一堆潜在的数值问题。最后VSG的参数标定没有一步到位的魔法公式J、D和下垂系数之间本来就是互相制约的关系。我的做法是把每个参数的可接受范围先通过理论计算框定然后在这个范围内做小步长扫描仿真把波形表现最优的区域找出来。这个理论定边界、仿真定细节的组合拳比漫无目的地试参数高效得多你可以直接拿去用。