尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

同步电机与构网型变流器频率稳定性仿真:从VSG控制到参数扫描

发布时间:2026/9/26 6:50:21

资讯中心
01
ARTICLE

同步电机与构网型变流器频率稳定性仿真:从VSG控制到参数扫描

同步电机与构网型变流器频率稳定性仿真:从VSG控制到参数扫描
1. 同步电机与构网型变流器为什么总被放在一起研究做新能源并网仿真的同行这两年一定没少听见“构网型”三个字。光伏、风电通过电力电子变流器接入电网后系统里的同步电机占比越来越低旋转设备提供的转子惯量和阻尼效应都被削弱频率稳定性问题变得比以往更棘手。构网型变流器本质上是在控制算法里“长”出一个虚拟的同步电机它以电压源形式对外输出能提供虚拟惯性和阻尼让电力系统尽量保持传统交流系统的频率响应特性。用 Matlab/Simulink 把这套逻辑搭出来再配合代码做参数扫描和扰动测试是工程前期研究频率稳定性最常用的手段。这篇文章我就以同步电机与构网型变流器的频率稳定性研究为主题把平时搭 Simulink 模型、写 Matlab 脚本做参数扫描的完整思路和踩坑经验整理出来。内容会覆盖同步电机数学模型的选取、VSG 虚拟同步控制器的实现、频率稳定性判据、惯量和阻尼参数怎么定、负荷阶跃和三相短路扰动怎么做以及几个很容易让人抓狂的报错问题。适合刚入门的电气研究生也适合做新能源并网、储能 PCS 控制、微电网仿真的工程师。看完全文你至少能照着搭出一个可以跑通的含同步电机与构网型变流器的双机仿真模型而不是只在论文里看过控制框图。很多人第一次接触构网型控制时容易把它想成某种复杂的现代控制理论其实核心还是回到同步电机的转子运动方程。同步电机能自主稳频靠的是转子这个大惯量飞轮当系统有功功率失衡转子动能自然吸收或释放机械转速的变化反过来调节功角最终让频率稳定在一个新的平衡点。构网型变流器就是把这条物理路径数字化在 DSP 或者 Simulink 里用软件模拟转子的运动方程让逆变器像一台同步电机一样参与系统频率调节。理解这一点后面建模仿真的每一步都会很顺。我见过不少同学上来就打开 Simulink找到“Virtual Synchronous Machine”现成模块直接拖进去跑仿真。这当然能出波形但对做研究的人来说最重要的是搞清楚模块内部到底是什么逻辑。只要拆开一次你就会发现控制核心无非就是功频控制环、励磁/电压控制环和电流内环几部分的组合。把这个组合吃透你才能根据自己项目里的参数调整仿真模型而不是模块报错了就不知所措。2. 频率稳定性研究的物理基础与控制本质2.1 同步电机为什么能稳频转子运动方程同步电机稳频的本质是功率平衡。忽略阻尼绕组和励磁动态时转子的运动可以用经典的二阶方程描述[ J\frac{d\omega}{dt} T_m - T_e - D(\omega - \omega_0) ]其中 (J) 是转动惯量(T_m) 是机械转矩(T_e) 是电磁转矩(D) 是阻尼系数(\omega_0) 是额定角速度。工程里更习惯用标幺值表示把转子运动方程写成[ 2H\frac{d\Delta\omega}{dt} P_m - P_e - D\Delta\omega ]这里 (H) 就是惯性时间常数单位是秒物理意义是转子在当前转速下存储的功能可供额定功率持续释放的时间。哪怕只是一个简单的静态频率分析也能从这个方程看出来系统有功功率一旦不匹配频率变化率就取决于 (H)(H) 越小频率跌落越快。这也就是为什么新能源电站场站级仿真里大家那么看重等效惯量的原因。阻尼项 (D) 同样很重要。它代表转子转速偏差引起的制动转矩在扰动后的暂态过程中决定频率振荡是否收敛得快。同步电机本身有机械阻尼、励磁绕组阻尼以及涡流效应带来的阻尼而构网型变流器里的阻尼系数可以设计成有功功率与频率偏差之间的下垂关系也可以附加虚拟阻尼来抑制振荡。实际搭模型时建议把转子运动方程拆成两个积分环节串联第一个积分从不平衡功率得到角速度偏差第二个积分从角速度偏差得到功角。这样的结构既能跟理论公式一一对应也方便后续在中间节点引出有功功率测量值或者频率测量值观测控制器内部状态。2.2 构网型变流器的控制本质与两种常见形式构网型变流器英文叫 Grid-Forming Converter常缩写为 GFM。它的基本特征是变流器作为电压源运行输出电压的幅值和相位由控制器自己建立外部负荷决定输出电流。与之相对的是跟网型英文叫 Grid-Following采用电流源控制通过锁相环去跟踪电网相位。频率稳定研究里构网型之所以占 C 位是因为它天然具备对频率的支撑能力。当电网频率跌落构网型变流器会根据有功-频率控制自动增加输出有功这一特性跟同步电机的一次调频非常像。目前工程上构网型控制主要有两种实现路线我建议仿真初期都试一下。第一种是最直观的虚拟同步机VSG也叫 VSG 控制或 Virtual Synchronous Generator。它把同步电机的转子运动方程直接搬进控制器通过调节输入机械功率和电磁功率的差值来生成虚拟角速度再积分得到相位。这种方式的优点是物理意义明确参数 (H)、(D) 可以直接对应到同步电机的惯性时间常数和阻尼系数做频率稳定性分析时特别友好。第二种是下垂控制也叫 Droop Control它在有功-频率环中直接设置一条下垂曲线频率偏离额定值时按比例调整有功输出。下垂控制简单、响应快但本质是一阶惯性环节没有天然的惯量支撑效果。如果只在频率静态偏差上做文章下垂控制够用要研究扰动后频率变化率RoCoF和振荡特性就得用 VSG 或者给下垂控制额外附加虚拟惯量环节。在 Simulink 里面我习惯用 VSG 作为主控制器同时保留一个可切换的下垂控制模块用来做方案对比。这样每次仿真只需要切换控制模式开关就能清楚看到惯量对频率动态轨迹的影响写论文时也能多一组对照波形。2.3 频率稳定性的评估指标与判据做仿真不能只看波形好看必须把指标量化。频率稳定性研究里最常用的三个指标指标含义典型判据稳态频率偏差扰动后系统频率恢复到的最终偏差值一般要求不超过±0.2~0.5Hz频率变化率 RoCoF频率对时间的最大导数单位Hz/s不同电网标准差异较大常见阈值0.5~1Hz/s频率振荡阻尼比扰动后频率振荡衰减的快慢希望阻尼比大于0.1振荡次数少这三个指标对应的仿真内容也不太一样。稳态频率偏差主要是看有功功率平衡和一次调频能力RoCoF 主要看惯量大小阻尼比则要看 VSG 阻尼系数和系统其他环节的交互。做研究时我建议每次仿真后自动计算这三个指标写一个简单的 Matlab 脚本来扫描参数并输出表格效率远高于人工去看 Scope 波形。需要特别提醒的是频率稳定性和功角稳定性、电压稳定性经常耦合在一起。在 Simulink 里做三相短路扰动时你会看到电压骤降导致有功传输受限进而影响频率所以分析结果时不要把频率当成孤立变量。3. 频率稳定性仿真的模型设计思路3.1 顶层模型架构双机系统还是单机带负荷仿真模型的第一件事是确定拓扑。频率稳定性研究最常见的两种拓扑我分别说下适用场景。第一种是单台同步电机带局部负荷再加入一台构网型变流器并联供电。这种拓扑适合研究微电网孤岛运行或者弱电网场景下构网型变流器与同步电机的功率分配、频率支撑问题。模型简单计算量小参数扫描方便适合做机理研究。第二种是同步电机和构网型变流器一起接入一个无穷大电网节点中间用等效线路阻抗连接。这种拓扑适合研究并网场景重点观察变流器控制参数对系统频率振荡模式的影响以及弱电网线路阻抗较大下控制器是否容易失稳。第二种模型更接近实际工程但仿真设置麻烦一些尤其是两个电源之间的功率分配和初始潮流计算。我个人搭模型时喜欢用第二种把无穷大电网节点用一个大容量同步电机加一个理想电压源来等效。这样既保留了电网的电压支撑特性又能通过改变等效电机的惯性时间常数模拟不同强度电网下系统的频率响应。频率稳定研究最怕“头疼医头”只盯着构网型变流器内部参数却忽略了外部电网条件那仿真结论很容易失真。3.2 同步电机模型的选型与参数设置Simulink 中同步电机模块主要有 Simplified Synchronous Machine 和 Fundamental Synchronous Machine 两种。做频率稳定性研究不需要太关注定子绕组暂态和阻尼绕组内部细节用 Simplified Synchronous Machine 就够了。它把同步电机等效成电压源后面的阻抗加转子运动方程计算速度快稳定性高。参数设置时几个关键值需要注意额定功率、额定电压频率、惯性时间常数 (H)、阻尼系数 (D)、定子电阻和电抗。其中 (H) 直接影响频率动态必须跟研究场景匹配。大型同步发电机 (H) 通常在 3~8 秒柴油发电机组可能在 1~2 秒微型燃气轮机可能更低。如果是仿真一台几十千瓦的分布式同步电机(H) 取 1 秒左右比较合适如果是大电网等值机直接取 5~6 秒。阻尼系数 (D) 一般不容易从电机手册直接查到因为它是多种阻尼效应的总和。仿真时可以先用小值比如 0.05 p.u.开始观测频率振荡再逐步增大到 0.5 p.u. 左右找到一个振荡收敛又快、稳态偏差又可接受的区间。不要一开始就取大阻尼否则频率响应就像一个纯一阶惯性环节看不出同步电机的二阶振荡特性也就失去了研究意义。3.3 构网型变流器的模型分层构网型变流器在 Simulink 中不建议直接用理想的受控电压源更合理的做法是三层结构。第一层是功率计算与滤波测量变流器输出有功功率和电压经过低通滤波器去除开关纹波第二层是 VSG 控制器通过转子运动方程产生虚拟角速度和相位第三层是电压电流控制环跟踪 VSG 输出的电压指令生成 PWM 开关信号。第三层如果采用理想开关和 PWM 调制仿真速度慢高频开关动态对低频频率稳定性影响有限。做频率稳定研究时我建议第一版模型用平均值模型也就是用受控电压源直接输出电压指令把 PWM 细节省去。等整机频率特性研究透了需要验证控制器在真实调制下的表现再替换成详细开关模型。这样从宏观到微观分层验证是工程仿真里非常实用的习惯。在 Simulink 里实现 VSG 控制核心代码可以写成下面这种形式。定义输入的机械功率 (P_m) 和电磁功率 (P_e)通过转子运动方程计算角速度function omega vsg_swing(Pm, Pe, omega0, H, D, dt) % 输入: 机械功率, 电磁功率, 额定角速度, 惯量时间常数, 阻尼系数, 仿真步长 % 输出: 虚拟角速度 persistent omega_prev if isempty(omega_prev) omega_prev omega0; end domega_dt (Pm - Pe - D * (omega_prev - omega0)) / (2 * H); omega omega_prev domega_dt * dt; omega_prev omega; end这只是一个示意性的代码框架实际用 Simulink 的 Continuous-Time Integrator 模块可以直接搭效果一样。我喜欢写成 Matlab Function 模块因为方便后续做参数扫描和批量仿真。4. Simulink 建模实操从空白模型到完整闭环4.1 搭建同步电机与构网型变流器并联系统打开 Simulink 后我一般先建一个顶层模型分成三个子系统同步电机子系统、构网型变流器子系统、负荷与测量子系统。千万不要把所有模块全堆在一个画布上否则后续查线、调参数、看波形都会非常痛苦。同步电机子系统内部放 Simplified Synchronous Machine 模块定子输出接一个三相断路器再接到公共母线。构网型变流器子系统内部放 VSG 控制模块、电压电流双环控制器和受控电压源输出经过滤波电感接到同一母线。公共母线再接一个三相并联 RLC 负荷负荷大小可以用一个阶跃信号来改变便于模拟负荷突变。接线时要注意电压等级和基准值统一。我遇到过有人电机侧用 380V变流器侧用 690V直接在同一个母线上并联仿真结果完全没法看。建议全部采用标幺值系统或者都用统一的线电压有效值。Simulink 的电机模块输出是线电压峰值受控电压源的幅值设置要与之保持一致否则电压环会一直存在静差。搭建好模型后第一件要做的事是初始化。在 Matlab 脚本里先设定额定功率、电压、频率、(H)、(D)、线路阻抗等参数然后用set_param或直接在模型初始化回调脚本里赋值。我习惯把所有参数写成一个init_vsg.m脚本在模型属性里设置 PreLoadFcn 自动调用这样每次打开模型参数都是齐的不会因为 workspace 被清空而报错。4.2 VSG 有功-频率环的 Simulink 实现VSG 有功-频率环是整个模型的灵魂Simulink 里按以下步骤搭测量变流器输出瞬时三相电压和电流用 PLL 或者直接算瞬时功率得到电磁功率 (P_e) 的瞬时值。对 (P_e) 做低通滤波滤波时间常数取 0.01~0.05 秒主要滤掉功率测量中的高频分量但不能滤掉频率振荡频段一般 0.1~2Hz 之间。这里特别容易调错滤波太狠会把频率振荡信号也滤掉仿真结果看起来阻尼很大实际是滤波器在掩耳盗铃。将机械功率指令 (P_m)参考功率或者一次调频输出和 (P_e) 相减除以 (2H)积分得到角速度偏差。角速度偏差积分得到相位角也就是 VSG 输出电压的相角指令。电压幅值指令由无功-电压控制环给出通常采用无功功率下垂 [ E E_0 k_q(Q_{ref} - Q_e) ] 其中 (k_q) 是无功下垂系数。把这五个环节理解透再去读别人的 VSG 论文你会发现自己能直接看懂控制框图里每条线的来源。很多论文把图和公式列了一大堆反而不如 Simulink 模块连接直观。4.3 频率测量与扰动注入模块做完控制环还要搭频率测量模块和扰动注入模块。频率测量不要直接用 PLL 模块的 locked frequency 输出当瞬时频率因为 PLL 带宽不同测出来的频率动态差异很大。我的经验是如果只关心 0.1Hz 以上的振荡PLL 带宽设置在 20~50Hz 基本够用如果关心的是低频和平均频率轨迹反而建议用瞬时频率的滑动平均值也就是测量电压过零点周期来换算。扰动注入至少要有两个开关控制负荷阶跃扰动在负荷模块旁并联一个可投切的电阻支路或者受控有功负荷用一个 Step 信号或者 Manual Switch 控制投入时间和大小。三相短路扰动在公共母线上放置一个三相故障模块设置短路开始时间和持续时间。做频率稳定性研究短路持续时间一般取 100~150ms太长了构网型变流器会触发过流保护仿真的数值稳定性也差。在给模型做扰动之前一定要先跑一个 0 扰动的基础稳态仿真看频率是否能稳定在 50Hz功率是否能达到预定的初始运行点。基础稳态没跑稳后面的扰动分析就像在流沙上盖楼任何结论都站不住脚。5. 频率稳定性测试方法与结果分析5.1 负荷阶跃测试观察频率最低点与恢复过程这是频率稳定性研究里最重要的测试对应电力系统里的“一次调频响应”测试。初始状态设为构网型变流器带 50% 负荷同步电机带 50% 负荷。第 2 秒投入一个 20% 额定功率的负荷阶跃记录母线的频率变化。理想情况下频率会先快速下降然后由两台电源一起承担新增负荷最后稳定在一个新的频率偏差上。通过这个波形可以直接提取出最低频率点Nadir、最大 RoCoF 和稳态偏差。这三个值就是评估频率稳定性的核心数据。如果发现最低频率点过低说明系统惯量不足或者一次调频响应太慢可以增大 VSG 的 (H)或者增大同步电机的调频系数也可以附加额外的频率反馈环节。实际仿真时我用一句简洁的结论概括负荷阶跃测试本身就是对惯量和阻尼参数的“打分器”参数好坏一眼就看出来。一种特别常见的错误是把负荷阶跃加在同步电机的机械功率输入端而不是加在电网电负荷侧。这样等效于改变原动机出力属于调频动作测试不是系统扰动测试。虽然也能看到频率变化但物理意义完全不同写论文时要格外注意区分。5.2 三相短路扰动评估故障后的频率恢复能力三相短路测试主要看变流器在故障切除后能否稳定恢复频率以及同步电机功角是否会失稳。故障会导致母线电压跌落构网型变流器输出电流受限有功功率无法外送频率自然下降故障切除后电压恢复功率传输恢复频率开始回升。我在仿真中遇到过一种情况故障切除后VSG 频率恢复得很快但同步电机功角开始大幅摆动甚至失步。原因在于 VSG 和同步电机的功角初始差设置过大加上故障期间两者功角变化不一致形成了类似“欠阻尼振荡”的模式。这时候光调 VSG 参数没用要把两台电源之间的线路阻抗、初始功率分配重新梳理一遍。故障测结果分析时还是用那三个指标频率最低点、RoCoF、恢复时间。此外要额外记录 VSG 输出电流的峰值确保仿真中没出现电流越限因为实际变流器的过流能力只有 1.2~1.5 倍额定电流。如果仿真模型里没有加限流环节得出的结论在工程上可能不成立。5.3 参数扫描惯量 H 和阻尼 D 对频率轨迹的影响固定扰动场景批量改变 (H) 和 (D)用 Matlab 脚本循环仿真可以快速得到规律。比如固定 (D0.2)让 (H) 从 0.5 变化到 4 秒每 0.5 秒做一次仿真记录频率最低点和最大 RoCoF最后画成曲线或者表格。这一步往往能直接生成论文里最关键的那张图。批量仿真时一定不要直接在 Simulink 里手动点运行按钮那样会累出工伤还容易漏记录数据。写一个简单的控制脚本clear; clc; H_list 0.5:0.5:4; D_list 0.05:0.05:0.3; results table(); for idx 1:length(H_list) H H_list(idx); sim(vsg_sync_model); % 仿真结束后从Scope中获取频率数据 f_series nadir min(f_series); rocof max(abs(diff(f_series)./dt)); steady f_series(end); results [results; table(H, D, nadir, rocof, steady)]; end writetable(results, freq_stability_results.csv);脚本里sim(vsg_sync_model)的前提是模型中所有要扫描的参数都定义成了 workspace 变量。如果发现仿真结果不随 (H) 变化多半是 Simulink 模型里H被当成常量定义了检查一下参数是否是从 workspace 读取的。参数扫描得到的规律一般是H 增大RoCoF 明显降低频率最低点升高但频率振荡周期变长D 增大振荡衰减加快稳态频率偏差也可能略有改善但过大阻尼会让 VSG 输出功率响应变慢甚至在高比例新能源场景下跟其他机组产生功率分配不均。找到一个兼顾 RoCoF 和阻尼比的区间才算完成了参数优化的一轮迭代。6. 常见问题与排查技巧实录6.1 仿真发散最常见的原因和处理顺序Simulink 模型一运行就报错或者波形冲到天上去遇到这种情况别慌按照下面的顺序排查。第一查代数环。VSG 控制中如果有“有功功率-相位-有功功率”的直接反馈很容易形成代数环导致数值求解失败。解决办法是在功率测量路径上增加一个记忆模块或者低通滤波器打破代数环。我之前因为在功率计算后没有加滤波模型一跑直接报“Algebraic loop”错误加一个 1ms 的 Transfer Function 就好了。第二查初值。同步电机和 VSG 并联时两台电源的初始功角必须满足潮流方程。最简单的办法是让 VSG 先以理想电压源方式运行等系统达到稳态再把控制切到 VSG 模式也就是常说的预同步过程。突然从一个接线方式切换到另一个初值不匹配会让控制器饱和波形飞掉。第三查积分步长。模型含 PWM 调制时固定步长要小于开关周期的五分之一如果用的 ode15s 变步长算法最大步长要设小一些否则高速开关信号会被漏掉。频率稳定模型里如果用了理想开关模块建议最大步长限制在 1e-5 秒以下。6.2 频率测量结果抖动PLL 带宽与滤波时间常数很多人会问为什么仿真里频率波形毛刺那么多。原因往往不在控制器而在测量环节。电压测量里包含谐波PLL 得到的瞬时频率必然有高频分量。解决方法是把频率信号再过一层 10Hz 左右的低通滤波器用于分析和绘图。但要注意滤波会引入滞后频率波动信号本身如果有 1~3Hz 的振荡滤波后幅值会被削弱导致你低估振荡强度。我在做阻尼比分析时通常不用滤波后的重采样信号而是从闭环状态中直接提取 VSG 内部角速度 ( \omega )那个量本身就带惯量信息干净又准确。6.3 数据记录与结果重现的几个坑使用sim()脚本批量仿真时会遇到一个典型问题同一次运行修改了H值但模型内部没有刷新。解决办法是在每次循环里调用set_param(model, SimulationCommand, update)或者直接把模型参数设置为通过 workspace 解析同时清空模型缓存。另一个坑是 scope 数据保存。如果直接用 scope 波形的 saved data每次仿真文件名可能变化脚本读不到。我建议在模型里用 To Workspace 模块把关键信号显式输出设置变量名和保存格式这样脚本读取稳定可靠。你后续如果要对波形做频谱分析这些 To Workspace 的数据可以直接丢给fft函数处理比从 scope 界面刷新数据方便太多。7. 仿真结果落地与实际工程经验的延伸在 Matlab/Simulink 环境里把同步电机与构网型变流器的频率稳定性仿真跑通只是第一步。仿真中的很多发现放到实际工程里还需要修正。拿虚拟惯量来说仿真里可以把 (H) 调到 10 秒甚至 20 秒让频率像磐石一样稳。但真实变流器的直流侧储能容量有限过大的虚拟惯量意味着故障或者扰动瞬间需要直流电容或者储能系统提供巨大的能量支撑这在硬件上可能无法实现。所以我个人在做项目时从来不建议把构网型变流器参数按“无限逼近同步电机”的思路去整定而应该按照应用场景设计惯量支持时间。比如用于储能电站的构网型变流器虚拟惯量的设计目标是平抑 1~3 秒内的频率快速跌落同时保证直流侧电量消耗在可接受范围。这个思想可以直接反馈到仿真参数选择上把 (H) 限定在 2~4 秒区间而不是跑一个大得离谱的数字去博眼球。另外一个容易被忽略的问题是Simulink 仿真结果在接入 RTDS 或 dSPACE 硬件在环平台时会因为控制周期不同而出现差异。同一个 VSG 算法在仿真里用 50 微秒步长能稳定在控制器里以 1 毫秒周期运行就可能出现离散化误差导致的功率振荡。我踩过这个坑之后基本都会在仿真模型里多做一个离散化版本直接在离散域里把算法写一遍验证参数边界再往控制器移植。最后再分享一个小技巧做频率稳定性研究时别只在 Simulink 里看波形建议把 VSG 内部的状态量——虚拟角速度、虚拟功角、电磁功率、电压指令——全部用 To Workspace 导出然后写一段 Matlab 脚本做模态分析比如查看虚拟角速度偏差里含几个振荡频率分量。这个习惯让我不止一次发现“看起来阻尼很好”的时域波形其实藏着两个频率接近的弱阻尼模式只是被波形尺度掩盖了。如果你做的是系统级研究配合 Simulink 的线性化工具箱linearize提取状态空间模型再画根轨迹会比纯时域扫参数更快找到振荡根源。这个扩展思路后续你在研究多机并联构网型系统时会特别需要。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。