ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

风储VSG虚拟同步发电机Simulink仿真:惯量支撑与参数整定实战

风储VSG虚拟同步发电机Simulink仿真:惯量支撑与参数整定实战 1. 项目概述风储VSG到底在解决什么问题风电并网这两年最让人头疼的事不是发不出电而是发出来的电“没人管得住”——传统的同步发电机有转子、有惯性电网频率波动时它能天然撑一把但风机和光伏背后的电力电子设备是“零惯性”的电网频率一旦波动它们只会傻站着甚至还会加剧波动。虚拟同步发电机VSG这套控制策略就是给逆变器“装一个虚拟的转子”让它学同步机的脾气。而把这个思路用在风储并网系统上用储能来配合风机的出力波动同时让整个系统以VSG的姿态对电网表现出“友好”的机电特性这就是我这次用Simulink做的仿真项目的核心。这个项目我建议三类人去研究一是做微电网、新能源并网控制的研究生和工程师二是刚接触VSG想找一套完整可运行案例的初学者三是想验证风储协调控制策略、需要先搭一套仿真平台的从业者。后半篇我会把思路拆开从控制方程一直讲到Simulink里那些“看似不起眼但能卡你一整天”的坑。1.1 风电并网的两个“先天不足”做风电并网仿真这几年我最大的感受是风机本身的问题不是发不出电而是发出来的电“不定性”。风速一变出力就变尤其在额定风速附近的区间功率可能几分钟内波动30%以上。在Simulink里模拟这个场景很容易——给风速模型加个阶跃或者一串随机扰动就行——但在真实电网里这就是对系统频率的持续冲击。比功率波动更隐蔽的问题是电力电子变换器带来的惯量缺失。传统同步发电机有转子转子带着动能系统频率下降时它会在惯性作用下迟缓转动这个天然的“惯性支撑”是整个电网稳定运行的基石。风机后面跟着的变流器没有可感的旋转质量机械上的动能被电力电子环节隔断了电网频率跌的时候它只会执行控制器的指令不会主动“扶一把”。这一点做系统级仿真时感受特别明显同样的负荷冲击纯电力电子并网时频率跌得又快又深加了一台同步机之后频率曲线立刻“稳”下来。风储并网系统要解决的就是这两个问题储能负责吸收风机功率的快速波动而虚拟同步发电机VSG负责让整个并网端口表现出同步机的动态特性——有惯性、有阻尼、有下垂。两个问题串在一起就是“风储VSG”这个项目存在的根本理由。1.2 储能和VSG的分工逻辑很多刚接触的同学容易把风储和VSG拆成两件事来想储能是“平抑功率”VSG是“逆变器控制”。其实在风储VSG系统里这两件事必须合在一起设计因为它们共享一条直流母线。电池挂在直流母线上母线电压稳定是整个系统正常工作的前提。风机侧跑MPPT把功率尽量多抢出来储能侧做母线电压或功率补偿网侧逆变器用VSG控制对外输出。当风速突然升高、风机功率上涌时储能先吸收多余的能量防止母线电压飞升当系统频率跌落需要支撑时VSG的控制环会给逆变器一个增发功率的指令这时候能量依然来自电池。也就是说储能既是“波动缓冲器”又是VSG虚拟惯量背后的“真实能量源”。虚拟转子本身不存能量能量全在电池里这个逻辑想通了整套系统的控制分配就顺了。这个项目我跑下来的体感是单纯给逆变器写VSG算法不难难的是让储能、风机、VSG三条控制链路在仿真里不打架各自的时间常数分得开、调得顺。后面我会把每个环路的实现细节和参数都给出来前面这些背景先铺垫到这里。2. 系统整体架构与建模层次选择2.1 拓扑结构与能量流先把我用的拓扑完整列出来。我按“背靠背变流器储能”的经典构型搭的风机永磁直驱简化模型→ 机侧整流器 → 直流母线 → 网侧VSG变流器 → LCL滤波器 → 0.4kV/10kV变压器 → 无穷大电网。电池通过一个双向DC/DC变换器挂在直流母线上本地负载接在变压器低压侧用来制造负荷突变工况。整套系统额定功率我按100kW、交流侧380V来设计这个量级跑仿真速度快参数也好折算。能量关系就一句话风机功率 储能功率 逆变器送网功率。直流母线电容是瞬间的能量缓冲母线电压稳定意味着进出功率基本平衡。我的控制分配是储能侧控制直流母线电压网侧VSG控制与电网的功率交互风机侧跑MPPT。三个控制器职责边界清清楚楚调母线电压环时不会牵扯到VSG的有功环出波形反而快。这里有个细节提醒一下储能到底控母线电压还是控功率决定了直流母线动态特性。让储能控母线电压时母线电压环带宽一般设在10~20Hz带宽太窄则风机功率突变时母线电压会被顶高带宽太宽又容易和VSG的功率环耦合振荡。我实际用PI调节器P取0.5~1I取20~50这个量级具体随电压等级和电容参数浮动调试时要结合阶跃响应微调。2.2 模型复杂度怎么选先粗后细别一上来就跑全细节这是整个项目里最值得说的经验之一。很多新手拿到Simulink以后第一件事就是把PMSG磁链方程、Battery电化学模型、IGBT开关全堆上去结果仿真慢到怀疑人生调一个参数跑十分钟半天下来一点进展都没有。所以我坚持把建模分成两层。第一层是“参数整定层”用来做控制逻辑验证和参数扫描。风机用受控功率源代替给出风速对应的有功指令储能用理想电压源加内阻逆变器用三相受控电压源平均值模型由VSG输出的电压幅值和相角直接驱动。这样一套系统在普通笔记本上跑0.5秒仿真只需要几十秒到几分钟适合反复调VSG参数。第二层是“验证出图层”把逆变器换回Universal Bridge加PWM发生器风机用PMSG储能用Battery模块。这个模型能输出开关纹波、THD、SOC等细节但速度慢一个数量级只做最终验证。我的习惯是90%的时间在第一层跑参数整定完最后用第二层出几组关键波形放在报告里千万别反过来用全细节模型调参。3. VSG控制环原理与参数整定一个方程看懂虚拟惯量3.1 有功-频率环虚拟惯量和阻尼到底怎么理解VSG所有控制的核心其实就是同步发电机转子运动方程的“移植”。我直接给出仿真里最常用的形式J×(dω/dt) Pm - Pe - Dp(ω - ω0)其中J是虚拟惯量Dp是阻尼系数Pm是有功机械功率参考值Pe是实测输出有功ω是虚拟转子角速度ω0是额定角速度。J的单位在物理世界里是kg·m²但仿真里我们更习惯用惯性时间常数H来表达换算关系是J 2H×Sn/ωn²Sn是额定容量ωn是额定角速度。理解这个方程有三个层次。第一J决定频率变化的“惯性”。J越大电网扰动时虚拟转子转速变化越慢频率变化率越小。同步机的H通常在2~8秒风储系统一般取1~4秒取太大频率变化倒是平缓了但过渡过程拉长甚至可能引发持续的低频功率振荡。第二Dp决定频率偏差的“终点”。稳态时dω/dt0方程退化为ω-ω0(Pm-Pe)/Dp这正好是一条下垂曲线。Dp20标幺值意味着满功率阶跃对应5%的频率偏差Dp50对应2%。Dp越大稳态频率偏差越小但阻尼特性也随之改变要和张弛有度地配合。第三Pm项把“惯量支撑”和“调频指令”统一起来了。当电网频率跌落时系统的外特性呈现出的功率增量来自两部分——J项提供瞬时的惯性响应阻止ω快速变化Dp项提供持续的功频下垂响应按偏差补偿功率。这也是VSG和普通下垂控制的本质区别下垂控制只复现了DpJ项才是VSG的灵魂。我在Simulink里的实现方式不复杂用求和模块求Pm-Pe-Dp(ω-ω0)除以J后积分得到ω再积分一次得到虚拟转子相位θ。θ送去生成三相调制波ω反馈回来形成闭环。注意积分器要设置初始值ω初始设为2π×50θ初始和电网电压相角对齐否则启动瞬间就是一次大冲击。3.2 无功-电压环给系统装上自动电压调节器有功环管频率和功率无功环管电压和功率因数。VSG的无功环等价于同步机的励磁调节器我用的表达式是E E0 kq×(Qref - Q) ku×(Uref - Um)E0是空载电动势额定值Qref和Q分别是无功指令和实测值Um是并网点电压幅值。kq是无功-电压下垂系数ku是电压偏差修正系数这部分可选配上自动电压控制场景再启用。这个环的价值直观地说就是“电网电压扰动时自动撑电压”。普通逆变器如果工作在恒无功模式电网电压跌落时它纹丝不动电压全靠上级系统扛VSG看到并网点电压跌了会自动增发无功把电压往回抬这个行为模式和同步机的励磁调节器非常接近。仿真时你可以这样验证在第2秒给电网侧无功负载跃变观察并网点电压曲线有VSG无功环的时候电压跌落后能恢复到额定附近不加这个环电压就趴在那里对比效果非常明显。kq取值我习惯按“无功满额对应若干电压偏差百分比”来折算。举个算例额定电压380V无功容量100kvar允许10%无功变化引起1%电压偏差那么kq0.01×380/(0.1×100000)3.8e-4 V/var。仿真里如果全部用标幺制kq在0.05~0.1这个范围比较常见设完用电压跃变工况把稳态偏差和响应时间同时检查一遍。3.3 一套可以直接跑起来的初始参数参数整定是这个项目里最容易劝退人的环节。我直接给出一套验证过的初始值你拿回去先跑通再根据自己系统的容量折算。这套参数按100kW、380V、50Hz系统折算。参数符号典型值备注惯性时间常数H2 s折算J2H×Sn/ωn²≈4kg·m²阻尼/下垂系数Dp20 p.u.对应5%频率偏差无功下垂系数kq0.08 p.u.对应8%无功→额定电压虚拟定子电阻Rv0.01 p.u.增强阻尼也可不加虚拟定子电抗Xv0.1 p.u.与滤波电感叠加母线电压环PIKp/Ki0.8 / 30具体随电容折算注意H和J千万别混着填。Simulink里如果用J单位是kg·m²数值在几百到几千量级如果用惯性常数H做归一化它就是秒。我见过很多发散问题就是单位混淆导致的这个坑非常低级但非常常见。另外虚拟阻抗Rv、Xv不是越大越好它们和LCL滤波器参数一起决定了VSG输出阻抗的相位特性影响有功无功解耦效果。我习惯让等效输出阻抗呈感性也就是Xv/Rv大于3这样功频环和电压环之间的耦合最小两个环调参时不容易互相影响。4. Simulink实操搭建模型层次、滤波器与求解器设置4.1 风机与储能模块现成库还是自己搭Simscape Electrical里自带的“Wind Farm”和“Battery”模块封装程度很高优点是不用自己推导模型缺点是内部细节黑盒自定义控制信号插不进去想改个风速模型或者自定义SOC恢复策略都很别扭。我的方案是折中储能直接用Battery模块重点看SOC和母线电压风机用受控功率源或者PMSG简化模型。所谓PMSG简化模型就是根据风速查功率曲线得到机械功率再通过一个惯性环节和整流器平均模型输出到直流母线——控制在10个模块以内就能把风机的能量特征模拟出来。不是说自带模块不好而是做VSG这类“控制策略主导”的仿真时接口开放性比模型保真度重要得多。控制信号能用Goto/From总线统一组织后面扩展多机并联时直接复制子系统改参数就行了。4.2 逆变器建模平均值模型和开关模型的取舍逆变器是风储系统里唯一同时涉及高频开关和低频机电动态的环节建模选择直接影响仿真可行性两种方案的区别我整理成一张表对比项平均值模型开关模型Universal BridgePWM仿真速度快10~20倍慢步长受限波形细节无开关纹波有纹波可算THD适用场景控制参数整定最终验证、谐波分析推荐步长固定步长1e-5或连续求解离散固定步长≤1e-6平均值模型的本质是把逆变器等效为三相受控电压源幅值和相角由VSG输出的调制波决定。因为不需要生成IGBT的开关脉冲仿真步长可以放宽到1e-5量级长周期机电动态比如10秒的风速变化过程在这个模型下跑得动。开关模型则必须用离散固定步长而且步长要小于开关周期的十分之一。载波频率10kHz、周期100微秒步长就取1e-6再大PWM波形就失真了。这个约束直接决定了仿真时长上限这也是我坚持先在平均值模型上调参数的根本原因。4.3 LCL滤波器与并网变压器参数设计LCL的参数设计有公式可依但新手经常直接抄论文结果谐振峰正好落在谐波密集区仿真跑起来高频振荡不断。我用的校验方法是三步。第一步按基波感压降选总电感。电感压降一般控制在额定相电压的5%~10%。以本系统为例100kW、380V相电压220V额定线电流约152A取5%压降就是11V需要的总电感L≈11/(314×152)≈0.23mH。所以我选了L10.15mH、L20.1mH加起来0.25mH量级是对的。第二步用谐振频率公式校验f_res ≈ 1/(2π×√(L1×L2×Cf/(L1L2)))代入参数L10.15mH、L20.1mH、Cf40μF分母等效值√(150e-6×100e-6×40e-6/250e-6)√(2.4e-9)≈4.9e-5谐振频率约3.2kHz。它要大于10倍基频500Hz又小于开关频率的一半5kHz这样才既避开低频谐波又不和PWM载波打架。这个校验非常重要谐振点选错了后面所有波形都会带上一股高频颤抖。第三步加阻尼。LCL本身存在谐振尖峰纯电感加电容在3.2kHz处会有很大的阻抗峰控制里不加阻尼很容易振荡。偷懒的做法是给电容串一个小电阻比如0.1~0.5Ω虽然略有损耗但能快速让仿真稳下来。变压器我用Dyn11接法0.4kV/10kV三角形侧能隔离零序分量避免电网单相不平衡时VSG输出电压被污染。如果做相位级仿真变压器的漏抗也要计入VSG输出阻抗别忽略。4.4 求解器与仿真步长数值稳定性从设置开始求解器选不对前面所有模型工作都白费。我的建议分三种情况模型类型求解器关键设置平均值模型ode23tb或ode15s相对容差1e-4最大步长1e-4开关模型PWM离散固定步长步长1e-6纯稳态粗预览Phasor模式仅静态分析不能用来看动态原因很简单风储系统里有电池电化学微分方程、有电力电子开关、有风机机械惯性时间常数跨越好几个数量级属于典型刚性系统。ode45遇到这类系统时每一步要算很久还容易发散ode23tb梯形加后向差分和ode15s是专门为刚性系统设计的稳定性好得多跑同样工况速度反而快。Powergui里选Continuous模式时一定记得设置最大步长否则Simulink自动选步长可能跳过控制环的采样点结果是波形看着平滑、实际已经严重失真。这一点我调试时吃过亏一开始没限步长仿出来的频率曲线“过于平稳”我以为参数整定完美了后来换了最大步长1e-4真实的振荡才露出来。数值仿真的一个基本原则是波形太好看了未必是好事先怀疑步长设置。5. 调试实录仿真发散、频率振荡与并网同步问题排查5.1 仿真发散先查步长和初始值再怀疑控制算法仿真发散基本有套路可循我把遇到过的三种典型情况列在下面你可以对照自查。一是“瞬间爆炸”曲线第一拍就飞到上百万。这种一般不是控制问题而是初始值问题——比如母线电容初始电压设了0但VSG第一拍就按额定电压调制起始电流巨大或者锁相输出没有初始化到电网相位。处理办法先把仿真时间缩到0.01s单纯看第一个计算步是否可控定位到具体模块再改初始条件。二是“跑一阵才爆”前面波形正常到了某个时刻突然发散。这种多半是数值步长过大引起的隐性不稳定或者积分器输出超出限幅范围比如ω变成负数。排查重点是限幅环节VSG所有积分器输出都要加限幅ω限在2π×47到2π×53rad/sθ做模2π处理Pm限在0到1.2p.u.。防积分饱和做到位一半的“跑到一半爆”问题都会消失。三是“开关模型毛刺频繁”离散点稀疏波形像噪点堆砌。直接查步长载波10kHz步长必须小于等于1e-6PWM比较逻辑才能在每一个载波周期内正确翻转。为了跑得快把步长放到2e-6甚至5e-6波形看起来还行但THD算出个离谱数值就是这个原因。5.2 频率振荡J和D的调参方向不要搞反做负荷突变测试时频率波形出现振荡是家常便饭。我的经验是先分清振荡类型再动手调参方向弄反了会越调越糟糕。振荡周期短、振幅大、像高频颤抖多半是Dp太小系统阻尼不足。振荡周期长、波动缓慢、衰减慢多半是J偏大虚拟转子“太笨重”。稳态频率偏差超出预期则是Dp选小了下垂不足需要在稳态偏差和阻尼之间重新权衡。初学者最容易犯的错是频率振荡时先加Dp结果频率偏差越来越大越调越乱。我的调参顺序是固定的先把Dp定到满足稳态频率偏差要求的值比如允许0.5Hz偏差就选Dp20再从小到大扫J每次按50%的步长变化记录频率跌落深度和恢复时间。通常情况下H在1~4秒之间能找到一组“跌落够浅、恢复够快”的参数。经验曲线是H从1秒加到4秒频率跌落深度能减小20%~40%但恢复时间可能翻倍所以没有最优值只有匹配你目标工况的值。5.3 并网失败预同步是关键PLL别乱用并网瞬间的冲击电流是另一个高频问题。VSG本身自带虚拟转子相位它不像普通逆变器一样完全依赖PLL但并网瞬间如果虚拟相位和电网相位差太大合闸就是一次大短路仿真直接飞。我的标准流程是三步预同步。第一步让VSG空载运行检测电网电压相位θg。第二步把虚拟转子的初始相位设为θg通过一个PI锁频环节实时微调直到|Δθ|1度、|Δω|0.1Hz。第三步满足条件后再闭合断路器同时把控制目标从“预同步模式”切换回正常VSG模式。这个流程在Simulink里实现时用几个比较模块和状态机模块就能完成并不复杂。但很多人图省事直接给定固定相位并网结果要么发散要么冲击电流巨大。预同步这个环节看起来和“核心控制算法”无关实际决定了整个仿真能不能活过第一秒值得认真做。6. 结果判读与扩展方向6.1 关键波形与评价指标仿真跑完不等于工作结束会看波形才是仿真的一半意义。我固定盯六组信号电网频率或虚拟角速度、逆变器输出有功、储能SOC、直流母线电压、并网点电压、逆变器输出电流。判读标准我总结成一张表指标合格范围不合格时先调什么频率跌落深度≤0.1Hz常见负荷扰动J、Dp频率恢复时间≤2~3sJ偏大则减小直流母线电压波动±3%以内母线电压环PI并网点电压偏差±5%以内kq、ku储能SOC漂移支撑前后≤10%控制分配策略输出电流THD5%开关模型LCL参数、阻尼电阻这里额外说一句我强烈建议在模型里放几个To Workspace模块把所有关键信号按结构体导出配合MATLAB脚本批量出图。Scope截图出报告效率太低脚本化之后参数扫一轮、图出一批这才是把Simulink用起来了。我自己的习惯是一套脚本管参数扫描一套脚本管绘图核心参数改完后直接全流程跑一遍。6.2 从单套系统扩展到集群与二次调频一套风储VSG跑通后继续往下走的方向我推荐三个。第一个是场景升级把阶跃风速换成实测风数据或组合波风速测试随机风速下的鲁棒性这时候储能SOC的控制策略会成为新的瓶颈。第二个是控制升级在VSG上层加AGC二次调频信号或者做SOC恢复策略让储能支撑完一次频率事件后还能自动把电量恢复回来。第三个是规模升级把“VSG风储”封装成子系统多实例化成风电场级多机并联研究多台VSG之间的功率分配和振荡模式。这三个方向都不用推翻现有Simulink基础模型只是在原有骨架上加控制层次。这也是我坚持把控制逻辑做成独立子系统、用Goto/From总线组织信号的原因——扩展的时候不用动底层模型复制一个子系统再改参数就行。想深入的话还可以把平均值模型换成详细模型做硬件在环验证这就进入工程化阶段了。最后说点我自己的真实体会。VSG听起来是个很高端的策略但“虚拟惯量”这种东西你在Simulink里看它不过是积分器前面加了个增益真正让它有价值的是整套风储系统把它和储能、风机、预同步、限幅这些细节拼在一起之后的整体行为。我调试这条路踩过的坑一半在控制算法另一半全在数值仿真本身——步长、初始值、限幅、求解器哪个偷懒哪个翻车。如果你也在搭类似的系统我的建议就三条先用平均值模型把控制逻辑跑通每次只改一个参数并记录波形把预同步和限幅这些“脏活”做扎实。这三条做到你的风储VSG仿真基本就稳了剩下的大把时间可以留给后续的控制策略创新。
返回列表