十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

光伏储能VSG微电网Simulink建模:从MPPT到并离网无缝切换全解析

光伏储能VSG微电网Simulink建模:从MPPT到并离网无缝切换全解析 这两年微电网圈子里VSG这个词出现频率高得吓人。光伏、风电这类新能源装机比例一上来电网惯量不够的毛病就藏不住了负荷一抖频率跟着抖再厉害点还可能触发保护跳闸。于是很多人把目光转向虚拟同步发电机Virtual Synchronous GeneratorVSG这招——让逆变器模仿传统同步发电机的外特性把惯量和阻尼“装”回电力电子变换系统里。今天这篇我用Simulink把一个光伏储能VSG系统从零开始拆开讲光伏侧MPPT、储能侧双向DC/DC稳压、VSG功率控制、并离网无缝切换每一步都给出能直接抄走的参数和调试经验。无论你是做微电网课题的学生还是搞新能源变流器开发的工程师这套东西都能帮你在Simulink里落地一套能跑、能看波形、能写进论文或方案书的硬核模型。我先把话放在前面这篇不是科普PPT是建模型、调参数的实战记录。我默认你手上已经装了MATLAB/Simulink和Simscape Electrical库旧版叫SimPowerSystems版本R2020b以后都行。如果连Simulink基本操作还不熟建议先拿官方自带demo跑两遍再回来不然下面的一些设置你可能会懵。1. 为什么要用VSG微电网的“惯量焦虑”与虚拟同步机的解法1.1 光伏逆变器“太听话”反而是问题传统电力系统里汽轮机、水轮机带着同步发电机转转子上有巨大的旋转质量电网频率一旦变化转子的动能会自动吸收或释放把频率变化速度拖慢这个天然能力叫惯量。新能源并网用的电力电子变流器没有旋转部件响应快得惊人——但这恰恰成了毛病电网频率波动时它只会按控制指令输出功率既不“拉一把”也不“稳一稳”整个系统的等效惯量直线下降。我见过不少实际项目中遇到的情况一个园区微电网里光伏占比超过60%大负荷投切的瞬间频率直接跌到49Hz以下备自投都来不及动作。原因很简单光伏逆变器的最大功率追踪MPPT策略只盯直流侧功率对电网频率基本没反应储能PCS虽然能出力但没有模拟同步机特性的控制层出力是“直来直去”的很容易过冲。这就是VSG要解决的问题通过控制算法让逆变器展现出跟同步发电机类似的外特性——有功功率对应频率、无功功率对应电压并且带惯性和阻尼。说白了就是用软件造一个“数字飞轮”。1.2 VSG控制里面到底藏着什么VSG的核心是同步发电机的二阶转子运动方程标幺值形式大家见得最多的是这一组J * dω/dt Pm - Pe - D * (ω - ω0)dθ/dt ω其中J是虚拟惯量D是阻尼系数Pm是机械功率指令并网模式下对应有功指令PrefPe是电磁功率实际输出有功ω是虚拟角速度θ是逆变器输出电压相位。另一条腿是励磁调节对应无功功率与电压幅值的关系常用无功电压下垂E E0 kq * (Qref - Q)其中E是虚拟电势幅值E0是额定电压幅值kq是无功下垂系数Qref和Q分别是无功功率指令和实际无功。这两组方程搭出VSG的“骨架”。Simulink里实现时我没有用复杂的自定义s函数而是直接用积分模块、比例模块和数学运算模块搭原因有两个一是后续改参数、给师弟师妹讲解都方便二是避免mex编译在不同版本MATLAB下的兼容问题。后面第3章我会把搭法拆开。1.3 为什么要用Simulink做这套仿真市面上能用的仿真工具有不少PSCAD、Matlab/Simulink、PLECS各有粉丝但做光伏储能VSG微电网我首选Simulink。理由很实际光伏阵列、电池、双向DC/DC、PWM变流器这些在Simscape Electrical里都有现成模型能直接拖出来用MATLAB脚本做参数扫描、数据后处理也顺手再加上VSG控制本身是离散控制逻辑和连续物理模型的混合体Simulink对这种多速率系统天然友好。更重要的是Simulink的“外部模式”和代码生成能力能跟实物控制器对接。我身边做工程的朋友很多是先在Simulink里把VSG控制逻辑调通然后直接用Embedded Coder生成C代码下到DSP或PLC里跑模型和实物的控制结构完全一致省掉了手工移植的坑。这也是我坚持不用黑盒模块、坚持搭出“能看懂”的模型的原因——模型越透明后面移植和调试越省心。2. 模型整体设计光伏储能VSG逆变器的三层架构2.1 从物理拓扑到仿真框图先把系统拓扑说清楚。一个典型的光伏储能微电网直流侧是两路电源并联在直流母线上一路是光伏阵列接Boost升压电路另一路是储能电池接双向Buck/Boost电路直流母线再接一台三相VSG逆变器经过LCL滤波后接入交流母线。交流母线可以带本地负载也可以通过并网开关跟大电网相连。这个拓扑在设计仿真框图时我习惯把它拆成四块光伏发电单元光伏阵列模型 MPPT控制器 Boost变换器储能单元电池模型 双向DC/DC 母线电压控制VSG逆变单元三相逆变桥 VSG功率控制器 电压电流双闭环 PWM生成交流侧网络LCL滤波 负载 并网开关 电网模型用三相电压源等效每一块单独封装成子系统端口留清楚调试时一块一块加。我吃过亏第一次搭的时候贪快把所有模块铺在一个画布里结果信号线扯得像蜘蛛网查一个错误眼都快瞎了。封装子系统的习惯一定要养成。2.2 三个控制环路的分工这套系统里控制环特别多我建议你脑子里先建立一个层次感不然容易绕晕。最外圈叫“系统级控制”决定VSG该出多少有功、多少无功。并网模式下直接给有功指令Pref和无功指令Qref离网模式下则不加功率指令而是靠VSG的下垂特性自动承担负载功率。中间一层“设备级控制”包括VSG内部的虚拟转子计算、电压外环、电流内环以及储能双向DC/DC的母线电压环。设备级控制负责把系统级决策变成实实在在的PWM占空比。最内层“器件级控制”就是脉冲生成与保护逻辑。三层时间尺度差异明显惯性响应是秒级到百毫秒级电压电流内环是毫秒级PWM开关周期则是微秒级。Simulink里的变步长求解器能处理好这种多时间尺度问题但如果你用定步长步长最好不超过1微秒否则模型容易数值发散。2.3 一组能直接开跑的初始参数我给出一套我实际调试过的参数作为基线后面每一章的分析都以这套参数为准参数名称数值说明光伏阵列额定功率100 kW由多块光伏板串并联组成储能电池额定容量200 Ah / 800 V初始SOC设为80%储能最大充放电功率±50 kW受双向DC/DC容量限制直流母线额定电压750 V储能电压环控制目标交流线电压有效值380 V / 50 Hz三相四线制逆变器开关频率10 kHzVSG三相桥Boost开关频率10 kHz光伏侧双向DC/DC开关频率10 kHz储能侧LCL滤波电感L10.35 mH逆变器侧LCL滤波电感L20.12 mH网侧LCL滤波电容Cf30 μF星型连接虚拟惯量J0.5 kg·m²标幺化后约H2s阻尼系数D20 N·m·s/rad对应阻尼比约0.7这套参数不算极限设计胜在稳定、好调、收敛快。后面你如果想做高功率密度方案可以在理解了每个参数的角色之后再去压榨性能但一开始老老实实用这套能少走很多弯路。3. 核心模块实操搭建从MPPT到VSG再到稳压环3.1 光伏阵列模型与MPPT参数光伏阵列在Simscape Electrical库里有现成模块在“Simscape Electrical Specialized Power Systems Renewable Energy”路径下能找到PV Array。模型需要填的参数包括开路电压Voc、短路电流Isc、最大功率点电压Vmp、最大功率点电流Imp以及串联/并联数量。我用的是一块250W组件Voc37.5VIsc8.9AVmp30VImp8.33A12块串联、34块并联凑出约100kW。MPPT我用的是扰动观察法逻辑简单、效果够用。核心代码生成在一个MATLAB Function模块里先用电压和电流计算出当前功率再跟上一拍功率做差进而决定下一拍是增大还是减小参考电压。需要注意两个细节采样频率不用太高Boost开关频率的1/10左右足够也就是1kHz。MPPT本质上是在寻找稳定工作点响应太快反而会在最大功率点附近来回震荡。输出给MPPT的是“电压参考值”不是直接给占空比占空比由Boost的内环电压电流控制去跟随这个参考值。这个分层设计能避免MPPT的扰动直接打乱Boost电流波形。在仿真里如果想验证MPPT的动态响应可以给光照强度加一个阶跃信号比如运行到2秒时从1000W/m²突降到600W/m²。这时候你会看到MPPT参考电压开始爬坡搜索新工作点光伏输出功率平滑过渡——这就是后面VSG要做“功率无缝跟踪”的前提之一上游功率变化不能是突变脉冲要带有一定斜率。3.2 储能双向DC/DC与直流母线稳压储能单元是整个直流母线电压的定海神针。光伏出力忽高忽低负载功率说不定什么时候就跳变直流母线要稳住750V靠的就是储能电池快速充放电来平衡功率差。双向DC/DC的控制结构是经典的双闭环外环是母线电压PI内环是电感电流PI。电压环的输出作为电流环的参考正负号决定电池是充电还是放电。在Simulink里我建议把双向DC/DC用两个IGBT/二极管模块对顶来实现也就是半桥结构通过控制上管和下管互补导通的占空比来实现升降压双向流动。调PI参数时有个经验值可以参考电压环带宽取50~100Hz电流环带宽取1~2kHz两级之间拉开10倍左右的频率距离避免环路互相干扰。电压环PI系数可以先粗调Kp取0.5~2Ki取10~50具体数值跟你的电压标幺化方式有关建议在模型里做标幺化电压和电流都除以额定值这样PI参数更容易跨项目复用。母线稳压一个比较关键的动作是“前馈补偿”。我见过很多同学只靠电压环PI硬扛负载突变结果电压跌落300ms才回来实际系统里这早就触发低电压保护了。正确的做法是把VSG输出的有功功率瞬时值除以母线电压折算成储能需要承担的电流前馈分量叠加到电流内环的参考端。这样负载一变化储能电流立刻响应电压跌落能压到很小。3.3 VSG功率环和虚拟惯量参数VSG控制器是整个系统的灵魂在Simulink里我把它拆成三个子模块有功频率环输入是有功功率指令Pref和实测有功功率Pe两者做差后经过一个惯量积分环节得到虚拟角速度ω。公式就是前面的转子运动方程我把J和D做成两个可调的常量模块方便后面做参数扫描。阻尼环节的输出是D*(ω-ω0)这部分本质上是给频率偏差加了一个“刹车力”防止虚拟转子一直加速。无功电压环输入是无功指令Qref和实测无功Q通过下垂系数kq叠加到额定电压幅值上得到虚拟电势E。相位生成虚拟角速度ω经过积分得到相位θ这个θ就是Park变换里用来做坐标变换的角度。这里有个关键细节——离网模式下θ完全由VSG自己积分生成系统是自持的并网模式下θ要先跟电网锁相环PLL得到的角度做预同步合闸后再切换到VSG自己生成的θ。这个切换如果做不好并网瞬间电流会爆表。虚拟惯量J和阻尼D的选取我的方法很直接先定阻尼比。把VSG等效成典型的二阶振荡系统阻尼比取0.6~0.8之间然后根据J和D的关系去配。标幺化方程里J值越大频率变化越慢但动态响应也越肉D值越大频率偏差越容易被拉回但可能引入振荡。我给的基线参数J0.5、D20对应的系统响应在负载突变时频率最大偏差约0.3Hz恢复时间约0.8s作为一次调频效果是合格的。调参数时建议做一组扫描仿真用Simulink的“Parameter Sweep”在J从0.1到2、D从10到50的区间里跑几组看频率和功率的动态曲线挑选超调量小、平稳性好的组合。3.4 从VSG到PWM电压电流双闭环VSG算出来的虚拟电势E和相位θ经过三相合成得到电压参考信号但这个信号不能直接送给PWM发生器中间还必须过一道电压电流双闭环目的是提高逆变器输出电压的动态精度、抑制滤波电感带来的谐振峰。电压外环和电流内环我全部用PI控制器在dq同步旋转坐标系下实现。电压环输入是d/q轴电压参考和实测电压的误差输出是d/q轴电流参考电流环再把电流误差换算成d/q轴占空比指令最后经过反Park变换得到三相调制波跟三角载波比较生成PWM脉冲。双闭环的一大坑点是滤波环节容易引发谐振。LCL滤波器在谐振频率附近有较明显的增益尖峰如果控制器没有阻尼措施系统可能在某些频率上出现持续的振荡功率波形上表现为叠加的高频纹波。我调试时最常用的办法是给电容支路加一个小的无源阻尼电阻或者在有源阻尼不够的情况下先把LCL简化成单L模型确认系统稳定后再把电容支路加回来。电压环PI参数我建议先解耦再整定。把d轴和q轴的电流交叉耦合项在控制器里补偿掉然后电压环带宽取200Hz左右电流环带宽取2kHz左右相位裕度保持在45度以上。经过这样整定的双闭环既能跟上VSG功率环给出的电压参考变化又不会把开关纹波放大到输出波形里。4. 功率无缝跟踪与直流稳压仿真验证与结果解读模型搭完了参数也设好了仿真跑起来之后我们要看什么、怎么判断系统行不行我设计了三个最典型的测试场景基本能覆盖实际微电网90%的运行工况。4.1 场景一光伏功率突变母线电压能稳住吗设置光照强度在t2s时从1000W/m²骤降到600W/m²光伏输出从100kW跌到大概60kW中间有个约0.5s的MPPT搜索过渡过程。观察点有三个光伏输出功率波形、储能电池充放电功率波形、直流母线电压波形。正常的结果是这样光伏功率开始下跌的同时母线电压有轻微下探趋势储能电压环立刻检测到偏差电池从轻载放电状态加大放电功率补上约40kW的缺口母线电压最大跌落控制在20V以内并在0.3s内恢复到750V附近。VSG输出到交流侧的功率则几乎不受影响保持跟指令一致这就是“功率无缝跟踪”的体现——交流侧看不出光伏波动。如果仿真结果里母线电压跌得很深比如超过50V大概率是储能电流内环前馈没加或者电压环PI过软。这时回头检查3.2节的前馈补偿环节。4.2 场景二负载批量投切频率和功率怎么响应交流侧本地负载在t3s时从100kW突增到150kW多出50kW的缺口。在VSG控制下虚拟转子会因为功率不平衡而转速下降频率慢慢往下掉同时VSG的阻尼环节感知到频率偏差后产生制动功率让频率变化趋缓。储能侧感应到直流母线电压变化后补充直流功率最终VSG输出功率增加到150kW频率稳定在49.8Hz左右进入新的稳态。我特别建议你在这组仿真里同时把虚拟角速度ω和实测频率的波形调出来看。你会看到ω的变化是带有斜率的而不是像传统下垂控制那样瞬时跳变——这就是VSG惯量在起作用对实际电网设备是友好很多的。多提一句无差调节和一次调频之间的平衡纯VSG离网运行是做不到频率完全回到50Hz的它本质是一次调频存在静差。想要频率无差需要在外层再加二次调频积分环节这个在微电网调度里叫AGC今天先不展开。4.3 场景三并网到离网的“无缝切换”这个场景是最有工程难度的一环。模拟t5s时并网开关断开微电网转为孤岛运行。如果在断开瞬间VSG输出电压和电网电压相位不一致那冲击电流会非常大甚至直接触发过流保护。我的做法是加一个预同步控制在并网开关断开之前就把VSG输出电压的幅值、频率和相位逐步向电网电压对齐。预同步的具体逻辑是用PLL锁定电网电压角度把VSG输出电压角度和电网角度之差输入到一个慢速PI调节器叠加到VSG有功环的频率补偿上让相位误差慢慢趋近于零。相位差小于2度且幅值差小于2%时才允许发合闸信号。在Simulink里做这个场景难点不在控制逻辑而在仿真事件触发。我用的是三相断路器模块设置t5s断开但断开前0.5s就启动预同步使能确保断开瞬间相位误差已经足够小。仿真结果显示切换瞬间交流电流最大冲击不超过额定电流的1.2倍直流母线电压波动不超过30V储能功率、光伏MPPT、VSG逆变器三个环节都没有出现失控现象——这个结果在实际工程里已经属于相当好的并离网切换品质了。4.4 从波形反推控制环的性能波形不只是拿来截图发朋友圈的要学会反推。比如你打开直流母线电压波形的FFT分析如果750V分量上叠着100Hz纹波说明储能电流环对二倍频功率脉动的抑制不足需要再提高电流内环增益如果VSG输出有功功率波形在稳态时带有低频振荡尾巴那就说明J和D的配比偏临界了要么减小J要么增大D。还有一个很容易被忽略的观察点储能电池SOC曲线。如果一段仿真后SOC掉得离谱说明你的储能容量参数跟功率等级不匹配或者控制策略把电池长时间推到了极限。真实系统里电池SOC低于20%就该切策略了仿真里也要留意这个边界。5. 常见问题与排查技巧实录5.1 一张图看懂仿真报错和波形异常的排查路径我自己调试这套模型时踩过不少坑整理成一张速查表按“现象→原因→处理”的思路来写基本覆盖了新手最常碰到的几类问题现象可能原因处理办法仿真一开始就报“Algebraic Loop”信号回路缺少单位延迟或Memory模块在功率观测、电压参考等反馈回路上加Unit Delay打断代数环波形出现高频毛刺且不收敛求解器最大步长太大将变步长最大步长降到1e-5s或改用ode23tb求解器并网瞬间电流冲击巨大预同步未启用或相位差过大检查合闸前相位误差先使能预同步再合闸直流母线电压稳态跌落偏大储能电压环PI过软或前馈缺失提高电压环带宽检查有功功率前馈信号是否接入电流环参考VSG输出有功功率持续振荡J和D参数配比不当做参数扫描优先增大D再适度减小J光伏MPPT搜索过度振荡扰动步长过大或采样率过高降低MPPT采样频率减小电压扰动步长离网时交流电压幅值偏低无功下垂系数kq过大减小kq或检查Qref是否设置合理这张表里的每一项我都实际遇到过头两种。最难查的是代数环问题因为报错信息很长但本质就是反馈环里少了延迟。我的建议是搭模型的初期就养成习惯凡是走Simscape物理信号的地方能用PS-Simulink Converter转成普通信号后就顺手串一个Unit Delay成本极低换来的是后面调试的清净。5.2 参数整定的“手感和节奏”PI参数整定没有万能公式但有可复制的节奏。我调这套系统时的顺序永远是“从内到外”先把储能电流内环调稳再看母线电压环把VSG电流内环调稳再看电压环最后才碰功率环和虚拟惯量。第一步断掉外层控制给电流环一个阶跃参考观察电流跟踪是否快且无超调把PI调到电流稳态误差为零、动态过程一个波峰以内。这一步不满意后面全白搭。第二步闭合电压环给母线电压一个参考阶跃观察电压响应是否平稳。电压环带宽要低于电流环否则两个环路会“打架”。第三步进入VSG功率环先给固定有功无功指令观察启动过程和稳态精度。最后再加惯量参数和预同步做并离网切换测试。整个过程中我会频繁使用MATLAB脚本批量改参数而不是在Simulink界面里一个个点。把参数定义在脚本里用“模型参数”的方式关联到Simulink模块跑完一组就自动存波形数据效率至少快三倍。5.3 容易被忽略的模型规范问题模型能出波形只是第一步作为给别人看、放进论文或者交付给同事的项目规范性问题同样重要。我审过不少学生的模型最常见的问题有三个第一标幺值和有名值混用。有的模块KV、A为单位有的模块直接用标幺值PI参数很容易因此乱套。我个人的习惯是物理层用有名值控制层内部全部用标幺值在接口处做转换。第二仿真时间和开关频率不匹配。有人一上来就要跑10秒仿真开关频率10kHz变步长求解器为了捕捉每个开关动作步长压得极低结果仿真跑了半小时还在17%。这种情况我的做法是先用5kHz开关频率跑通逻辑波形没问题了再回到额定值做精仿真。第三观测信号没有滤波直接进控制器。VSG需要的是有功、无功的平均值但直接测量值是带纹波的瞬时值如果不加低通滤波或者用平均值模块功率环会被纹波干扰出现抖动甚至振荡。我通常在采样模块后面加一个50Hz截止频率的二阶低通滤波器效果非常明显。模型这个东西跑得快不如跑得对跑得对不如能跨平台移植。上面这些规范习惯能保证你半年后回头还能改得动自己的模型——这个价值在工程项目里比多跑几组漂亮波形重要得多。最后多说一句我个人的体会VSG这套技术真正难的不是算法本身而是把算法跟物理系统放在一起时的各种“边角细节”。预同步怎么做、前馈怎么加、滤波器怎么选这些在课本上往往只是一句话但实际调试时才是决定成败的地方。希望这篇Simulink拆解能帮你把这些坑提前绕过去少烧点头发。
返回列表