ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

构网变流器与同步电机交互:低惯量系统频率稳定仿真指南

构网变流器与同步电机交互:低惯量系统频率稳定仿真指南 做新能源并网仿真这几年我有个很深的体会以前分析电力系统稳定绕不开“转子”这两个字现在分析新能源接入问题往往变成“没有转子怎么办”。构网变流器Grid-Forming Converter之所以在各种技术讨论里频繁出现核心就是因为低惯量系统下的频率稳定问题已经绕不过去了。风机、光伏通过电力电子接口接入电网它们不提供物理旋转质量系统惯量变低同样的扰动下频率变化率RoCoF会明显变大甚至触发低频减载。这篇文章我想完整梳理一遍构网变流器是如何在低惯量场景里“补位”的重点放在它和同步电机之间的交互机制上——这恰恰是很多仿真项目里最容易被忽略、也最容易踩坑的地方。文章会给出Simulink模型的搭建思路、核心控制参数计算方法以及一批可以直接拿去用的Matlab代码片段。适合正在做微电网仿真、新能源并网研究或者刚接触构网控制、虚拟同步机但还没把原理和仿真串起来的读者。1. 低惯量系统到底“低”在哪同步电机的机械转子不是摆设1.1 从惯量到频率转子运动方程是所有分析的起点要理解构网变流器的重要性先得理解同步电机的转子在电网里扮演什么角色。它的物理意义很简单转子有质量、在转所以它储存动能。当系统里出现功率缺额时比如一台发电机跳闸或者一个大型负荷投入同步电机会把转子的部分动能释放出来抵抗频率下降。转子运动方程一般写成2H · (dω/dt) P_m - P_e - D(ω - ω_0)这里的H是惯性时间常数单位是秒代表转子储存的动能除以额定视在功率。汽轮发电机H通常在3到5秒之间水轮发电机在2到4秒之间。如果系统突然损失ΔP的有功功率频率变化率近似为df/dt ≈ f_0 · ΔP / (2H · S_B)举个例子一个1000MVA的系统H4s损失了100MW的发电功率那么RoCoF大约是50×100/(2×4×1000)0.625 Hz/s。这已经很剧烈了。如果H降到1sRoCoF直接变成2.5 Hz/s继电保护、汽轮机叶片、负荷都会面临严峻考验。这就是低惯量系统的“病根”大量同步机被变流器替代后H整体下降系统的频率响应变得“脆”。1.2 电力电子接口为什么不天然提供惯量风机和光伏并网用的逆变器在没有构网控制时本质上是个受控电流源。它通过锁相环PLL跟踪电网电压的相位按功率指令输出电流。这种控制方式下逆变器对电网来说像是一个“跟跑者”它没有自己的旋转质量也就没有天然的惯性响应。直流母线电容虽然能储存一点能量但容量极小。你可以算一笔账一个1MW、直流电压1100V的变流器直流侧电容通常只有几毫法储存的能量大约0.5×0.01×1100²6050J。而一台1MW的同步电机H2s的话转子动能就是2×1,000,0002,000,000J差了三个数量级。指望电容给系统提供惯量完全不现实。所以低惯量系统的本质问题不是缺少“能量”而是缺少“按物理规律自动释放能量的机制”。同步电机会自己响应频率变化而变流器不会——除非你在控制算法里给它“制造”一个虚拟转子。2. 构网变流器的工作逻辑把自己当成一台发电机2.1 跟网型与构网型的本质差异先理清概念。传统的并网逆变器控制称为跟网型Grid-Following, GFL它的特点是必须有电网电压作为参考通过PLL锁定相位然后控制电流。构网型Grid-Forming, GFM恰恰相反它自身就是电压源输出一个幅值和相位可控的电压不需要PLL去“看”电网。我做了个对比表方便直观理解特性跟网型GFL构网型GFM输出特性受控电流源受控电压源同步方式PLL跟踪电网相位功率平衡自动同步是否需要电网电压必须可以独立建压弱网适应性弱网下PLL易失稳在弱网下仍可运行惯量贡献无自然惯量通过控制算法模拟惯量典型应用常规风电、光伏微网主电源、孤岛供电2.2 下垂控制与虚拟同步机两种构网实现路线构网控制不是某一种固定算法而是一类策略。最常见的两种第一种是下垂控制。原理很简单有功功率增大的时候频率降一点无功功率增大的时候电压降一点。这就是同步发电机的一次调频调压特性。它实现简单响应快但缺乏惯性滤波效果频率变化会很“直给”。第二种是虚拟同步机VSG / Virtual Synchronous Machine。它在频率控制环里直接放一个转子运动方程J · (dω/dt) T_m - T_e - D(ω - ω_0)这里的J不再是物理转子的转动惯量而是虚拟转动惯量你可以任意设定。通过这个方程变流器的输出频率会像真实同步机一样受到功率差额的驱动而“缓慢”变化从而表现出惯性。需要提醒一下这里说的“虚拟同步机”和永磁同步电机PMSM的“同步电机”完全是两码事。永磁同步电机参数辨识是电机驱动领域的课题而虚拟同步机是一种电网接口控制策略不要搞混。很多人搜索“构网变流器 同步电机”的时候其实想看的既包括“构网控制如何模拟同步电机”也包括“构网变流器和物理同步电机并联时如何交互”这两层我们都会讲到。2.3 构网变流器的“内环”也很关键构网控制的顶层是功率环和虚拟惯量环但它最终输出的是一组电压指令。要让变流器真正把这个电压发出来还得有电压电流双闭环。外层电压环控制LC滤波器的电容电压内层电流环控制电感电流最后通过PWM生成开关信号。还有一个经常被忽略的模块——虚拟阻抗。构网变流器作为电压源如果输出阻抗太小并联运行时均流效果差还容易引发环流。通过在控制环里串入虚拟阻抗通常是虚拟电阻虚拟电感能改善阻尼和均流特性。这个虚拟阻抗可以理解为“给电压源外挂一个看不到的阻抗”它的值直接影响构网变流器的外特性也会影响后续与同步电机的交互行为。3. 交互机制解密两台“电压源”在弱网里的博弈3.1 同步电机与构网变流器并联谁跟随谁当构网变流器和一个同步电机在同一个微网或局域电网里并联运行时两者都是电压源。同步电机靠转子的物理运动完成同步构网变流器靠功率环的控制算法完成同步。两个电压源之间的功率流动由两者的电压幅值和相位差决定P (E1 · E2 / X) · sin(δ)这里的δ是两者之间的功角差X是联接电抗。有功功率总是从相位超前的设备流向相位滞后的设备。如果构网变流器输出的频率高于同步电机它的相位会逐渐超前输出功率变大从而被“拉回”来反之亦然。这个负反馈过程就是同步机制的本源。3.2 小扰动下的模式交互把同步电机和构网变流器放在一个简化两机系统里分析我们可以得到很有意思的结论。把两个设备的摇摆方程等效合并系统的动态可以用下面的二阶模型描述2H_eq · (d²δ/dt²) D_eq · (dδ/dt) K_s · δ 0其中H_eq是等效惯性时间常数包含了同步电机的物理惯量和构网变流器的虚拟惯量之和D_eq是等效阻尼系数包含了同步电机的阻尼绕组效应和构网控制里的阻尼项K_s是同步转矩系数由运行点、电压幅值和联线阻抗决定。自然振荡频率和阻尼比可以写为ω_n sqrt(K_s · ω_0 / (2H_eq))ζ D_eq / (2 · sqrt(2H_eq · K_s / ω_0))这里能看到很关键的trade-off虚拟惯量J取得大H_eq增大低频振荡频率变低有利于减小初始RoCoF但如果阻尼D_eq没有同步匹配系统会更“摇晃”振荡衰减变慢。反过来J取得太小频率变化太快又失去了构网控制的意义。在实际仿真里我见过不少项目把虚拟惯量调到很大然后发现系统在扰动后出现长时间的低频功率振荡。原因就是阻尼参数没跟上。正确的做法是J和D一起调让阻尼比保持在0.4到0.7之间比较理想。3.3 弱网场景短路比、电压支撑与交互振荡弱电网场景更能体现构网变流器和同步电机的交互问题。短路比SCR低意味着电网阻抗大同步电机在这个网络里的稳定裕度本就受限构网变流器接入后两者之间可能出现新的振荡模态。构网变流器对频率的响应会改变微网整体的谐振特性。如果构网控制的带宽和同步电机的励磁系统、调速器带宽接近就可能发生模态交互导致系统出现新的弱阻尼模式。这种问题在纯理论分析里很难发现通常要靠扫频分析和特征值分析来识别。不过好在通过Simulink做时域仿真可以直接看到交互振荡的波形。还有一个重要的工程现实构网变流器的电流不会无限增长。同步电机能承受短时过载而电力电子器件过流能力非常薄弱。当系统扰动导致功率振荡时构网变流器可能触发现流限制导致其外特性从电压源退化成电流源——这个时候它就不再提供惯量和电压支撑了。这种“模式跌落”往往是引发级联问题的根源。所以在仿真模型里一定要加入限幅环节并观测限幅是否经常被触发。4. 在Simulink里搭出这套系统模型架构与参数落地4.1 主电路同步电机、变流器与网络模型怎么选如果要复现“构网变流器同步电机”的交互过程我推荐在Simscape ElectricalSpecialized Power Systems环境下搭建。主电路分四块同步电机用Simscape Electrical自带的三相同步电机模块。先明确电机参数比如额定视在功率、额定线电压、极对数、定子电阻电感、励磁方式和初始转速。建议在仿真前让电机运行在额定电压和额定频率的稳态再开始扰动测试。构网变流器用三相两电平VSC桥臂加直流电压源。如果只是研究控制逻辑可以先不搞IGBT开关级模型用平均模型仿真速度快很多但要观察PWM谐波影响必须用开关模型。滤波器构网变流器输出需要接LC或LCL滤波器。电感值的选择影响电流纹波和电压控制带宽电容值影响无功输出和谐振点。一般按滤波器谐振频率设计在开关频率的1/10到1/5。网络与负荷用Three-Phase Series RLC Branch模拟线路阻抗用Three-Phase Series RLC Load模拟负荷用Three-Phase Fault模块制造短路或负荷突变的扰动。4.2 控制部分功率计算与构网控制器的Simulink实现构网控制器的实现可以分为三个环节功率计算、功率环含虚拟惯量、电压电流内环。功率计算可以采用瞬时功率法。把三相电压电流做Clarke变换得到αβ分量然后P 1.5 · (v_α · i_α v_β · i_β) Q 1.5 · (v_β · i_α - v_α · i_β)注意系数1.5是在等幅值变换下的结果如果用的是等功率变换系数是1。这个细节经常导致仿真功率值差1.5倍排查起来很费时间。功率环输出的是角频率ω和相角θ。这里可以采用离散化的转子运动方程ω[k1] ω[k] Ts · (P_ref - P_meas - D·(ω[k] - ω_0)) / (J·ω_0) θ[k1] θ[k] Ts · ω[k1]电压幅值由无功-电压下垂给出E E_0 n_q · (Q_ref - Q_meas)这里n_q是无功下垂系数。生成的参考电压再经过虚拟阻抗修正进入电压电流双闭环最终输出PWM。4.3 参数设定建议表与仿真步长选择我给出一组可以当起点的参数单位统一采用SI参数数值说明额定功率 P_n2 MW构网变流器容量额定电压690 V线电压有效值额定频率 f_050 Hz直流母线电压 V_dc1100 VLC滤波电感 L0.2 mH谐振频率约LC滤波电容 C300 μF下垂系数 m_p0.02 pu频率偏差2%对应满功率无功下垂系数 n_q0.05 pu虚拟惯量 H_virtual2 s等效H2s阻尼系数 D50 pu标幺值虚拟转动惯量J的换算公式是J 2H_virtual · P_n / ω_0²代入数值J 2×2×2,000,000 / (2π×50)² ≈ 81 kg·m²这个数值可以直接放到转子运动方程里。仿真步长要看模型性质。用离散求解器加开关模型建议Ts1e-6到5e-6秒对应IGBT开关频率内能分辨PWM占空比变化如果用的是平均模型Ts可以放大到1e-5秒甚至更大显著提升仿真速度。我在做参数扫描时会先用平均模型跑粗结果再用开关模型精算关键工况这样能省不少时间。5. Matlab代码实现让仿真可批量扫描、可复现5.1 用脚本控制Simulink模型做参数批量扫描很多人跑Simulink仿真是直接在界面上改参数、点运行这种做法在调试阶段没问题但研究交互机制时需要扫描虚拟惯量、阻尼系数对频率稳定性的影响就必须脚本化。先建一个参数初始化脚本%% 系统参数定义 clear; clc; Pn 2e6; % 额定功率 W Vll 690; % 线电压 V f0 50; % 额定频率 Hz omega0 2*pi*f0; % 额定角频率 rad/s Vdc 1100; % 直流母线电压 V % 构网控制参数 mp_droop 0.02; % 有功频率下垂 0.02pu nq_droop 0.05; % 无功电压下垂 H_virtual 2; % 虚拟惯量时间常数 s J_virtual 2*H_virtual*Pn/omega0^2; % 虚拟转动惯量 kg.m^2 D_damp 50; % 阻尼系数 pu % 滤波器参数 Lf 0.2e-3; % H Cf 300e-6; % F % 保存到模型工作区 sim_params struct(Pn,Pn,Vll,Vll,f0,f0,omega0,omega0,... Vdc,Vdc,mp_droop,mp_droop,nq_droop,nq_droop,... J_virtual,J_virtual,D_damp,D_damp,Lf,Lf,Cf,Cf); assignin(base,sim_params,sim_params);5.2 虚拟同步机功率环的MATLAB函数实现下面这段函数可以直接作为MATLAB Function块嵌入Simulink也可以用于纯代码仿真function theta vsg_power_loop(P_ref, P_meas, J, D, omega0, Ts, theta_prev, omega_prev) % VSG功率环离散化实现 % 输入: P_ref 参考有功功率, P_meas 实测有功功率 % J 虚拟转动惯量, D 阻尼系数, omega0 额定角频率 % Ts 采样时间, theta_prev 上一拍相角, omega_prev 上一拍角频率 % 输出: theta 本次相角 % 转子运动方程离散化 domega (P_ref - P_meas - D*omega0*(omega_prev/omega0 - 1)) / (J*omega0); omega omega_prev domega * Ts; % 相角积分 theta theta_prev omega * Ts; % 角度归一化到 [-pi, pi]避免无限增长 theta mod(theta, 2*pi); if theta pi theta theta - 2*pi; end end注意里面的阻尼项处理D·ω0·(ω/ω0-1)实际上就是在标幺值频率偏差为1时施加D倍的额定转矩。这个写法便于阻尼系数与同步电机的阻尼绕组概念对应起来。5.3 后处理自动计算RoCoF与频率最低点仿真跑完需要从波形数据里提取关键指标。下面这个脚本可以帮你快速判断虚拟惯量参数对频率稳定性的影响%% 频率指标后处理 % 假设仿真输出变量中有 f_meas (Hz) 和 t_out (s) function metrics freq_metrics(t_out, f_meas, f0) % 频率偏差最小点最低频率 [f_nadir_val, f_nadir_idx] min(f_meas); % RoCoF 第一秒内的最大变化率 idx_1s find(t_out 1.0, 1, last); rocof max(abs(gradient(f_meas(1:idx_1s), t_out(1:idx_1s)))); % 频率恢复时间回到49.8Hz以上的时间点 recover_idx find(f_meas 49.8, 1, first); if isempty(recover_idx) recover_time inf; else recover_time t_out(recover_idx); end metrics struct(nadir, f_nadir_val, nadir_time, t_out(f_nadir_idx), ... rocof, rocof, recover_time, recover_time); end参数扫描的骨架也简单%% 扫描虚拟惯量对频率稳定性的影响 H_list [0.5 1 2 4 6]; for i 1:length(H_list) H_virtual H_list(i); J_virtual 2*H_virtual*Pn/omega0^2; assignin(base,J_virtual,J_virtual); simOut sim(gm_vsm_system.slx, StopTime, 20); f_meas simOut.f_meas; t_out simOut.tout; result(i) freq_metrics(t_out, f_meas, 50); end如果模型比较大跑得慢可以把for循环改成parfor并行扫描前提是每个worker能独立访问工作区变量。这是提速最直接的办法。6. 调试中的高频翻车现场与排查经验6.1 启动瞬间的电流冲击预同步和软启动缺一不可构网变流器作为电压源最怕的问题就是并网瞬间相位不一致。如果变流器输出电压和电网电压之间存在相位差或幅值差闭合并网开关时会出现巨大的冲击电流仿真里表现为电流波形爆炸、甚至求解器报错。我的习惯做法是加一个预同步环节在并网开关闭合前让构网控制器跟踪电网电压的相位、幅值和频率当偏差小于阈值时才允许闭合并网。这个环节在仿真里做起来很容易一个PI调节器加上判断逻辑就够。另外还可以配合软启动让变流器输出电压幅值从0逐渐抬高从分。很多刚接触构网控制的人图省事直接初始化到固定相位结果第一步就炸了然后花很长时间排查主电路参数其实问题完全出在同步逻辑上。6.2 离散步长与数值振荡仿真跑飞不一定是控制参数问题用开关级模型做构网变流器仿真时如果Ts设置过大PWM分辨不了占空比会出现明显的数值振荡。但如果为了让数值收敛把步长设得太小仿真时间又长得无法接受。我的一般策略是PWM开关频率10kHz左右时Ts取2e-6秒如果模型里既有快速电力电子开关又有慢速机电动态同步电机的转子摇摆就要警惕刚性系统问题。这里推荐使用ode23t或ode15s这类变步长刚性求解器然后限制最大步长不超过开关周期的1/10。纯离散模型则固定Ts不做变步长。如果发现仿真波形出现不该有的高频抖振先把步长缩短一半试一下排除数值因素再回头调控制参数。这个排查顺序能省很多没意义的“调参游戏”。6.3 Simulink数据链问题数组维度、数据类型与FMU导出还有一个很容易被忽略的坑Simulink模型内部的信号维度不匹配。特别是在把多路测量信号比如三相电流、三相电压从主电路连接到控制子系统时如果用错Mux和Vector Concatenate或者信号线类型冲突就会报“Invalid input”或维度错误。我的建议是统一用Bus Creator组织信号或者在连接的边界加Signal Conversion块转换为显式信号线避免隐式数据类型推断带来的麻烦。在需要把模型导出为FMU或者生成C代码做快速原型时构网控制器里某些模块比如连续时间积分器、触发脉冲发生器会导致编译不过或仿真超时。处理方法是把控制环离散化避免连续时间状态把脉冲发生器替换为基于Modulo计数生成的PWM逻辑同时确保MATLAB Function块里的代码支持代码生成不能用动态内存分配。这个过程比较琐碎但算是把仿真模型推向工程应用的关键一步。6.4 参数整定的顺序先内环后外环先单机后并联最后分享一个整定顺序的经验。构网控制器的参数不是一次能调到位的按下面这个顺序会顺很多第一步单独测试电流环。给固定电压参考看电流跟踪速度和超调整定电流环PI参数。第二步加上电压环。设定参考电压测试电容电压控制效果整定电压环PI参数。第三步单独跑构网变流器带电阻负载验证下垂特性和虚拟惯量逻辑是否正确。第四步加入同步电机模型小扰动测试观察两者的功率分配和振荡特性。第五步做参数扫描批量测试不同惯量、不同阻尼下的极限工况。我自己在做过仿真和半实物测试之后最大的感受是Simulink里跑通的构网变流器一旦到实际控制器里通信延时、采样延时、过流保护动作时间都会改变系统的等效阻尼和等效惯量。仿真给了我们一个很好的起点但真正的稳定性边界必须在更精细的模型中验证。如果你正在搭类似的系统建议从一个小容量微网模型开始先把构网变流器孤岛带载跑通再去并网并联。这样每一步的问题都清晰可控。参数扫描脚本建议从一开始就写好因为虚拟惯量和阻尼之间的配合关系靠人工一组一组去试效率太低。
返回列表