ARTICLE DETAIL

资讯详情

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

虚拟同步发电机离并网无缝切换仿真模型搭建与调参实战

虚拟同步发电机离并网无缝切换仿真模型搭建与调参实战 我最早开始搭虚拟同步发电机仿真模型就是被“离并网无缝切换”这件事逼的。分布式光伏、储能这类逆变器挂在电网上电网正常时还好一旦电网断电或重新恢复控制模式一换电压和电流常常跳得像过山车。传统PQ控制切到V/f控制相位对不上并网瞬间冲击电流能到额定电流的好几倍保护直接跳闸。后来我把目光转向虚拟同步发电机把同步发电机的转子运动方程搬进逆变器控制里让逆变器自己具备惯性和阻尼再用MATLAB/Simulink搭了一套完整的离网并网无缝切换模型这个问题才算真正有了可复现的解法。这篇内容不打算讲太多理论推导重点分享我自己搭建这套仿真模型时的整体思路、核心控制实现、切换逻辑以及我在仿真过程中踩过的坑和调参经验。不管你是做微电网控制、储能变流器还是刚接触VSG想找个能跑的模型做课题参考这套建模方法和排查思路都应该能帮上忙。1. 为什么要为离并网切换搭建 VSG 仿真模型1.1 VSG 与常规逆变器的根本差异常规并网逆变器通常工作在PQ控制模式说白了就是一个受控电流源锁相环跟踪电网相位电流内环按给定的有功无功参考输出。这种控制简单动态响应快但它有一个致命弱点——没有惯性。电网频率一波动逆变器不会像同步发电机那样依靠转子惯性自动扛一下而是直接跟着功率指令走所以带不动电网的频率支撑。虚拟同步发电机则是把同步电机的机电暂态方程塞进逆变器控制里。经典二阶模型[ J\frac{d\omega}{dt} T_m - T_e - D(\omega - \omega_g) ]J是虚拟惯量D是阻尼系数Tm是机械转矩对应有功指令Te是电磁转矩对应实际输出功率。逆变器因此表现出跟真实发电机类似的频率响应频率突变时有惯性缓冲振荡时有阻尼消耗能量。更重要的是VSG本身天然输出电压源的特性离网时可以给负载提供稳定的电压和频率并网时又能参与有功无功调节这就给了无缝切换一个基础。我实测下来的体会是VSG相比传统双模式切换方案最大的优势不是某一个模式下的表现而是两种模式用的是同一套控制框架不存在“两套完全不同的控制器之间切换”的问题。切换的时候只需要调整参考值和预同步环节控制环路本身不用推倒重来冲击自然小很多。1.2 “无缝切换”到底难在哪不少人以为无缝切换就是把断路器一合、一断就完事仿真正常实际却一塌糊涂。这里面的核心难点有三个第一个是相位差。逆变器离网运行时输出电压相位由自己的振荡器决定交流器一般用锁相环跟踪电网。一旦电网失电又恢复两侧相位不会恰好一致如果直接合闸相位差引起的电压差会产生巨大的冲击电流。这跟两个交流电源并联的条件完全一样电压幅值、频率、相位必须满足条件否则就是硬性接线。第二个是控制参考值的突变。离网模式通常以额定电压和额定频率作为参考并网模式则要切换到功率跟踪有功和无功给的是目标功率。如果参考值在切换瞬间直接跳变电压电流双闭环会立刻产生纠偏动作相当于给系统来一记阶跃扰动。这种事前看起来很小的跳变反映到波形上就是电压凹陷和电流尖峰。第三个是模态切换逻辑本身的过渡问题。网侧断路器分闸之后VSG输出端与电网脱离这个时候锁相环锁的是本地电压又或者是电网侧残压切换数据源衔接不好控制模式在几个值之间反复跳变系统可能会在短时间内震荡甚至失控。所以真正做好无缝切换不是在“断”和“合”两个开关动作上做文章而是要把预同步、参考平滑、模式切换状态机这几样东西组合起来让控制环在几乎不变的前提下平稳过渡。这套模型的设计重点就落在这些环节上。2. 仿真模型的整体架构与参数选型2.1 主电路拓扑与关键器件参数我搭的这套模型用的是三相两电平电压型逆变器拓扑直流侧直接用理想直流电压源或带电容的整流源模拟逆变桥用Universal Bridge搭IGBT开关模型输出经过LC滤波器接本地负载再通过一个三相断路器连接模拟电网。断路器就是最直接的离并网切换执行机构同时也是故障注入的工具。主电路参数我一开始都按常规工程经验取后面根据仿真波形做了两轮调整最终一组能稳定工作的参数如下参数数值说明直流母线电压800 V留足调制裕度保证交流输出不削顶电网相电压幅值311 V380V线电压有效值电网频率50 Hz工频滤波电感L3 mH兼顾电流纹波和动态响应滤波电容C50 μF与L构成谐振频率约13kHz远离控制带宽开关频率10 kHz常用IGBT开关频率本地负载10 kW 2 kVar离网时由VSG独立带载滤波参数有个经验值LC谐振频率一般取开关频率的1/10到1/5这样既能有效衰减开关次谐波又不会让谐振峰落在控制带宽内。10kHz开关频率下L取3mH、C取50μF谐振频率约13kHz但实际仿真发现LC本身谐振峰容易和电流环交互所以我又在控制里加了一个有源阻尼项这个后面细说。直流侧电压的选择也要多说一句。三相SPWM调制时输出相电压幅值理论上最大是Vdc/2但要留出调制比余量一般取1.2倍以上所以800V直流对应311V相电压幅值是够的。如果你用SVPWM直流电压利用率能再提一截800V就更宽裕。2.2 控制系统分层设计与软件分工整套控制系统我按经典的三层结构来搭分层之后的好处是调试的时候哪里出了问题一目了然。最外层是VSG功率控制层输入是实测三相电压电流计算出的有功和无功功率输出是虚拟电动势的幅值和频率。这一层是整个模型的灵魂通过转子运动方程模拟同步机的惯性和阻尼同时加入有功—频率下垂和无功—电压下垂让系统具备一次调频调压能力。中间层是电压外环和电流内环。电压环对VSG生成的电压参考做跟踪输出电流参考电流环跟着电流参考走保证输出电流可控同时具备限流能力。这里用dq坐标系下的PI控制电压环带宽取400Hz左右电流环带宽取2kHz左右两个环差大约5倍避免环路之间相互干扰。最底层是PWM调制。电流环输出的dq电压参考经过反变换得到三相调制波再和三角载波比较生成IGBT开关脉冲。仿真里用离散PWM Generator采样时间设为1e-6跟实际控制器尽量贴近简单起见载波移相在单个VSI里不涉及。软件分工上我习惯把主电路全部扔在Simulink里控制部分也用Simulink图形化搭建但初始化参数统一放在一个MATLAB脚本里。这样改参数不用翻模型直接在脚本文件里改完运行一遍就生效方便批量跑不同工况。参数初始化脚本大致长这样%% 主电路参数 Vdc 800; Vg_amplitude 311; f_grid 50; w_grid 2*pi*f_grid; L_filter 3e-3; C_filter 50e-6; R_load Vg_amplitude^2 / 10000; %% VSG参数 J 0.1; D 20; Kpf 0.05; % 有功-频率下垂系数 Kqc 0.001; % 无功-电压下垂系数 tau_v 0.01; % 电压调节惯性 %% 控制器参数 kp_v 2; ki_v 100; kp_i 1; ki_i 50;模型搭建方面有个建议不要一开始就追求封装成Subsystem先摊开搭确认仿真结果对了再做Mask封装。否则信号线脚定义错了排查半天都不知道问题出在子系统内部还是外面。3. 无缝切换的核心控制实现3.1 离网模式V/f 独立支撑离网模式下VSG独立给负载供电它的控制目标是维持输出电压幅值和频率在额定值附近。我这里的VSG功率控制层在离网时的参考值是这样设置的有功功率参考Pref取实际负载功率的前馈值无功功率参考Qref也取负载无功需求的前馈值这样VSG基本上是一个带惯性的电压源电压环和电流环负责精确跟踪。但仿真里不可能知道负载功率所以我模拟真实工程的做法离网启动时给一个初始频率和电压参考然后靠下垂特性自动平衡负载。比如负载加重、输出有功增大由于转子运动方程里的不平衡转矩转速会略有下降频率跟着小幅度降低通过有功—频率下垂修正参考功率系统稳定运行。这个特性跟真实同步发电机完全一致也是VSG离网带载最突出的优势——能天然形成稳定的运行点。离网模式有一个细节非常关键瞬时功率计算需要滤波。直接拿瞬时电压电流乘积算出来的功率含有很多开关纹波和谐波分量如果直接送进转自方程频率会抖得厉害。我用的是一阶低通滤波截止频率设在50Hz左右既保住工频范围内的功率变化又滤掉高频分量。滤波器时间常数别太大否则切换过程中功率响应太慢会拖累模式切换的动态性能。3.2 并网模式功率跟踪与频率支撑并网模式下电网是大电网电压幅值和频率基本由电网决定VSG从电压源变成一台“跟着电网走的发电机”。这时候VSG的参考值与离网模式有本质区别有功参考Pref不再是负载前馈而是我们要向电网输送的目标功率无功参考Qref也变成目标无功指令电压幅值和频率则交给锁相环从电网获取。但VSG算法本身不用改还是那套转子运动方程。并网时电网频率通过锁相环实时输入转差率和功率差额共同决定转矩虚拟调速器通过下垂特性把有功功率稳稳压在Pref附近。频率只要偏移1Hz以内这种控制的并网功率响应已经很接近真实发电机了。并网和离网两个模式之间的切换逻辑我用的一个简单状态机靠断路器的分合状态来切换模式标签分闸时走离网参考合闸时走并网参考。Simulink里可以直接用两个Gain和一个Switch搭也可以用Stateflow做状态机我更推荐后者因为后续要加预同步状态、限流状态时Stateflow维护起来更直观。但有一点要特别注意模式切换不能只是参考值变了就完事还要给输出电压幅值和频率参考配一个缓慢的过渡斜坡。比如离网时频率参考是50Hz电网重新合上后频率参考变成电网锁相值这个差值如果直接阶跃就会让转子方程输入转速参考跳变电流必然冲一下。我在这里给频率参考和电压参考各加了一个速率限制器上升速率设置在额定值的10%每秒左右仿真波形就平滑很多。3.3 预同步与并网时刻选择并网断路器具不具备合闸条件主要看三个量电压幅值差、频率差、相位差。差得越小合闸冲击越小。理想情况下应该在电压过零时刻合闸但工程上很少用瞬时过零合闸低压断路器本身也有机械动作时间所以控制上通常依赖预同步调节把电压差和相位差压到很小后再合。我在模型里的预同步逻辑是这样实现的。系统通过锁相环得到电网电压的相位θgVSG输出电压相位θv直接用调制波相位角。两者的相位差Δθ θg - θv把这个差值送进一个PI调节器输出作为频率参考的修正量加到VSG的角频率参考上让VSG的输出相位缓慢向电网靠近。电压幅值差与预同步算法类似用PI调节器修正VSG电压参考幅值。具体逻辑用一个简单的比较器相位差绝对值小于0.01rad、电压差小于5V时输出一个“允许合闸”信号。这个信号和人工合闸指令共同作为断路器的控制输入。这样做的好处是操作员只需要给定一个合闸意图真正执行合闸动作要满足预同步条件避免人为误操作或后续扩展自动并网时可以加判断条件。并网瞬间还有一个细节合闸时刻如果VSG和电网的瞬时电压正好同相冲击电流是最小的。但在仿真中加入过零检测会增加模型复杂度所以我实际采用的是“条件合闸”只要幅值差和相位差达标就立即合闸。仿真结果表明只要相位差限制在0.01rad以内冲击电流不超过额定电流的10%完全可以接受。离网切换并网转离网相对简单。电网断电后断路器分闸VSG立刻从并网参考切换回离网参考。此时最需要注意的是功率突变并网时输出功率由Pref决定离网后输出功率由负载决定如果负载轻而Pref大频率会快速上升。我做了一个限幅切换瞬间频率参考以斜坡方式从50Hz过渡到离网参考值同时让VSG阻尼系数D在切换瞬间暂时增大相当于给频率波动多些阻尼帮助系统快速镇定下来。4. 仿真结果分析与典型问题4.1 切换过程的关键波形解读仿真工况我是这样设计的VSG离网带10kW负载稳定运行t1s时电网侧断电保持离网运行t1.5s时模拟电网恢复预同步完成之后在t1.8s左右合闸并网。整个过程的波形重点看输出电压、输出电流、有功功率和系统频率。离网转并网的过程里最有意思的是系统频率的响应。合闸前VSG频率在预同步作用下缓慢向电网频率靠拢合闸瞬间几乎没有看到频率跳变说明预同步的PI调节器工作得不错。有功功率从离网的负载功率平滑上升到并网的目标功率没有出现大范围的功率冲击。再看并网转离网的过程断路器分闸前VSG输出功率有10kW输给电网本地负载只有几个kW。分闸瞬间由于电网不再吸收功率全部输出功率涌向本地负载频率有一个短暂上冲但依靠VSG的虚拟惯量这个频率波动大概在0.5Hz以内而且振荡在几个周期内就衰减掉了。这就是VSG虚拟惯量最直观的体现换成PQ控制的逆变器这种突然甩荷的工况频率波动早就超出限值了。波形分析上我习惯抓两个点一是看切换瞬间有没有电流尖峰尖峰超过1.5倍额定电流就说明切换逻辑有问题二是看公共连接点电压有没有在切换瞬间跌落如果电压跌落超过5%多半是控制器切换瞬间参考值跳变或者瞬时功率滤波器响应跟不上。4.2 常见故障与排查技巧这套模型跑起来之后我陆陆续续遇到不少问题很多都是仿真特有的坑逐个说下。最典型的故障是切换瞬间电流直接爆表。第一次出现时我以为预同步没起作用后来把断路器合闸时间点拉出来跟相位差波形对比发现锁相环在电网恢复后有一个捕捉过程大约需要2-3个工频周期才能稳定跟踪。如果合闸指令在这几个周期之内就发出来相位差计算值其实不准合闸自然会产生冲击。解决办法是电网恢复后先等锁相环稳定再做预同步判断。第二个常见问题是代数环。用Switch切换不同控制参考时如果后面的计算在同一个仿真步内又要用到这个切换结果Simulink会提示存在代数环严重时模型会卡死。我原来的模型在模式状态切换那里就遇到了这个。解法很简单在切换逻辑和VSG方程之间插入一个Memory模块或单位延迟把直接馈通断开仿真立刻正常。第三个问题是离网模式下本地负载比较轻的时候VSG输出电压波形会出现明显的振荡纹波。排查后发现是瞬时功率滤波时间常数太大功率计算延迟导致电压调节环发生了低频振荡。把滤波时间常数从0.1s改小到0.05s问题解决。如果还振荡可以适当增大阻尼系数D减小虚拟惯量J。第四个问题不容易发现就是仿真求解器的步长设置。如果默认用ode45变步长VSG这种机电耦合系统在切换瞬间容易发生步长收缩导致波形毛毛糙糙甚至数值发散。后来我把求解器改成固定步长的ode3或ode4步长设为1e-5秒整个切换过程就算稳定了。固定步长还有一个好处就是和离散PWM控制器的采样频率对齐结果更符合实际。我把容易碰到的问题整理成一个速查表方便你对号入座现象可能原因排查方向合闸瞬间电流爆表预同步未完成或锁相环未稳定检查合闸指令时刻的相位差模型卡死或仿真超慢代数环断开直通信号加Memory/Delay离网电压波形振荡功率滤波时间常数过大减小滤波时间常数增大阻尼切换后频率持续漂移下垂系数和惯量匹配不当重新计算J和D的比值锁相环在离网时乱跳本地电压谐波或者幅值突变断开锁相环前置输入或加陷波器合闸后功率来回摆动预同步PI参数过强降低预同步PI的比例增益4.3 参数调优的实践经验参数调优是这套模型能不能达到“无缝”效果的关键我踩了很多次坑才总结出一点规律。虚拟惯量J直接影响切换过程中的频率动态。J越大频率变化越平缓但动态响应变慢而且功率振荡容易发散。我调试的经验是先保持D不变从小往大调J观察离网突加负载时的频率下降程度和恢复时间找到一个频率最低点不超过额定值5%、恢复时间在0.5s以内的值。第一次试的时候J取到0.5频率倒是很平但并网功率振荡了七八个周期才衰减果断减到0.1波形就干净了。阻尼系数D要单独配合调整。D代表虚拟阻尼频率偏差引起的阻尼转矩越大振荡衰减越快。但有得就有失D太大会让VSG在并网时表现出“太硬”的特性有功功率对频率变化的响应不够自然。我最终取J0.1、D20配合仿真波形看突加负载频率下坠约0.3Hz振荡2-3个周期恢复这个动态特性已经很接近同等级柴油发电机了。下垂系数的选择要参考微电网对一次调频调压的指标要求。有功频率下垂Kpf设0.05表示每多承担10kW功率频率下降0.1Hz。无功电压下垂Kqc设0.001意味着每增加1kVar无功电压幅值下降约1V。最初我按资料取了Kpf0.02结果离网负载加重时频率下降了0.6Hz超出了国标里离网频率允许偏差的常见要求所以调成0.05以后才达标。这个参数跟机组容量是强相关的如果换台50kW的变流器下垂系数要按同样的比例关系重新算。预同步PI参数不少人会忽视其实它对并网瞬间的平顺度影响很大。比例系数太大会导致相位调节过冲VSG频率围绕电网频率来回摆迟迟满足不了相位差小于阈值的条件太小又让预同步过程拖得很长电网恢复后迟迟合不上闸。我的调法是一个经验值先给一个较小的比例系数如0.5观察相位差收敛速度再逐步增大直到既能快速收敛又不会过冲为止。最终用kp_ps1、ki_ps10实测0.3s内相位差从20度收敛到0.5度以内。电压外环和电流内环的参数看起来没有功率环那么敏感但不要再忽视它在切换时的作用。电压环如果带宽太低切换瞬间电压参考小幅跳变就会产生很长的调节过程电流环的限幅对切换瞬间电流保护很关键。我把电压环PI的限幅设成电流参考的上限电流环输出限幅设成调制波上限的1.1倍起到了软限流作用即使预同步极端条件下出了点问题电流冲击也压得下来。另外强烈建议在仿真模型里加一个录制模块负责把每一轮仿真的电压、电流、功率数据自动保存成MAT文件。调参的时候不用每次都盯着Scope看波形跑完一组参数直接对比数据效率会高很多。我用一个简单的初始化脚本批量循环跑几十组参数组合让MATLAB自动记录切换瞬间电流峰值和频率最大偏差再从中挑一组最小的组合。这个批量扫参的方法比手工来回试参数靠谱得多。最后的实践经验总结这套VSG离并网无缝切换模型从最初连波形都跑不稳到后来能在几百组参数里稳定复现无缝切换我花的最多时间不在代码和模型搭建上而是在调试“切换瞬间”那几百毫秒的动态过程。现在回头看最值得重视的几件事是预同步和锁相环一定要分开调试、切换逻辑和功率计算之间一定要加延迟断环、固定步长求解器虽然慢一点但波形可靠。如果你打算在自己的课题或者项目里复现这套模型我的建议是先照着这个框架把离网带载跑稳再测试并网功率跟踪最后再去调离并网切换的细节。最后再分享一个小技巧仿真模型里设一个“预同步完成”信号作为断路器合闸的条件调试的时候把这个信号引到Scope上和合闸指令放在一起看时序几乎所有并网冲击问题都能一眼定位。别问我为什么知道都是被波形冲出来的经验。
返回列表