
把三相逆变器通过滤波电抗器接到电网上若是按传统的跟网grid-following思路做给定一个有功/无功电流指令电网频率一变它只会老老实实跟着变可要是某一天电网这块“底板”本身的频率、电压都不稳那逆变器就成了“泥菩萨过江”。这就是我一开始去碰grid-forming构网型控制的原因。下垂控制Droop和虚拟同步机VSG是构网型路线里讨论最多的两个方案这篇博文不讲玄学就讲我用Simulink把两种策略搭在同一套主电路里做性能对比时踩过的坑、想清楚的原理以及最终能直接复现的模型思路。适合正在做微电网、储能变流器、构网型风电/光伏课题的研究生还有想把手头并网逆变器从跟网改为构网的工程师。1. 先搞清楚grid-forming到底在解决什么问题1.1 跟网型逆变器的“被动”困境传统并网逆变器光伏、风机、储能绝大多数时间工作在跟网型模式锁相环PLL盯着电网电压相位电流内环把输出电流控制成受控电流源。优点是控制简单、动态响应快但本质是“从动”它假定电网由一个足够强的同步电源撑着自己只负责向电网注入功率。问题是当可再生能源占比越来越高、常规同步机组被逐渐替换后电网的等效惯量和短路比都在下降频率波动变大电压支撑能力变弱跟网型逆变器此时反而可能成为不稳定因素。我记得有次仿真里PLL在电网相位小扰动时出现振荡电流指令也跟着抖最后整个系统在2Hz附近起振。当时第一反应是PI参数没调好后来才意识到是“跟网”的控制架构本身就藏着一个低惯性、弱阻尼的坏毛病。所以业界才把目光转向“构网”也就是逆变器自己当电压源主动定频率、定电压让电网或者微网里的其它设备来“跟”自己。很多刚接触这个概念的朋友会问逆变器输出本质是一串PWM脉冲怎么可能变成电压源关键在于控制环只要它能实时生成幅值稳定、频率稳定的参考电压并让输出电压紧紧跟踪它对外呈现的就是电压源特性。1.2 构网型的本质从电流源思维切换到电压源思维grid-forming的关键点在于逆变器输出电压幅值和频率是由自身控制环实时生成的而不是从外部电网抓取的。输出侧呈现低阻抗电压源特性负载需要多少功率它就能在维持电压幅值、频率的前提下自动供给。就好比一群人里原来只有一个“领头的人”定节奏现在要求每个人都能在自己负责的小范围里定节奏电网这个“整支队伍”才会更稳。为了做到这一点控制环必须有三个基本环节一是生成一个旋转的参考电压相位θ和幅值E二是根据输出有功和无功反馈去调整θ和E实现功率闭环三是在电压外环、电流内环跟上把参考电压变成实际开关信号。Droop和VSG的差异主要在前两个环节即“如何根据P/Q反馈去生成和调整E、θ”而底层电压电流双闭环、PWM调制两者几乎可以共用。这也意味着如果你已经在Simulink里搭过一个带电压电流双闭环的逆变器模型改成构网型只等于换一个上层功率控制模块工作量比想象中小很多。1.3 下垂控制与虚拟同步机同源但不同深度下垂控制是从同步发电机的一次调频/一次调压特性里提炼出来的“骨架”P-f下垂、Q-V下垂公式简单参数少物理意义直白。VSG则把同步发电机的转子运动方程直接塞进了控制环等于给逆变器增加了“虚拟惯量”和“阻尼绕组”动态过程更接近真实同步机。两者并不是两个完全对立的方案VSG在稳态时通常会收敛到和下垂一致的外特性但在暂态过程中的频率轨迹、功率分配、抗扰动能力差异非常明显。这篇博文后面的仿真对比就是围绕这个“瞬态差异”展开的。2. 下垂控制公式简单坑却不简单2.1 P-f与Q-V下垂的数学表达与物理含义平常常用的P-f下垂写为f_ref f0 - m·(P - P0)其中f0是空载或额定工况频率P0是对应额定有功m是下垂系数Q-V下垂类似V_ref V0 - n·(Q - Q0)意思很简单有功送得多频率就往下掉一点无功送得多输出电压幅值就往下掉一点。这个关系本质上是把同步发电机一次调频、一次调压的静态特性借过来。好处是控制里不需要任何机组之间的通信多台逆变器并机时靠各自的下垂系数实现功率分担这正是微电网“对等控制”的基础。要注意虽然公式看起来是在“降频”“降压”但它不是故障保护而是稳态下主动让出的一点裕度用来换取功率分配能力。你可以把它理解成几个人一起抬一张桌子每个人都稍微让一点力桌子才不会往一个人那边倒。2.2 下垂系数怎么整定才不会翻车下垂系数的本质是“用容许的频率/电压偏差换功率均分精度”。系数越大两台逆变器之间功率分配越精确但稳态频率偏差就越大系数越小频率质量越好但均分能力就差。整定原则先按项目要求定出频率容许范围比如49.5~50.5Hz再除以额定有功变化范围。以一台10kW逆变器为例如果允许满载时频率比空载下降1Hz那么 m_f 1Hz / 10000W 0.1Hz/kW0.0001 Hz/W换算成角频率就是 m_ω 2π×0.0001 ≈ 6.28×10^-4 rad/(s·W)。无功下垂系数同理取电压幅值容许偏差除以额定无功变化范围比如相电压幅值允许下降6V无功从0涨到5kVar则 n 6/5000 1.2×10^-3 V/Var这里按相电压幅值算。实际仿真时建议先把系数写小一点跑通再逐步加大观察功率分配和频率偏差的折中曲线。注意单位问题Simulink里如果用伏特、瓦、弧度/秒那m和n的单位不能混用很多模型喜欢标幺化这样下垂系数也是一个无量纲的小数用起来更稳。2.3 功率计算与低通滤波时延对动态性能的影响下垂控制看起来只要算P和Q但功率计算绝不是拿个乘法器一乘就行。实际中用三相瞬时功率公式算出的瞬时功率p/q里面会带有开关纹波和谐波分量不能直接送去做下垂控制必须经过低通滤波。这个低通滤波的截止频率非常关键如果选得太低比如5Hz有功反馈响应慢负载突变后频率会拖很久才到稳态甚至和电压电流内环的带宽产生耦合引发振荡如果选得太高比如200Hz则开关频率附近的纹波滤不干净频率和电压给定会抖。我自己做仿真时比较稳的取值是20~50Hz的一阶低通。注意低通滤波本身带来相位延迟等效于给系统增加了一个惰性时间常数这会让下垂控制的动态行为变得“有点像VSG的低惯量版本”但可控性差一些。很多人对比“下垂快、VSG慢”的时候其实没考虑到低通滤波器的时间常数这是一个经常被忽视的比较前提。如果你在两个模型里用了不同的滤波带宽出来的对比结论可能根本不公平。3. 虚拟同步机给逆变器装上“旋转飞轮”3.1 转子运动方程模拟的到底是什么VSG控制的核心是一个二阶转子运动方程J·dω/dt T_m - T_e - D·(ω - ω0)dθ/dt ω这里J是虚拟转动惯量ω是逆变器虚拟角频率θ是虚拟转子角度T_m是机械转矩由有功指令换算T_e是电磁转矩由输出有功换算。物理上相当于把同步发电机中几十吨重的转子“搬”到控制算法里当有功不平衡时频率不会像下垂控制那样瞬间跳变而是按照J的大小缓慢变化。打个比方下垂控制的频率响应像小轿车急刹车一脚下去速度马上变VSG则像大卡车同样一脚刹车车速是慢慢落下来的但是因为动能大一旦刹车不力冲出去的距离也远。J越大“惯性”越大频率变化越平缓但恢复稳态越慢甚至产生低频振荡D越大等效刹车阻尼越强振荡衰减越快。这两个参数互相配合决定了VSG暂态行为的基本调性。值得强调的是这里的“转子”完全是虚拟的它只存在于控制算法里但对外表现出来的外特性和一台真实同步发电机非常接近。这也是为什么电网调度侧对VSG的接受度比下垂控制更高——它让电力电子变流器不再是“没有脾气”的快速电流源而是带“脾气”的类同步电源。3.2 虚拟惯量和阻尼系数的整定经验J的选取常用同步电机的惯量时间常数H来标定。物理关系是 J 2·H·S_n / ω0²。以一个10kW、50Hz的系统为例ω0 2π×50 ≈ 314 rad/sS_n 10000 VA。若取H1s则J 2×1×10000 / 314² ≈ 0.203 kg·m²。我建议初次搭建时把H放在0.5~2s之间先取H1s也就是J≈0.2 kg·m²跑起来看频率跌落速率再调。阻尼系数D的大小直接影响有功振荡衰减速度。工程上常常从D50 N·m·s/rad起步观察有功超调和频率波形超调大就加大D响应太慢就减小一点。要注意D并不是越大越好过大的D会让VSG在稳态时对外表现得太“硬”削弱了虚拟惯量已赋予的柔性。参数整定的通用思路是先用小J、大D跑稳定再逐步增大J观察惯性带来的频率平滑度最后微调D压制振荡。改参数时一次只动一个J和D一起改往往分不清到底是哪个把波形调坏的。3.3 VSG和下垂控制之间的数学关系把转子运动方程在稳态条件下写出来当dω/dt0时0 T_m - T_e - D·(ω - ω0)。如果再把T_mP_ref/ω、T_eP_e/ω代进去就会得到一个P和ω之间的线性关系。这实际上就是P-f下垂公式。也就是说VSG在稳态时就是一条下垂曲线它的“上垂式”外特性与下垂控制殊途同归。差别全部集中在暂态VSG用转子运动方程强制频率不能突变下垂控制则干脆利落地走到新稳态。理解这一点后做对比实验时你应该关心的是“暂态过程中谁给电网的支撑更友好”而不是“谁稳态更准”。从数学上看VSG等于在下垂控制的外面套了一层二阶动态环节参数J和D决定了这个动态环节的固有频率和阻尼比。所以把VSG看成“下垂控制一个可以整定的低通/二阶滤波”也没错只是这个滤波不单单是滤波它还赋予了一个物理可解释的角频率状态量。4. Simulink仿真模型搭建从主电路到控制环4.1 主电路与参数表先把能跑的模型骨架搭出来我建议在Simulink里用Simscape Electrical Specialized Power Systems库来搭连续/离散主电路不要用纯数学抽象模型否则后面换工况、看波形不真实。主电路采取“直流源三相两电平逆变器LC滤波器线路阻抗交流负载/电网”的典型结构控制策略不同只影响控制环主电路完全不变。这里放一个我实际能跑通的参数表参数数值直流母线电压 Udc800 V电网/交流额定线电压380 V / 50 Hz额定有功功率10 kW额定无功功率5 kVar每相滤波电感 Lf3 mH每相滤波电容 Cf20 μF每相线路阻抗0.1 Ω 0.5 mH开关频率10 kHz采样时间10 μs如果你没有现成的交流电网也可以只接三相RLC负载构网型逆变器是可以单独带负载的这正好能观察“孤岛带载”情况。逆变器用Universal Bridge3 arms开关管可以选IGBT缓冲电阻默认1e5即可。LC滤波器后面再接一个电压电流测量模块把测到的三相电压电流引到控制环同时在测量点引到Scope观察波形。4.2 控制环路搭建顺序与关键模块搭建控制环我习惯的顺序是先从Three-Phase V-I Measurement取电压电流 → abc_to_dq0转换 → 功率计算与滤波 → 上层策略Droop或VSG生成ω、E、θ → 电压参考生成 → 电压电流双闭环 → PWM Generator → Universal Bridge。这块讲一下d-q变换的参考角度这里不能再用PLL输出做Park变换的旋转角。grid-forming的旋转角θ必须由上层控制自己积分出来这正是“构网”的关键自己造坐标系而不是跟电网坐标。并网运行前需要预同步保证θ、电压幅值、频率与电网一致否则并网断路器合闸瞬间会有大电流冲击。孤岛运行时则无此约束但为了模型从零开始稳定我习惯给θ一个初值0并且让调制波通过一个使能信号延迟几个毫秒再送出去相当于软启动。电压外环和电流内环都采用PI控制工作在dq旋转坐标系。以d轴为例电压外环输入是Vd_ref与Vd的误差输出是电流内环的有功电流参考Id_ref电流内环再对Id做PI输出调制电压并叠加解耦项和前馈项。解耦补偿公式可以写成Vd_pi PI(Id_ref - Id) - ω·L·Iq Vd Vq_pi PI(Iq_ref - Iq) ω·L·Id Vq这样d/q轴就不会互相干扰。PI参数起步值可以这样给电压环Kp0.5、Ki100电流环Kp10、Ki1000标幺值系统然后根据响应微调。如果模型发散先检查PI输出的限幅调制波统一限制在±1以内。4.3 两种策略共用一个模型的操作技巧对比仿真最忌讳在两套模型之间来回拷贝极易改出低级错误。我建议把整个系统建成一个“上层策略可选”的单一模型功率环之后接一个Manual Switch上面是Droop模块下面是VSG模块两者输出同为ω、E、θ三个量后面所有环节共用。仿真时拨一下开关就能在同一个Scope里对比两组波形。如果想让Droop也拥有和VSG相同的功率滤波、电压限幅、限流等保护环节别忘了把这些环节放在switch之前避免因保护逻辑不同带来不公平对比。另外一个操作技巧是把VSG模块和Droop模块各自封装成Subsystem输入都是P、Q、L、V0输出都是ω、E、θ。这样即使以后扩展多机并联每个逆变器单元也只是一个带策略选择的子系统整体模型会非常清爽。5. 性能对比相同工况下的PK结果分析5.1 场景设计负载突增、有功阶跃、频率跌落怎么模拟我常用的三个标准工况1) 0.2s时在逆变器输出端并上一个10kW的电阻性负载观察构网型逆变器带载时的频率和电压响应2) 0.4s时再并上一组感性负载观察无功支撑3) 如果是并网场景把电网频率设为49.8Hz的偏置观察两种策略向跌落的电网频率“伸出援手”的程度。负载突增用Three-Phase Series RLC Branch加一个受控断路器Breaker实现注意设置断路器动作时间和对地涌流。这里有个小细节断路器在三相电路里动作时如果选的是“ideal”开关模式动作瞬间电流可能突变很大建议把Breaker的过渡时间设小但非零比如1e-4s避免数值振荡。另外负载参数可以在Breaker闭合前先初始化为0然后通过Step模块控制开关逻辑这样仿真初始时刻不会出现多余负载。5.2 动态性能对比频率变化率、最低点、恢复时间以10kW负载突增为例下垂控制因为没有惯量约束P-f下垂直接按斜率换算频率所以频率掉落速度基本取决于低通滤波器的时延通常在几十到一百毫秒内就到达新稳态VSG因为转子运动方程的惯性作用频率一开始下降较缓但之后会经历一个类似同步机的“减速-最低点-回升-稳定”的过程。我这里给出一个参考趋势同样是10kW突增下垂控制频率最低点可能到49.3Hz左右VSGJ适中时最低点可能在49.4Hz以上但VSG的明显缺点是从扰动到重新稳定需要的时间更长有功还会出现一个超调。不同参数下数值会变但趋势是稳定的。对电网来说“频率变化率”比“稳态偏差”更容易触发保护所以VSG这种把变化率压低的特性在高比例新能源系统里很受欢迎。但它也带来一个问题——到达稳态的时间变长了。所以“惯性越大越好”是片面的惯量太大而阻尼不匹配VSG会给电网注入低频功率振荡对保护整定和相邻机组都是压力。5.3 稳态特性与结果表格谁胜在哪一项稳态下两种策略的输出频率、有功分配、电压幅值最终都由各自的下垂曲线决定。只要下垂系数一致它们的稳态外特性基本重合。真正的差异是两大项一个是对频率变化率的抑制能力VSG明显占优另一个是参数整定的工作量下垂控制简单直接VSG多出一组J和D要调还必须和功率滤波时间常数、线路阻抗匹配否则容易激发出低频振荡。对比指标DroopVSG频率变化率大接近低通滤波时延决定小受J约束频率最低点深度更深更浅J适当增大时到达稳态时间快慢有功超调几乎没有有D调大后衰减电压支撑能力靠Q-V下垂与下垂一致外加励磁调节实现复杂度低中高所以你不能简单说“VSG更好”。如果惯量太大、阻尼不足VSG会给电网注入低频功率振荡对保护整定和相邻机组都是压力反过来如果下垂控制跟一个合适的低通滤波器配合也能在某些指标上接近VSG的低惯量版本。选择哪条路线取决于你应用场景里最缺的是什么最缺频率变化率抑制就选VSG最想控制成本和调试难度下垂控制完全够用。6. 仿真中的高频踩坑与排查实录6.1 启动发散与初始化问题最常见的发散问题模型一跑就显示“Simulink cannot solve...”或者波形直接冲到天上去。排查第一步把PWM载波频率和采样时间统一powergui选discrete后Ts定为1e-5上下。第二步把上层策略先断开给一个固定的ω和E看电压电流双闭环能不能稳住稳住再接入Droop/VSG。第三步检查启动瞬间负载如果负载突增在0s就发生容易引起电流冲击把Breaker动作时间放到0.2s以后。第四步dq变换的初始相位确保θ初值对应A相电压过零点否则启动瞬间会有直流偏置。还有一次我折腾了半天的“发散”其实只是Scope的坐标轴范围太小波形早就稳定了但显示成一条竖线。所以不要盲目怀疑模型先把仿真时间设短一点比如0.05s输出最大/最小电压看一下再判断是真发散还是只是坐标轴问题。6.2 功率振荡、波形畸变的根因与解法仿真稳定但波形不好看时先看是哪个环节在抖。我遇到过VSG有功在5Hz左右持续振荡调D没有明显改善最后发现是功率计算低通滤波器带宽取太高二倍频谱波进入转子运动方程等效成周期性扰动力矩。把LPF截止频率从200Hz降到30Hz后振荡消失。另一个典型是电流内环输出限幅后积分饱和导致调制波被“削顶”波形出现平顶畸变解决办法是给PI积分器加anti-windup或者干脆改用PID Controller模块里的限幅选项。还有一种很隐蔽的问题负载设置成纯感性时如果功率计算用的电压采样点放在电感之前而不是滤波电容之后会看到很大的无功数值实际上那是滤波电感的无功消耗被误算进了逆变器输出无功。把采样点统一放在LC滤波器出口处才能保证控制环测量的是真正“送到负载/电网”的功率。6.3 参数敏感性总结哪些参数是“老虎”哪些是“猫”按经验总结下垂系数m/n是“老虎”乱改直接决定功率分配和稳定性要严格按允许频差/压差计算滤波电感、电容是“老虎”LC谐振频率若落在控制带宽内电压电流波形会出现谐振峰需加阻尼电阻或有源阻尼开关频率和采样时间是“猫”只要不太离谱影响不大VSG的J和D属于“老虎中的老虎”J和D配合不好模型会给你上一堂生动的“低频振荡”课。调参时一个参数一个参数改每改一次记下波形变化别同时动两个。如果你发现自己调了D却一点效果没有先确认VSG模块里有没有把D的项真正接进方程很多复制来的模型D只是一个显示量根本没参与计算。自己在积分器前面用Scope抓一下J·dω/dt、D·(ω-ω0)、T_m-T_e三个信号看哪一个在主导频率轨迹这样一眼就能看出参数有没有生效。最后按我的习惯再聊一个经验做这类两种控制策略的对比研究不要急着把模型调得很完美才开始录数据先让Droop和VSG分别跑通在同一张图里看一眼频率和有功的轨迹你就能直观地体会到“惯性”两个字到底意味着什么。我第一次看到VSG的频率波形在突加负载后弯弯地沉下去、又缓缓升回来时才真正理解为什么电网喜欢有惯量的电源。参数整定这些东西书上写得再细都不如自己在模型里亲手把J从0.05一路调到2盯着Scope看波形变得“有质感”。这套模型后续还可以扩展多机并联、故障穿越、限流保护等场景但先把手上的Droop和VSG对比搞清楚比什么都值。